- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3. 约束
MySQL
约束的概念
创建表时要确保数据的完整性 ,实施完整性约束是保证数据完整性的重要手段。
约束分为
域完整性 限制数据类型、非空约束、默认值约束、外键约束
实体完整性 唯一约束、主键约束
引用完整性 外键约束
通过约束 ,MySQL数据库对于数据库操作行为进行限定 ,某些违反约束的操作行为会被
MySQL数据库拒绝。
主键约束
一个设计好的数据库中 ,主键对每条记录而言都是不变的 ,唯一的标识 (例如人的身份证
号 )。
可以使用 PRIMARY KEY 约束为表指定主键。
由于主键的 “特殊性” ,充当主键的字段的值不允许为NULL ,也不允许有重复的。
对于INT型字段作主键 (常常如此 ),惯例是使用 AUTO_INCREMENT 约束来达到非空不重
复 的要求。
主键通常是少有变化的 ,所以 ,如果一个字段被声明为主键 ,这通常表示它的值极少被修改。
在MySQL中创建主键约束的方式有三种
写在字段定义部分
直接使用 PRIMARY KEY 关键字
单独写在建表语句的后部
PRIMARY KEY (主键字段)
在建表之后再添加约束
ALTER TABLE 表名 ADD CONSTRAINT 主键id PRIMARY KEY (主键字段);
其中 主键id 并不是必须的
删除主键约束
ALTER TABLE 表名 DROP PRIMARY KEY;
AUTO_INCREMENT 修饰符
AUTO_INCREMENT 修饰符 适用于INT类型的字段 ,表明MySQL应该为该字段生成一个数
字 ,每次在之前的数值的基础上加1。对于主键 ,这非常有用 。
一张MySQL的表中 , 能有一个 AUTO_INCREMENT 字段 ,而且这个字段还必须定义为主
键。
唯一约束
唯一约束使用UNIQUE关键字 ,通常直接写在建表语句中的字段定义之后。
被唯一约束的字段 ,在整张表中 ,不允许有多条记录的该字段值一致。即当所插入的数据在数
据库中已存在时 ,插入语句失败。
在MySQL中创建主键约束的方式有两种
写在字段定义部分
直接使用 UNIQUE 关键字
单独写在建表语句的后部
UNIQUE (主键字段) ,这种方式较为少见。
默认约束
可以使用 DEFAULT 修饰符为字段指定一个默认值。
当插入数据时 ,如果没有向字段中插入值时 ,就会使用默认值。
如果明确使用 DEFAULT 修饰符 ,MySQL 会 自动根据该字段是 NULL 还是 NOT NULL 自动
生成默认值。
如果字段是 NULL ,则默认值为 NULL。
如果字段是 NOT NULL ,MySQL 对于数值类型插入0 ,字符串类型插入空字符串 ,时间戳类
型插入当前 日期时间。
默认约束都是直接写在字段定义的后面。
非空约束
可以在每个字段定义后面放置 NULL 和 NOT NULL 修饰符来指定这个字段是否可以为空 ,还
是必须天上数据。不写时默认为 NULL 。
对于被修饰为 NOT NULL 的字段 ,在插入数据时不允许插入NULL值。
但是对于 自增和TIMESTAMP字段 ,这个规则不适用。插入NULL值时 ,会导致插入下一个 自
增值或者当前时间戳。
非空约束都是直接写在字段定义的后面。
外键约束
外键约束用于在数据库中建立逻辑上的表与表之间的关联。
在MySQL中创建外键约束的方式有三种
写在字段定义部分
直接使用 REFERENCES 主表名 (主键名 )
单独写在建表语句的后部
FOREIGN KEY 外键id (外键字段) REFERENCES 主表(主键)
在建表之后再添加约束
ALTER TABLE 表名 ADD CONSTRAINT 外键id FOREIGN KEY(外键字段)
REFERENCES 主表(主键);
虽然建立外键时外键id是可选的 ,但是考虑到删除外键时需要指定被删除的外键id ,所以
此处的外键id通常总是存在的。
外键id通常以 fk_ 开头。
删除外键约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键id;
您可能关注的文档
- 4. 表之间的关系.pdf
- 6. 更复杂的WHERE条件.pdf
- 7. 聚集函数和分组查询.pdf
- 8. 表的连接查询.pdf
- 10. MySQL中的数据库事务.pdf
- 9.MySQL如何使用DML语句.pdf
- 5. MySQ中的SELECT 语句介绍.pdf
- 2. MySQL如何创建表的操作.pdf
- 1. MySQL 中的数据类型.pdf
- 0. MySQL数据库学习素材.pdf
- 2025四川天府银行社会招聘备考题库(攀枝花)含答案详解(最新).docx
- 2025四川银行首席信息官社会招聘备考题库及完整答案详解1套.docx
- 2025四川天府银行社会招聘备考题库(攀枝花)带答案详解.docx
- 2025四川天府银行社会招聘备考题库(成都)含答案详解(a卷).docx
- 2025四川广元市利州区选聘社区工作者50人备考题库及答案详解(基础+提升).docx
- 2025天津银行资产负债管理部总经理或副总经理招聘1人备考题库含答案详解(典型题).docx
- 2025四川天府银行社会招聘备考题库(西充)附答案详解(考试直接用).docx
- 2025年中国民生银行南宁分行招聘2人备考题库及答案详解(全优).docx
- 2025天津银行高级研究人才招聘备考题库附答案详解(达标题).docx
- 2025大连银行营口分行招聘2人备考题库及参考答案详解一套.docx
原创力文档


文档评论(0)