1、命令行连接MySQL
mysql -u用户名 -p密码 [-h数据库服务器的IP地址 -P端口号]
2、创建数据库
create database [ if not exists ] 数据库名; // [...] 选填 (如果存在就不创建不会报错)
3、使用数据库
use 数据库名 ;
4、删除数据库
drop database [ if exists ] 数据库名 ; //[...]选填(如果不存在就不报错且不执行该语句)
5、创建表
create table 表名(
字段1 字段1类型 [约束] [comment 字段1注释 ],
字段2 字段2类型 [约束] [comment 字段2注释 ],
......
字段n 字段n类型 [约束] [comment 字段n注释 ]
) [ comment 表注释 ] ;
//[...] 中的内容为可选参数; 最后一个字段后面没有逗号
6、修改表名
rename table 表名 to 新表名;
7、给表添加字段
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
8、修改字段数据类型或字段名
alter table 表名 modify 字段名 新数据类型(长度);
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
9、删除字段
alter table 表名 drop 字段名;
10、删除表
drop table [ if exists ] 表名;
11、添加数据(insert)
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, ...);批量添加数据(全部字段)
12、修改数据(update)
update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , .... [where 条件] ;
13、删除数据(delete)
delete from 表名 [where 条件] ;
14、查询数据(select)
语法结构:
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数
select 字段1, 字段2, 字段3 from 表名; //查询多个字段
select * from 表名; //查询所有字段(通配符)
select 字段1 [ as 别名1 ] , 字段2 [ as 别名2 ] from 表名; //设置别名
select distinct 字段列表 from 表名; //去除重复记录
select 字段列表 from 表名 where 条件列表 ; //条件列表:意味着可以有多个条件
select 聚合函数(字段列表) from 表名 ; //(聚合函数会忽略空值,对NULL值不作为统计。 )
聚合函数 | 功能 |
---|---|
count | 统计数量-按照列去统计有多少行数据。 |
max | 最大值-计算指定列的最大值 |
min | 最小值-计算指定列的最小值 |
avg | 平均值-计算指定列的平均值 |
sum | 求和 |
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
排序
select 字段列表
from 表名
[where 条件列表]
[group by 分组字段 ]
order by 字段1 排序方式1 , 字段2 排序方式2 … ; //asc==>升序(默认) dasc==>降序
分页
select 字段列表 from 表名 limit 起始索引, 查询记录数 ;
多表查询
select 字段列表 from 表1 , 表2 where 条件 ... ;//隐式内连接语法
select 字段列表 from 表1 [ inner ] join 表2 on 连接条件 ... ;//显式内连接语法(tableA as 别名1 , tableB as 别名2 )
select 字段列表 from 表1 left [ outer ] join 表2 on 连接条件 ... ;//左外连接语法结构
select 字段列表 from 表1 right [ outer ] join 表2 on 连接条件 ... ;//右外连接语法结构
# 子查询
SELECT * FROM t1 WHERE column1 = ( SELECT column1 FROM t2 ... );