MySQL
2025-06-18 17:04:23 0 举报
AI智能生成
学习记录
作者其他创作
大纲/内容
通用语法及分类
DDL(Data Definition Language)
数据定义语言:用于定义数据库中的对象
例如数据库、表、字段
数据定义语言:用于定义数据库中的对象
例如数据库、表、字段
查询所有数据库
show databases;
查询当前数据库
select database();
创建数据库
create database 数据库名;
删除数据库
drop database 数据库名;
使用数据库
use 数据库名;
注意事项
UTF8字符集长度为3字节,有些符号占4字节,所以推荐用utf8mb4字符集
表操作
查询当前数据库所有表
show tables;
查询表结构
desc 表名;
查询指定表的建表语句
show create table 表名;
创建表
添加字段
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
【例】:alter table emp add username varchar(20) comment '用户名';
修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);
修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
【例】alter table emp change username nickname varchar(30) comment '昵称';
删除字段
alter table 表名 drop 字段名;
修改表名
alter table 表名 rename to 新表名;
删除表
drop table 表名;
删除表,并重新创建该表(清空元素)
truncate table 表名;
DML(Data Manipulation Language)
数据库操作语言:用于对数据库表中的数据进行增删改
数据库操作语言:用于对数据库表中的数据进行增删改
添加数据
指定字段
insert into 表名 (字段1, 字段2, ...) values (值1, 值2, ...) ;
全部字段
insert into 表名 values (值1, 值2, ...);
批量添加数据
insert into 表名 (字段名1, 字段名2, ...) values (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
insert into 表名 values (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
注意事项
字符串和日期类型应该在 '' 中
插入数据应该在规定范围内
更新和删除数据
修改数据
update 表名 set 字段名1 = 值1, 字段名2 = 值2, ... [where 条件]
【例】update emp set name = 'Jason' where id = 1;
删除数据
delete from 表名 [where 条件];
DQL(Data Query Language)
数据库查询语言,用来查询数据库表中元素
数据库查询语言,用来查询数据库表中元素
语法
基础查询
查询多个字段
select 字段1, 字段2, 字段3, ... from 表名;
select * from 表名;
设置别名
select 字段1 as 别名1, 字段2 as 别名2, ... from 表名;
select 字段1 别名1, 字段2 别名2, ... from 表名;
去除重复记录
select distinct 字段列表 from 表名;
条件查询
语法
select 字段列表 from 表名 where 条件列表;
条件
【例】
聚合查询(聚合函数)
常见的聚合函数
语法
select 聚合函数(字段列表) from 表名;
【例】select count(id) from emp where workaddress = '重庆市';
分组查询
语法
select 字段列表 from 表名 [ where 条件 ] group by 分组字段名 [ having 分组后的过滤条件 ];
where 和 having 的区别
执行时机不同:where是分组之前进行过滤,不满足where条件不参与分组;having是分组后对结果进行过滤。
判断条件不同:where不能对聚合函数进行判断,而having可以。
【例】
子主题
注意事项
执行顺序:where > 聚合函数 > having
分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义
排序查询
语法
select 字段列表 from 表名 order by 字段1 排序方式1, 字段2, 排序方式2;
排序方式
ASC: 升序(默认)
DESC: 降序
【例】
注意事项
如果是多个字段排序,当第一个字段相同的时候,才会对第二个字段进行排序
分页查询
语法
select 字段列表 from 表名 limit 起始索引, 查询记录数;
【例】
DQL执行顺序
FROM -> WHERE -> GROUP BY -> SELECT -> ORDER BY -> LIMIT
DCL(Data Control Language)
数据库控制语言,用来创建数据库用户、控制数据库的控制权限
数据库控制语言,用来创建数据库用户、控制数据库的控制权限
约束
分类
常用约束
【例】
外键约束
语法
删除外键
alter table 表名 drop foreign key 外键名;
删除/更新行为
【例】
alter table 表名 add constraint 外键名称 foreign key (外键字段) references 主表名(主表字段名)
on update 行为 on delete 行为;
on update 行为 on delete 行为;
多表查询
一对多(多对一)
【例】
部门与员工
多对多
【例】
学生与课程
一对一
【例】
用户与用户详情
查询
合并查询
select * from emp, dept;
笛卡尔积
两个集合A集合和B集合的所有组合情况(在多表查询时,需要消除无效的笛卡尔积)
【例】
select * from emp, dept where emp.dept = dept.id;
内连接查询
内连接查询的是两张表交集的部分
隐式内连接
select 字段列表 from 表1, 表2 where 条件 ...;
显示内连接
select 字段列表 from 表1 [inner] join 表2 on 连接条件 ...;
显示性能比隐式高
【例】
外连接查询
左外连接
查询左表所有数据,以及两张表交集部分
语法
select 字段列表 from 表1 left [outer] join 表2 on 条件 ...;
相当于查询表1的全部内容,表1和表2交集部分
右外连接类似
自连接查询
当前表与自身的连接查询,自连接必须使用表别名
语法
select 字段列表 from 表A 别名A join 表A 别名B on 条件 ...;
自连接查询,可以是内连接查询,也可以是外连接查询
【例】
联合查询 union, union all(未)
事务
事务是一组操作的集合,事务会把所有操作作为一个整体一起向系统提交或撤销操作请求,
即这些操作要么同时成功,要么同时失败。
即这些操作要么同时成功,要么同时失败。
基本操作
四大特性ACID
原子性(Atomicity):事务是不可分割的最小操作但愿,要么全部成功,要么全部失败
一致性(Consistency):事务完成时,必须使所有数据都保持一致状态
隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行
持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的
并发事务
并发事务隔离级别
√表示在当前隔离级别下该问题会出现
Serializable 性能最低;Read uncommitted 性能最高,数据安全性最差
函数
字符串函数
常用函数
【例】
数值函数
常见函数
日期函数
常见函数
流程函数
常见函数
【例】

收藏

收藏
0 条评论
下一页