SQL数据库学习之路(四)

简介: 要求:通过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日志并进行多维度分析。
目录
相关文章
|
1天前
|
SQL 存储 安全
SQL入门与进阶:数据库查询与管理的实用指南
一、引言 在数字化时代,数据库已经成为各行各业存储、管理和分析数据的关键基础设施
|
2天前
|
SQL 安全 数据库
SQL实践指南:从基础到进阶的数据库查询与管理
一、引言 在数据驱动的时代,数据库已成为各行各业不可或缺的一部分
|
2天前
|
SQL 安全 数据库
掌握SQL:数据库操作与查询的精髓
一、引言 在数据驱动的时代,数据库是任何组织或项目不可或缺的一部分
|
2天前
|
SQL 存储 数据库
掌握SQL:数据库查询与管理的关键技能
一、引言 在信息化快速发展的今天,数据库已成为存储、处理和查询数据的重要工具
|
2天前
|
SQL 存储 安全
深入SQL:掌握数据库操作与查询的艺术
一、引言 在信息化高度发展的今天,数据库已成为企业、组织甚至个人管理数据的核心工具
|
2天前
|
SQL 存储 数据库
深入理解SQL:从基础查询到高级数据库管理
一、引言 SQL(结构化查询语言)是数据库管理系统的核心语言,用于存储、检索、更新和管理关系数据库中的数据
|
2天前
|
SQL 存储 监控
精通SQL:数据库查询与管理的全面指南
一、引言 在当今的数据驱动世界中,[数据库](https://www.iyxwzx.com/)技术无处不在,而SQL(结构化查询语言)则是数据库操作的基础
|
2天前
|
SQL 安全 数据库
精通SQL:数据库查询与管理的实战指南
一、引言 在当今数字化时代,[数据库](https://www.iyxwzx.com/)已成为企业、组织和个人不可或缺的数据[管理](https://www.iyxwzx.com/news/)工具
|
3天前
|
SQL 缓存 监控
sql anywhere 数据库优化
SQL Anywhere数据库优化涉及索引、查询、配置、硬件、维护和应用程序多方面。关键策略包括:确保索引有效且定期优化,使用EXPLAIN计划优化查询,调整数据库缓存设置,升级硬件,定期备份,优化SQL语句并减少数据库访问。实时监控性能并据此调优,但需依据具体应用场景和版本进行适配测试。
|
4天前
|
SQL Oracle 关系型数据库
若干SQL创建数据库实例
在SQL中创建数据库,各系统方法各异。MySQL和SQL Server使用`CREATE DATABASE`语句,如`CREATE DATABASE mydb;`。Oracle通常借助DBCA,但也可用复杂SQL命令,而PostgreSQL同样使用`CREATE DATABASE`。SQLite在首次连接到不存在的数据库文件时会自动创建。注意各系统中的选项如大小、编码、权限等。