MySQL基础入门—SQL 的约束

MySQL数据库 第0章:每章SQL命令总结 MySQL数据库 第0章:每章SQL命令总结MySQL数据库 第1章:数据库入门MySQL数据库 第2章:数据库基本操作MySQL数据库 第3章:数据类型与约束MySQL数据库 第4章:数据库设计MySQL数据库 第5章:单表操作MySQL数据库 第6章:多表操作MySQL数据库 第7章:用户与权限 MySQL数据库 第1章:数据库入门 知识点: MySQL数据库 第1章:数据库入门 对应SQL命令: # 退出MySQL服务器登录,以下两种退出方式,任性一种即可 exit; quit; # 设置密码 AL 阅读详情

约束

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

约束分类

听名字就知道,约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。

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

约束类型:主键默认值唯一外键非空
关键字:PRIMARY KEYDEFAULTUNIQUEFOREIGN KEYNOT NULL

建立含约束的表

为了方便介绍这几种约束,先建立一个数据库:

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

在这里我已经提前准备好一个包含新建一个数据库的代码文件,所以可以通过加载文件中的数据,直接建立好一个数据库

加载文件中的数据,需要在 MySQL 控制台中输入命令:

source /home/ldl/MySQL.sql;


查看一下这个数据库,输入命令 show tables;,可见:


主键

主键 (PRIMARY KEY)是用于约束表中的一行,作为这一行的唯一标识符,在一张表中通过主键就能准确定位到一行,主键用来表示一个特定的行,没有主键,更新或删除表中特定的行很困难,因此主键十分重要。主键不能有重复且不能为空。

在 MySQL.sql 中,这里有主键:


列名id那一行最后的PRIMARY KEY是主键,这是定义主键的一种方法

定义主键的第二种方法:


上面图片中最后一行为定义主键的语句,其中dpt_p为主键名字(自定义),PRIMARY KEY后面括号里限定了所要定义主键的列名)

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


proj_pk 是主键名字(自定义)PRIMARY KEY后面括号里为限定多列列名)

默认值约束

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

在 MySQL.sql 中,这段代码包含了 DEFAULT 约束:

10

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

# 正常插入数据
INSERT INTO department(dpt_name,people_num) VALUES('dpt1',11);

#插入新的数据,people_num 为空,使用默认值
INSERT INTO department(dpt_name) VALUES('dpt2');

输入命令 SELECT * FROM department;,可见表中第二行的people_num 被 DEFAULT 的值 (10) 填充:


唯一约束

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

11

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

INSERT INTO employee VALUES(01,'Tom',25,3000,110110,'dpt1');
INSERT INTO employee VALUES(02,'Jack',30,3500,110110,'dpt2');

结果如图:


因为第二次输入的数据中的phone项和以前数据库中有的项内容重复,所以报错。

外键约束

外键 (FOREIGN KEY) 既能确保数据完整性,也能表现表之间的关系。

一个表可以有多个外键,每个外键必须 REFERENCES (参考) 另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。

12-

在 INSERT 时,如果被外键约束的值没有在参考列中有对应,比如以下命令,参考列 (department 表的 dpt_name) 中没有dpt3,则INSERT 失败:

INSERT INTO employee VALUES(02,'Jack',30,3500,114114,'dpt3');


非空约束

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

13

在MySQL中违反非空约束,不会报错,只会有警告,比如以下语句:

#INSERT 成功 age 为空,因为没有非空约束,表中显示 NULL
INSERT INTO employee(id,name,salary,phone,in_dpt) VALUES(03,'Jim',3400,119119,'dpt2'); 

#警告 salary 被非空约束,值为空,表中显示0
INSERT INTO employee(id,name,age,phone,in_dpt) VALUES(04,'Bob',23,123456,'dpt1');

结果如图,出现警告,但还是插入数据成功,5.6 版本以上的 MySQL 会报错,禁止插入不符合非空约束的数据:



