SQL数据库学习之路(四)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 要求:通过SQL语句创建以下基本表:   教师关系 T(T#, TNAME,TITLE)   课程关系 C(C#,CNAME,T#)   学生关系 S(S#,SNAME,AGE,SEX)   选课关系SC(S#,C#,SCORE)   班级关系CLASS(CLASSID,CLASSNAME)   其中红色粗体为主键,带下划线的属性为外键。

要求:通过SQL语句创建以下基本表:

   教师关系 T(T#, TNAME,TITLE)

   课程关系 C(C#,CNAME,T#)

   学生关系 S(S#,SNAME,AGE,SEX)

   选课关系SC(S#,C#,SCORE)

   班级关系CLASS(CLASSID,CLASSNAME)

   其中红色粗体为主键,带下划线的属性为外键。

   通过SQL语句在CLASS表的CLASSID列上创建聚集索引IDX_CLASSID

   通过SQL语句创建在S#C#两个列上创建索引IDX_S#_C#,并指定索引按S#降序,C#升序有序。

   通过SQL语句实现以下操作:

   撤销索引IDX_CLASSID及IDX_S#_C#

   在学生关系中增加班级号属性列CLASSID

   撤销学生关系中的班级号属性列CLASSID

   撤销班级关系CLASS

方法:

1.打开SQL Server Mangement Studio, 连接到本地数据库。在对象资源管理 器中,点击数据库,然后选择新建查询。输入创建数据库的代码,点击执行,在消息窗口出现命令已成功完成。在存放的文件夹中产生mdf主数据文件和ldf日志文件。在对象资源管理器中右键数据库,选择刷新,将会出现work数据库。

create database work

on primary(

name='work',  --主数据文件的逻辑名称

filename='F:\SQL\work1\work.mdf',   --主数据文件的物理名称

size=10mb, --主数据文件的初始大小

filegrowth=10mb --主数据文件的增长率

)

log on(

name='work_log',  --日志文件的逻辑名称

filename='F:\SQL\work1\work_log.ldf',    --日志文件的物理名称

size=5mb, --日志文件的初始大小

filegrowth=10% --日志文件的增长率

)

 

 

 

 

 

 

 

 

2.输入创建各个表的代码,选择这些代码点击执行,刷新work数据库,会出现创建的表。

create table T    --创建表教师关系T

(T# char(4) not null,        

 TNAME char(8) not null,

 TITLE char(10),

 PRIMARY KEY(T#) --设置主键为T#

);

create table C   --创建表课程关系T

(C# char(4),

 CNAME char(10) not null,

 T# char(4),

 PRIMARY KEY(C#),   --设置主键为C#

 FOREIGN KEY(T#)REFERENCES T(T#) --设置外键为T#

);

 

create table S --创建表学生关系S

(S# char(4) not null,

 SNAME char(8) not null,

 AEG char(1),

 PRIMARY KEY(S#) --设置主键为S#

);

create table SC --创建表选课关系SC

(S# char(4),

 C# char(4),

 SCORE SMALLINT,

 PRIMARY KEY(S#,C#),  --设置主键为S#,C#

 FOREIGN KEY(S#)REFERENCES S(S#), ----设置外键为S#

 FOREIGN KEY(C#)REFERENCES C(C#)  ----设置外键为C#

);

create table class  --创建表班级关系class

(

CLASSID char(4),

CLASSNAME char(8)

);

 

 

 

 

 

 

 

 

 

3.输入代码,右键class表,点击设计。出现表class,然后右键CLASSID,选择索引。SC表统一操作。

create unique index IDX_CLASSID on class(CLASSID);  --在CLASS表的CLASSID列上创建聚集索引IDX_CLASSID

create unique index IDX_S#_C# on SC(S# DESC,C# ASC);--创建在S#和C#两个列上创建索引IDX_S#_C#,并指定索引按S#降序,C#升序有序

 

 

 

 

 

 

 

 

 

 

 

 

 

4.撤销索引IDX_CLASSID及IDX_S#_C#。代码为:

DROP INDEX IDX_CLASSID on class; --撤销索引IDX_CLASSID

DROP INDEX IDX_S#_C# on SC; --撤销索引IDX_S#_C#

在学生关系中增加班级号属性列CLASSID。代码为:

alter table S add CLASSID char(4); --在学生关系中增加班级号属性列CLASSID

撤销学生关系中的班级号属性列CLASSID,代码为:

alter table S drop column CLASSID;   --撤销学生关系中的班级号属性列CLASSID

撤销班级关系CLASS,代码为:

drop table class ; --撤销班级关系CLASS

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
9天前
|
SQL DataWorks 关系型数据库
DataWorks产品使用合集之数据集成时源头提供数据库自定义函数调用返回数据,数据源端是否可以写自定义SQL实现
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5天前
|
SQL 存储 数据库
性能分析工具如Sql explain、show profile和mysqlsla在数据库性能优化中有什么作用
性能分析工具如Sql explain、show profile和mysqlsla在数据库性能优化中有什么作用
|
12天前
|
SQL Oracle 关系型数据库
|
11天前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
45 3
|
16天前
|
SQL 监控 安全
数据库安全:SQL注入防御实践
【7月更文挑战第11天】SQL注入攻击作为一种常见的网络攻击手段,对数据库的安全性和业务稳定构成了严重威胁。为了有效防御SQL注入攻击,开发者和数据库管理员应采取一系列实践措施,包括输入验证与过滤、使用参数化查询、限制数据库用户权限、使用Web应用程序防火墙、定期更新和打补丁、实施实时监控和审计以及使用HTTPS协议等。通过这些措施的实施,可以显著提升数据库的安全性,降低遭受SQL注入攻击的风险。同时,开发者和数据库管理员应持续关注新的安全威胁和防御技术,不断提升自身的安全防护能力。
|
17天前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
|
22天前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
147 1
|
22天前
|
SQL 存储 关系型数据库
关系型数据库PostgreSQL学习
【7月更文挑战第4天】
423 2
|
22天前
|
SQL 存储 关系型数据库
关系型数据库SQL Server学习
【7月更文挑战第4天】
26 2
|
16天前
|
SQL Java 关系型数据库
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
27 0