MySQL基础
基本命令
- 显示所有数据库
show databases; - 创建数据库
create database 数据库名 - 删除数据库
drop database 数据库名
基本语句
创建表
- 语法
CREATE TABLE 表名(属性名 约束条件 [完整性约束条件],
属性名 约束条件 [完整性约束条件],
……
属性名 约束条件 [完整性约束条件],
); - 完整性约束条件
约束条件 | 说明 |
---|---|
PRIMARY KEY | 标识该属性为该表的主键,可以唯一的标识对应的记录 |
FOREIGN KEY | 标识该属性为该表的外键,与某表的主键关联 |
NOT NULL | 标识该属性不能为空 |
UNIQUE | 标识该属性的值是唯一的 |
AUTO_INCREMENT | 标识该属性的值自动增加 |
DEFAULT | 为该属性设置默认值 |
查看表的结构
- 查看基本表结构
describe(desc) 表名; - 查看表详细结构
show create table 表名;
修改表
修改表名
ALTER TABLE 旧表名 RENMAE 新表名;修改字段
ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型- 增加字段
ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件][FIRST|AFTER 属性名2] - 删除字段
ALTER TABLE 表名 DROP 属性名
删除表
DROP TABLE 表名;
表的查询
单表查询###
- 查询所有字段
SELECT 字段1,字段2,字段3…… FROM 表名;
SELECT *FROM 表名; 查询指定字段
SELECT 字段1,字段2,字段3…… FROM 表名;Where条件查询
SELECT 字段1,字段2,字段3…… FROM 表名 WHERE 条件表达式;带IN关键字查询
SELECT 字段1,字段2,字段3……FROM 表名 WHERE 字段 [NOT] IN (元素1,元素2,元素3);带BETWEEN AND的范围查询
SELECT 字段1,字段2,字段3……FROM 表名 WHERE 字段[NOT] BETWEEN 取值1 AND 取值2;带LIKE的模糊查询
SELECT 字段1,字段2,字段3……FROM 表名 WHERE 字段 [NOT] LIKE ‘字符串’;
“%”代表任意字符
“_”代表单个字符空值查询
SELECT 字段1,字段2,字段3……FROM 表名 WHERE 字段 IS[NOT]NULL;带AND的多条件查询
SELECT 字段1,字段2,字段3……FROM 表名 WHERE 条件表达式1 AND 条件表达式2 […AND 条件表达式n]带OR的多条件查询
SELECT 字段1,字段2,字段3……FROM 表名 WHERE 条件表达式1 OR 条件表达式2 […OR 条件表达式n]DISTINCT 去重复查询
SELECT DISTINCT 字段名 FROM 表名;对查询结果排序
SELECT 字段1,字段2……FROM 表名 ORDER BY 属性名 [ASC(升序)|DESC(降序)]GROUP BY分组查询
GROUP BY 属性名 [HAVING 条件表达式][WITH ROLLUP]
单独使用(毫无意义);
与GROUP_CONCAT()函数一起使用;
与聚合函数一起使用;(多数情况)
与HAVING一起使用(限制输出的结果);
与WITH ROLLUP一起使用(最后加入一个总和行)- LIMIT分页查询
SELECT 字段1,字段2……FROM 表名 LIMIT 初始位置,记录数;
使用聚合函数查询###
COUNT()函数
用来统计记录的条数;与GROUP BY关键字一起使用SUN()函数
求和函数;与GROUP BY关键字一起使用AVG()函数
求平均值函数;与GROUP BY关键字一起使用MAX()函数
求最大值函数;与GROUP BY关键字一起使用MIN()函数
求最小值函数;与GROUP BY关键字一起使用
连接查询###
将两个或两个以上的表按照某个条件连接起来,从中选取需要的数据
- 内连接查询
内连接查询是一种常用的连接查询。内连接查询可以查询两个或者两个以上的表 - 外连接查询
外连接查询可以查出一张表的所有信息;
SELECT 属性名列表 FROM 表名1 LEFT|RIGHT JOIN 表名2 ON 表名1.属性名1=表名2.属性名2;
左连接查询
可以查询出“表名1”的所有记录,而“表名2”中,只能查询出匹配记录;
右连接查询
可以查询出“表名2”的所有记录,而“表名1”中,只能查询出匹配记录; - 多条件连接查询
子查询###
- 带IN关键字的子查询
一个查询条件可能落在另一个SELECT语句的查询结果中 - 带比较运算符的子查询
子查询可以使用比较运算符 - 带Exits关键字的子查询
假如子查询查询到记录,则进行外层查询,否者,不执行外层查询。 - 带Any关键字的子查询
Any关键字表示满足其中任一条件 - 带All关键字的子查询
All关键字表示满足所有的条件
合并查询结果###
- UNION
所有的查询结果合并在一起,然后除掉相同的记录 - UNION ALL
所有的查询结果合并在一起,不除掉相同的记录
为表和字段取别名###
- 为表取别名
格式:表名 表的别名 - 为字段取别名
格式:属性名 [As] 别名