第12章 STM32+BH1750光照传感器+OLED模块显示环境光照强度 相比光敏传感器,它可以直接输出环境光照强度的数值(范围是0~65535lx),非常适合懒人党,各位的传感器买到手后,赶紧跟着文章试试吧! 阅读详情

相关推荐

微信h5 支付,已经获得weixin://wap/pay?prepayid,但是无法调起微信客户端支付

结果几个接口,最终获得到到一直包含调起微信客户端的支付链接 但是直接打开这个页面,却不能调起微信客户端支付,原因是,在打开新页面的时候,需要设置a.rel = "noreferrer"; <body> <a href="javascript:void(0)" onclick="openNewWindowNoreferrer(this)">点击支付</a&...

qq_31683775的博客 4万+

MySQL数据库——MySQL主键(PRIMARY KEY)

主键(PRIMARY KEY)的完整称呼是“主键约束”,是MySQL 中使用最为频繁的约束。一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一个主键。

Itmastergo的博客 1万+

IMU预积分--详细推导过程

IMU预积分推导

weixin_51547017的博客 2万+

MySQL主键约束(PRIMARY KEY ,PK)

MySQL主键约束(PRIMARY KEY ,PK)MySQL主键约束(PRIMARY KEY ,PK)

weixin_43270539的博客 3348

FortiGate-60E防火墙忘记密码?用Console线+TFTP重装固件v7.0.9全流程

本文详细介绍了当FortiGate-60E防火墙忘记密码且物理重置无效时,如何通过Console线连接并利用TFTP服务器重装固件(如v7.0.9)的全流程。从恢复原理、工具准备、网络配置到逐步执行命令,提供了完整的实战指南,帮助管理员彻底恢复设备出厂设置并重置密码。

snow3的博客 333

电力现货市场出清机制与节点电价计算实战解析

本文深入解析了电力现货市场的出清机制,特别是节点边际电价的计算原理与实战应用。通过一个基于Matlab和IEEE30节点系统的完整案例,详细演示了如何利用最优潮流模型求解市场出清价格,并提取节点电价,揭示了电网阻塞如何影响实时电价的形成。

weixin_29061425的博客 949

MySQL主键约束-PRIMARY KEY

@TOC 主键即主键约束。分为单字段主键和多字段组合主键。 使用主键时,应注意:       1.每个表只能有一个主键       2.主键不能为NULL,不允许重复,必须唯一标识一条记录       3.联合主键需唯一且最小,即去掉联合主键中的任一字段,剩余字段构成的主键值不唯一 接下来,介绍设置主键约束和删除主键约束的方法 建表时设置主键约束 1.单字段主键 (1) 在定义字段时,指定主键 # 语法1: CREATE TABLE <数据表> ( <字段名> <数据类型&

weixin_49256582的博客 5052

浅谈武术擂台格斗机器人大赛

武术擂台机器人赛是工科类专业的一个跨学科的竞赛项目,它涵盖了机械结构、硬件电路和计算机程序等技术领域。笔者在校期间有幸参加过四次这样的比赛,有成功也有失败,对此深有感悟。本文仅为个人观点,有说得不对的地方,望积极指出,希望能帮助到有需要的人。

weixin_43811044的博客 1万+

mysql primary key语句_mysql sql primary key,key,index

mysql 中的 sql 语句:[sql1]create table `t1`(name char(30) key,age int(4));其中的 key 表示 name 主键,相当于 name char(30) primary key;[sql2]create table `t2`(name char(30),age int(4),key(`name`));其中的 key 表示 name 为索引...

weixin_39632291的博客 293

渗透测试实战—云渗透(AK/SK泄露)

渗透测试实战思路分享:getshell方法及横向移动方法,云安全(AK/SK泄露)

网安日记本的博客 4049

YOLOv13改进策略【多YAML融合】| HWD + DSC3k2_PConv + Detect_MBConv

