MySQL实验一:数据定义

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));

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)
    );

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
    );

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)
    );

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) );

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)
    );

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

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

代码

ALTER TABLE course MODIFY CNAME VARCHAR(30);

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

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

代码

ALTER TABLE p ADD GUIGE CHAR(50);

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);

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;

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)
    );
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会喷火的小火龙

你的鼓励是我最大的创作动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值