1.查询各位学生的学号、班级、姓名
select 学号,专业班级,姓名
from 学生
2.查询课程的全部信息
select*from 课程
3.查看数据库中有哪些专业班级
selectdistinct 专业班级
from 学生
4.查询学时数大于60的课程信息
select*from 课程
where 学时数>605.查询在1986年出生的学生的学号、姓名、和出生日期
select 学号,姓名,出生日期
from 学生
where 出生日期 like'1986%'6.查询三次作业的成绩都在80分以上的学号、课程号
select 学号,课程号
from 学生作业
where 作业1成绩>80and 作业2成绩>80and 作业3成绩>807.查询姓张的学生的学号、姓名和专业班级
select 学号,姓名,专业班级
from 学生
where 姓名 like'张%'8.查询05级的男生信息
select*from 学生
where 性别='男'and 专业班级 like'%05'9.查询没有成绩的学号和课程号
select 学号,课程号
from 学生作业
where 作业1成绩 isnullor 作业2成绩 isnullor 作业3成绩 isnull10.查询学号为0538的学生的作业1总分
selectSUM(作业1成绩)as 作业1总分
from 学生作业
where 学号='0538'11.查询选修了K001课程的学生人数
selectCOUNT(*)from 课程
where 课程号='K001'12.查询数据库中共有多少个班级
selectdistinctcount(专业班级)from 学生
13.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分
select 学号,AVG(作业1成绩)as 作业1平均分,AVG(作业2成绩)as 作业2平均分,AVG(作业3成绩)as 作业3平均分
from 学生作业
groupby 学号
having(COUNT(*)>=3)14.查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)
内连接查询
select 学生.学号,姓名,课程名
from 学生,课程,学生作业
where 学生.学号 = 学生作业.学号 and 课程.课程号 = 学生作业.课程号
外连接查询
select 学生.学号,姓名,课程名
from 学生
leftjoin 学生作业
on 学生.学号 = 学生作业.学号
leftjoin 课程
on 课程.课程号 = 学生作业.课程号
实验4 数据查询和数据操纵
use 教学
1.使用查询语句完成以下任务(每一个查询都要给出SQL语句,并且列出查询结果)。
(1)查询与“张志国” 同一班级的学生信息(使用连接查询和子查询方式)。
连接查询
select s1.学号, s1.姓名, s1.性别, s1.专业班级, s1.出生日期, s1.联系电话
from 学生 as s1, 学生 as s2
where s1.专业班级 = s2.专业班级 and s2.姓名 ='张志国'
子查询
select*from 学生
where 专业班级 =(select 专业班级
from 学生
where 姓名 ='张志国')(2)查询比“计算机应用基础”学时多的课程信息(使用连接查询和子查询方式)。
连接查询
select c1.课程号, c1.课程名, c1.学分数, c1.学时数, c1.任课教师
from 课程 as c1, 课程 as c2
where c1.学时数 > c2.学时数 and c2.课程名 ='计算机应用基础'
子查询
select*from 课程
where 学时数 >(select 学时数
from 课程
where 课程名 ='计算机应用基础')(3)查询选修课程号为K002的学生的学号、姓名(使用连接查询、普通子查询、相关子查询、使用exists关键字的相关子查询)。
连接查询:
SELECT 学生.学号, 学生.姓名
FROM 学生
INNERJOIN 学生作业
ON 学生.学号 = 学生作业.学号 and 学生作业.课程号 ='K002'
普通子查询:
selectdistinct 学生.学号, 学生.姓名
from 学生
where 学生.学号 in(select 学号
from 学生作业
where 课程号 ='K002')
相关子查询
selectdistinct 学生.学号, 学生.姓名
from 学生
where'K002'in(select 课程号
from 学生作业
where 学生.学号 = 学号 )
使用exists关键字的相关子查询
selectdistinct 学生.学号, 学生.姓名
from 学生
whereexists(select*from 学生作业
where 学生.学号 = 学号 and 课程号 ='K002')(4)查询没有选修K001和M001课程的同学的学号、课程号和三次成绩(使用子查询)。
select 学号, 课程号, 作业1成绩, 作业2成绩, 作业3成绩
from 学生作业
where 课程号 notin('K001','M001')2. 使用数据操纵完成以下任务(每一个任务都要给出SQL语句,并且列出查询结果)。
(1)在学生表中添加一条学生记录,其中,学号为0593, 姓名为张乐,性别为男,专业班级为电子05。
insertinto 学生( 学号, 姓名, 性别, 专业班级 )values('0593','张乐','男','电子05')select*from 学生
where 姓名='张乐'(2)将所有课程的学分数变为原来的两倍。
select 学分数
from 课程
update 课程
set 学分数 =2* 学分数
select 学分数
from 课程
(2)删除张乐的信息
select 姓名
from 学生
deletefrom 学生
where 姓名 ='张乐'select 姓名
from 学生