MySQL学习记录(约束+语法+演示分析)三

来源:互联网 发布:eviews怎么导入数据 编辑:程序博客网 时间:2024/06/03 12:40



#1.建表时最后建立约束

CREATE TABLE tb_emp(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME CHAR(18) NOT NULL,
sex VARCHAR(2) CHECK(sex='男' OR sex='女'),
age INT CHECK (age > 18 AND age <60),
address VARCHAR(200),
email VARCHAR(100) UNIQUE,
dept_id INT REFERENCES tb_dept(dept_id) #外键约束不起作用
)


#2.建表最后最后建立约束
CREATE TABLE tb_emp(
id INT AUTO_INCREMENT,
NAME VARCHAR(18),
sex VARCHAR(2) CHECK(sex='男' OR sex='女'),
age INT CHECK (age > 18 AND age < 60),
address VARCHAR(200),
email VARCHAR(100) UNIQUE,
dept_id INT,
PRIMARY KEY(id),
CONSTRAINT FOREIGN KEY tb_emp_fk (dept_id) REFERENCES tb_dept(dept_id)
)


#3.建表后建立约束,表级
CREATE TABLE tb_emp(
id INT,
NAME VARCHAR(18),
sex VARCHAR(2),
age INT,
address VARCHAR(200),
email VARCHAR(100),
dept_id INT
);


#添加主键
ALTER TABLE tb_emp
ADD PRIMARY KEY (id)


#更改自动增长
ALTER TABLE tb_emp
MODIFY COLUMN id INT AUTO_INCREMENT


#添加外键
ALTER TABLE tb_emp
ADD CONSTRAINT FOREIGN KEY tb_emp_fk (dept_id) REFERENCES tb_dept(dept_id)


#添加唯一键
ALTER TABLE tb_emp
ADD UNIQUE (email)


#添加检查约束
ALTER TABLE tb_emp
ADD CONSTRAINT CHECK (age > 18 AND age < 60)




#最常用的方式
#注意:AUTO_INCREMENT(自动增长)只是mysql特有,其他数据库没有

CREATE TABLE tb_emp(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(18) NOT NULL,                               #非空约束(NOT NULL)

sex VARCHAR(2) DEFAULT '男' CHECK(sex='男' OR sex='女'), 

#默认值(DEFAULT)  检查约束(CHECK)

age INT CHECK(age > 18 AND age <60),
address VARCHAR(200),
email VARCHAR(100) UNIQUE, #唯一约束(UNIQUE)
dept_id INT,
#CONSTRAINT FOREIGN KEY 外键名[表名+约束名] (外键) REFERENCES 主表(字段)
CONSTRAINT FOREIGN KEY tb_emp_fk (dept_id) REFERENCES tb_dept(dept_id)
)










#删除约束
#修改非空约束

ALTER TABLE tb_emp MODIFY NAME VARCHAR(18)


#删除唯一约束
ALTER TABLE tb_emp DROP INDEX email


#删除主键约束 注意:如果带有自动增长,必须先修改不是自动增长才能在删除主键。
ALTER TABLE tb_emp MODIFY id INT
ALTER TABLE tb_emp DROP PRIMARY KEY


#删除外键约束 注意:删除外键必须是DDL信息的外键名

ALTER TABLE tb_emp DROP FOREIGN KEY tb_emp_ibfk_1


                                                                                                                                    


www.java1234.com