1. DQL操作单表
1.1 创建数据库,复制表
1.2 排序
- 通过 ORDER BY 子句,可以将查询出的结果进行排序(排序只是显示效果,不会影响真实数据)
1.2.1 排序方式
1.3 聚合函数
- 聚合函数不会统计NULL空值
1.4 分组
- 分组查询指的是使用
GROUP BY
语句,对查询的信息进行分组, 相同数据作为一组
1.5 limit关键字
2. SQL约束
2.1 主键约束
2.1.1 添加主键约束
2.1.2 删除主键约束
删除 表中的主键约束 (了解)
-- 使用DDL语句 删除表中的主键
ALTER TABLE emp2 DROP PRIMARY KEY;
DESC emp2;
2.1.3 主键的递增
创建主键自增的表-- 创建主键自增的表 CREATE TABLE emp2( -- 关键字 AUTO_INCREMENT,主键类型必须是整数类型 eid INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(20), sex CHAR(1) );
2.1.4 修改主键自增的起始值
默认地
**AUTO_INCREMENT **
的开始值是 1,如果希望修改起始值,请使用下面的方式-- 创建主键自增的表,自定义自增其实值 CREATE TABLE emp2( eid INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(20), sex CHAR(1) )AUTO_INCREMENT=100; -- 插入数据,观察主键的起始值 INSERT INTO emp2(ename,sex) VALUES('张百万','男'); INSERT INTO emp2(ename,sex) VALUES('艳秋','女');
3.1.5 DELETE和TRUNCATE对自增长的影响
删除表中所有数据有两种方式
2.2 非空约束 **
- 非空约束的特点: 某一列不予许为空
# 非空约束
CREATE TABLE emp2(
eid INT PRIMARY KEY AUTO_INCREMENT,
-- 添加非空约束, ename字段不能为空
ename VARCHAR(20) NOT NULL,
sex CHAR(1)
);
2.3 唯一约束
- 唯一约束的特点: 表中的某一列的值不能重复( 对null不做唯一的判断 )
zeCREATE TABLE emp2 (
eid int(11) NOT NULL AUTO_INCREMENT,
enam varchar(20) NOT NULL,
sex char(1) DEFAULT NULL,
PRIMARY KEY (eid),
UNIQUE KEY ename (ename)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
#创建emp3表 为ename 字段添加唯一约束
CREATE TABLE emp3(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20) UNIQUE,
sex CHAR(1)
);
2.4 外键约束
-
2.5 默认值
3. 数据库事务
3.1 什么是事务
事务是一个整体,由一条或者多条SQL 语句组成,这些SQL语句要么都执行成功,要么都执行失败, 只要有一条SQL出现异常,整个操作就会回滚,整个业务执行失败 。
比如: 银行的转账业务,张三给李四转账500元 , 至少要操作两次数据库, 张三 -500, 李四 + 500,这中
间任何一步出现问题,整个操作就必须全部回滚, 这样才能保证用户和银行都没有损失. 回滚
即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,滚回到事务开始时的状态。(在提交之前执行)
3.2 模拟转账操作
假设当tom 账号上 -500 元,服务器崩溃了。jack 的账号并没有+500 元,数据就出现问题了。
我们要保证整个事务执行的完整性,要么都成功, 要么都失败. 这个时候我们就要学习如何操作事务
3.3 MySQL事务操作
MYSQL 中可以有两种方式进行事务的操作:
3.3.2 自动提交事务
3.4 事务的四大特性 ACID
3.5 MySQL 事务隔离级别(了解)
3.5.1 数据并发访问
3.5.2 并发访问会产生的问题
3.5.3 四种隔离级别
3.6 隔离性问题演示
3.6.1 脏读演示
脏读: 一个事务读取到了另一个事务中尚未提交的数据
- 打开窗口登录 MySQL,设置全局的隔离级别为最低
3) 设置隔离级别为最低 读未提交set global transaction isolation level read uncommitted;