模式的定义与删除

准备工作

新建数据库用户

例题

[例3.1] 为用户WANG定义一个学生-课程模式S-T

运行前可用 “√”检查

                 

[例3.2] CREATE SCHEMA AUTHORIZATION WANG;

语句并没有创建架构

通过查看T-sql中的schema  知

[例3.3]为用户ZHANG创建了一个模式TEST,并且在其中定 义一个表TAB1:

[例3.4] DROP SCHEMA WANG CASCADE;

删除模式ZHANG,同时该模式中定义的表TAB1也被删除

上一步新建的是TEST架构

去掉CASCADE

那么 我们可以先删除 TAB1  TABL2 再删除架构TEST

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

成功删除TEST

[例3.5] 建立“学生”表Student。学号是主码,姓名取值唯一。

CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR (20) UNIQUE,
Ssex CHAR (2),
Sage SMALLINT,
Sdept CHAR(20)
);

[例3.6 ] 建立一个“课程”表Course

CREATE TABLE Course
(Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4),
Ccredit SMALLINT,
FOREIGN KEY(Cpno) REFERENCES Course(Cno)
-- Cpno是外码 被参照表是Course 被参照列是Cno
);

[例3.7] 建立一个学生选课表SC

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.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;

和上面删除模式一样 会出现

去掉CASCADE

与上面 一样 那么我们需要先处理 FOREIGN KEY

 REF:SQL删除外键约束

用如下SQL语句查询出表中外键约束名称:

1 select name
2 from  sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id
3 where f.parent_object_id=object_id('表名')
select name
from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id where f.parent_object_id=object_id('SC')

删除外键约束

alter table SC drop constraint FK__SC__Sno__2C3393D0
alter table SC drop constraint FK__SC__Cno__2D27B809

再进行删除

[例3.12 ]若表上建有视图,使用RESTRICT时表不能删除;使用 CASCADE时可以删除表,视图也自动删除。

建视图

CREATE VIEW IS_Course
AS
SELECT Cno,Cname
FROM Course
WHERE Ccredit='IS';

同样

DROP TABLE Course CASCADE;

会出现 CASCADE错误

与上一例题一样  删除外键约束

alter table Course drop constraint FK__Course__Cpno__29572725

再进行删除

DROP TABLE Course ;

查看视图 视图自动被删除

注意:SQL Server不支持在删除过程中使用CASCADE/RESTRICT关键字

从例题12,11,4 可以体会到

感觉只是开了个小头就有好多东西需要学,网上查阅到T-Sql具有一些相对于sql的扩展功能 

找到了一篇关于T-sql的,以便以后参考,

Sql Server 02相关推荐

  1. windows故障转移群集和mysql_Windows Server 故障转移群集 (WSFC) 与 SQL Server

    Windows Server 故障转移群集 (WSFC) 与 SQL Server 02/18/2014 本文内容 "Windows Server 故障转移群集"(WSFC) 群集 ...

  2. 《Microsoft SQL Server入门教程》第02篇 SQL Server 下载与安装

    文章目录 安装 SQL Server 安装 SQL Server Management Studio 连接 SQL Server 本篇我们介绍如何下载和安装 SQL Server 2019 开发者版本 ...

  3. SQL Server中灾难时备份结尾日志(Tail of log)的两种方法

    简介 在数据库数据文件因各种原因发生损坏时,如果日志文件没有损坏.可以通过备份结尾日志(Tail of log)使得数据库可以恢复到灾难发生时的状态. 例如: 上图中.在DB_1中做了完整备份,在Lo ...

  4. python 使用pymssql连接sql server数据库

    Python连接SQL Server数据库 - pymssql使用基础 ----原文地址:http://www.cnblogs.com/baiyangcao/p/pymssql_basic.html ...

  5. 如何在Windows Azure VM上的SQL Server和Windows Azure SQL Database两者中做出选择

    作者信息:本篇文章是由SQL Server Cloud Infrastructure Team的 Madhan Arumugam 和 Guy Bowerman共同著作. 简介 把SQL 数据托管在哪里 ...

  6. SQL Server 2008之WaitFor

    在SQL Server 2005以上版本中,在一个增强的WaitFor命令,其作用可以和一个job相当.但使用更加简捷. 看MSDN: http://msdn.microsoft.com/zh-cn/ ...

  7. sql server 海量数据速度提升:SQL优化-索引(11) 【转】

    12.高效的TOP 事实上,在查询和提取超大容量的数据集时,影响数据库响应时间的最大因素不是数据查找,而是物理的I/0操作.如: select top 10 * from ( select top 1 ...

  8. sql server 日期

    一.时间函数 在使用存储过程,sql函数的时候,会遇到一些对时间的处理.比如时间的获取与加减.这里就用到了sql自带的时间函数.下面我列出这些函数,方便日后记忆,使用. --getdate 获取当前时 ...

  9. 安装SQL Server 2012示例数据库

    SQL Server的示例数据库是一个非常好的学习数据库的范例,在安装完SQL Server 2012后,默认情况下是不会安装示例数据库的,我们需要自己进行一些安装和设置. 安装Adventure W ...

  10. 通过WebService调用SQLXML(SQL Server 2005) [ZT]

    [翻译]通过WebService调用SQLXML(SQL Server 2005) 原文发布日期:2007.02.04 作者:Russ Quinn 翻译:webabcd 介绍 我最近需要给用户创建一个 ...

最新文章

  1. Redis 笔记系列(十一)——Redis的发布和订阅机制
  2. 通过grub硬盘安装centos7
  3. 细菌绝对定量的方法总结
  4. .NET Framework、C#语言、IDE、CLR 版本历史及其差异(最新)
  5. 【转发】实现yolo3模型训练自己的数据集总结
  6. Java GregorianCalendar setTimeZone()方法与示例
  7. GUID基本概念以及C#、SqlServer中GUID基本用法
  8. 面向对象三大特性——多态
  9. 如何进入百度、阿里,一个6年Android老司机的面经
  10. java向指定用户极光推送_【极光推送】给指定用户发送消息
  11. mysql备份和优化_MySQL优化|数据库的备份和恢复|MySQL高级
  12. Problem Z: 亲戚
  13. AngularJs:Directive指令用法
  14. 1698无法登录mysql服务器_一,问题描述:MysqlERROR1698(28000)解决,新装了mysql-server-5.7,登录为这一问题,普通用户不能进mysql,只有root用...
  15. Python爬虫:让“蜘蛛”帮我们工作
  16. python serial.write_PySerial write()即时时间
  17. 贪心(greedy)
  18. 三层代码讲解--第二课 DATE :2004-05-25
  19. python设计樱花_用Python画樱花?想得美就能画得美(上)
  20. 试用了下ITIL开源管理工具iTop,感觉很爽,准备尽快部署并首先实现公司CMDB治理

热门文章

  1. 2017 苹果强制https
  2. 第八章第六题(代数:两个矩阵相乘的方法)(Algebra: a method of multiplying two matrices)
  3. 测试er如何通过MacOS连接IOS系统iPhone查看系统崩溃日志?
  4. 计算24点游戏C语言课设
  5. 在阿里云用python发送邮件
  6. Unity中游戏的存档与读档
  7. dns服务器配置错误无法修复,电脑DNS错误修复的方法教程
  8. (附源码)ssm通用数据展示系统 毕业设计200934
  9. vue按住shift键多选(以element框架的table为例)
  10. 宏基Acer笔记本热销火热机