数据库-表的增删查改
新增(Create)
-
单行数据全列插入
-- 插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致 INSERT INTO student VALUES (100, 10000, 唐三藏, NULL); INSERT INTO student VALUES (101, 10001, 孙悟空, 11111);
-
多行数据 指定列插入
-- 插入两条记录,value_list 数量必须和指定列数量及顺序一致 INSERT INTO student (id, sn, name) VALUES (102, 20001, 曹孟德), (103, 20002, 孙仲谋);
查询
-
全列查询
-- 通常情况下不建议使用 * 进行全列查询 -- 1. 查询的列越多,意味着需要传输的数据量越大; -- 2. 可能会影响到索引的使用。(索引待后面课程讲解) SELECT * FROM exam_result;
-
指定列查询
-- 指定列的顺序不需要按定义表的顺序来 SELECT id, name, english FROM exam_result;
-
DISTINCT 去重
- 去重结果 SELECT DISTINCT math FROM exam_result; +--------+ | math | +--------+ | 98 | | 78 | | 84 | | 85 | | 73 | | 65 | +--------+ 6 rows in set (0.00 sec)
-
排序ORDER BY
-
条件查询 WHERE 1.BETWEEN DNA
- IN
- LIKE 4.LIMIT 分页查询
SELECT name, english FROM exam_result WHERE english < 60; SELECT * FROM exam_result WHERE chinese > 80 and english > 80; SELECT name, chinese FROM exam_result WHERE chinese BETWEEN 80 AND 90; -- 查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩 SELECT name, math FROM exam_result WHERE math IN (58, 59, 98, 99); - _ 匹配严格的一个任意字符 SELECT name FROM exam_result WHERE name LIKE 孙_;
分页查询
-- 从 0 开始,筛选 n 条结果 SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n; -- 从 s 开始,筛选 n 条结果 SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
修改(UPDATE)
-- 将孙悟空同学的数学成绩变更为 80 分 UPDATE exam_result SET math = 80 WHERE name = 孙悟空;
删除(DELETE)
-- 删除孙悟空同学的考试成绩 DELETE FROM exam_result WHERE name = 孙悟空;