DDL查询所有数据库
show databases ;L
查询当前数据库
select database() ;
创建数据库
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序
规则
] ;
删除数据库
drop
database [ if exists ]
数据库名
;
切换数据库
use
数据库名
;
查询当前数据库所有表
show tables;
查看指定表结构
desc
表名
;
查询指定表的建表语句
show
create table
表名
;
创建表结构
CREATE TABLE
表名
(
字段
1
字段
1
类型
[ COMMENT
字段
1
注释
],
字段
2
字段
2
类型
[COMMENT
字段
2
注释
],
字段
3
字段
3
类型
[COMMENT
字段
3
注释
],
......
字段
n
字段
n
类型
[COMMENT
字段
n
注释
]
) [ COMMENT
表注释
] ;
类型:
数值类型:
![](https://img-blog.csdnimg.cn/c7646c3906ac4192a2f4876f6e1ea583.png)
字符串类型:
日期时间类型
添加字段
ALTER TABLE
表名
ADD
字段名 类型
(
长度
) [ COMMENT
注释
] [
约束
];
修改数据类型
ALTER TABLE
表名
MODIFY
字段名 新数据类型
(
长度
);
修改字段名和字段类型
ALTER TABLE
表名
CHANGE
旧字段名 新字段名 类型
(
长度
) [ COMMENT
注释
] [
约束
];
删除字段
ALTER TABLE
表名
DROP
字段名
;
修改表名
ALTER TABLE
表名
RENAME TO
新表名
;
删除表
DROP TABLE
[ IF EXISTS ]
表名
DML :
添加数据:
INSERT INTO
表名
(
字段名
1,
字段名
2, ...)
VALUES
(
值
1,
值
2, ...);
批量添加数据
INSERT INTO
表名
(
字段名
1,
字段名
2, ...)
VALUES
(
值
1,
值
2, ...), (
值
1,
值
2, ...), (
值
1,
值
2, ...) ;
INSERT INTO
表名
VALUES
(
值
1,
值
2, ...), (
值
1,
值
2, ...), (
值
1,
值
2, ...) ;
DQL :
去除重复记录 关键字
DISTINCT
SELECT DISTINCT
字段列表
FROM
表名
![](https://img-blog.csdnimg.cn/91ae4d3b8a464597b430d3e05658362f.png)
聚合函数:
分组查询:
排序查询:
分页查询:
执行顺序:
DCL:
查询用户:
select
*
from
mysql
.user
;
![](https://img-blog.csdnimg.cn/91f291d0ab7e4a028f2fa496df79bb95.png)
权限:
操作:
函数:
字符串函数:
数值函数:
日期函数:
流程函数:
约束:
概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。
目的:保证数据库中数据的正确、有效性和完整性。
![](https://img-blog.csdnimg.cn/8f48a672395742d68c071fd4de3970d9.png)
添加外键:
连接查询:
内连接:相当于查询A、B交集部分数据
外连接:
左外连接:查询左表所有数据,以及两张表交集部分数据
![](https://img-blog.csdnimg.cn/29d68e849ba14513a864c7ea776e22ac.png)
右外连接:查询右表所有数据,以及两张表交集部分数据
自连接:当前表与自身的连接查询,自连接必须使用表别名
![](https://img-blog.csdnimg.cn/05ebc922dea7415697d6e0990911f346.png)
联合查询:
就是两次查出来的数据进行拼接 就像两个sql查出来的数据拼接到一起 没啥用
如果多条查询语句查询出来的结果,字段数量不一致,在进行
union/union all
联合查询时,将会报
错。如:
子查询 :
分类
1
查出来的是单行的多个数据可以进行多个字段匹配
查出来的是多行的多个数据 单行查询的集合 进行遍历匹配
事务:
事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系
统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败
![](https://img-blog.csdnimg.cn/8dc4e6d3815f495a9774b66178e37f7b.png)
脏读:
事务A第一次查询数据和第二次查询数据不同 因为查询到了另一个事务B未提交的数据 数据回滚了
不可重复读:
事务A第一次查询数据和第二次查询数据不同 查询两次查询中 事务B进行了数据修改 导致查询数据不同
幻读:
事务A第一次查询数据和第二次查询都不存在数据 倒是缺因为唯一性无法插入 因为事务B进行了数据增加 倒是事务A查不出来 但是数据库里有了