一、DML
DML是Data Manipulation Language英文缩写,数据操作语言
包括:
- INSERT ( 添加语句 )
- UPDATE ( 更新语句 )
- DELETE ( 删除语句 )
1、INSERT
语法:INSERT [INTO] 表名 [(列名)] VALUES (值列表); 实例:INSERT INTO goods ( name) VALUES ('饼干');
1.1 插入单行数据
注意:
- 字段名是可选的,如省略依次插入所有字段。
INSERT INTO goods VALUES (8,'肥皂',DEFAULT,'2021-09-02',100); - 插入的数据项,需求符合外键约束。
- 值列表和字段名列表一一对应。
- 具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值。
INSERT INTO goods VALUES (DEFAULT,'肥皂',DEFAULT,'2021-09-02',100);
1.2 插入多行数据
语法:INSERT INTO 新表(字段名列表)VALUES(值列表1),(值列表2),……,(值列表n); 实例:INSERT INTO goods VALUES (DEFAULT,'肥皂',DEFAULT,'2021-09-02',100),(DEFAULT,'方便面 ',DEFAULT,'2021-09-03',200);
经验:为避免表结构发生变化引发的错误,建议插入数据时写明具体字段名。
2、UPDATE
语法:UPDATE 表名 SET 字段1=值1,字段2=值2,…,字段n=值n [WHERE 条件]; 实例:UPDATE goods SET cnt = 500 WHERE id = 10;
注意:
- SET后可选择多个字段,用逗号隔开。
- 勿忘条件限制,以防有效数据的丢失。
3、DELETE
语法:DELETE FROM 表名 [WHERE条件]; 实例:DELETE FROM goods where id = 17;
注意:
- 在主外键关联表,先删除外键表数据,再删除主键表数据。
二、DQL
DQL是Data Query Language英文缩写,数据查询语言。
特点:
- 查询数据库数据,如SELECT语句。
- 数据库语言中最核心、最重要的语句。
- 使用频率最高的语句。
DQL常用查询语句 基本查询、条件查询、多条件查询、模糊查询、分组查询、链接查询、子查询。 DQL包含的应用 AS关键字、运算符、IN关键字、BETWEEN AND关键字、DISTINCT关键字、ORDER BY关键字、LIMIT关键字、NULL关键字、HAVING关键字、聚合函数。
1、SELECT
语法:SELECT 列名 FROM 表名; 实例:SELECT * FROM goods; 或 SELECT nameFROM goods;
经验:查询全部列表用 * 。
功能:
- 给数据列表取名。
SELECT cnt AS '数量' FROM goods; - 给表取名。
- 可把经计算或总结的结果用另外一个新名称来代替。
1.1 单条件查询
条件查询是通过WHERE子句进行检索的查询方式。
语法:SELECT * FROM 表名 WHERE 字段=值; 实例:SELECT * FROM goods WHERE id = 10;
1.2 运算符
它是用来进行列间或者变量之间的比较和数学运算的一种符号
算数运算符 关系运算符 赋值运算符 逻辑运算符
1.3 多条件查询
多条件查询是利用逻辑运算符把多个条件组合起来的条件查询。
语法:SELECT * FROM 表名 WHERE 字段1=值 逻辑运算符 字段2=值; 实例:SELECT * FROM goods WHERE id = 8 AND cnt = 100;
1.4 IN
查询符合括号内条件的数据
语法:SELECT 字段列1,字段2 ,…FROM 表名 WHERE 字段 IN ( 值1,值2,值3…) ; 实例:SELECT * FROM goods WHERE id IN(3,8); // id是3和8的数据
1.5 BETWEEN AND
查询值1和值2区间的数据,并且包含值1和值2。
语法:SELECT 字段列1,字段2 ,…FROM 表名 WHERE 字段 BETWEEN 值1 AND 值2; 实例:SELECT * FROM goods WHERE id BETWEEN 1 AND 10;
1.6 模糊查询
模糊查询是使用 SQL 通配符替代一个或多个字符的条件查询。
通配符
- 一类字符,代替一个或多个真正的字符。
- 与LIKE关键字一起使用。
语法:SELECT * FROM 表名 WHERE 字段 like ‘包含通配符的值’; 实例:SELECT * FROM goods WHERE nameLIKE '%可乐';
1.7 DISTINCT
去掉SELECT查询返回的记录结果中重复的记录, 相同记录只返回一条。
语法:SELECT DISTINCT 字段名1, 字段名2... FROM 表名; 实例:SELECT DISTINCT cnt FROM goods;
1.8 ORDER BY
一组数据按照升序或降序排列。
语法:SELECT <字段名列表> FROM <表名> [WHERE <查询条件>][ORDER BY <排序的列名> [ASC 或 DESC]] 实例: 升序:SELECT * FROM goods ORDER BY id ASC; 降序:SELECT * FROM goods ORDER BY id DESC;
1.9 NULL
特点:
- 区别空字符串’‘
- 只能出现在定义允许为NULL的字段
- 须使用 IS NULL 或 IS NOT NULL 比较操作符去比较
语法:SELECT * FROM comments WHERE cmtAuthor IS NULL; 实例: 字段空:SELECT * FROM goods WHERE cnt is NULL; 字段非空:SELECT * FROM goods WHERE cnt is not NULL;
1.10 聚合函数
聚合函数是可以对一组值进行计算,并返回单个值的函数。
总数 COUNT() 求和 SUM() 平均值 AVG() 最大值 MAX() 最小值 MIN()
语法:SELECT 聚合函数 FROM <表名> 实例:SELECT COUNT(cnt) AS '数量' FROM goods; 经验:可以加 AS 来改名,SELECT 聚合函数 AS 名称 FROM <表名>
|