SQL语句的初步学习
首先,新建一个名为“wang”的新用户,路径如下
刷新后可以在用户下看到“wang”
例3.1
为用户wang定义一个学生-课程模式S-T
刷新后,可在架构下找到
例3.2 CREATE SCHEMA AUTHORIZATION wang;
该语句没有指定<模式名>,<模式名>隐含为<用户名>
(SQL server 中,默认用户为 dbo,在没有创建模式的情况下,默认的模
式名为dbo,所以表名为dbo.*。 )
例3.3 为用户wang创建了一个模式TEST,并且在其中定义一个表TAB1:
例3.4 DROP SCHEMA WANG CASCADE;
CASCADE(级联) RESTRICT(限制)
删除模式wang,同时该模式中定义的表TAB1也被删除
这个过程中发现,必须要将CASCADE删去才不报错,而且想要删除某模式,必须先将与其相关联的对象全部删除,否则也会报错。
例3.5 建立“学生”表Student。学号是主码,姓名取值唯一
例3.6 建立一个“课程”表Course
例3.7 建立一个学生选课表SC
运行时出现以下错误,原来不知道什么时候变成了中文半角,而SQL语言只支持英文半角
刷新后可以看到我们刚刚新建的表
例3.8 向Student表增加“入学时间”列,其数据类型为日期型
例3.9 将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。
ALTER TABLE Student ALTER COLUMN Sage INT;
例3.10 增加课程名称必须取唯一值的约束条件。
ALTER TABLE Course ADD UNIQUE(Cname);
例3.11]删除Student表
DROP TABLE Student CASCADE;
SQL server不支持CASCADE,要手动将Course 和 Sc两个表删除后执行DROP TABLE Student才可删除表Student。因为Course和SC与Student表有关联
例3.12 若表上建有视图,使用RRESTRICT时表不能删除;使用CASCADE时可以删除表,视图也自动删除。
创建一个视图:
CREATE VIEW IS_Student
AS
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept='IS';
查询视图:
接着删除Student
删掉上面提到的与之相关的两个表后,方不报错。
可表Student 没了但视图还在,原来时显示错误,由于表Student被删除,所以视图也不可用了。
本次实验最大的收获便是:SQL server 中,删除模式时必须将与之相关的内容,对象先行删除,才可以进行删除表的操作。