简单查询
①求js9901班的学生学号和姓名。
select s_no,s_name from student where class_no = ‘js9901’
②求计算机系的所有班级号和班级名。
select class_no,class_name from class where class_dept = ‘计算机系’
③求选修了课程的学生学号。
select s_no from choice
④求选修了01001课程的学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
select s_no,score from choice order by score desc , s_no
⑤求选修了课程01001且成绩在80至90(包括80和90)分之间的学生学号和成绩,并将成绩乘以0.9系数输出。
select s_no,score,score*0.9 from choice where score between 80 and 90
⑥求讲师或副教授姓王的教师信息。
select * from teacher where t_title =‘讲师’ or ‘副教授’
⑦求缺少成绩的学生学号和课程号。
select s_no,course_no from choice where score is null
⑧求全体学生的姓名和年龄。
select s_name, (year(now())-year(s_birthday)) 年龄 from student
连接查询
①查询每个学生的基本情况及其选修课程情况。
select * from student s left join choice c on s.s_no=c.s_no
②求学生的学号、姓名、选修的课程名及成绩。
select st.s_no,st.s_name,ch.score,co.course_name from student st left join choice ch on (st.s_no=ch.s_no) join course co using(course_no)
③求王蕾同学的学号、姓名、班级名、所学专业及所在系别。
select s_no,s_name,class_no,class_special,class_dept from student left join class using(class_no)
④查询所有教师的教师号、姓名、职称和所授课程名。
select t_no,t_name,t_title,course_name from teacher join teaching using(t_no) left join course using (course_no)
⑤求所有讲师所授课程的课程名称及学分。
select course_name,course_score from teacher join teaching using(t_no) left join course using (course_no)
⑥求选修了两门以上(含两门)课程的学号。
select s_no, count(1) 选课数 from choice group by s_no having 选课数 >=2
⑦求选修了数据库原理及应用课程且成绩在85分以上的学生学号、姓名及成绩。
select student.s_no,s_name,score from student,choice,course where course_name = ‘数据库原理及应用’ and score >=85 and choice.course_no=course.course_no and choice.s_no = student.s_no
⑧用语句Transact-SQL表示学生基本情况表(Student)和选修课程情况表(Choice)之间的左外连接、右外连接和完全外连接。
select * from student left join choice using (s_no)
select * from student right join choice using (s_no)
select * from student full join choice using (s_no)