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

约束分类:

2、删除数据库语句为DROP DATABASE mysql_shiyan,删除了上一节的数据库之后,然后给数据库的表新建约束

2.1 主键

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

还有一种特殊的主键——复合主键。主键不仅可以是表中的一列,也可以由表中的两列或多列来共同标识,比如:

2.2默认值约束

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

2.3 唯一约束

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

比如一个订单重复或者并发点击了两次,这时候如果数据库对订单号做了唯一约束,那么点击提交是不成功的。

2.4 外键约束

这个没有实际使用场景,暂不写,有了再补充。

首先是外键的定义

如果一个字段X在一张表(表一)中是主关键字,而在另外一张表(表二)中不是主关键字,则字段X称为表二的外键;

2.5 非空约束

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

实验总结:

在MySQL中违反非空约束,不会报错,只会有警告。

本节实验中通过一个数据库实例了解了主键、默认值、外键、非空、唯一这几种约束的特性,这几种约束都是最常见的,需要仔细理解每种约束的含义及使用场景。下一节我们将进入 SELECT 语句的学习。

转载于:https://www.cnblogs.com/mecy1222/p/7286267.html

第三节基础篇—SQL的约束相关推荐

  1. SQL 基础篇 SQL 16 查找GPA最高值

    SQL基础篇(汇总)刷题传送门 题目链接 题面 样例输入 drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` i ...

  2. 《数据库》基础篇-SQL语言

    第一节:MySQL安装及启动 启动 法一 在cmd中输入命令service.msc打开windows的系统服务列表,找到MySQL右键直接启动/停止 法二 直接使用命令行:启动net start my ...

  3. 渗透学习笔记--基础篇--sql注入(数字型)

    环境:dvwa 1.7数据库:mysql dvwa的安全等级:medium 一.分析和查找注入点 (1)知识点回顾 如果上一篇有好好读过的同学应该知道,我们上一篇遇到的字符型注入.也即是通过Get或者 ...

  4. mysql sql注入工具_基础篇——SQL注入(工具注入)

    注入工具 上一篇介绍了SQL注入漏洞以及一些手工注入方法,本篇介绍一下注入工具 1.sqlmap sqlmap属于比较经典的一个注入工具,功能强大,还自带一些绕过参数 使用方法: sqlmap.py ...

  5. MySQL基础篇-SQL

    目录 一.DDL 1.库操作 2.表操作 1.查询创建 2.数据类型 3.案例 4.修改 5.删除 二.DML 1.添加数据 2.修改数据 3.删除数据 三.DQL 1.基础语法 2.基础查询 3.条 ...

  6. SQL Server调优系列基础篇(子查询运算总结)

    前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴 ...

  7. SQL Server调优系列基础篇(联合运算符总结)

    前言 上两篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符的优化技巧,本篇我们总结联合运算符的使用方式和优化技巧. 废话少说,直接进入本篇的主题. 技术准备 基于SQL Server200 ...

  8. oracle数据定义语句,oracle(sql)基础篇系列(3)——数据维护语句、数据定义语句、伪列...

    oracle(sql)基础篇系列(三)--数据维护语句.数据定义语句.伪列 DML语句 insert 向表中插入新的记录 --三种插入方式 --(1)不写字段的名字,直接按照字段的顺序把值逐个往里插 ...

  9. SQL学习——基础篇

    SQL学习--基础篇 0. 数据库的概念 0.1 数据库设计的基本步骤 1. SQL的语法特点 2. SQL数据类型 2.1 常用类型 2.2 text类型 2.3 number类型 2.4 date ...

最新文章

  1. fmod实现声音波形_“老张说数理化”—中考物理专题02-声音与环境(收藏可打印)...
  2. FC8下安装mplayer
  3. SQL Server中,with as使用介绍
  4. 08:石头剪刀布【一维数组】
  5. [转载] Dreamweaver——02 创建网页的基本对象
  6. 【Linux】如何查看命令运行历史时间以及操作人IP
  7. 大数据调度平台Airflow版本升级方案文档(1.X升级到2.X)
  8. SAP PO Delivery Address的决定因素
  9. js 对象中添加新属性
  10. Python爬取猪八戒网站
  11. 宇视摄像机实况画面不清晰排查方法
  12. echarts引入省份地图 失败原因
  13. python:掌握类的基本方法。定义一个Circle类,根据圆的半径求周长和面积。 再由Circle类创建2个圆对象,其半径分别为5和10,要求输出各自的周长和面积
  14. c语言程序的命令行输入输出,C语言入门教程-命令行参数
  15. PM、RD、FE、UE...等等这些互联网相关的缩写
  16. Navigating to current location (/) is not allowed
  17. EPLAN电气项目图纸 完整的一套图纸 变频器
  18. NBTSCAN的使用,查找arp病毒工具。
  19. photoshop CC2017好玩的脸部智能识别液化
  20. Word 高质量转 PDF

热门文章

  1. era5数据内容说明_mysql数据库自带主从配置
  2. 免安装mysql配置图解_mysql免安装版配置步骤详解分享
  3. SQL面试题--(26~46)
  4. opencv 调整图像亮度和对比度
  5. python后台架构Django教程——admin管理员站点
  6. matlab2c使用c++实现matlab函数系列教程-sort函数
  7. vivado和modelsim联合仿真实现占空比1:15的分频
  8. xilinx sdk退出Debug模式回到C开发布局
  9. 项目实例:模十状态机与7段译码器显示系统,Quartus环境(文末附程序,百度文库里的)
  10. Navicat无法连接SqlServer数据库