当前位置:   article > 正文

MySQL实验一:数据定义_6. 表定义:创建course表 创建course(课程表) 列名 说明 数据类型 约束 cno 课

6. 表定义:创建course表 创建course(课程表) 列名 说明 数据类型 约束 cno 课程号

MySQL实验一:数据定义

引言

本文设计创建数据库数据表的一些sql语句的实操,即数据库数据表的定义语句。

以及一些修改表的基本操作,比如添加删除一个字段等。

1、表定义:创建student表

创建student(学生表):

列名说明数据类型约束
SNO学号CHAR(7)主码
SNAME姓名CHAR(10)NOT NULL
SSEX性别CHAR(2)取“男”或“女”
SAGE年龄SMALLINT
SDEPT所在系VARCHAR(20)默认“计算机系”

代码

create table student(
    SNO CHAR(7) NOT NULL,
    SNAME CHAR(7) NOT NULL,
    SSEX ENUM('男','女'),
    SAGE SMALLINT(2),
    SDEPT VARCHAR(20) DEFAULT '计算机系',
    PRIMARY KEY(SNO));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2、表定义:创建course表

创建course(课程表

列名说明数据类型约束
CNO课程号CHAR(10)主码
CNAME课程名VARCHAR(20)NOT NULL
CCREDIT学分SMALLINT
SEMSTER学期SMALLINT
PERIOD学时SMALLINT

代码

CREATE TABLE course(
    CNO CHAR(10) NOT NULL,
    CNAME VARCHAR(20) NOT NULL,
    CCREDIT SMALLINT,
    SEMSTER SMALLINT,
    PERIOD SMALLINT,
    PRIMARY KEY(CNO)
    );
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3、表定义:创建sc表

创建sc(选课表)

列名说明数据类型约束
SNO学号CHAR(7)主码 引用Student的外码,设置删除限制,更新级联
CNO课程号CHAR(10)主码,引用Course的外码,设置删除限制,更新级联
GRADE成绩SMALLINT

代码

CREATE TABLE sc(
    SNO CHAR(7) NOT NULL,
    CNO CHAR(10)NOT NULL,
    GRADE SMALLINT,
    PRIMARY KEY(SNO,CNO),
    FOREIGN KEY(SNO)REFERENCES student(SNO)
        ON DELETE RESTRICT ON UPDATE CASCADE,
    FOREIGN KEY(CNO)REFERENCES course(CNO)
        ON DELETE RESTRICT ON UPDATE CASCADE
    );
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4、表定义:创建供应商表

创建 s(供应商表)

列名说明数据类型约束
SNO供应商号CHAR(6)PRIMARY KEY
SNAME供应商名VARCHAR(20)NOT NULL
SSTATUS供应商状态SMALLINT(2)
CITY所在城市VARCHAR(50)

代码

CREATE TABLE s(
    SNO CHAR(6) NOT NULL,
    SNAME VARCHAR(20) NOT NULL,
    STATUS SMALLINT(2),
    CITY VARCHAR(50),
    PRIMARY KEY(SNO)
    );
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

5、表定义:创建零件表

创建p(零件表)

列名说明数据类型约束
PNO零件号CHAR(6)PRIMARY KEY
PNAME零件名VARCHAR(20)NOT NULL
COLOR颜色CHAR(2)取(红、绿、蓝)其中之一
WEIGHT重量DECIMAL(9,2)默认值1.0

代码

CREATE TABLE p(
    PNO CHAR(6) NOT NULL,
    PNAME VARCHAR(20) NOT NULL,
    COLOR ENUM('红','绿','蓝'),
    WHIGHT DECIMAL(9,2) DEFAULT 1.0,
    PRIMARY KEY(PNO) );
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

6、表定义:创建供应情况表

供应情况表spj:

列名说明数据类型约束
SNO供应商号CHAR(6)主码
PNO零件号CHAR(6)主码
JNO项目号CHAR(6)主码
QTY供应数量SMALLINTDEFAULT 100

代码

CREATE TABLE spj(
    SNO CHAR(6) NOT NULL,
    PNO CHAR(6) NOT NULL,
    JNO CHAR(6) NOT NULL,
    QTY SMALLINT DEFAULT 100,
    PRIMARY KEY(SNO,PNO,JNO)
    );
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

7、修改表结构:修改课程表

修改课程表course的CNAME属性列的类型为VARCHAR(30);

代码

ALTER TABLE course MODIFY CNAME VARCHAR(30);
  • 1

8、改表结构:修改零件表

为零件表:p 增加一个规格(GUIGE)列,数据类型为字符,长度50;

代码

ALTER TABLE p ADD GUIGE CHAR(50);
  • 1

9、修改表结构:修改供应情况表

已知供应情况表spj:

列名说明数据类型约束
SNO供应商号CHAR(6)NOT NULL
PNO零件号CHAR(6)NOT NULL
JNO项目号CHAR(6)NOT NULL
QTY供应数量SMALLINTDEFAULT 100

修改表结构,增加一个自动增长列,列名为id,并设置为主码(注意:自动增长列必须为表的主码)

代码

ALTER TABLE spj
ADD id INT AUTO_INCREMENT NOT NULL,
ADD PRIMARY KEY(id);
  • 1
  • 2
  • 3

10、修改表结构:修改供应情况表

为供应情况表spj添加参照完整性约束(无需设置规则,采用默认约束规则)

spj的SNO列参照s表SNO列,采用默认规则;

spj的PNO列参照p表PNO列,设置删除级联;

spj的JNO列参照j表JNO列,设置更新级联;

代码

ALTER TABLE spj
    ADD FOREIGN KEY(SNO) REFERENCES s(SNO),  
    ADD FOREIGN KEY(PNO) REFERENCES p(PNO)
    ON DELETE CASCADE,
    ADD FOREIGN KEY(JNO) REFERENCES j(JNO)
    ON UPDATE CASCADE;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

11、表定义:创建工程项目表

创建 j(工程项目表)

列名说明数据类型约束
JNO项目号CHAR(6)PRIMARY KEY
JNAME项目名VARCHAR(20)NOT NULL
CITY城市VARCHAR(50)

代码

CREATE TABLE j(
    JNO CHAR(6) NOT NULL,
    JNAME VARCHAR(20) NOT NULL,
    CITY VARCHAR(50),
    PRIMARY KEY(JNO)
    );
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/901266
推荐阅读
相关标签
  

闽ICP备14008679号