SQL基本表的操作

来源:互联网 发布:从零开始学python 编辑:程序博客网 时间:2024/06/08 16:29

一、定义基本表

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