常用数据库语句【MySQL】
==数据库==
1、创建数据库
create database [IF NOT EXISTS] 数据库名;
2、删除数据库
drop database [IF EXISTS] 数据库名;
3、切换数据库
select database();
4、查询数据库
show databases;
————————————————————————————
==数据表==
1、创建数据表
create table 表名(
字段名1 字段类型1(字段长度) [ 约束 ] [ comment 字段1注释 ], -- 不是 ; 号
字段名2 字段类型2(字段长度) [ 约束 ] [ comment 字段2注释 ],
....
字段名n 字段类型n(字段长度) [ 约束 ] [ comment 字段2注释 ] -- 最后一列后面是没有,的
) [ comment 表注释 ];
2、删除数据表
==删除表==: drop table [ if exists ] 表名
3、修改数据表
==添加字段==: alter table 表名 add 字段名 类型(长度)
==修改字段类型==: alter table 表名 modify 字段名 新数据类型(长度)
==修改字段名和字段类型==: alter table 表名 change 旧字段名 新字段名 类型 (长度)
==删除字段==: alter table 表名 drop column 字段名
==修改表名==: rename table 表名 to 新表名
4、查询数据表
==查询当前数据库所有表==: show tables
==查询表结构==: desc 表名
==查询建表语句==: show create table 表名
————————————————————————————
==数据记录==
1、添加数据
==指定字段添加数据==: 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, ...)
2、删除数据
==删除数据==: delete from 表名 [ where 条件 ]
3、修改数据
==修改数据==: update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , .... [ where 条件 ]
4、查询数据
==查询指定字段==: select 字段1, 字段2, 字段3 from 表名
==查询所有字段==: select * from 表名
==设置别名==: select 字段1 [ as 别名1 ] , 字段2 [ as 别名2 ] from 表名
==去除重复记录==: select distinct 字段列表 from 表名
==条件查询==: select 字段列表 from 表名 `where 条件列表 `
==聚合函数==: 将一列数据作为一个整体,进行纵向计算,语法为: select `聚合函数(字段名)` from 表名
==分组过滤==: select 分组字段,聚合函数() from 表名 `group by 分组字段名` `having 分组后过滤条件`
==排序:== select 字段列表 from 表名 order `by 字段1 排序方式1 , 字段2 排序方式2`
ASC:升序(默认值)DESC:降序
==分页:== select 字段列表 from 表名 `limit 起始索引, 查询记录数`
select 集合函数() from 表 [where 条件] [group by 分组] [having 过滤] [order by 排序] [limit 截取]
1. 普通条件: where
2. 排序: order by 列 asc升序(默认) desc降序
3. 聚合函数: count(列)
4. 分组: group by 列
5. 过滤: having 过滤条件
6. 截取: limit 开始,几个
————————————————————————————
==外键约束==
1、创建表的时候添加
create table 表名(
列名 列类型,
[constraint 约束名: 外键列_fk] foreign key (列名) references 主表(主键)
)
2、创建表之后单独添加
alter table 表名 add [constraint 约束名] foreign key (列名) references 主表(主键)
————————————————————————————
==连接查询==
==交叉连接==:select * from 左表,右表
==内连接==
隐式内连接:select * from 左表,右表 where 连接条件
显示内连接:select * from 左表 [inner] join 右表 on 连接条件
==左外连接==
select * from 左表 left [outer] join 右表 on 连接条件
==右外连接==
select * from 左表 right outer join 右表 on 连接条件
==子查询==
单个值,使用 = > < 等进行条件判断 : SELECT 字段列表 FROM 表 WHERE 字段名 = (子查询);
多个值,使用in、not in进行条件判断 : SELECT 字段列表 FROM 表 WHERE 字段名 in (子查询);
一张表,将此结果声明为临时表来使用 : SELECT * FROM (子查询) AS 表 JOIN 表 ON 条件;