CREATETABLE student(
id INT(10)PRIMARYKEYAUTO_INCREMENT,
name VARCHAR(20)NOTNULL,
sex VARCHAR(4),
birth YEAR,
department VARCHAR(20)NOTNULL,
address VARCHAR(50));CREATETABLE score(
id INT(10)PRIMARYKEYAUTO_INCREMENT,
stu_id INT(10)NOTNULL,
c_name VARCHAR(20),
grade INT(10));
select*from student;-- 查询student表的第2条到4条记录SELECT*from student LIMIT1,3;SELECT*from student LIMIT0,2;-- 4从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息SELECT id AS'学号',name as'姓名', department as'院系'FROM student;-- 5从student表中查询计算机系和英语系的学生的信息(用 IN 关键字)SELECT*from student where department IN('计算机系','英语系');-- 6从student表中查询年龄28~32岁的学生信息(用 BETWEEN AND)SELECT*from student whereYEAR(NOW())-birth BETWEEN28and32;-- 7、从student表中查询每个院系有多少人SELECT department as'部门',count(*)as'该院人数'from student GROUPBY department;-- 8、从score表中查询每个科目的最高分SELECT c_name as'科目',MAX(grade)AS'最高分'from score GROUPBY c_name;-- 9、查询李四的考试科目(c_name)和考试成绩(grade)SELECT s.name AS'姓名',c.c_name AS'课程名称',c.grade AS'课程分数'FROM score AS c LEFTJOIN student AS s ON c.stu_id = s.id
WHERE s.name ='李四';-- 10用连接的方式查询所有学生的信息和考试信息SELECT*from score as c LEFTJOIN student as s ON c.stu_id = s.id;-- 11、计算每个学生的总成绩SELECT s.name as'姓名',SUM(c.grade)as'总成绩'FROM score as c
LEFTJOIN student as s ON c.stu_id = s.id GROUPBY s.name;-- 12、计算每个考试科目的平均成绩select c_name as'课程名称',AVG(grade)as'平均成绩'FROM score GROUPBY c_name;-- 13、查询计算机成绩低于95的学生信息select*FROM student where id IN(SELECT stu_id from score WHERE c_name ='计算机'AND grade <95);SELECT s.*from score as c LEFTJOIN student as s on c.stu_id =s.id
where c.c_name ='计算机'and c.grade <95;-- 14、查询同时参加计算机和英语考试的学生的信息SELECT*FROM student WHERE id IN(select stu_id from score WHERE c_name ='计算机'or c_name='英语'GROUPBY stu_id
HAVINGcount(*)=2);-- 15、将计算机考试成绩按从高到低进行排序 SELECT grade AS'计算机考试成绩'FROM score WHERE c_name ='计算机'ORDERBY grade DESC;-- 16、从student表和score表中查询出学生的学号,然后合并查询结果SELECT id as'学号'from student
UNIONSELECTDISTINCT stu_id as'学号'from score;-- 17、查询姓张或者姓王的同学的姓名、院系和考试科目及成绩SELECT s.name AS'姓名',s.department AS'院系',c.c_name AS'考试科目',c.grade AS'成绩'FROM score AS c LEFTJOIN student AS s ON c.stu_id = s.id
WHERE s.name LIKE'张%'OR s.name LIKE'王%';-- 18、查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩SELECT s.name AS'姓名',YEAR(NOW())-s.birth AS'年龄',s.department AS'院系',c.c_name AS'考试科目',c.grade AS'成绩'FROM score AS c LEFTJOIN student AS s ON c.stu_id = s.id
WHERE s.address LIKE'湖南%';