目录
1.MySQL服务命令
2.database数据库命令
3.table表命令
4.表数据操作(SQL语句)
4.1 表数据的增删改查
4.2 起别名, 去重,条件,排序,分页
4.3 聚合函数,分组函数
4.4 连接查询
4.5 子查询
4.6 外键约束的添加和修改
4.7 SQL语句的格式与执行顺序
1.MySQL服务命令
说明 | 命令 |
---|---|
安装 | sudo apt-get install mysql-server mysql-client |
查看是否安装 | apt-cache show mysql-server |
查看进程是否存在 | ps aux | grep mysql |
查看服务状态 | sudo service mysql status |
启动/停止/重启服务 | sudo service mysql start/stop/restart |
帮助 | mysql --help |
2.database数据库命令
说明 | 命令 |
---|---|
登录 | mysql -u用户名 -p密码 |
登出 | exit/quit/ctrl+d |
查询时间 | select now(); |
查看所有数据库 | show databases; |
创建数据库 | create database 数据库名 charset=utf8; |
查看创建表的语句 | show create database 数据库名; |
使用数据库 | use 数据库名; |
查看当前使用的数据库 | select database(); |
删除数据库 | drop database 数据库名; |
3.table表命令
说明 | 命令 |
---|---|
查看当前数据库的表 | show tables; |
创建表 | create table 表名 (字段名 类型 约束,字段名 类型 约束,…); |
查看创建表的语句 | show create table 表名; |
查看表结构 | desc 表名; |
添加一个字段 | alter table 表名 add 字段 类型 约束; |
修改字段名字和类型 | alter table 表名 change 原字段名 新字段名 类型 约束; |
修改字段类型和约束 | alter table 表名 modify 字段 类型 约束; |
删除字段 | alter table 表名 drop 字段名; |
删除表 | drop table 表名; |
4.表数据操作
4.1 表数据的增删改查
select,insert,update,delete
说明 | SQL语句 |
---|---|
1. 查询 | |
查询所有列数据 | select * from 表名; |
查询指定列数据 | select 列名 1, 列名 2 from 表名; |
2. 添加 | |
全列插入 | insert into 表名 value (数据); |
插入指定列数据 | insert into 表名(列名1, 列名2 …) values(数据值1, 数据值2, …); |
插入多行数据 | insert into student(name, age) value (‘赵子龙’, 48), (‘刘备’, 55), (‘关二哥’, 53); |
3. 修改 | |
修改数据 | update 表名 set 列名1=值,列名2=值 where 条件(id=7); |
4. 删除 | |
物理删除(不建议) | delete from student where id = 8; |
逻辑删除(推荐),修改字段的值,0 未删除,1 删除 | alter table student add is_delete bit default 0 not null; |
>> | update student set is_delete = 1 where id = 2; |
>> | select * from student where is_delete = 0; |
4.2 起别名, 去重,条件,排序,分页
as,distinct,where,order by,limit
关键字 | SQL语句 |
---|---|
1.as | |
给字段起别名 | select name as 姓名, age 年龄 from student; |
给表起别名 | select s.name as 姓名, s.age 年龄 from student as s; |
2.distinct | |
去重 | select distinct age from student; |
3.where | |
条件查询 | select * from 表名 where 条件; |
4.order by | |
排序(默认升序) | select * from 表名 where 条件 order by 列名1, 列名2 …; |
5.limit | |
分页查询 | select * from 表名 where 条件 order by 列名1, 列名2 … limit start , count; |
知识点:
where
- 比较运算符:> >= < <= = != <>
- 逻辑运算符:and,or,not
- 模糊查询:like,%,_
- 范围查询:Between and,in()
- 判空:is null,is not null
order by
- 升序asc,默认
- 降序desc
4.3 聚合函数,分组函数
avg()… ,group by
说明 | SQL语句 |
---|---|
1.聚合 | |
统计 | select count(height) from student; |
均值 | select avg(height) from student; |
2.分组函数 | |
group by 分组 | select gender from student group by gender; |
group_concat(显示不同性别分别有多少人) | select gender, group_concat(name) , count(name) from student group by gender; |
having(根据gender分组,统计分组条数大于2) | select gender, group_concat(name) , count(name) from student group by gender having count(*) > 2; |
with rollup(统计汇总聚合函数的信息) | select gender, group_concat(name) , count(name) from student group by gender with rollup; |
知识点:
聚合函数
- count()
- max()
- min()
- sum()
- avg()
- group_concat()
分组函数
- group by + 聚合函数
- group by + having
- group by + with rollup
4.4 连接查询
说明 | SQL语句 |
---|---|
内连接(交集) | select 字段 from 表1 inner join 表2 on 表1.字段1 = 表2.字段2 |
左连接(显示左表内容) | select * from 表 1 as 表1 left join 表 2 as 表 2 on 连接条件 |
右连接(显示右表内容) | select * from 表 1 as 表1 right join 表 2 as 表 2 on 连接条件 |
自连接(必须起别名) | select c.id, c.title, c.pid, p.title from areas as c inner join areas as p on c.pid = p.id where p.title = ‘山西省’; |
4.5 子查询
说明 | SQL语句 |
---|---|
语句嵌套(查询大于平均年龄的学生) | select * from student where age > (select avg(age) from student); |
4.6 外键约束的添加和修改
说明 | SQL语句 |
---|---|
添加外键约束 | alter table 从表 add foreign key(外键字段) references 主表(主键字段); |
删除外键约束 | alter table 表名 drop foreign key 外键名; |
添加外键的两种方法:
- 在已经存在的字段添加外键约束
- 在创建数据表时设置外键约束 --> foreign key(外键字段) references 主表(主键字段);
4.7 SQL语句的格式与执行顺序
SQL语句的格式:
select 列名 1, 列名 2, 聚合函数
from 表 1 [inner|left|right] join 表 2
on 条件
where 条件
group by 列名 1, 列名 2
having 条件
order by 列名1, 列名2 ...
limit start , count;
SQL语句完整的执行顺序:
- from
- Where
- group by
- 聚合函数
- having
- Select
- Order by
- Limit