本文记录的是利用HWD + DSC3k2_PConv + Detect_MBConv改进YOLOv13,分别涉及骨干、颈部和检测头部分的改进。一方面按照此配置,其工作量及创新程度能够满足论文发表的需求,另一方面是一些难以融合多个YAML的举例,以帮助大家理解如何将多个YAML整合到一个YAML中。小波下采样:一个简单但有效的语义分割下采样模块。块由两个主要块组成:无损特征编码块和特征表示学习块。HWD模块与其他下采样模块对比:保留信息能力:传统的下采样方法(如最大池化、平均池化和步幅卷积等)会导致信息丢失,

Limiiiing的博客 495

MySQL入门篇(SQL语句、函数、约束、多表查询、事务)

本文章主要采用文字+代码+例题+运行结果的形式,讲解了MySQL中的基础知识,包括SQL语句(DDL、DML、DQL、DCL)、函数(数值函数、字符串函数、日期函数、流程函数)、约束(主要讲了主键和外键)、多表查询(内连接、外连接、子查询、联合查询)以及事务(事务特性、并发事务引起的问题以及隔离机制如何避免这些问题)。

weixin_50164178的博客 1161

实现端到端加密的WebRTC视频会议终端

需要注意的是,上述示例代码中没有涉及到具体的加密算法和密钥交换过程,而是通过WebRTC API自动处理了加密和密钥交换的细节。然后,我们通过信令服务器将本地SDP发送给对方,并接收对方的SDP。最后,我们将对方的SDP设置为远程描述,并将最终的连接建立起来。最后,我们将对方的SDP设置为远程描述,并建立最终的连接。在本文中,我们将探讨如何使用WebRTC构建一个加密的视频会议终端,并提供相应的源代码。在本文中,我们将探讨如何使用WebRTC构建一个加密的视频会议终端,并提供相应的源代码。

WaJulia的博客 432

认真学SQL——MySQL入门之表中约束——约束数据的插入和删除

建表的时候添加默认约束: create table 表名(主键名 主键类型 primary key ,字段名 字段类型 default 默认值, 其他字段...);建表的时候添加非空约束: create table 表名(主键名 主键类型 primary key ,字段名 字段类型 not null , 其他字段...);建表的时候添加主键自增约束: create table 表名(主键名 主键类型 primary key auto_increment , 其他字段...);

weixin_65694308的博客 896

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

MySQL入门指南2:SQL约束及DQL表查询

SQL约束是数据库管理系统中用于确保数据完整性的重要机制,主要包括四种约束类型:主键约束、非空约束、唯一约束和默认值约束。主键约束(PRIMARY KEY)具有唯一标识记录的特性,相当于非空+唯一+索引,每个表只能有一个主键且不能为NULL。非空约束(NOT NULL)强制字段不允许空值。唯一约束(UNIQUE)确保字段值不重复但允许多个NULL值。默认值约束(DEFAULT)可以在未指定值时自动填充预设值。此外,主键常配合自增属性(AUTO_INCREMENT)使用,实现自动编号功能。

A5522000的博客 809

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

mysql学习教程,从入门到精通,SQL 约束(Constraints)(41)

在数据库设计中,约束(Constraints)用于确保数据的准确性和完整性。它们通过限制可以插入到数据库表中的数据类型来防止无效数据。SQL 中有几种常见的约束类型,包括主键约束(Primary Key)、外键约束(Foreign Key)、唯一约束(Unique)、非空约束(NOT NULL)和检查约束(CHECK)。

qq_45746668的博客 1247

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

数据库技术一:MySQL 基础和 SQL 入门,单表、约束和事务

什么是数据库 数据库(DataBase) 就是存储和管理数据的仓库 其本质是一个文件系统, 还是以文件的方式,将数据保存在电脑上 为什么使用数据库 存储方式 优点 缺点 内存 速度快 不能够永久保存,数据是临时状态的 文件 数据是可以永久保存的 使用IO流操作文件, 不方便 数据库 1.数据可以永久保存 2.方便存储和管理数据 3.使用统一的方式操作数据库(SQL) 占用资源,有些数据库需要付费(比如Oracle数据库) 常见的数据库:

bier_zm的博客 711

mysql 导入sql文件 外键报错_MySQL基础入门学习【4】约束2

