【一句话概括本文】
本文旨在通过mysql实验的方式完成4道建表语句题和2道索引题。
【本文特色】
1.配图。干巴巴的文字没有说服力。一图胜千言。
2.sql型配色。颜色已经蕴含了信息。
3.实验验证。实践是检验整理唯一的标准,而非作者一拍脑门写出的结果。
4.目录。利用目录快速到达你有疑问的题目。
5.系列文章。感谢大家厚爱,2天时间累计更新了3篇sql语句练习系列优质博文
【本文环境】
注意:本文大多数内容不受环境影响,只要与mysql有关即可。
1.服务器:mysql server 8.0
2.客户端:heidisql
【题目】
有以下4个表
1)department 表(院系编号、院系名称),deptNo是主键。
2)student表(学号、姓名、年龄、性别、院系),sno是主键,deptNo是外键。
3)course表(课程号、课程名、先修课、学分、院系编号),cno是主键。
4)SC表(学号、课程号、成绩)选课表,学号和课程号联合做主键。
要求使用SQL语句完成以下题目:
-
创建四个表,包括主码和外码
-
创建索引
- Student表中Sno的索引,升序排列;
- SC表中Cno和GRADE的索引,以课程号升序,成绩降序排列
【解析】
1.创建四个表
1)department 表(院系编号、院系名称),deptNo是主键。
Create table department(
deptNo Smallint primary key,
deptName Varchar(50)
);
运行结果:
2)student表(学号、姓名、年龄、性别、院系),sno是主键,deptNo是外键。
【外键知识链接】看两个例子,仿照着做即可
Create table student(
Sno char(8) primary key,
Sname char(8),
Sage smallint,
Ssex char(2),
deptNo smallint,
Foreign key (deptNo) REFERENCES department(deptNo)
);
运行结果:
注意:字段5左边绿色图标表示外码(使用heidisql客户端可以显示)
3)course表(课程号、课程名、先修课、学分、院系编号),cno是主键。
Create table course(
Cno char(4) ,
Cname varchar(50),
Pno char(4),
Credit int,
Deptno SMALLINT,
primary key(Cno)
);
运行结果:
4)SC表(学号、课程号、成绩)选课表,学号和课程号联合做主键。
Create table sc(
Sno char(8),
Cno char(4),
Grade int,
Primary key(sno,cno)
);
运行结果:
2.创建索引
1)Student表中Sno的索引,升序排列;
2)SC表中Cno和GRADE的索引,以课程号升序,成绩降序排列
#在 Student 表中为 Sno 列创建一个升序排列的索引:
CREATE INDEX idx_student_sno ON Student(Sno ASC);
#在 SC 表中为 Cno 和 GRADE 列创建一个复合索引,其中 Cno 列按升序排列,GRADE 列按降序排列:
CREATE INDEX idx_sc_cno_grade ON SC(Cno ASC, Grade DESC);
运行结果:
感谢您的观看!如您发现任何错误,欢迎在评论区批评指教!
由于笔者学识有限,必然存在疏漏错误,请各位读者海涵!
您的点赞、评论是作者更新的最大动力~动动手指,让全世界有更多好文章吧!
标签:语句,char,索引,SQL,升序,Cno,deptNo,院系 From: https://blog.csdn.net/learn_think/article/details/142883889