目录
基础操作:
查询所有数据库:show databases;
进入别的数据库中:use 数据库名字;
查看数据库下的表:show tables;
查看表结构:desc 表名;
查看当前所在数据库: select database();
创建表:create table 表名 (
字段名1 数据类型1,
字段名2 数据类型2
);
注意:最后一行不加逗号
删除表:drop table if exists 表名;
修改表:
修改表名:alter table 表名 rename to 新的表名;
添加一列:alter table 表名 add 列名 数据类型;
修改数据类型:alter table 表名 modify 列名 新数据类型;
修改列名和数据类型;alter table 表名 change 列名 新列名 新数据类型;
删除列:alter table 表名 drop 列名;
对数据进行操作:
添加:
给指定列添加数据:insert into 表名(列名1,列名2,.;....) values (值1,值2,.......);
给全部列添加数据:insert into 表名 values(值1,值2,...);
批量添加数据:insert into 表名(列名1,列名2,...) values (值1,值2,...),(值1,值2,...)...;
insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...);
查找:
查找全部:select * from 表名;
修改:
修改表数据:update 表名 set 列名1=值1,列名2=值2,...[where 条件];
注意:修改语句中如果不加条件,则将所有数据都修改!
删除:
删除数据:delete from 表名 [where 条件];
注意:如果不加条件,会删除表中所有数据
查询操作:
- 基础查询
- 条件查询(where)
- 分组查询(group by)
- 排序查询(order by)
- 分页查询(limit)
查询语法:select 字段列表 from 表名列表 where 条件列表 group by 分组字段
having 分组后条件 order by 排序字段 limit 分页绑定
去重:select distingct 字段列表 from 表名列表 去重操作使用的是distingct
别名:使用as定义别名
排序查询:select 字段列表 from 表名 order by 排序字段名1 [排序方式1],
排序字段名2 [排序方式2],.... ASC,升序排序(默认),DESC吗,降序排序
聚合函数:select 聚合函数名(列名) from 表;
注意:null值不参与所有聚合函数运算
函数名及其功能:
- count(列名) 统计数量(一般选用不为null的列
- max(列名) 最大值
- min(列名) 最小值
- sum(列名) 求和
- avg(列名) 平均值
分组查询:select 字段列表 from 表名 [where 分组前条件限定] group by
[hiving 分组后条件过滤]
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
分页查询:select 字段列表 from 表名 limit 起始索引,查询条目数
起始索引:从0开始
计算公式:起始索引=(当前页码-1)* 每页显示的条数
约束:
- 非空约束:保证列中所有数据不能有null值 NOT NULL
- 唯一约束:保证列中所有数据各不相同 UNIQUE
- 主键约束:主键是一行数据的唯一标识,要求非空且唯一 PRIMARY KEY
- 检查约束:保证列中的值满足某—条件 CHECK
- 默认约束:保存数据时,未指定值则采用默认值 DEFAULT
- 外键约束:外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性 FOREIGN KEY
建表约束添加形式
备注:这里id自增长没有实现,自增长字段 auto_increment,上述员工id应设置为 id INT PRIMARY KEY auto_increment
外键约束:
数据库的设计:
多表查询:
基础查询语法:select * from 表名1,表名2;
消除无效数据查询:select * from 表名1,表名2 where 表名1.id = 表名2.id;
内连接:
隐式内连接:select 字段列表 from 表1,表2.... where 条件;
显式内连接:select 字段列表 from 表1 [INNER] JOIN 表2 ON 条件;
内连接相当于查询A B交集数据
外连接:
左外连接:select 字段列表 from 表1 left [outer] join 表2 on 条件;
右外连接:select 字段列表 from 表1 right [outer] join 表2 on 条件;
左外连接:相当于查询左表所有数据和交集部分数据
右外连接:相当于查询右表所有数据和交集部分数据
子查询:
查询中嵌套查询
单行单列:作为条件值,使用= != > < 等进行条件判断
select 字段列表 from 表 where 字段名 = (子查询);
多行单列:作为条件值,使用in等关键字进行条件判断
select 字段列表 from 表 where 字段名 in (子查询);
多行多列:作为虚拟表
select 字段列表 from (子查询)where 条件;
事务:
事务操作:第一步:开启事务 being;
第二步:书写事务的主体
第三步:提交事务 commit ;
or 回滚事务 rollback ;
事务四大特征: