定义模式相关操作以及基本表的定义、删除与修改

一、新建数据库
在这里插入图片描述

CREATE DATABASE Teacher;

二、新建用户
在这里插入图片描述
为用户WANG定义一个学生-课程模式S-T:

CREATE SCHEMA "S-T" AUTHORIZATION WANG;

在这里插入图片描述

CREATE SCHEMA AUTHORIZATION 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)
                                          );

删除模式出错,
将该模式下的表和架构删除该语句可以执行。
在这里插入图片描述
三、练习
①、建立“学生”表Student。学号是主码,姓名取值唯一
在这里插入图片描述
默认状态下该表建在dbo中,代码如下:

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

建立一个“课程”表Course

CREATE TABLE  Course
          (Cno       CHAR(4) PRIMARY KEY,
        	   Cname  CHAR(40),            
         	  Cpno     CHAR(4),               	                      
            Ccredit  SMALLINTFOREIGN KEY (Cpno) REFERENCES  Course(Cno) 
          ); 

在这里插入图片描述
②、建立一个学生选课表SC
在这里插入图片描述
<列级完整性约束条件>:涉及相应属性列的完整性约束条件
<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件

CREATE TABLE  SC
          (Sno  CHAR(9), 
           Cno  CHAR(4),  
           Grade  SMALLINTPRIMARY KEY (Sno,Cno),  
                          /* 主码由两个属性构成,必须作为表级完整性进行定义*/
           FOREIGN KEY (Sno) REFERENCES Student(Sno),
                         /* 表级完整性约束条件,Sno是外码,被参照表是Student */
           FOREIGN KEY (Cno)REFERENCES Course(Cno)
                          /* 表级完整性约束条件, Cno是外码,被参照表是Course*/
        ); 

③、向Student表增加“入学时间”列,其数据类型为日期型
在这里插入图片描述

ALTER TABLE Student ADD S_entrance DATE;

④、将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。
在这里插入图片描述

ALTER TABLE Student ALTER COLUMN Sage INT;

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

ALTER TABLE Course ADD UNIQUE(Cname); 

四、删除基本表

DROP TABLE <表名>RESTRICT| CASCADE;

①、删除Student表
执行出现如图所示的错误:
在这里插入图片描述
如果要执行成功,需要删除该外键
具体方法参照:https://blog.csdn.net/CSDN_Mr_H/article/details/90317043
注意:在使用RESTRICT和CASCADE时,要注意它们的用法,这里相对来说比较难懂,操作起来有点困难。

发布了9 篇原创文章 · 获赞 9 · 访问量 3029

猜你喜欢

转载自blog.csdn.net/wjijiu/article/details/104715066