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

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

时间:2024-10-13 20:21:03浏览次数:10  
标签:语句 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中事务是在引擎层实现的。隔离性和隔离级别事务的四大特性(ACID):原子性、一致性、隔离性、持久性事务隔离级别:读未提交、读已提交、可重复读、串行化当数据库有多个事务同时执行的时候,可能会出现丢失更新、脏读、不可重复......
  • 使用MySQL之检索数据
    检索单个列比如:SELECTprod_nameFROMproducts;输出如下:此时数据没有过滤(过滤将得出结果集的一个子集),也没有排序。检索多个列比如:SELECTprod_id,prod_name,prod_priceFROMproducts;输出如下:从上述输出可以看到,SQL语句一般返回原始的、无格式的数据。数据的格式......
  • 2024-10-13:用go语言,给定一个二进制数组 nums,长度为 n, 目标是让 Alice 通过最少的行动
    2024-10-13:用go语言,给定一个二进制数组nums,长度为n,目标是让Alice通过最少的行动次数从nums中拾取k个1。Alice可以选择任何索引aliceIndex,如果对应的nums[aliceIndex]是1,Alice会拾取一个1并将其设为0。之后,Alice可以选择以下两种行动之一:将一个0变为1(最多执行maxCh......
  • MySQL中的数据类型有哪些?如何选择合适的数据类型来优化性能?
    MySQL中的数据类型丰富多样,它们主要分为以下几大类,并且每一类中又包含多种具体的数据类型:整数类型:包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT等,这些类型用于存储整数值,其范围和存储大小各不相同。例如,TINYINT占用1个字节,而BIGINT则占用8个字节。浮点数和定点数类型:FLO......
  • C++入门基础知识111—【关于C++switch 语句】
     成长路上不孤单......
  • C++入门基础知识110—【关于C++嵌套 if 语句】
     成长路上不孤单......
  • C++入门基础知识110—【关于C++ if...else 语句】
    成长路上不孤单......
  • C++入门基础知识109—【关于C++ if 语句】
    成长路上不孤单......
  • DAY3 MySQL学习笔记
    DAY3MySQL学习笔记DDL-表操作-数据类型MySQL中数据类型主要分为三类:数值型、字符串型、日期时间类型数值类型分类类型大小有符号(SIGNED)范围无符号(UNSIGNED)范围描述TINTING1byte(-128,127)(0,255)小整数值SMALLINT2bytes(-32768,32767)(0,65536)大整数值MEDIUMINT3bytes......
  • Windows环境下手动安装MySQL
    下载MySQL安装包:前往MySQL官网下载适合你系统的安装包,例如mysql-installer-web-community.0.8.5.msi。手动运行安装程序:双击下载的安装包,启动安装向导。按照向导的提示完成安装过程。检查安装路径:安装完成后,检查MySQL的安装路径,例如C:\ProgramFiles\MySQL\MySQL......