约束: 保证数据的一致性和完整性约束分为(约束所针对的字段的多少决定): 表级约束和列级约束约束类型: NOT NULL(非空约束); PRIMARY KEY(主键约束); UNIQUE KEY(唯一约束); DEFAULT(默认约束); FOREIGN KEY (外键约束)1. 外键约束:(1)作用:保证数据一致性、完整性;实现数据表的一对一或一对多关系(2)要求:父表与子表必须使用相同的存储引...

weixin_28785757的博客 356

数据库技术:MySQL 基础和 SQL 入门,单表、约束和事务

Introduction to MySQL and SQL Basic Concepts What is Database? 数据库就是存储和管理数据的仓库。 数据库是一个文件系统。它以文件的方式将数据保存在电脑上。 想了解更多,欢迎关注我的微信公众号:Renda_Zhang Why Should We Use Database? Comparison among different ways of storing data: 内存 优点:速度快。 缺点:不能永久保存,数据是临时状态的。 文件

qq_40286307的博客 263

外联约束关系的取消mysql_《SQL必知必会》读书笔记,30分钟入门SQL!

点击关注上方“SQL数据库开发”,设为“置顶或星标”,第一时间送达干货本篇文章是 《SQL 必知必会》 的读书笔记,SQL必知必会的英文名叫做 Sams Teach Yourself in 10 Minutes。但是,我肯定是不能够在10分钟就能学会本书所有涉及到的sql,所以就起个名字叫30分钟学会SQL语句。目前手边的数据库是 mysql,所以以下示例均是由 mysql 演示。由于现在大部分工...

weixin_35934979的博客 125

iBATIS入门介绍和SQL的转义字符及mysql 约束相关知识

iBATIS入门程序 --转自:http://developer.51cto.com/art/200907/137982.htm iBATIS入门程序第一步:author.java package com.ibatis;   public class Author {       private int id;       private String name;       public

mike_caoyong的专栏 3544

mysql入门操作

MySQL是一种开源的关系型数据库管理系统(RDBMS),使用结构化查询语言(SQL)进行数据管理,支持多用户、多线程及跨平台操作,具有高可靠性、高性能和易扩展性,广泛应用于Web应用、企业系统等领域,提供事务支持、ACID特性及多种存储引擎,是LAMP/LNMP等开发架构的核心组件之一。

weixin_72380152的博客 973

MySQL数据库零基础入门,数据库原理、SQL详解、库表操作、字段约束、基础查询全覆盖

本篇带你零基础入门MySQL,从数据库原理、SQL语法、库表操作、字段约束、基础查询手把手吃透,零基础也能一次性学懂。

zhangjw34的专栏 241

MySQL从入门到精通(四):SQL基础操作

SQL(Structured Query Language,结构化查询语言)是专门用于管理关系型数据库的标准化编程语言,它允许我们对数据库进行查询、插入、更新和删除等操作。本文详细介绍了SQL基础操作,包括数据库和表的创建与管理、MySQL数据类型、CRUD操作、WHERE子句和约束索引。掌握这些基础知识后,你已经具备了使用MySQL处理基本数据操作的能力。在下一篇文章中,我们将深入探讨复杂查询多表联结(JOIN)子查询和嵌套查询集合操作(UNION, INTERSECT等)高级分组和聚合。

m0_65382359的博客 1098

mysql入门

在 MySQL 中,创建表时可以使用各种约束来确保数据的完整性和一致性。一般来说sql语句不区分大小写,但是为了方便识别,会把关键字大写,然后把表名、列名和其他名称小写;mysql是一种基于关系的数据库;简单理解就是不同的表直接存在着一些关系,可以链接处理。通过使用这些约束,可以确保数据库中的数据在插入和更新时始终保持一致性和准确性。按照以下几类进行区分,比如。

ZhangLH66的博客 659

【MySQL】基础入门知识

数据库基础入门知识,注重实践,理论一笔带过

面对疾风吧,哈撒给! 1373
上一篇: MySQL基础入门—创建数据库并插入数据
下一篇: 内存寻址原理
FallingU
博客等级 码龄11年 61粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值