SQL数据定义

创建表

Student

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

手动插入数据

image-20220214094737052

Course

CREATE TABLE Course(
    Cno CHAR(4) PRIMARY KEY,	
    Cname CHAR(40),
    Cpno CHAR(4),
    Ccredit SMALLINT,
    /*表级完整性约束,Cpno为外码,被参照表为Course(自身),被参照列为Cno*/
    FOREIGN KEY (Cpno) REFERENCES Course(Cno)
);

手动插入数据

image-20220214094751246

SC

CREATE TABLE SC(
    Sno CHAR(20),
    Cno CHAR(4),
    Grade SMALLINT,
    /*表级完整性约束,主码为Sno和Cno两列*/
    PRIMARY KEY (Sno, Cno),
    /*表级完整性约束,Sno为外码,被参照表为Sno*/
    FOREIGN KEY (Sno) REFERENCES Student(Sno),
    /*表级完整性约束,Cno为外码,被参照表为Course*/
    FOREIGN KEY (Cno) REFERENCES Course(Cno) 
);

手动插入数据

image-20220214095340832

修改表

语法

ALTER TABLE < 表名 >
	[ ADD < 新列名 > < 数据类型 > [ 完整性约束 ] ] 
	[ DROP < 完整性约束名 > ] 
	[ MODIFY COLUMN< 列名 > < 数据类型 > ];

实例

在student表中添加新列S_entreance入学时间,类型为DATE

ALTER TABLE `student` ADD S_entrance DATE;

image-20220214100338419

修改Studen表中Sage列数据类型为INT

ALTER TABLE `student` MODIFY COLUMN Sage INT;

image-20220214101203975

增加课程名唯一的约束

ALTER TABLE `course` ADD UNIQUE(Cname);

image-20220214101403666

删除表

语法

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

    级联,删除表的同时,相关依赖对象一起删除

  • RESTRICT

    限制,删除时存在依赖该表不能被删除

实例

删除sc

DROP TABLE `sc` CASCADE;

image-20220214102701035

posted @ 2022-02-14 10:34  dctwan  阅读(75)  评论(0编辑  收藏  举报