一、新增(Create****)语法:**
1 | INSERT [INTO] table_name |
1、首先创建一个学生表
1 | DROP TABLE IF EXISTS student; |
一、插入数据方式
1.单行数据+全列插入
1 | INSERT INTO student VALUES(1,101,'张三','123@qq.com'); |
2、多行数据 + 指定列插入
1 | insert into student (id,sn,name,qq_mail) values |
二、 查询(Retrieve)
语法:
1 | SELECT |
案列:创建一个考试成绩表
1 | DROP TABLE IF EXISTS exam_result; |
插入测试数据
1 | INSERT INTO exam_result (id,name, chinese, math, english) VALUES |
一、查询方式
1、全列查询
通常情况下不建议使用*全列查询
1、查询的列越多,意味着需要传输的数据量越大;
2、可能会影响到索引的使用。
1 | select * from exam_result; |
2、指定列查询
指定列的顺序不需要按照表中的列顺序来。
1 | select id,name,chinese from exam_result; |
3、查询字段为表达式
– 表达式不包含字段
1 | `SELECT id, name, 10 FROM exam_result;` |
**
– 表达式包含一个字段**
1 | SELECT id, name, english + 10 FROM exam_result; |
– 表达式包含多个字段
1 | SELECT id, name, chinese + math + english FROM exam_result; |
4 、别名
为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:
1 | SELECT column [ AS ] alias_name [...] FROM table_name ; |
这里的总分就是我们定义的别名:
1 | SELECT id, name, chinese + math + english 总分 FROM exam_result; |
5 、去重:DISTINCT
使用 DISTINCT 关键字对某列数据进行去重:
比如我们这里对重复的数学成绩去重:
1 | select distinct math from exam_result; |
6、 排序:****ORDER BY
语法:
1 | -- ASC 为升序(从小到大) |
\1. 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序 。
\2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面。
案例:– 查询同学姓名和 English,按 English 排序显示
升序排列:
1 | SELECT name, English FROM exam_result ORDER BY English; |
降序排列:
1 | SELECT name, English FROM exam_result ORDER BY English desc; |