1、实验目的
理解SQL成熟设计基本规范,熟练运用SQL语言实现数据基本查询,包括单表查询、分组统计查询和连接查询。
2、实验内容及要求
针对数据库设计各种单表查询SQL语句、分组统计查询语句;设计单个表针对自身的连接查询,设计多个表的连接查询。理解和掌握SQL查询语句的特点和作用,按照SQL程序设计规范写出具体的SQL查询语句,并调试通过。
3、实验步骤
利用创建的Student、Course和SC表。用SQL语句完成下面的操作,并调试通过。CREATE TABLE Student(
Sno char(7) PRIMARY KEY,
Sname char(10) NOT NULL,
Ssex char(2),
Sage tinyint,
Sdept char(20),
)
CREATE TABLE Course(
Cno char(6) NOT NULL,
Cname char(20) NOT NULL,
Credit tinyint,
Semester tinyint,
PRIMARY KEY(Cno)
)
CREATE TABLE SC(
Sno char(7) NOT NULL,
Cno char(6) NOT NULL,
Grade smallint,
PRIMARY KEY(Sno,Cno),
FOREIGN KEY(Sno) REFERENCES Student(Sno),
FOREIGN KEY(Cno) REFERENCES Course(Cno)
)
SElECT Sdept ,count(sno) as '学生人数' from STUDENT GROUP BY Sdept
SElECT count(sno) as '选课人数' , MAX(grade) as '最高分' from SC GROUP BY cno;
SELECT student.sno '学号',student.sname '姓名',count(sc.sno) '课程数量',sum(grade) '总成绩'
FROM Sc
JOIN Student ON Student.sno = SC.sno
GROUP BY Sc.Sno, Student.Sname, Student.Sno
ORDER BY count(cno)
SELECT cno as '学号', Cname as '课程名' from course WHERE credit = 4
select sno '学号',sum(grade) '总成绩' from sc
GROUP BY sno
Having sum(grade)>200;
SELECT Student.sname '学号', Sc.cno '课程号',Sc.grade '成绩,
from Student , Sc
WHERE Student.sno = Sc.sno and grade>80
ORDER BY grade desc
4、实验小结
通过本次实验,我充分实践数据库的各种单表查询SQL语句、分组统计查询语句;以及自身的连接查询,多表连接查询。熟练掌握SQL查询语句的特点和作用,按照SQL程序设计规范,创建STUDENT,COURSE,SC三个表,并且自己插入相关的测试数据。完全地根据需求通过SQL查询出对应结果,同时通过dbug和查询资料解决了一些棘手的问题。本次实验让我在平时感到模糊的知识又复习了一遍,并且亲手实践,按照不同的需求,修改不同的数据来测试结果。数据库是现代信息技术中必不可少的一环,本次实验通过创建数据表和修改数据表的操作,又比上次实验增加了排序,最大最小问题,让我了解到了数据库的原理和应用,进一步提高了我的实际操作能力。