文章目录
- 安装
- 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(列名)
:统计数量,不统计null
max(列名)
min(列名)
sum(列名)
:计算和avg(列名)
:平均
聚合函数语法:select 聚合函数名 from 表名
约束
- 作用于表中列的数据的规则,用于限制表中加入的数据
- 保证数据的正确性、完整性、有效性
约束分类
NOT NULL
:非空约束,保证列中所有数据不是null
UNIQUE
:唯一约束,保证列中所有数据不可重复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 外键名