MySQL数据库建库建表以及外键级联操作

MySQL数据库
建库语句
CREATE DATABASE 数据库名;
使用数据库:
USE 数据库名;

CREATE DATABASE robowolf_material;
USE robowolf_material;

删表语句:
DROP TABLE 表名;
建表语句:
create table XXX
(
数据名称 数据类型,
数据名称 数据类型 约束
);
约束可有可无,若有多个约束空格隔开即可

例:

CREATE TABLE Uuser ( UID INT PRIMARY KEY AUTO_INCREMENT, Uname VARCHAR(50) NOT NULL, Usex VARCHAR(50), Upassword VARCHAR(50) NOT NULL, Uapartment VARCHAR(50) NOT NULL, Upermission VARCHAR(50) NOT NULL, Uphone VARCHAR(50) NOT NULL );

AUTO_INCREMENT 为自增长,适用于int数据类型,不适用于varchar数据类型。
PRIMARY KEY 为主键
NOT NULL为非空约束 注:你的值不能为空
UNIQUE 为唯一约束 注:比如你有a的值,那我就不能有a的值

CREATE TABLE Mcategory 
(
CID INT PRIMARY KEY AUTO_INCREMENT,
Cname VARCHAR(50) NOT NULL
);
CREATE TABLE tb_materials
(
IID INT PRIMARY KEY AUTO_INCREMENT,
Iname VARCHAR(50) NOT NULL,
CID INT,
CONSTRAINT matrials_mcategory_fk FOREIGN KEY(CID) REFERENCES Mcategory(CID),
Inote VARCHAR(50)
);

CONSTRAINT matrials_mcategory_fk FOREIGN KEY(CID) REFERENCES Mcategory(CID)
的意思是设置外键matrials_mcategory_fk 这个外键定义本表的(CID)的键与Mcategory(CID)的键相关。

删除表中的外键,例如下面的第一行代码所示,
而第二三行代码的意思是给表tb_materials添加外键,
该外键添加级联修改操作。
意味着Mcategory上的表的CID一旦改变,
tb_materials上的表的CID也会随之改变。

表修改语句:

ALTER TABLE tb_materials DROP FOREIGN KEY matrials_mcategory_fk;
ALTER TABLE tb_materials ADD CONSTRAINT material_mcategory_fk FOREIGN KEY
(CID) REFERENCES Mcategory(CID) ON UPDATE CASCADE;

下面的到数第二条sql语句,表示给添加 mdetail_materials_fk外键
该外键关联tb_materials的IID键,并具有级联修改以及删除操作。
级联删除的目的是tb_materials的IID一旦删除,tb_detail上与被删除的IID关联的所有记录全部删除。

CREATE TABLE tb_mdetail
(
DID INT PRIMARY KEY AUTO_INCREMENT,
CID INT NOT NULL,
IID INT NOT NULL,
CONSTRAINT mdetail_mcategory_fk FOREIGN KEY(CID) REFERENCES Mcategory(CID) ON UPDATE CASCADE,
CONSTRAINT mdetail_materials_fk FOREIGN KEY(IID) REFERENCES tb_materials(IID) ON UPDATE CASCADE ON DELETE CASCADE,
Dproperity VARCHAR(50)
);

例:
在这里插入图片描述
当tb_materials的IID为1的记录被删时,tb_detail上的记录变更为:
在这里插入图片描述
当Mcategory上CID的值为1的记录修改为6时,tb_detail上的记录变更为:
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值