前言
- CRUD : Create, Retrieve,Update,Delete
- 新增数据
- 查询数据
- 修改数据
- 删除数据
一、新增数据
首先我们创建一张学生表,为后续的新增数据做准备。
create table student( id int, //身份证号 sn int, //学号 name varchar(20), //姓名 qq_mail varchar(20)); //QQ邮箱
1.1 单行数据-全列插入
1.1.1 语法
insert into 表名 values (值,值,值...);//单行全列插入
1.1.2 案例代码
插入两条记录, value_list 数量必须和定义表的列的数量及顺序一致。
insert into student values (100,10000,'唐三藏',null); insert into student values (101,10001,'孙悟空','1111');
1.2 单行数据-指定列插入
1.2.1 语法
insert into 表名 (列名,列名...) values (值,值,值...);//单行指定列插入
1.2.2 案例代码
-- 插入一条记录,value_list 数量必须和指定列数量及顺序一致
insert into student (id,name) values (102,'猪悟能');
1.3 多行数据-指定列插入
1.3.1 语法
insert into 表名 (列名,列名...) values (值,值...),(值,值...);//多行全列插入
1.3.2 案例代码
-- 插入一条记录,value_list 数量必须和指定列数量及顺序一致
insert into student (id,name) values (102,'猪悟能');
1.4 多行数据-全列插入
1.4 语法
insert into 表名 (列名,列名...) values (值,值...),(值,值...);//多行全列插入
1.4.2 案例代码
-- 插入两条记录, value_list 数量必须和指定列数量及顺序一致
insert into student (id,sn,name) values -> (103,20002,'曹孟德'), -> (104,20003,'孙仲谋');
二、查询
创建考试成绩表如下:
create table exam_result ( id int, name varchar(20), chinese decimal(3,1), math decimal(3,1), english decimal(3,1));
插入测试数据
insert into exam_result (id,name,chinese,math,english) values (1,'唐三藏',67,98,56), (2,'孙悟空',87.5,78,77), (3,'猪悟能',88,98.5,90), (4,'曹孟德',82,84,67), (5,'刘玄德',55.5,85,45), (6,'孙权',70,73,78.5), (7,'宋公明',75,65,30);
2.1 全列查询
2.1.1 语法
select * from 表名;
2.1.2 案例代码
查询考试成绩表的学生信息
select * from exam_result;
2.2 指定列查询
2.2.1 语法
select 列名,列名... from 表名
2.2.2 案例代码
指定列的顺序不需要按定义表的顺序来,查询学生的姓名,id以及英语成绩
select name,id,english from exam_result;
2.3 查询字段为表达式
查询学生的英语成绩加10分后的学生id和姓名
select id,name, english+10 from exam_result;
三、排序 ORDER BY
3.1 语法
select 列名,列名... from 表名 order by 列名 排序方式; //排序方式默认为升序ASC //降序为DESC
3.2 案例代码
查询学生的英语成绩排名以及学生姓名
select name, english from exam_result order by english;
注意事项:
没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
也可以对多个字段进行排序,例如:
查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
select name,math,english,chinese from exam_result order by math desc, english, chinese;