您的位置:首页 > 数据库 > MySQL

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

2013-06-12 13:52 387 查看
#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: