MySQL 学习笔记
Q: 什么是 MySQL ?
mysql 是开源关系型数据库,关系型数据库使用表格的形式存储数据,每个表由行和列组成,表之间可以通过外键关联
Q: 如何登陆 MYSQL
mysql -h<主机地址> -u<账号> -p<密码> -P<端口号>
Q: SQL 分类
- DDL: 数据定义语言,定义数据库对象,create/drop
- DML:数据操作语言,操作数据,insert/update/delete
- DQL:数据查询语言,查询数据,select
- DCL:数据控制语言,权限控制,grant
Q: 创建/查看/切换/删除数据库
创建:create database <库名>
查看:show databases
切换: use <库名>
删除:drop database <库名>
Q: 创建表
create table <表名>(<字段名> <类型> <约束> comment '备注')
字段说明:
- int<整型>
- float<m,n><精确小数>
- char(n) <固定长度字符串>
- varchar(n) <可长度字符串>
- datetime<日期时间>
约束说明:
- primary key <主键,非空且唯一>
- auto_increment <自增>
- not null <非空>
- unique <唯一>
- default <默认值>
Q: 查看表结构
desc <表名>
show create table <表名>
Q: 修改表结构,添加/修改/重命名/删除字段
- alter table <表名> add column <字段名> <类型> <约束>
<after 列名> - alter table <表名> modify column <字段名> <类型> <约束>
- alter talbe <表名> change <旧名> <新名> <类型>
- alter table <表名> drop column <字段名>
Q: 删除表
drop table <表名>
Q: 插入数据
insert into <表名> (字段全量可省略) values(值)
Q: 更新数据
update <表名> set <字段>=值 where <条件,无条件全表更新>
Q: 删除数据
delete from <表名> where <条件>
truncate table <表名> 清空全表
Q: 条件查询
select *(指定字段) from <表名> where <条件>(比较/逻辑运算符)
Q: 模糊查询
select * from <表名> where <字段> like '张%'
Q: 排序
select * from <表名> order by <字段> asc(正序) desc(倒叙)
Q: 限制返回行数
select * from <表名> limit <行数> offset <偏移量> ;
Q: 分组+聚合函数
- select count(*), sum() from <表名> group by <字段>
- count(计数)/sum(求和)/avg(平均)/max(最大)/min(最小)
- group_concat(id) 可以用字符串展示出分组后合并的内容
- having 用于分组后的条件筛选
Q: 合并多个查询结果
select * from <表名> union [all] select * from <表名>
Q: 联合查询
- select *(表一.字段, 表二.字段) from <表一> join <表二> on 条件 内连接,返回交集
- select * from <表一> left join <表二> on 条件 左连接,返回左表全数据,右表无匹配显示null
- select * from <表一> right join <表二> on 条件 右连接,返回右表全数据,左表无匹配显示null
Q: 子查询
select * from <表名> where <字段>=(select <字段> from <表名> where <字段>='文科班');
| 单词 | 读 |
|---|---|
| primary | 拍莫瑞 |
| grant | 个软特 |
| increment | 因克们特 |
| unique | 有你克 |
| alter | 奥特儿 |
| column | 靠了木 |
| truncate | 串k特 |

浙公网安备 33010602011771号