(三)数据结构化查询语言(二)
三:事务控制语言tcl
事务(transaction): 主要用来处理操作量大,复杂度高的数据,事务是原子操作,不可再分,要么同时成功,要么同时失败,即一个事务是一个完整的业务逻辑单元
。
在MySQL数据库中只有使用InnoDB引擎的数据库才能使用事务;默认的存储引擎为Myisam,不支持事务。
事务必须满足四个特征:即ACID
原子性(Atomicity):又叫不可分割性,它是指一个事务中的所有操作,要么全部完成,要么全部不完成,不会在中间某个阶段结束。在执行的过程中一旦事务发生错误就会被**回滚(rollback)**到最初执行时的位置(状态),就像这个事务没有执行过一样。
一致性(Consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。
隔离性(Isolation):又叫独立性,它是指每个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发执行的其他事务是隔离的,各个事务之间不能互相干扰。事务的隔离级别一般有四种,即读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable),分别对应1-4个级别,其中mysql数据库默认的隔离级别是第三级别(可重复读)。
持久性(Durability):也称为永久性,它是指一个事务一旦成功提交,对数据库中的数据改变使永久的,不会轻易丢失,就算系统故障也不会丢失。
事务的验证:
1.start transaction(交易)
2.savepoint(保存点名称)
3.DML(数据操纵语言)
4.commit(提交)/rollback(撤回,回滚);
四:数据查询语言dql
1.select/for基本查询语句
格式:select 子句 from 子句
例:select age,name from t2;
2.别名(as可以省略)
格式:select 列名1 as “别名”,列名2 as “别名” from 表名;
Select * from product as p;
Select pname as pn from product;
3.Where子句
在增删改查时,起到条件限制作用。
有如下写法
in | not in(集合元素,使用逗号分开)
all | any与集合连用,此时集合中的元素必须从表中查询到的数据。
or | and
范围查询:t3 between value1 and value2;查询指定列t3名下的value1到value2范围中的数据。
模糊查询:like
1.通配符:% 表示0或0个以上字符,_表示匹配一个字符。
2.格式:t3 like value;
例:
查询工资大于这三个人的所有人
select * from t2
where mony>all(
select mony from t2
where name in ('xiaogang','xiaoqiang','xiaohao')
);
查询工资在3000到5000的人
select * from t2 where mony between 3000 and 5000;
查询名字中带 ‘s’ 和 'a’的员工信息
select * from t2 where name like '%a%' and name like '%s%';
select * from t2 where name like '%a%s%' and name like '%s%a%';
在查询sql查询出来的字符串结果前加上一个字母a
select concat('a',name) as name from t2;
在查询结果的基础上加100
select mony+100 as newMony from t2;
SQL语句的执行顺序
:from-where-group by-having-select-order by
(三)数据结构化查询语言(高级用法)
感谢大家,点赞,收藏,关注,评论!