




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8节约束和分页,讲师:李玉婷,目标,通过本章学习,您将可以:描述约束创建和维护约束数据库分页,什么是约束,为了保证数据的一致性和完整性,SQL规范以约束的方式对表数据进行额外的条件限制。约束是表级的强制规定可以在创建表时规定约束(通过CREATETABLE语句),或者在表创建之后也可以(通过ALTERTABLE语句),约束,有以下六种约束:NOTNULL非空约束,规定某个字段不能为空UNIQUE唯一约束,规定某个字段在整个表中是唯一的PRIMARYKEY主键(非空且唯一)FOREIGNKEY外键CHECK检查约束DEFAULT默认值,具体细节可以参阅W3Cschool手册,注意:MySQL不支持check约束,但可以使用check约束,而没有任何效果;,根据约束数据列的限制,约束可分为:单列约束:每个约束只约束一列多列约束:每个约束可约束多列数据,根据约束的作用范围,约束可分为:列级约束只能作用在一个列上,跟在列的定义后面表级约束可以作用在多个列上,不与列一起,而是单独定义,NOTNULL约束,非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。Null类型特征:所有的类型的值都可以是null,包括int、float等数据类型空字符串”不等于null,0也不等于null,NOTNULL约束,保证列值不能为空:,CREATETABLEemp(idINT(10)NOTNULL,NAMEVARCHAR(20)NOTNULLDEFAULTabc,sexCHARNULL);,NOTNULL约束,创建notnull约束:,增加notnull约束:,ALTERTABLEempMODIFYsexVARCHAR(30)NOTNULL;,ALTERTABLEempMODIFYsexVARCHAR(30)NULL;,NOTNULL约束,取消notnull约束:,ALTERTABLEempMODIFYNAMEVARCHAR(15)DEFAULTabcNULL;,取消notnull约束,增加默认值:,UNIQUE约束,EMPLOYEES,UNIQUE约束,INSERTINTO,唯一约束,允许出现多个空值:NULL。,UNIQUE约束,CREATETABLEUSER(idINTNOTNULL,NAMEVARCHAR(25),PASSWORDVARCHAR(16),#使用表级约束语法CONSTRAINTuk_name_pwdUNIQUE(NAME,PASSWORD);,同一个表可以有多个唯一约束,多个列组合的约束。在创建唯一约束的时候,如果不给唯一约束名称,就默认和列名相同。MySQL会给唯一约束的列上默认创建一个唯一索引,表示用户名和密码组合不能重复,UNIQUE约束,ALTERTABLEUSERMODIFYNAMEVARCHAR(20)UNIQUE;,添加唯一约束,删除约束,ALTERTABLEUSERDROPINDEXuk_name_pwd;,ALTERTABLEUSERADDUNIQUE(NAME,PASSWORD);,ALTERTABLEUSERADDCONSTRAINTuk_name_pwdUNIQUE(NAME,PASSWORD);,PRIMARYKEY约束,DEPARTMENTS,PRIMARYKEY,PRIMARYKEY约束,主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值如果是多列组合的主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别上创建。MySQL的主键名总是PRIMARY,当创建主键约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。,CREATETABLEemp4(idINTAUTO_INCREMENTPRIMARYKEY,NAMEVARCHAR(20);,PRIMARYKEY约束,CREATETABLEemp5(idINTNOTNULLAUTO_INCREMENT,NAMEVARCHAR(20),pwdVARCHAR(15),CONSTRAINTemp5_id_pkPRIMARYKEY(id);,CREATETABLEemp6(idINTNOTNULL,NAMEVARCHAR(20),pwdVARCHAR(15),CONSTRAINTemp7_pkPRIMARYKEY(NAME,pwd);,表级模式,列级模式,组合模式,ALTERTABLEemp5DROPPRIMARYKEY;,PRIMARYKEY约束,删除主键约束,ALTERTABLEemp5ADDPRIMARYKEY(NAME,pwd);,添加主键约束,ALTERTABLEemp5MODIFYidINTPRIMARYKEY;,修改主键约束,FOREIGNKEY约束,DEPARTMENTS,EMPLOYEES,FOREIGNKEY约束,外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系。从表的外键值必须在主表中能找到或者为空。当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据,然后才可以删除主表的数据。还有一种就是级联删除子表数据。注意:外键约束的参照列,在主表中引用的只能是主键或唯一键约束的列同一个表可以有多个外键约束,FOREIGNKEY约束,创建外键约束:,CREATETABLEdept(dept_idINTAUTO_INCREMENTPRIMARYKEY,dept_nameVARCHAR(20);,CREATETABLEemp(emp_idINTAUTO_INCREMENTPRIMARYKEY,last_nameVARCHAR(15),dept_idINT,);CONSTRAINTemp_dept_id_fkFOREIGNKEY(dept_id)REFERENCESdept(dept_id),主表,从表,FOREIGNKEY约束,创建多列外键组合,必须使用表级约束:,CREATETABLEclasses(idINT,NAMEVARCHAR(20),numberINT,PRIMARYKEY(NAME,number);,CREATETABLEstudent(idINTAUTO_INCREMENTPRIMARYKEY,classes_nameVARCHAR(20),classes_numberINT,FOREIGNKEY(classes_name,classes_number)REFERENCESclasses(NAME,number);,主表,从表,FOREIGNKEY约束,删除外键约束:,ALTERTABLEempDROPFOREIGNKEYemp_dept_id_fk;,增加外键约束:,ALTERTABLEempADDCONSTRAINTemp_dept_id_fkFOREIGNKEY(dept_id)REFERENCESdept(dept_id);,FOREIGNKEY约束的关键字,FOREIGNKEY:在表级指定子表中的列REFERENCES:标示在父表中的列ONDELETECASCADE(级联删除):当父表中的列被删除时,子表中相对应的列也被删除ONDELETESETNULL(级联置空):子表中相应的列置空,CREATETABLEstudent(idINTAUTO_INCREMENTPRIMARYKEY,NAMEVARCHAR(20),classes_nameVARCHAR(20),classes_numberINT,/*表级别联合外键*/FOREIGNKEY(classes_name,classes_number)REFERENCESclasses(NAME,number)ONDELETECASCADE);,CHECK约束,MySQL可以使用check约束,但check约束对数据验证没有任何作用,添加数据时,没有任何错误或警告,CREATETABLEtemp(idINTAUTO_INCREMENT,NAMEVARCHAR(20),ageINTCHECK(age20),PRIMARYKEY(id);,MySQL中使用limit实现分页,背景查询返回的记录太多了,查看起来很不方便,怎么样能够实现分页查询呢?分页原理所谓分页显示,就是将数据库中的结果集,一段一段显示出来需要的条件,MySQL中使用limit实现分页,怎么分段,当前在第几段(每页有几条,当前在第几页)前10条记录:SELECT*FR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年游戏开发程序员应聘面试指南及预测题
- 光电材料与器件教学课件
- 乡村教师廖老师教学课件
- 2025年电力系统运行值班员高级模拟题及解析
- 2025年特岗教师招聘面试初中生物高频考点预测
- 健全安全评价与监测体系支持企业安全管理
- 化工原理课程设计列管式换热器
- 青光眼护理查房
- 修辞手法教学课件
- 《望洞庭》教学课件
- 亲职教育讲课内容
- 2025风电项目EPC总承包工程合同
- 《儒林外史》人物基本情况及形象分析
- 中学生传染病防治知识
- 菲林格尔维修人员上门维修服务规范525
- 龋病的分类及临床表现
- 个体工商户合伙协议书律师审核起草
- 抚养费纠纷民事起诉状(10篇)
- 2025年郑州铁路职业技术学院单招职业适应性测试题库必考题
- 核安全863文化宣讲
- 学费分期付款申请书
评论
0/150
提交评论