SQL练习1 - CREATE / DROP / ALTER

先来介绍一下SQL的动词(数据库基本操作有:增、删、改、查)

大小写均可以,统一即可!!
在这里插入图片描述
新建数据库SCHOOL:

CREATE DATABASE SCHOOL

(需要注意的是:第三部刷新的时候需要用鼠标选中“ 数据库 ”,不然可能会刷新不出来)
在这里插入图片描述

【例 3.1】为用户 WANG 定义一个学生-课程模式 S-T
(1) 首先要新建用户 WANG
安全性—>右击用户—>新建用户—>用户名为WANG—>登录 名选择第一个

(2)定义一个学生-课程模式 S-T

敲重点:一定要将第三步的库由默认情况切换到【SCHOOL】中,不然找不到用户WANG ,会报错!!!
在这里插入图片描述

【例 3.2】CREATE SCHEMA AUTHORIZATION WANG
该句话没有指定 <模式名>,所以<模式名>隐含为用户名WANG

模式名相当于命名空间,如果没有规定,默认模式名为dbo

【例 3.3】为用户WANG创建了一个模式TEST,并且在其中定义一个表TAB1

注意注意:👇第四步刷新的时候,也要将鼠标放在表的位置
在这里插入图片描述

【例 3.4】DROP SCHEMA ZHANG CASCADE
该语句删除了模式ZHANG,同时,该模式中已经定义的表TAB1也被删除

删除模式中有两种:级联限制

级联:删除模式的同时把该模式中的所有数据对象全部删除(类似与古代的株连九族,删除的比较干净,但删除完了啥都没了所以要慎重!!!)
限制:如果该模式下有下属的数据库对象,例如表、视图等,则拒绝删除,仅当模式下没有任何下属的对象时,才能执行(删除速度比较慢,但是会给人缓冲的时间,避免一不小心全部都没了)

【例 3.5】建立一个“学生”表Student

建表的基本要求:见名知意(这也是对程序员的基本要求)
建立的表默认情况下是在dbo模式下

注意:需要在数据库的当前模式下进行在这里插入图片描述
【例 3.6】建立一个“课程”表Course

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),
                         /* 表级完整性约束条件,Sno是外码,被参照表是Student */
           FOREIGN KEY (Cno)REFERENCES Course(Cno)
                          /* 表级完整性约束条件, Cno是外码,被参照表是Course*/
        ); 

【例 3.8】向Student表增加“入学时间”列,其数据类型为日期型

不管基本表原来是否已有数据,新增加的列一律为空值

在这里插入图片描述
其中 :ALERT 是增加的关键字,Student 是表名,S_entrance 是列名 DATA是数据类型

【例 3.9】将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数

注意注意:不必说明需要改的数据的原来类型
在这里插入图片描述
其中:ALERT 是关键字,Student是表名,COLUMN是列的关键字,Sage是列名。

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

【例 3.11】删除Student表

基本表定义被删除,数据被删除
表上建立的索引、视图、触发器等一般也将被删除
在这里插入图片描述

这里报错啦!!!因为SQL Server不支持在删除过程中使用CASCADE/RESTRICT关键字,去掉cascade
在这里插入图片描述

这样就成功删除啦!!!表里面什么东西都没了

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

我这里使用的是Course表

先在Course表上建立视图
在这里插入图片描述
在这里插入图片描述
检查视图是否还在
在这里插入图片描述
新建表之后,视图可以看到了
在这里插入图片描述

需要注意的问题:1. SQL Server不支持在删除过程中使用CASCADE/RESTRICT关键字
2. 刷新时鼠标一定要选好位置,不然可能刷新不出来

疑惑:Student表虽然已经删除,但是不知道为什么下面这里还是有dbo.Student在这里插入图片描述
还有就是,是不是SQL语句加不加分号都可以哎,我实验过程中加不加都能执行

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值