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;

  • 相关阅读:
    怎么让百度搜到第一页有自己的
    凡信(超仿微信Android版)开源了,内有源码下载
    可以在GitHub或者码云里 直接搜索 项目 比如 哔哩哔哩
    看雪论坛 破解exe 看雪CTF2017第一题分析-『CrackMe』-看雪安全论坛
    Tomcat+Apache集群方案
    ddms 安卓录制
    Less基础教程
    div+css中height:auto !important; height:663px; min-height:663px !important;区别
    js自定义修改复选框单选框样式,清除复选框单选框默认样式
    css input checkbox和radio样式美化
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12794577.html
Copyright © 2011-2022 走看看