使用查询语句完成以下任务(每一个查询都要给出SQL语句,并且列出查询结果)。
(1)查询与“张志国”同一班级的学生信息(使用连接查询和子查询方式)。
子查询
SELECT *
FROM student
WHERE name!='张志国' and class=(SELECT class
FROM student
WHERE name='张志国'
)
连接查询
SELECT R1.*FROM student AS R1, student AS R2
WHERE R2.name='张志国' AND R1.class = R2.class;
(2)查询比“计算机应用基础”学时多的课程信息(使用连接查询和子查询方式)。
子查询
SELECT *
FROM course
WHERE period_num>(SELECT period_num
FROM course
WHERE name='计算机应用基础'
);
连接查询
SELECT Course1.* FROM course AS Course1,course AS Course2
WHERE Course2.name = '计算机应用基础' AND Course1.period_num>Course2.period_num;
(3)查询选修课程号为K002的学生的学号、姓名(使用连接查询、普通子查询、使用exists关键字的相关子查询)。
连接查询
SELECT student.id,student.name
FROM sc
INNER JOIN student
ON student.id = sc.student_id
INNER JOIN course
ON sc.course_id= course.course_id
WHERE sc.course_id='K002'
普通子查询
select distinct student.id,student.name
from sc,student
where student.id in (
select student.id
from sc
where sc.course_id='K002' and sc.student_id=student.id)
相关子查询
SELECT DISTINCT student.id,student.name
FROM sc,student
WHERE EXISTS(
SELECT *
FROM sc
WHERE sc.course_id ='K002' AND sc.student_id=student.id
);
(4)查询没有选修K001和M001课程的学号、课程号和三次成绩(使用子查询)。
SELECT DISTINCT student_id,course_id,work1_score,work2_score,work3_score FROM sc
WHERE student_id NOT IN
(SELECT student_id FROM sc WHERE course_id='K001' OR course_id='M001');
使用数据操纵完成以下任务(每一个任务都要给出SQL语句,并且列出查询结果)。
(1)在学生表中添加一条学生记录,其中,学号为0593,姓名为张乐,性别为男,专业班级为电子05。
INSERT INTO student VALUES (0593,'张乐','男','电子05','1991-01-01',null);
(2)将所有课程的学分数变为原来的两倍。
UPDATE course SET score = 2*score;
(3)删除张乐的信息。
DELETE FROM student WHERE name = '张乐';