首页 > 数据库 >SQL语句练习1—创建表和索引

SQL语句练习1—创建表和索引

时间:2024-10-13 20:21:03浏览次数:16  
标签:语句 char 索引 SQL 升序 Cno deptNo 院系

【一句话概括本文】

本文旨在通过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语句完成以下题目:

  1. 创建四个表,包括主码和外码

  2. 创建索引

  1. Student表中Sno的索引,升序排列;
  2. 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

相关文章

  • MySQL中的数据类型有哪些?如何选择合适的数据类型来优化性能?
    MySQL中的数据类型丰富多样,它们主要分为以下几大类,并且每一类中又包含多种具体的数据类型:整数类型:包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT等,这些类型用于存储整数值,其范围和存储大小各不相同。例如,TINYINT占用1个字节,而BIGINT则占用8个字节。浮点数和定点数类型:FLO......