表数据的CRUD

*C(create增加数据) Insert语句

新建Employee表并表中添加一些记录

create table employee(

id int,

name varchar(20),

sex bit,

birthday date,

salary double,

entry_date date,

resume text

);

insert into employee(name,id,sex,birthday,salary,entry_date,resume) values('张三',1,1,'1983-09-21',15000,'2012-06-24','一个大牛');

insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(2,'李四',1,'1984-09-21',10000,'2012-07-24','一个中牛');

insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(3,'王五',0,'1985-09-21',7000,'2012-08-24','一个小牛');

*U(update更新数据) Update语句

将所有员工薪水都增加500元。

update employee set salary=salary+500;

将王五的员工薪水修改为10000元,resume改为也是一个中牛

update employee set salary=10000,resume='也是一个中牛' where name='王五';

*D(drop删除数据) Delete语句

删除表中姓名为王五的记录。

delete from employee where name='王五';

删除表中所有记录。

delete from employee; --可以有条件,但删除所有记录差了一点

使用truncate删除表中记录。

truncate employee;--无条件 效率高

*R(Retrieve查找数据) Select语句

准备环境:

create table student(

id int,

name varchar(20),

chinese int,

english int,

math int

);


insert into student(id,name,chinese,english,math) values(1,'何东',80,85,90);

insert into student(id,name,chinese,english,math) values(2,'权筝',90,95,95);

insert into student(id,name,chinese,english,math) values(3,'何南',80,96,96);

insert into student(id,name,chinese,english,math) values(4,'叶坦',81,97,85);

insert into student(id,name,chinese,english,math) values(5,'何西',85,84,90);

insert into student(id,name,chinese,english,math) values(6,'丁香',92,85,87);

insert into student(id,name,chinese,english,math) values(7,'何北',75,81,80);

insert into student(id,name,chinese,english,math) values(8,'唐娇',77,80,79);

insert into student(id,name,chinese,english,math) values(9,'任知了',95,85,85);

insert into student(id,name,chinese,english,math) values(10,'王越',94,85,84);


查询表中所有学生的信息。

select * from student;

查询表中所有学生的姓名和对应的英语成绩。

select name,english from student;

过滤表中重复数据。

select english from student;

select DISTINCT english from student;

select DISTINCT english,name from student;


select english+chinese+math from student;

select english+chinese+math as 总分 from student;

select name,english+chinese+math as 总分 from student;


在所有学生英语分数上加10分特长分。

select name,english+10 from student;

统计每个学生的总分。

select english+chinese+math from student;

使用别名表示学生分数

select name,english+chinese+math as 总分 from student;

select name,english+chinese+math 总分 from student;


查询姓名为何东的学生成绩

select * from student where name='何东';

查询英语成绩大于90分的同学

select * from student where english>90;

查询总分大于250分的所有同学

select * from student where english+chinese+math>250;


查询英语分数在 85-95之间的同学。

select * from student where english>=85 and english<=95;

select * from student where english between 85 and 95;

查询数学分数为84,90,91的同学。

select * from student where math=84 or math=90 or math=91;

select * from student where math in(84,90,91);

查询所有姓何的学生成绩。

select * from student where name like '何%';

查询数学分>85,语文分>90的同学。

select * from student where math>85 and chinese>90;


对数学成绩排序后输出。

select * from student order by math;

对总分排序后输出,然后再按从高到低的顺序输出

select * from student order by math+chinese+english desc;

对姓何的学生成绩排序输出

select * from student where name like '何%' order by math+chinese+english desc;

select name, math+chinese+english from student where name like '何%' order by math+chinese+english desc;


统计一个班级共有多少学生?

select count(*) from student;

统计数学成绩大于90的学生有多少个?

select count(*) from student where math>90;

统计总分大于250的人数有多少?

select count(*) from student where math+chinese+english>250;


统计一个班级数学总成绩?

select sum(math) from student;

统计一个班级语文、英语、数学各科的总成绩

select sum(math), sum(chinese), sum(english) from student;

统计一个班级语文、英语、数学的成绩总和

select sum(math+chinese+english)from student;

select sum(math)+sum(chinese)+sum(english) from student;


求一个班级数学平均分?

select avg(math) from student;

求一个班级总分平均分

select avg(math+chinese+english)from student;

select avg(math)+avg(chinese)+avg(english) from student;


求班级最高分和最低分

select max(math+chinese+english),min(math+chinese+english) from student;

查出各个班的总分,最高分

准备环境

给表添加一个字段:alter table student add column class_id int;

更新表:

update student set class_id=1 where id<=5;

update student set class_id=2 where id>5;

select sum(math+chinese+english),max(math+chinese+english) from student group by class_id;


查询出班级总分大于1300分的班级ID

select class_id from student group by class_id having sum(math+chinese+english)>1300;