美文网首页
基础篇 - SQL 的约束

基础篇 - SQL 的约束

作者: 狂舞曲少WA几个好不 | 来源:发表于2016-12-31 12:15 被阅读0次

一、实验简介
约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。

二、实验内容
1、约束分类

约束类型 主键 默认值 唯一 外键 非空
关键字 PRIMARY KEY DEFAULT UNIQU FORENGIN KEY NOT NULL

2、建立含约束表

1.可以使用git命令将需要的数据文件下载到本地文件夹:
git clone http://git.shiyanlou.com/shiyanlou/SQL3

2.在MySQL控制台中,加载sql数据文件
source /home/shiyanlou/Desktop/SQL3/MySQL-03-01.sql

3、主键

主键 (PRIMARY KEY)是用于约束表中的一行,作为这一行的标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要。
注意:行中的主键不能有重复且不能为空。

4、默认值约束

默认值约束 (DEFAULT) 规定,当有 DEFAULT 约束的列,插入数据为空时,将使用默认值。

注意:DEFAULT 约束只会在使用 INSERT 语句时体现出来,INSERT语句中,如果被 DEFAULT 约束的位置没有值,那么这个位置将会被 DEFAULT 的值填充。

5、唯一约束

唯一约束 (UNIQUE) 比较简单,它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。

注意:当 INSERT 语句新插入的数据和已有数据重复的时候,如果有 UNIQUE约束,则 INSERT 失败

6、外键约束

外键 (FOREIGN KEY) 既能确保数据完整性,也能表现表之间的关系。
一个表可以有多个外键,每个外键必须 REFERENCES (参考) 另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。

注意:在 INSERT 时,如果被外键约束的值没有在参考列中有对应,则INSERT 失败

7、非空约束

非空约束 (NOT NULL),听名字就能理解,被非空约束的列,在插入值时必须非空。

注意:在MySQL中违反非空约束,不会报错,只会警告,标记为0值

CREATE TABLE department
(
  dpt_name   CHAR(20) NOT NULL,              //非空约束
  people_num INT(10) DEFAULT '10',           //默认值约束
  CONSTRAINT dpt_pk PRIMARY KEY (dpt_name)   //主键约束
//CONSTRAINT 可自定义主键名 dpt_pk == dpt_name 均作为该表主键
);

CREATE TABLE employee
(
  id      INT(10) PRIMARY KEY,                     //主键约束 id 作为该表主键
  name    CHAR(20), 
  age     INT(10),
  salary  INT(10) NOT NULL,                        //非空约束
  phone   INT(12) NOT NULL,                        //非空约束
  in_dpt  CHAR(20) NOT NULL,                      //非空约束
  UNIQUE  (phone),                                //唯一值约束,phone值在该表中唯一
  CONSTRAINT emp_fk FOREIGN KEY (in_dpt) REFERENCES department(dpt_name)
//外键约束 in_dpt,并自定义外键名 emp_fk 参考department表 dpt_name 列 
//使用INSERT语句时,该表in_dpt列值必须在department表dpt_name中存在
);
 
CREATE TABLE project
(
  proj_num   INT(10) NOT NULL,
  proj_name  CHAR(20) NOT NULL,
  start_date DATE NOT NULL,
  end_date   DATE DEFAULT '2015-04-01', //默认约束
  of_dpt     CHAR(20) REFERENCES department(dpt_name), //外键约束
  CONSTRAINT proj_pk PRIMARY KEY (proj_num,proj_name)
   //复合主键约束(proj_num,proj_name),并自定义主键名proj_pk
 );

相关文章

  • 基础篇 - SQL 的约束

    一、实验简介约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。 二、实验内容1、约...

  • 数据库基础知识整理-SQL约束和使用

    数据库基础知识整理-SQL约束和使用 SQL约束 SQL 约束用于规定表中的数据规则,可以在创建表时规定(通过 C...

  • 210516:Oracle删除约束(6个)-Oracle数据库中

    一. oracle 删除主键约束_SQL基础知识:约束(实例) 给大家介绍SQL中六种工作中经常使用到的约束,供大...

  • 每天一SQL语句(03):SQL 语句进阶篇-下

    【开篇】SQL 语句进阶篇-下 【1】SQL 约束 1、约束用于限制加入表的数据的类型。可以在创建表时规定约束(通...

  • 数据库基础Database2-中级SQL

    数据库基础Database2 三 中级SQL 中级SQL主要包含形式更复杂的SQL查询、视图定义、事务、完整性约束...

  • SQL基础01

    什么是SQL SQL中常用的关键字 SQL中的语句的种类 SQL中约束 简单约束: 示例: 主键: 添加主键约束原...

  • 黑马SQL笔记 - 基础篇 - 3. 约束

    约束 约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。 约束描述关键字非空约束限制该字段的数据不能为...

  • sql中表级约束和列级约束

    sql中表级约束和列级约束,在SQL SERVER中, (1) 对于基本表的约束分为列约束和表约束 约束是限制用户...

  • 数据库(2)

    SQL 约束(Constraints) SQL 约束用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约...

  • 面试积累之数据库篇(六)

    事务的4大属性:原子性,隔离性,一致性,持久性 sql完整性约束:主键约束唯一约束检查约束外键约束默认约束 sql...

网友评论

      本文标题:基础篇 - SQL 的约束

      本文链接:https://www.haomeiwen.com/subject/wkbvvttx.html