mysql 事务 数量_MySQL 数据查询语言(DQL) 事务控制语言(TCL)详解

一、 数据查询语言(DQL)(重中之重)

完整语法格式:

select 表达式1|字段,....

[from 表名 where 条件]

[group by 列名]

[having 条件]

[order by 列名 [asc|desc]]

[limit 位置,数量]

<1> 普通查询

select 查询表达式; // 最简单的sql语句,是一个函数

select database();

select version();

select now();

<2> 条件查询

where 条件表达式, 支持运算符和函数

MySQL支持的运算符:

=、 !=、 >、 >=、

and、 or、 not

is null、 is not null

between...and... (区间查询,多少到多少之间)

in(set);

like 通配符和占位符: % _ (模糊查询)

%: 表示0个或者多个字符

_: 表示占位一个

-- 查询所有的老师信息

select * from teacher;

-- 查询id 大于2的老师信息

select * from teacher where id>2;

-- 查询姓名为空的老师信息 在数据库中null永远都不等于null,那么怎么去判断null值?通过 is null / is not null

-- select * from teacher where name=null; # 错误

select * from teacher where name is not null;

-- 查询id为1 并且 姓名是 "xiaosi"的老师信息

select * from teacher where id=1 and name='xiaosi';

-- 查询id为1 并且 姓名是 "xiaosi"的老师信息

select * from teacher where id=1 or name='xiaosi';

-- 查询薪水在2000到10000之间的老师信息

select * from teacher where sal >=2000 and sal <=10000;

select * from teacher where sal between 2000 and 10000; # 这种方式等同于上面

-- 查询姓名中有 ‘尘’ 字的老师信息

select * from teacher where name like '%尘%';

-- 查询姓名是三个字的

select * from teacher where name like '___';

-- 查询姓 '小' 的老师信息

select * from teacher where name like '小%';

-- 查询名字中含有下划线的老师信息 '\' 转义

-- select * from teacher where name like '%_%'; # 错误

select * from teacher where name like '%\_%';

<3> 分组查询

语法格式:

[group by 列名] [haveing 条件]

一般情况分组查询结合聚合函数一起使用

max()

min()

sum()

avg()

count()

-- 查询每个部门的平居薪资

# select * from teacher GROUP BY dname

# 记住:分组的正确使用方式,group by 后面没有出现的列名不能出现在select 和from 的中间,

# 虽然不报错,但是不是分组的正确使用方式

# 聚合函数中出现的列名group by后面没有无所谓

select dname from teacher GROUP BY dname;

select dname, avg(sal) from teacher GROUP BY dname;

<4> 排序查询

语法格式:

order by 列名 asc|desc 默认升序(asc)

-- 查询老师信息,根据薪资进行排序,要求从大到小进行排序

select * from teacher order by sal desc; # 根据sal进行降序排序

select * from teacher order by sal asc; # 根据sal进行升序排序

select * from teacher order by sal; # 根据sal进行升序排序, 利用默认排序

<5> 限制结果集数量的查询(分页)

编号    商品名称    商品价格    操作 1         玩具娃娃    100.0         删除 修改 2         玩具汽车    200.0         删除 修改 3         玩具飞机    300.0         删除 修改 ................................ 首页    上一页    1 2 3 4 5    下一页   尾页

语法格式

limit n条数;-------从第一条开始取n条数据(了解)

limit start开始下标索引,count条数; ---- 从起始位置start取count条数据(起始位置是从0开始的) (推荐使用)

分页(每页显示两条数据)

第一页:select * from teacher limit 0,2;

第二页:select * from teacher limit 2,2;

第三页:select * from teacher limit 4,2;

第四页:select * from teacher limit 6,2;

第五页:select * from teacher limit 8,2;

分页公式:

开始下标索引(起始位置) = (当前页-1)*每页显示条数;

-- 每页显示3条

-- 显示第二页

select * from teacher limit 3,3;

<6> 扩展

别名

select * from teacher; # 查询表中所有字段记录

select name, sal, dname from teacher; # 查询表中指定字段记录

-- 给查询的字段设置别名 同时也可以给表设置别名 通过as 关键字实现别名

select name as '姓名', sal '薪资', dname '部门名称' from teacher

二、 事务控制语言(TCL)

MySQL事务默认自动开启的

在MySQL数据库中只有使用了Innodb数据库引擎的数据表或库才会支持事务

通过事务来管理 insert、update、delete语句

事务必须满足4个条件(ACID):

原子性(不可分割性): 要么全部完成,要么全部不完成,不会结束在中间的某个环节。在执行的过程中一旦出现错误/异常,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

一致性: 事务处理前后数据保持一致

