数据库SQL练习(一):数据查询

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库SQL练习(⼀):数据查询 先创建以下3张基本表
1、学⽣信息表(Student):
2、课程表(Course):
3、成绩表(Score):
4、将下列数据输⼊各个表中
建表SQL:
CREATE DATABASE Studentdb;
//学⽣信息表
CREATE TABLE Student (
Sno char(4) not null PRIMARY KEY,
Sname varchar(8) not null,
Sgender enum ('男','⼥'),
Sbirth date,
Saddr varchar(50),
Sheight decimal(3,2),
Memo text
) character set utf8;
//课程表
CREATE TABLE Course(
Cno char(4) not null,
Cname varchar(50) not null,
Ccredit int
)character set utf8;
//成绩表
CREATE TABLE Score (
Sno char(4) not null,
Cno char(4) not null,
Cscore decimal(3,1)
)character set utf8;
//插⼊学⽣信息表
INSERT INTO Student(Sno,Sname,Sgender,Sbirth,Saddr,Sheight) values
(0001,'刘⼀平','男','1990-10-1','温州市环城西路201号','1.78'),
(0002,'张得民','男','1990-12-2','杭州市下沙路22号','1.65'),
(0003,'马东','男','1990-7-4','宁波市中⼭北道20号','1.71'),
(0004,'肖海燕','⼥','1990-3-15','温州市越秀北路43号','1.65'),
(0005,'张民华','⼥','1991-5-15','宁波市⾉⼭路7号','1.63');
//插⼊课程信息
INSERT INTO Course values
(0001,'计算机基础','2'),
(0002,'管理学原理','3'),
(0003,'数据库技术','3'),
(0004,'项⽬管理','2'),
(0005,'毕业论⽂','10');
//插⼊学⽣成绩信息
INSERT INTO Score values
(0001,0001,80.0),
(0001,0002,90.0),
(0001,0003,70.0),
(0001,0004,85.0),
(0002,0001,78.0),
(0002,0002,NULL),
(0002,0003,77.0),
(0002,0004,67.0),
(0003,0001,66.0),
(0003,0002,76.0),
(0003,0003,NULL),
(0003,0004,73.0);
熟练度练习:
1、使⽤SQL语句修改学⽣信息表(Student)中字段属性如下:姓名 varchar 20 N ALTER table Student MODIFY Sname varchar(20) not null;
2、使⽤SQL语句删除学⽣信息表(Student)中“备注”字段
ALTER table Student drop Memo;
3、查询全体学⽣的详细记录
SELECT * FROM Student;
4、查询学⽣信息表中学⽣的姓名和地址信息
SELECT Sname,Saddr FROM Student;
5、查询学⽣信息表中“刘”姓学⽣的信息
SELECT * FROM Student where Sname LIKE '刘%';
6、查询学⽣信息表中姓名含“民”的学⽣的信息
SELECT * FROM Student where Sname LIKE '%民%';
7、查询所有⾝⾼1.75以上的男学⽣的学号和姓名
SELECT Sno,Sname FROM Student where Sgender='男' and Sheight>1.75;
8、查询所有来⾃“宁波”的学⽣姓名、性别和年龄
SELECT Sname,Sgender,2020-YEAR(Sbirth) as Sage from Student where Saddr LIKE '%宁波%';9、查询没有考试成绩的学⽣学号和课程编号
SELECT Sno,Cno from Score where Cscore is NULL;
10、查询所有参加过考试的学⽣学号
SELECT DISTINCT(Sno) from Score where Cscore is not null;
11、查询所有学分不⼩于3的课程名
SELECT Cname from Course where Ccredit>=3;
12、查询学分在1~5范围内的课程编号和课程名
SELECT Cno,Cname FROM Course where Ccredit BETWEEN 1 AND 5;
//
SELECT Cno,Cname FROM Course where Ccredit >=1 and Ccredit <=5;
13、查询“数据库技术”课程的信息
SELECT * FROM Course where Cname='数据库技术';
14、计算“0003”号课程中所有参加过考试的学⽣平均分
SELECT AVG(Cscore) FROM Score where Cno=0003;
15、查询选修“0002”号课程的学⽣的成绩最⾼分
SELECT MAX(Cscore) FROM Score where Cno=0002;
16、统计参加“0001”号课程考试的学⽣⼈数
SELECT count(*) FROM Score Where Cno=0001;
17、查询每个学⽣及其选修课程的情况(包括没有选修课程的学⽣)
SELECT * FROM Student LEFT OUTER JOIN Score ON (Student.Sno=Score.Sno); #LEFT OUTER JOIN=LEFT JOIN 18、查询每门选修课以及选修该课程的学⽣信息
SELECT ame,Student.* FROM Student,Course where Student.Sno=o;。

相关文档
最新文档