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上的记录变更为: