# 学生表 CREATE TABLE s( sno INT ,--学号 sname VARCHAR(20), -- 姓名 age INT , -- 年龄 sex VARCHAR(10), -- 性别 sdept VARCHAR(20) -- 院系 ); INSERT INTO s(sno,sname,age,sex,sdept) VALUE (1,'张三',10,'男','cs'), (2,'李四',20,'男','ci'), (3,'王五',10,'女','cs'), (4,'刘六',20,'男','math') # 学习关系表 CREATE TABLE sc( sno INT,--学号 cno INT, -- 课程号 grade VARCHAR(20) -- 年级 ); INSERT INTO sc(sno,cno,grade) VALUE (1,1,'一年级'), (2,3,'二年级'), (4,2,'五年级'), (3,3,'六年级') # 课程关系表 CREATE TABLE c( cno INT, CNAME VARCHAR(20), -- 课程名称 cdept VARCHAR(10), -- tname VARCHAR(10) -- ) INSERT INTO c(cno,CNAME,cdept,tname) VALUE (1,'math','课程1','2021-11-22'), (2,'chinese','课程2','2011-11-22'), (4,'English','课程3','2001-11-22'), (3,'English','课程3','2001-11-22')
首先创建学生表s,学习关系表sc,课程关系表c
1、查询年龄20岁以上的女性姓名,
select sname from s where age>=20 and sex='女';
2、查询课程号是1或者3 的学生学号
select sno from sc where cno=1 or cno=3;
3、查询一年级,二年级,五年级学生的学号
select sno from sc where grade in ('一年级','二年级','五年级');
4、查询学习cs的学生姓名
select sname from s where sdept='cs';
5、查询年龄大于等于20 的学生姓名
select sname from s where age>=20;
6、查询年龄小于等于10的学生姓名
select sname from s where age<=10;
7、查询年龄在10到15之间的学生姓名
select sname from s where age between 10 and 15;
select * from s where sdept like ('c%');
9、查询以m开头的所有字段
select * from s where sdept rlike '^m';
select * from s where sdept rlike 's$';
14、select sum(age) from s; s表中的年龄总和
15、select distinct * from s; 去除s表中重复课程
16、select * from s where age order by age; 以年龄排序
select * from s where age order by age desc;
17、select sex,avg(age)from s group by sex; 按性别取平均年龄
select sex,avg(age)from s group by sex having avg(age)>10 order by avg(age) desc ; 按性别取平均年龄并把年龄大于10的倒序排列