当前位置:   article > 正文

SQL基本表的操作_用sql语言创建学生表,其中学号是主键

用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)
           ); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

或者这样定义:

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

建立一个“课程”表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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

建立一个“学生选课”表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*/
         ); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

二、修改基本表

ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [ 完整性约束 ] ]
[ DROP <完整性约束名> ]
[ ALTER COLUMN<列名> <数据类型> ];
  • 1
  • 2
  • 3
  • 4
  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所属的模式。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/671524
推荐阅读
相关标签
  

闽ICP备14008679号