隔离性: 事务处理必须是独立的彼此隔离

持久性: 事务对数据的修改永久保存

<1> 为什么使用事务

银行转账

事务广泛使用:订单系统,银行系统等....

<2> MySQL事务控制

commit(提交)

rollback(回滚)

savepoint(事务节点)

<3> 实战操作

create table student(

id int,

name varchar(32),

age int,

money double

);

insert into student values(1, '老王', 18, 60000);

select * from student;

rollback;

手动关闭事务提交语法:

set autocommit = false|true; // 设置事务的提交方式

rollback; // 事务回滚

commit; // 事务提交

savepoint 节点名称; // 设置回滚的节点

rollback to 节点名称; // 回滚到具体的某个节点

set autocommit = false; # 设置事务手动提交

select * from student;

delete from student where id=1; # 删除id为1 的信息

rollback; # 事务回滚

commit; # 事务提交

update student set money = money-30000 where id=1;

savepoint t1; # 设置事务节点

update student set money = money-20000 where id=1;

rollback to t1; # 回滚到t1节点位置

commit; # 事务提交

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web前端到底是什么?有前途吗

web前端到底是什么&#xff1f; 某货&#xff1a; “前几年前端开发人员鱼目混杂&#xff0c;技术参差不齐&#xff0c;相对学习起来不规范&#xff0c;导致> 前端开发人员聚集&#xff0c;所以现在前端工种和工资还是没得到普遍重视&#xff0c;但近2年来&#xff0c;> …

此加载项为此计算机的所有用户安装_MDI Jade 6.5软件安装教程

软件下载▼关注微信公众号&#xff1a;贵州永航科技回复Jade即可获得软件安装包下载地址以及详细安装教程更多软件安装教程可点击菜单栏获取软件介绍MDI Jade是一款专门用于XRD分析的软件&#xff0c;XRD分析就是X射线衍射分析&#xff0c;MDI Jade通过对材料进行X射线衍射&…

java 线程定时器_Java线程之Timer定时器

定时/计划功能主要使用的就是Timer对象&#xff0c;它在内部还是使用多线程的方式进行处理&#xff0c;所以它和线程技术还是有非常大的关联。Timer类主要作用就是设置计划任务&#xff0c;但封装任务的类却是TimerTask类。TimerTask类是一个抽象类。执行任务的时间晚于当前时间…

博客已经迁移到 http://imbotao.top 也会同步到这儿

完全是看到别人搭建的 hexo github Pages 博客界面很好看&#xff0c;很简洁&#xff0c;自己也喜欢折腾&#xff0c;就鼓捣了一个。 也在阿里云买了自己的域名&#xff0c;个人感觉在博客的样式和功能上花费了太多的时间&#xff0c;不过现在终于搞的差不多了&#xff0c;以后…

vscode 写vue 没有js提示_如何用VSCode实现一个vue.js项目?

1,新建项目打开Visual studio code打开一个你想要创建项目的文件夹打开集成终端&#xff1a;查看 –> 集成终端 或者直接按 ctrl\ 如果没有安装vue-cli&#xff0c;在终端输入&#xff1a;npm install \-g vue-cli全局安装vue-cli然后新建项目vue init webpack projectNamep…

python有没有类似unity3d_像web一样使用python

使用传统的web开发技术,也就是htmljs,然后搭配一个后端语言,已经成为当今web开发的固定模式了,为此也形成了众多的toolkit,譬如ror,django,各种js图形库更是玲琅满目,从非常大程度上也加速了开发过程.但传统web应用也非常自然地有一些诟病,有些特殊效果,c端能够轻而易举地完毕,…

邓白氏编码查询_外贸人常用查询工具汇总

外贸工具类网站FOB价格计算器http://bbs.fobshanghai.com/fobprice.htmCIF价格计算器http://www.easiertrade.com/public/cif.html?_1487894720000海关原产地证真伪查询https://dwz.cn/f3O8YGK6出口退税查询https://dwz.cn/kGWsBclu国家已正式于2018年11月1日起调整产品的出口…

超简单的走马灯效果

虽然走马灯的效果看起来很简单&#xff0c;网上也有很多的教程能够直接copy&#xff0c;然而还是第一次研究这个的实现方法。 先把div给定义出来&#xff0c;写好布局。 <div class"wrapper"><div id"box"><div>slide1</div><d…

winscp

简介&#xff1a;是linux的一个连接工具 1.winscp的下载&#xff1a;就会自动下载的了 2.安装配置&#xff1a; https://jingyan.baidu.com/article/6525d4b15bae6fac7d2e94a0.html 3.生成密钥&#xff1a; https://jingyan.baidu.com/article/ed2a5d1f377ccb09f6be178b.html 4…

