数据库学习-2

关于学习数据库相关笔记

表的关联

库:Stuguanli

Student(stuid,stuname…) Course(couid,couname,xueqi,keshi,xuefen…) Score(stuid,couid,grade)

新表建立

把student的姓名、学号、性别、年龄、学院和专业’建立一个新表

1
select stuid,stuname,xingbie,age,xueyuan,zhuanye into stud1 from student;

将查询 信息工程学院的学生的学号、姓名、性别、年龄、学院和专业’建立一个新表

1
select stuid,stuname,xingbie,age,xueyuan,zhuanye into stu-xinxi from student where xueyuan='信息工程学院';

将 艺术学院学号为2022005的学生的的姓名、学号、性别、年龄、学院和专业转到stu_xinxi3,不是新建

1
insert into stu_xinxi3 select * from student where xueyuan='艺术学院' and stuid='2022005';

表达式和特殊命令的使用(top、like、distinct)

查询 学号为2022001的学生的学号、姓名、性别、出生日期、学院和专业

1
select stuid,stuname,xingbie,bir=2022-age,xueyuan from student where stuid ='2022001'

查询前三行学生信息

1
    select top 3 * from student;

查询 姓名钟含有三的学生信息

1
    select * from student where stuname like '%三%';

查询 选修了课程的学生学号

1
select distinct stuid from sc where cid is not null;

查询学生信息,将查询结果 按照年龄降序排列

1
select * from student order by age desc;

查询 选修了c004这门课程的学生的最高成绩的学生信息

1
select * from sc where grade=(select max(grade) from sc where cid='c004');

查询 选修了c004这门课程的学生的最高成绩的学生详细信息

1
select * from student where stuid in (select stuid from sc where grade=(select max(grade) from sc where cid='c004'));

查询 选修了c004课程的学生的平均成绩

1
select avg(grade) from sc where cid='c004';

查询 选修了c004课程的学生的最高成绩

1
    select max(grade) from sc where cid='c004';

查询 选修了c004课程的学生的最低成绩

1
    select min(grade) from sc where cid='c004';

查询 选修了c004课程的学生的总成绩

1
    select sum(grade) from sc where cid='c004';

查询 选修了c002课程的学生的总成绩、平均成绩、最高成绩和最低成绩

1
select sum(grade),avg(grade),max(grade),min(grade) from sc where cid='c002';

按照学号分组,查询每名学生 所选课程的平均成绩

1
2
3
4
5
6
7
   select stuid,avg(grade) from sc group by stuid;
   ```

查询平均成绩都在80分以上的学生学号和平均成绩

```sbuql
select stuid,avg(grade) from sc group by stuid having avg(grade)>80;

查询所有成绩都在70分以上的学生姓名和所在学院

1
select stuname,xueyuan from student where stuid in (select stuid from sc where grade>70);

查询 王磊 选修课程的详细信息

1
select * from course where cid in (select cid from sc where stuid='2022001');

查询 操作系统 课程成绩最高的学生姓名和成绩和所在学院

1
    select stuname,grade,xueyuan from student where stuid in (select stuid from sc where grade=(select max(grade) from sc where cid='c001'));

修改xiebie列为xingbie

1
alter table student change xiebie xingbie varchar(10);

查询没有选修 数据库 课程的学生信息

1
select * from student where stuid not in (select stuid from sc where cid='c003');

查询没有选修李老师课程的学生的年龄

1
select age from student where stuid not in (select stuid from sc where tid='t002');

查询所有课程的选修情况,包括没有被选修的课程

1
select * from course left join sc on course.cid=sc.cid;

查询选修了全部课程的学生信息

1
select * from student where stuid in (select stuid from sc group by stuid having count(*)=3);

查询 学生学号,姓名,学院,选修课程和成绩

1
    select student.stuid,stuname,xueyuan,cname,grade from student,sc,course where student.stuid=sc.stuid and sc.cid=course.cid;

检索至少选修了数据库和高等数学的学生学号 多表

查询选修c001和c002的学生学号,姓名和所在学院

1
select stuid,stuname,xueyuan from student where stuid in (select stuid from sc where cid='c001') and stuid in (select stuid from sc where cid='c002');

检索至少选修了课程号c001和c003的学生姓名

1
select stuname from student where stuid in (select stuid from sc where cid='c001') and stuid in (select stuid from sc where cid='c003');

查询英语成绩比数学成绩好的学生

1
select stuid from sc where cid='c002' and grade>(select grade from sc where cid='c001');
comments powered by Disqus