DDL(操作数据库):
1.查询
SHOW DATABASES;
2.创建
创建数据库
CREATE DATABASE 数据库名称;
创建数据库(判断,如果不存在则创建)
CREATE DATABASE IF NOT EXISTS 数据库名称;
3.删除
删除数据库
DROP DATABASE 数据库名称;
删除数据库(判断,如果存在则删除)
DROP DATABASE IF NOT EXISTS 数据库名称;
4.使用数据库
查看当前使用的数据库
SELECT DATABASE();
使用数据库
USE 数据库名称;
DML(操作数据):
添加数据
1.给指定列添加数据
INSERT INTO 表名 (列名1,列名2,...) VALUES(值1,值2,...);
例如:
INSERT INTO stu ( id, NAME )
VALUES
( 1, '张三' );
2.给全部列添加数据(列名可省略)
INSERT INTO 表名 VALUES(值1,值2,...);
例如:
INSERT INTO stu ( id, NAME, sex, birthday, score, email, tel, STATUS )
VALUES
( 2, '李四', '男', '1999-11-11', '90.11', 'lisi@163.com', '13888888888', 1 );INSERT INTO stu
VALUES
( 2, '李四', '男', '1999-11-11', '90.11', 'lisi@163.com', '13888888888', 1 );
3.批量添加数据(全部列都添加数据时列名可省略)
INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...)...;
INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...)...;
例如:
INSERT INTO stu
VALUES
( 2, '李四', '男', '1999-11-11', '90.11', 'lisi@163.com', '13888888888', 1 ),
( 2, '李四', '男', '1999-11-11', '90.11', 'lisi@163.com', '13888888888', 1 ),
( 2, '李四', '男', '1999-11-11', '90.11', 'lisi@163.com', '13888888888', 1 );
修改数据
1.修改表数据
UPDATE 表名 SET 列名1=值1,列名2=值2,... [WHERE 条件];
注意:修改语句中如果不加任何条件,则将所有数据都修改!
例如:
UPDATE stu set sex='女' where name = '张三';
删除数据
1.删除数据
DELETE FROM 表名 [WHERE 条件];
注意:删除语句中如果不加任何条件,则将所有数据都修改!
例如:
DELETE FROM stu WHERE name = '张三';
DQL(查询数据):
查询语法
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段
HAVING
分组后条件
ORDER BY
排序字段
LIMIT
分页限定
基础查询
1.查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名;-- 查询所有数据
例如:
SELECT
name,
age
FROM
stu;
2.去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
例如:
SELECT DISTINCT
address
FROMstu;
3.起别名
AS:AS 也可以省略
例如:
SELECT
name,
math AS 数学成绩,
english AS 英语成绩
FROM
stu;
条件查询
1.条件查询语法
SELECT 字段列表 FROM 表名 WHERE 条件列表;
例如:
SELECT
*
FROM
stu
WHEREage >= 20 AND age <= 30;
2.条件
符号 | 功能 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
= | 等于 |
<> 或 != | 不等于 |
BETWEEN...AND... | 在某个范围之内(都包含) |
IN(...) | 多选一 |
LIKE 占位符 | 模糊查询 _单一任意字符 %多个任意字符 |
IS NULL | 是NULL |
IS NOT NULL | 不是 NULL |
AND 或 && | 并且 |
OR 或 || | 或者 |
NOT 或 ! | 非,不是 |
排序查询
1.排序查询语法
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] ...;
排序方式:
ASC:升序排列(默认值)
DESC:降序排列
注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序
例如:
SELECT
*
FROM
stu
ORDER BY
math DESC,english ASC;
聚合函数
1.概念:
将一列数据作为一个整体,进行纵向计算。
2.聚合函数分类:
函数名 | 功能 |
count(列名) | 统计数量(一般选用不为null的列) |
max(列名) | 最大值 |
min(列名) | 最小值 |
sum(列名) | 求和 |
avg(列名) | 平均值 |
3.聚合函数语法:
SELECT 聚合函数名(列名) FROM 表;
注意:null值不参与所有聚合函数运算
例如:
SELECT
COUNT(id)
FROM
stu;
分组查询
1.分组查询语法
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
where和having区别:
执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
可判断的条件不一样:where不能对聚合函数进行判断,having可以。
执行顺序:where>聚合函数>having
例如:
SELECT sex, AVG( math ), COUNT( * ) FROM stu WHERE math > 70
GROUP BY
sex
HAVING
COUNT( * ) > 2;
分页查询
1.分页查询语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;
起始索引:从0开始
计算公式:起始索引=(当前页码-1)*每页显示的条数
例如:
SELECT
*
FROM
stu
LIMIT 3,
3;