数据库作业4:

(一)定义模式
【例3.1】为用户WANG定义一个学生-课程模式S-T.
点击“新建查询”
新建数据库SCHOOL:CREATE DATARASE SCHOOL
点击“执行”,在“数据库”点击“刷新”在这里插入图片描述
SCHOOL->安全性->用户 中没有WANG
右键点击“用户”,新建用户,登录名点击“…”点击“浏览”选第一个,“确定”

在这里插入图片描述
SCHOOL->安全性->用户 中有了WANG
切换当前数据库到SCHOOL
创建模式:运行CREATE SCHEMA “S-T” AUTHORIZATION WANG;
“架构”中有了S-T
在这里插入图片描述

【例3.2】CREATE SCHEMA AUTHORIZATION WANG;
该语句没有指定<模式名>,<模式名>隐含为<用户名>WAMG.
在这里插入图片描述
【例3.3】为用户ZHANG创建了一个模式TEST,并且在其中定义一个表TAB1.
1.新建模式接着建表,表属于当前模式
新建模式TEST给WANG,接着建表TAB1,“执行”
SCHOOL->表->TEST.TAB1,表属于TEST模式

在这里插入图片描述

2.SQL server 中,默认用户为 dbo,在没有创建模式的情况下,默认的模式名为dbo,所以表名为dbo.*。
执行下图,刷新表,dbo.TAB1,表属于dbo模式
在这里插入图片描述

3.指明表属于的模式:
执行,刷新,TAST.TAB2
在这里插入图片描述
(二)删除模式
【例3.4】DROP SCHEMA WANG CASCADE; 删除模式ZHANG,同时该模式中定义的表TAB1也被删除。
创建模式ZHANG同时创建表TAB1:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除模式ZHANG:DROP SCHEMA WANG CASCADE;
有语法错误, SQLserver不支持在 DROP SCHEMA使用CASCADE
在这里插入图片描述
先删除该模式下的基本表,再删除模式:
在这里插入图片描述
(三)定义基本表
【例3.5】建立“学生”表Student。学号是主码,姓名取值唯一。 在这里插入图片描述
【例3.6】建立一个“课程”表Course
在这里插入图片描述

【例3.7】建立一个学生选课表SC
在这里插入图片描述
(四)修改基本表
【例3.8】向Student表增加“入学时间”列,其数据类型为日期型
ALTER TABLE Student ADD S_entrance DATE;
不管基本表中原来是否已有数据,新增加的列一律为空值。
在这里插入图片描述
【例3.9】将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。
ALTER TABLE Student ALTER COLUMN Sage INT;
在这里插入图片描述

【例3.10】增加课程名称必须取唯一值的约束条件。
ALTER TABLE Course ADD UNIQUE(Cname);
在这里插入图片描述
(五)删除基本表
【例3.11】删除Student表 DROP TABLE Student CASCADE;
基本表定义被删除,数据被删除
表上建立的索引、视图、触发器等一般也将被删除 。

有语法错误, SQLserver不支持使用CASCADE:
在这里插入图片描述
无法先删除Student:
在这里插入图片描述
应先删除SC:
在这里插入图片描述
在这里插入图片描述

【例3.12】若表上建有视图,使用RESTRICT时表不能删除;使用CASCADE时可以删除表,视图也自动删除。
创建基于Student的视图IS_Student:
CREATE VIEW IS_Student
AS
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept=‘IS’;
DROP TABLE Student RESTRICT;
DBMS提示信息:
–ERROR: cannot drop table Student because other objects depend on it
在这里插入图片描述

发布了5 篇原创文章 · 获赞 5 · 访问量 2813

猜你喜欢

转载自blog.csdn.net/sjkylzy/article/details/104700253