SQL基本表的操作

一、定义基本表

CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]
[,<列名> <数据类型>[ <列级完整性约束条件>] ] …
[,<表级完整性约束条件> ] );

如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。
ag.
建立“学生”表Student,学号是主码,姓名取值唯一。

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

或者这样定义:

CREATE   TABLE   Student          
          (Sno   CHAR(9),
            Sname  CHAR(20)   UNIQUE,     /* Sname取唯一值*/
            Ssex    CHAR(2),
            Sage   SMALLINT,
            Sdept  CHAR(20),
         PRIMARY KEY (Sno)       /* 表级完整性约束条件*/ 
           ); 

建立一个“课程”表Course

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

建立一个“学生选课”表SC

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

二、修改基本表

ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [ 完整性约束 ] ]
[ DROP <完整性约束名> ]
[ ALTER COLUMN<列名> <数据类型> ];
  1. 增加列
    ALTER TABLE Student ADD S_entrance DATE;
  2. 改变表列的性质
    ALTER TABLE Student ALTER COLUMN Sage INT;

三、删除基本表

DROP TABLE <表名>[RESTRICT| CASCADE];

RESTRICT:删除表是有限制的。
欲删除的基本表不能被其他表的约束所引用
如果存在依赖该表的对象,则此表不能被删除
CASCADE:删除该表没有限制。
在删除基本表的同时,相关的依赖对象一起删除

四、模式与表

每一个基本表都属于某一个模式
一个模式包含多个基本表
定义基本表所属模式
方法一:在表名中明显地给出模式名
Create table “S-T”.Student(……); /模式名为 S-T/
Create table “S-T”.Cource(……);
Create table “S-T”.SC(……);
方法二:在创建模式语句中同时创建表
方法三:设置所属的模式

创建基本表(其他数据库对象也一样)时,若没有指定模式,系统根据搜索路径来确定该对象所属的模式
RDBMS会使用模式列表中第一个存在的模式作为数据库对象的模式名
若搜索路径中的模式名都不存在,系统将给出错误
显示当前的搜索路径: SHOW search_path;
搜索路径的当前默认值是:$user, PUBLIC

DBA用户可以设置搜索路径,然后定义基本表
SET search_path TO “S-T”,PUBLIC;
Create table Student(……);
结果建立了S-T.Student基本表。
RDBMS发现搜索路径中第一个模式名S-T存在,就把该
模式作为基本表Student所属的模式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值