数据库作业:模式的定义和删除,基本表的定义,删除与修改

操作对象操作方式
模式创建CREATE SCHEMA 删除DROP SCHEMA
创建 CREATE TABLE 删除 DROP TABLE 修改 ALTER TABLE
索引创建 CREATE VIEW–删除 DROP INDEX 修改 ALTER INDEX
视图创建 CREATE VIEW 删除DROP VIEW

SQL的各种数据定义功能

1,模式的定义与删除
创建用户WANG 并且 定义模式S-T
1.1
右击用户新建WANG
在这里插入图片描述

1.2
点击新建查询
模式定义基本语句为
CREATE SCHEMA<模式名>AUTHORIZATION<用户名>
输入代码
CREATE SCHEMA S-T AUTHORIZATION WANG
在这里插入图片描述
在这里插入图片描述
1.3 为用户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)
				  );

继续在TEST模式下建立TAB2

CREATE TABLE TEST.TAB2(COL1 SMALLINT,
                       );

注意不能漏写 TEST. 不然就变成 dbo.TAB2

在这里插入图片描述
2.1模式的删除
删除模式TEST 同时定义的表也会删除,所以在删除时要注意是否需要事先保存

DROP SCHEMA TEST CASCADE;

但是这样输入 却显示错误
在这里插入图片描述
查阅后发现 SQL Server 不支持CASCADE/RESTRICT关键字
所以把CASCADE去掉 此外由于TEST模式中存在表 所以要将表先删除,才能删除模式

DROP TABLE TEST.TAB1;
DROP TABLE TEST.TAB2;
DROP SCHEMA TEST;

在这里插入图片描述
3.基本表的定义,删除与修改
3.1 定义基本表
例: 建立学生表

CREATE TABLE Student
(Sno CHAR(9)PRIMARY KEY,/*列级完整性约束条件,Sno是主码*/
 Sname CHAR(20)UNIQUE,
 Ssex CHAR(2),
 Sage SMALLINT,
 Sdept CHAR(20)
 );

建立课程表

CREATE TABLE Course
 (Cno CHAR(4)PRIMARY KEY,
  Cname CHAR(40)NOT NULL,
  Cpno CHAR(4),
  Ccredit SMALLINT,
  FOREIGN KEY(Cpno)REFERENCES Course(Cno)
  /*表级完整性约束条件,Cpno是外码,被参照表是Course,被参照列是Cno*/
  );

建立学生选课表

 CREATE TABLE SC
  ( Sno CHAR(9),
    Cno CHAR(4),
	Grade SMALLINT,
	PRIMARY KEY(Sno,Cno),
	FOREIGN KEY(Sno)REFERENCES Student(Sno),
	FOREIGN KEY(Cno)REFERENCES Course(Cno)
	);
	

在这里插入图片描述
3.2修改基本表
向Student表增加“入学时间”列,其数据类型为日期型
将年龄数据类型改为整数

ALTER TABLE Student ADD S_entrance DATE;
ALTER TABLE Student ALTER COLUMN Sage INT;

在这里插入图片描述
增加课程名称必须取唯一值的约束条件

ALTER TABLE Course ADD UNIQUE(Cname);

3.3删除基本表
删除 SC表

DROP TABLE SC;

这里又会出现错误 显示SC表现在由一个外键FOREIGN KEY引用
所以这里要将外键先删除
找出外键

exec sp_helpconstraint SC;

删除表Student

DROP TABLE Student

删除外键

ALTER TABLE SC DROP CONSTRAINT FK_SC_Cno_6C190EBB

在这里插入图片描述
在这里插入图片描述
删除成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值