SQL的Create、Drop、Alter简单练习

新建用户
事先创建好一个数据库。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新建好的Wang用户


定义模式

Create SCHEMA <模式名> AUTHORIZATION<用户名>
如果没有指定<模式名>,那么<模式名>隐含为<用户名>
要创建模式,调用该命令的用户必须拥有数据库管理员权限,或者获得了数据库管理员授予的CREATE SCHEMA 权限。一般情况下,自己操作自己的数据库的话,是有这个权限的

为用户有Wang定义一个学生-课程模式S-T

Create Schema "S-T" Authorization Wang  --注意在事先创建新用户的数据库下

在这里插入图片描述

该语句没有指定 模式民,所以模式名隐含为用户名Wang

CREATE SCHEMA AUTHORIZATION Wang  

为用户Wang创建一个模式TEST,并且在其中定义一个表TAB1

CREATE SCHEMA TEST AUTHORIZATION Wang
CREATE TABLE TAB1
(
	COL1 SMALLINT,
	COL2 INT,
	COL3 CHAR(20),
	COL4 NUMERIC(10,3),
	COL5 DECIMAL(5,2)
)

在这里插入图片描述
在TSET创建成功,在TEST模式下创建表可以直接这么写

CREATE TABLE TEST.TAB2
(
	COL1 INT
)

删除模式

DROP SCHEMA <模式名> <CASCADE|RESTRICT>
其中CASCADE和RESTRICT两者必选其一,选择了CASCAD(级联),表示在删除模式的同时把该模式中的所有数据库对象全部删除;选择了RESTRICT(限制),表示如果该模式中已经定义了下属的数据库对象(如表,视图等),则拒绝该删除语句的执行。只有当该模式中没有任何下属的对象时才能执行DROP SCHEMA语句
注意删除架构时,必须首先删除架构所包含的表

DROP TABLE TSET.TAB1,TEST.TAB2
DROP SCHEMA TEST

基本表的定义、删除与修改

1.定义基本表
CREATE TABLE (表名)
(
<列名> <数据类型> [列级完整性的约束条件],
<列名> <数据类型> [列级完整性的约束条件],
<列名> <数据类型> [列级完整性的约束条件]

)

创建一个学生表,课程表,选课表

CREATE TABLE Student
(
	Sno  char(9) primary key,
	Sname char(20) unique,
	Ssex char(2),
	Sage smallint,
	Sdept char(20)
)
Create table Cource
(
	Cno char(2) primary key,
	Cname char(40) not null,
	Cpno char(4),
	Ceredit smallint,
	foreign key (Cpno) references Course(Cno)
)
Create table SC
(
	Sno char(9),
	Cno char(4),
	Grade smallint,
	primary key(Sno,Cno),
	foreign key(Sno) references Student(Sno)
)

修改基本表

一般格式为:
ALTER TABLE<表名>
[ADD [COLUMN]<新列名><数据类型>[完整性约束]]
[ADD <表级完整性约束>]
[DROP [COLUMN]<列名>[CASCADE|RESTRICT]]
[DROP CONSTRAINT<完整性约束>[RESTRICT|CASCADE]]
[ALTER COLUMN<列名><数据类型>]

1.向Student表增加入学时间列,数据类型为日期型。
2.将年龄的数据类型由字符型(假设原来的数据类型时字符型)改为整数型
3.增加课程名称必须取唯一值得条件

alter table Student add column S_entrance Date
alter table Student alter column Sage int
alter table Course add constraint Course_Cname_UQ unique(Cname)

删除基本表

删除Student表

drop table Student cascade

基本表定义一旦被删除,不仅表中得数据和此表的定义将被删除,而且此表上建立得索引,触发器等对象一般也都将被删除。有的关系数据库管理系统还会同时删除在此表上建立得视图。如果欲删除得基本表被其它基本表所引用,则这些表也可能被删除。

若表上建有视图,选择RESTRICT时表不能删除;选择CASCADE时可以删除表,视图也自动删除

Create view Is_Student    --为Student表建立视图
as 
select Sno,Sname,Sage
from Student
where Sdepr='IS'

drop table Student restrict  --删除Studet表  此时系统会返回错误信息,存在依赖该表得对象,此表不能删除

drop table Student cascade  --删除Student表,系统会返回提示,此表上得视图也被删除

select *from Is_Student   --查询视图,系统返回错误信息,该视图不存在


SQL与T-SQL的不同,在此不详细叙述了。在以后涉及到T-SQL编程时,再细说。


由于前几天带着电脑出门,鼠标在包里受到了一定程度上的损坏,使用有一些问题,所以本次截图较少。除了截图外,该文的其它内容都没使用鼠标,所以文中的文本的处理可能有些不协调。
代码块中的代码有大小写混乱的情况,因为Sql Server生成的脚本以及书上的代码都采用大写形式,本想此次采用大写的形式,又因已经习惯sql小写的形式,所以出现了大小写混乱的现象。

发布了14 篇原创文章 · 获赞 4 · 访问量 3741

猜你喜欢

转载自blog.csdn.net/Cheng_XZ/article/details/104730657