zoukankan      html  css  js  c++  java
  • 三、约束

    一、约束类型

    • 非空约束(not null)

    • 唯一性约束(unique)

    • 主键约束(primary key) PK

    • 外键约束(foreign key) FK

    • 检查约束(目前 MySQL 不支持、Oracle 支持)

    二、创建表时添加约束

    2.1查询表中的约束信息

    SHOW KEYS FROM 表名

    2.2示例一

    创建 departments 表包含 department_id 该列为主键且自动增长,department_name 列不允许重复,location_id 列不允含有空值。

    1 create table departments(
    2 department_id int primary key auto_increment,
    3 department_name varchar(30) unique,
    4 location_id int not null);

    2.3示例二

    创建 employees 表包含 employees_id 该列为主键且自动增长,last_name 列不允许含有 空值,email 列不允许有重复不允许含有空值,dept_id 为外键参照 departments 表的主键。

    create table employees(
    employees_id int primary key auto_increment,
    last_n ame varchar(30) not null,
    email varchar(40) not null unique,
    dept_id int,
    constrain temp_fk foreign key(dept_id) references departments(department_id));

    三、修改表实现约束的添加与删除

    3.1主键约束

    3.1.1 添加主键约束

    ALTER TABLE 表名 ADD PRIMARY KEY(列名)

    示例 :

    将 emp 表中的 employee_id 修改为主键且自动增长

    添加主键:alter table emp add primary key(employee_id);

    添加自动增长:alter table emp modify employee_id int auto_increment;

    3.1.2 删除主键约束

    ALTER TABLE 表名 DROP PRIMARY KEY

    注意:删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后在删除 主键。

    示例:

    删除 employee_id 的主键约束。

    去掉自动增长: alter table emp modify employee_id int;

    删除主键:alter table emp drop primary key;

    3.2非空约束

    3.2.1 添加非空约束

    ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL

    示例 :

    向 emp 表中的 salary 添加非空约束。

    alter table emp modify salary float(8,2) not null;

    3.2.2 删除非空约束

    ALTER TABLE 表名 MODIFY 列名 类型 NULL

    示例 :

    删除 salary 的非空约束。

    alter table emp modify salary float(8,2) null;

    3.3唯一约束

    3.3.1 添加唯一约束

    ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名)

    示例:

    向 emp 表中的 name 添加唯一约束。

    alter table emp add constraint emp_uk unique(name);

    3.3.2 删除唯一约束

    ALTER TABLE 表名 DROP KEY 约束名

    示例:

    删除 name 的唯一约束。

    alter table emp drop key emp_uk;

    3.4外键约束

    3.4.1 添加外键约束

    ALTER TABLE 表 名 ADD CONSTRAINT 约 束 名 FOREIGN KEY( 列 名 ) REFERENCES 参照的表名(参照的列名)

    示例一:

    修改 emp 表,添加 dept_id 列。

    alter table emp add column dept_id int; 6.3.4.1.2

    示例二:

    向 emp 表中的 dept_id 列添加外键约束。

    alter table emp add constraint e_fk foreign key(dept_id) references departments(department_id);

    3.4.2 删除外键约束

    删除外键:

    ALTER TABLE 表名 DROP FOREIGN KEY 约束名

    删除外键索引(索引名与约束名相同):

    ALTER TABLE 表名 DROP INDEX 索引名

    示例:

    删除 dept_id 的外键约束。

    删除外键:alter table emp drop foreign key e_fk;

    删除索引:alter table emp drop index e_fk;

  • 相关阅读:
    jQuery UI vs EasyUI
    javascript数组元素的添加、删除与插入以及参数数组的使用
    ExtJS中get、getDom、getCmp、getBody、getDoc使用
    ASP.net 中 OutputCache 指令各个参数的作用
    母版页如何页面部分缓存
    Cache OutputCache ASP.NET缓存
    如何使用 @ OutputCache 指令的 VaryByCustom 属性来缓存不同版本的页面
    页面级缓存@ OutputCache
    存储过程DataGrid分页及注意点
    vs2005中 Global.asax 没有 Global.asax.cs 问题解决
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12794577.html
Copyright © 2011-2022 走看看