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
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
相关文章推荐
- MySQL学习记录(简介+语法+演示分析)一
- MySQL学习记录(插入+删除+演示分析)四 DML
- MySQL学习记录(子查询+演示分析)八 DML
- MySQL学习记录(多表连接查询+演示分析)七 DML
- MySQL学习记录(索引+演示分析)九 DML
- MySQL学习记录(视图+演示分析)十 DML
- SQL查询前10条记录(SqlServer/mysql/oracle)语法分析
- 2014年4月1日MySQL学习记录--mysql数据类型及占用空间&&修改表的语法
- MySQL学习笔记 2:约束、修改数据表和操作数据表中的记录
- <<深入理解mariadb和mysql>>之mysql执行计划分析学习记录
- mysql学习记录(一)
- mysql 学习记录(二)--查询,权限,字段控制
- MYSQL学习笔记——基本语法
- Mysql_学习记录
- Mycat学习笔记 番外篇一.客户端使用latin1字符集,后端MySQL为UTF8字符集,MyCat日志分析。
- mysql 学习记录(三)--字段
- HTML5学习记录--约束验证
- Markdown语法学习记录
- MySQL学习笔记——基本语法
- MySQL SubQuery学习记录