文章目录
- 安装
- MySQL 语法格式
- MySQL数据类型
- 命令
- 操作数据库
- CRUD
- 查询
- 创建表
- 删除表
- 修改表
- 操作数据
- 增
- 改
- 删
- 查
- 基础查询
- 条件查询
- 模糊查询
- 排序查询
- 分组查询
- 分页查询
- 聚合函数
- 约束
- 约束分类
安装
软件安装|macOS下超详细的MySQL安装
MySQL 语法格式
- 每条语句以分号
;结尾,可以占多行 - 不区分大小写,建议关键字大写
MySQL数据类型

命令
操作数据库
-
登录:
mysql -uroot -p,回车再输入密码即可

-
显示完整数据库:
show databases

-
创建数据库:
create database 名字; -
不可以重复创建,可以用判断:
create database if not exists 名字;


-
删除数据库:
drop database 名字,同理,可以加if exists判断

-
使用数据库:
use 数据库名字; -
查看正在使用的数据库:
select database();

-
注释:多行注释
/* 注释 */;单行注释:-- 注释(必须有空格)或#注释

CRUD
查询
- 查询数据表:
show tables。必须先进入数据库,才能查询数据库里面的表(use 数据库名字)

- 查询数据表结构信息:
desc 数据表名

创建表
create table 表名(
字段名1 数据类型1,
字段名2 数据类型2,
字段名3 数据类型3,
字段名4 数据类型4,
... // 最后一行后面没有 ,
);

删除表
drop table 表名,同样可以用if exists避免报错

修改表
- 修改表名:
alter table 表名 rename to 新表名;

- 添加一列:
alter table 表名 add 列名 数据类型;

- 修改某一列数据类型:
alter table 表名 modify 列名 新数据类型

- 修改列名和数据类型:
alter table 表名 change 列名 新列名 新数据类型;

- 删除列:
alter table 表名 drop 列名;

操作数据
- 查询表的所有数据:
select * from 表名;

增
- 向表中指定列插入一行数据:
insert into 表名(列名1, 列名2, ....) values(值1, 值2, ...);

- 向表中所有列添加一行数据,列名可以省略:
insert into 表名 values(...);

- 批量添加

改
- 修改表中某一行数据:
UPDATE 表名 SET 列名1=值1, 列名2=值2,... WHERE 条件;(不加条件的话所有行都会被修改)

删
- 删除某一行数据:
delete from 表名 where 条件;(不加条件,全部删除!)

查
基础查询
- 查询某些列的数据:
select 列名1,列名2,... from 表名;;查询所有列,则可以用通配符*代替列名表

- 去除重复的记录查询:
select distinct 列名1,... from 表名;

- 将列名打上注释显示出来,查询:
select 列名1 as 注释1, ... from 表名;(as可以省略)

条件查询
-
大于符号:
>

-
表示并且关系:
&&或者and

-
表示范围:
between ... and ...

-
相等:
=(注意不是==!) -
不相等:
!=或<>

-
表示或者关系:
||或or或in ()

-
null的比较不可以用=和!=,必须使用is和is not

模糊查询
like 条件
条件包括:
_匹配单个字符%匹配任意个字符

排序查询
select 字段列表 from 表名 order by 排序字段名1 排序方式1, ....
ASC:升序,默认
DESC:降序
如果有多个排序条件,那么会依次按照顺序排序,当前面条件相同时,才会根据后面的条件排序

分组查询
select 字段列表 from 表名 where 分组前条件限定 GROUP BY 分组字段名 having 分组后条件限定

having可以对聚合函数判断,where不可以- 执行顺序:
where>聚合函数>having
分页查询
select 字段列表 from 表名 LIMIT 起始索引, 查询条数

聚合函数
概念:将一列数据作为一个整体,进行纵向计算
聚合函数分类:
count(列名):统计数量,不统计nullmax(列名)min(列名)sum(列名):计算和avg(列名):平均
聚合函数语法:select 聚合函数名 from 表名
约束
- 作用于表中列的数据的规则,用于限制表中加入的数据
- 保证数据的正确性、完整性、有效性
约束分类
NOT NULL:非空约束,保证列中所有数据不是nullUNIQUE:唯一约束,保证列中所有数据不可重复PRIMARY KEY:主键约束,主键是一行数据的唯一标识,要求非空、唯一CHECK:检查约束,保证每一列数据都满足一定条件。MySQL不支持检查约束DEFAULT:默认约束,没有指定值时,采用默认值FOREIGN KEY:外键约束,让两个表的数据之间建立联系,保证数据一致性和完整性
-
建表时添加约束


-
建表之后添加默认约束:
alter table 表名 alter 列名 set default -
删除默认约束:
alter table 表名 alyer 列名 drop default -
外键约束(创建表时添加,得先有主表):
CONSTRAINT 外键名 FOREIGN KEY(从表列表名) REFERENCES 主表名(主表列表名)

-
创建表后添加外键:
alter 从表名 add CONSTRAINT 外键名 FOREIGN KEY(从表列表名)REFERENCE 主表名(主表列表名) -
创建表后删除外键:
alter 从表名 drop 外键名


