gitlab-ee使用mysql_在 GitLab 我们是如何扩展数据库的

很长时间以来 GitLab.com 使用了一个单个的 PostgreSQL 数据库服务器和一个用于灾难恢复的单个复制。在 GitLab.com 最初的几年&#xff0c;它工作的还是很好的&#xff0c;但是随着时间的推移&#xff0c;我们看到这种设置的很多问题&#xff0c;例如&#xff0c;数据库长久处…

哈希表数据结构_Java数据结构哈希表如何避免冲突

前言一、哈希表是what&#xff1f;这是百度上给出的回答&#xff1a;简而言之&#xff0c;为什么要有这种数据结构呢&#xff1f;因为我们想不经过任何比较&#xff0c;一次从表中得到想要搜索的元素。所以就构造出来了哈希表&#xff0c;通过某种函数(哈希函数)使元素的存储位…

Python 高级网络操作 - Python Advanced Network Operations

1 Python 高级网络操作 - Python Advanced Network Operations2 3 Half Open Socket,4 一个单向的 socket 被称为 half open socket, 即数据只能在一个方向上传输.5 Half Open Socket 是通过在 socket 对象上调用 shutdown() 方法得到.6 shutdown 接收一个 numeric…

java getattribute为空_Java TransMeta.getAttribute方法代码示例

import org.pentaho.di.trans.TransMeta; //导入方法依赖的package包/类Overridepublic void getData( TransMeta transMeta ) throws KettleException {try {String serviceName transMeta.getAttribute( StreamingConst.STREAMING_GROUP, StreamingConst.STREAMING_SERVICE_…

python summary writer_tensorflow中summary操作

tf中 tensorboard 工具通过读取在网络训练过程中保存到本地的日志文件实现数据可视化&#xff0c;日志数据保存主要用到 tf.summary 中的方法。tf.summary中summary是tf中的一个py文件&#xff0c;位置在 /tensorflow/python/summary/ 文件夹下&#xff0c;提供了像tf.summary.…

10 3 java_10.3 UiPath如何调用Java

调用Java方法(Invoke Java Method)的介绍从Java Scope中的.jar加载的方法中调用指定的Java方法。并结果存储在变量中二、Invoke Java Method 在UiPath中的使用打开设计器, 在设计库中新建一个Sequence&#xff0c;为序列命名及设置Sequence存放的路径, 在Activities中搜索Java …

物联网python教程慕课_物联网技术(校慕课资源,物联网组)-中国大学mooc-题库零氪...

3. 智慧社区的部署3.1 IIS服务器安装随堂测验1、在安装IIS信息服务器时&#xff0c;我们应打开电脑控制面板中的哪个设置( )A、管理工具B、程序与功能C、Windows 防火墙D、操作中心2、在安装IIS服务器时&#xff0c;在widows功能下需要勾选以下哪几项 &#xff1f;( )A、Intern…

台达伺服电机选型手册_机械加工工艺师手册_打包下载

如何【设为星标★】&#xff0c;优先推送资料信息&#xff1f;Ta们都在看咱们&#xff1a;机械大佬群注意及时保存和下载&#xff0c;资料若失效请拉到本页底部留言&#xff0c;我们将不定时补发&#xff01;免责声明&#xff1a;该资料系网络转载&#xff0c;版权归原作者所有…

java zar_唬人的Java泛型并不难

泛型public interfaceFoo {}public interfaceBar {}public interfaceZar> {}上面的代码有什么区别&#xff1f;泛型初探1、为何引入泛型&#xff1f;Java 泛型也是一种语法糖&#xff0c;使用泛型可以在代码编译阶段完成类型的转换&#xff0c;避免代码在运行时强制转换而出…

团队作业7——Beta版本冲刺计划及安排

需要改进的工具流程&#xff08;如版本控制、测试工具等&#xff09; 首先把之前项目的BUG进行修复 然后完成如下的功能 冲刺的时间计划安排 &#xff08;冲刺时间为期七天&#xff0c;安排在2017.12.4——2017.12.10之间&#xff09; 组员任务陈福鹏实现博客.多语言、倒计…

开发黑名单功能demo_中台实践:通用化黑名单平台

业务中台的价值主要体现在对通用化业务能力的沉淀、整合&#xff0c;通过对可复用业务流程和业务功能的设计&#xff0c;向不同业务方提供标准化且可扩展的服务能力。本文来聊一聊笔者工作过程中设计的通用化黑名单平台&#xff0c;通过将用户管控能力的下沉&#xff0c;为各业…