【专栏完结】SQL语句练习1 创建表和索引

【一句话概括本文】

本文旨在通过mysql实验的方式完成4道建表语句题和2道索引题。

【本文特色】

1.配图。干巴巴的文字没有说服力。一图胜千言。

2.sql型配色。颜色已经蕴含了信息。

3.实验验证。实践是检验真理唯一的标准,而非作者一拍脑门写出的结果。

4.目录。利用目录快速到达你有疑问的题目。

5.系列文章。感谢大家厚爱,累计更新了5篇系列博文。主页点击专栏即可快速查看!

【本文环境】

注意:本文大多数内容不受环境影响,只要与mysql有关即可。

1.服务器:mysql server 8.0

2.客户端:heidisql

【心里话】

读者朋友,如果你真的想学会sql,一定要在电脑上自己搞一个sql server+sql客户端(如heidisql、sql workbench)

现在是人工智能时代,数据是信息时代的石油,同样也是人工智能时代非常宝贵的原材料,而数据库就像是一座庞大的油田,储存着这些宝贵的资源。SQL语言就是我们开采和提炼这些石油的工具,它让我们能够与这些财富进行有效沟通、交互。没有数据是无法想象的,正是数据驱动我们从信息时代进入人工智能时代。

我知道学习很难,但是作为人类,你的学习和进步是全世界的骄傲,这是一篇饱含作者四小时心血的文章,看下去,动手实验,一定会有所收获!

【快速链接】系列文章

SQL语句练习1—创建表和索引_建表练习sql-优快云博客

SQL语句练习题2 单表查询-优快云博客

SQL语句练习题3 多表查询-优快云博客

SQL语句练习题4 嵌套查询-优快云博客

211院校数据库sql语句练习系列文章(5)上机心得​-优快云博客

【题目】题目有点长,拜托坚持一下

有以下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);

运行结果:

感谢您的观看!如您发现任何错误,欢迎在评论区批评指教!

由于笔者学识有限,必然存在疏漏错误,请各位读者海涵!

您的点赞、评论是作者更新的最大动力~动动手指,让全世界有更多好文章吧!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值