目录1、实验简介2、约束

今天我们学习一下 SQL 的约束分类。

1、实验简介

约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。本节实验将在实践操作中熟悉 MySQL 中的几种约束。

2、约束

本节实验会创建几个表,然后对其中的各个字段添加约束,学习添加和测试约束的方法。

2.1 约束分类

听名字就知道,约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。
比如,规定一个用户的用户名不能为空值且没有重复的记录,这就是一种约束规则。

在 MySQL 中,通常有这几种约束:

2.2 建立含约束的表

为了方便介绍这几种约束,我们先建立一个数据库。
注意:提前输入命令开启 MySQL 服务并使用 root 用户登录:

#打开 MySQL 服务
sudo service mysql start        #使用 root 用户登录
mysql -u root                   

然后使用下面的命令,创建数据库

CREATE DATABASE mysql_shiyan;use mysql_shiyan;CREATE TABLE department
(dpt_name   CHAR(20) NOT NULL,people_num INT(10) DEFAULT '10',CONSTRAINT dpt_pk PRIMARY KEY (dpt_name));CREATE TABLE employee
(id      INT(10) PRIMARY KEY,name    CHAR(20),age     INT(10),salary  INT(10) NOT NULL,phone   INT(12) NOT NULL,in_dpt  CHAR(20) NOT NULL,UNIQUE  (phone),CONSTRAINT emp_fk FOREIGN KEY (in_dpt) REFERENCES 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)
);

其中包含的代码可以新建一个数据库 mysql_shiyan,然后在其中创建三张表 department,employee,project,它们包含了各种约束。

命令执行成功之后。
查看一下这个数据库,输入命令 show tables;,可见:

mysql约束_从零开始学 MySQL - SQL 约束分类相关推荐

  1. select计数语句_从零开始学 MySQL SELECT 语句详解

    阅读本文大概需要 7 分钟 前言上篇文章我们学习了 MySQL 的五种约束,今天这篇文章我们来学习下 SELECT 语句.在数据库操作语句中,使用最频繁,也被认为最重要的是 SELECT 查询语句.在 ...

  2. mysql 新增从数据库_从零开始学 MySQL - 创建数据库并插入数据

    目录 1.实验内容 2.实验知识点 3.开发准备 4.实验总结 1.实验内容 本次课程将介绍 MySQL 新建数据库,新建表,插入数据以及基本数据类型的相关知识.本节实验将创建一个名为 mysql_s ...

  3. access 导入 txt sql语句_从零开始学习 MySQL 系列索引、视图、导入和导出

    阅读本文大概需要 8 分钟 前言上篇文章我们学习了数据库和数据表操作语句,今天我们学习下数据库索引,视图,导入和导出的知识.作为基础篇,不会涉及到关于索引和视图的高级应用和核心概念,但是基本操作大家会 ...

  4. mysql5.5从零开始_【MySQL函数】MySQL 5.5从零开始学第六章

    说明:本文总结自:<MySQL 5.5从零开始学>第六章 MySQL中的函数包括: 数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数和加密函数等. 函数: 表示对输入参数值 ...

  5. 从零开始学 MySQL —数据库和数据表操作

    ​前言 今天我们学习下核心的内容,学习并实践如何对数据库表和表中的内容做修改,删除,重命名等操作.(想看看周末还有多少爱学习的小伙伴,你们在哪里呀,O(∩_∩)O哈哈~) 1.目录 数据库操作:删除数 ...

  6. mysql 5 7从零开始学_MYSQL 5.5从零开始学 (刘增杰,张少军) pdf扫描版

    <mysql 5.5从零开始学>主要包括mysol的安装与配置.数据库的创建.数据表的创建.数据类型和运算符.mysql函数.查询数据.数据表的操作(插入.更新与删除数据).索引.存储过程 ...

  7. 兄弟连mysql数据库_兄弟连学python-------MySQL数据库基础知识

    1.数据库系统(database system) 数据库系统是计算机系统中一种专门管理数组资源的系统,数据库存储的是一组或多组经过处理后的数据,管理这个数据库的软件成为数据库管理系统. 组成: 数据库 ...

  8. 财务学习mysql_从零开始学 MySQL - 前言

    前言 如果真的要说程序员用得最多的语言,那应该是 SQL 吧. 不仅是前端,或是后端或多或少都要懂得写一些 SQL.甚至接触过很多业务人员,例如产品经理.运营.财务人员,也懂得写 SQL. SQL 作 ...

  9. mysql导入dat文件_从零开始学习 MySQL 系列--索引、视图、导入和导出

    前言 上篇文章我们学习了数据库和数据表操作语句,今天我们学习下数据库索引,视图,导入和导出的知识. 作为基础篇,不会涉及到关于索引和视图的高级应用和核心概念,但是基本操作大家会了解,尤其是关于索引的内 ...

最新文章

  1. web服务器与网页表单通信,前端与后端通信的几种方式
  2. php源码编译常见错误解决方案大全
  3. WIN7如何禁止IE浏览器自动升级
  4. SAP Spartacus B2B 页面 Disable Confirmation 对话框的显示原理
  5. 磁盘的块大小(Block Size)和扇区大小(Sector Size)
  6. Docker学习总结(18)——阿里超大规模Docker化之路
  7. C++初学之 3. ASCII数值的应用(大小写变换)
  8. mycat mysql 主从_Mycat实现Mysql主从读写分离
  9. java ajaxsubmit_ajaxSubmit返回JSON格式
  10. item_get - 根据ID取聚美优品商品详情
  11. 内部显示不支持自定义分辨率
  12. DoIP节点连接状态管理
  13. PS中图层混合模式的Blend公式
  14. MySQL字段约束及多表查询---讲解三
  15. 【Win10 UWP】微信SDK基本使用方法和基本原理
  16. 华米自有品牌销量过百万,去小米化或进一步加强
  17. find和findstr区别
  18. C语言幻方矩阵的求解
  19. Apache Calcite 论文翻译
  20. 从原始文档到KNN分类算法实现(一)

热门文章

  1. 【翻译自mos文章】job 不能自己主动运行的解决方法
  2. 【转】IE劫持原理 BHO
  3. java对xml文件做增删改查------摘录
  4. Hdu 1072 【广搜】.cpp
  5. 火星人敏捷开发手册 原10.31版本已于10.14提前发布,特此通知
  6. react 子组件ref_React中Ref 的使用方法详解
  7. java 方法重载 应用举例,Java 实例 - 重载(overloading)方法中使用 Varargs
  8. wp comments post.php,通过修改wp-comments-post.php 防wordpress垃圾(spam)评论 | 沉默过客
  9. mysql6支持connect by_mysql 实现oracle start with connect by递归
  10. java读取ini_java 读取ini配置文件