- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
约束子查询多表的练习
数据库三范式
三范式?? ? 第一范式:?? ? 1.每个表都要有主键?? ? 2.列不可分,比如:?? ? create table stu?? ? (?? ? id INT,?? ? name varchar2(20),?? ? age INT?? ? )?? ? ??? ? insert into stu values(1,yu,21);?? ? create table stu2?? ? (?? ? id varchar?? ? )?? ? /?? ? insert into stu2 values(1_yu_21);?? ? 虽然表stu2可以字符串解析后可以达到和表stu一样的效果,但是显然第一种方法更好,查询数? ??? ? 据更加方便,而表stu2违反了第一范式的列不可分原则。?? ? 第二范式:?? ? 当有两个以上字段作主键时,非主键字段不能部分依赖于主键字段,如有一个需求,一门老师教? ? ? ? 多名学生,一名学生可以选多个老师的课。然后设计了一张表,有以下字段(老师编号、学生编号、老师姓名、学生姓名等),其中以老师编号和学生编号作联合主键,则些表就存在部分依赖? ? ? ? ,老师姓名部分依赖于老师编号,不满足第二范式,有数据冗余。要解决这个问题可以设计三张? ? ? ? 表。?? ? 第三范式:?? ? 不能存在传递依赖,如有一张表有以下字段:(学号、姓名、班级号、班级名称、班级位置),? ? ? ? 其中学号为主键,则班级号依赖于学号,每个学生都有相应的班级号,但是班级名称、班级位置? ? ? ? 是依赖于班级号,即它们通过班级号传递依赖于学号,不满足第三范式。?
我们大部分的表设计都只要满足第二范式就可以了,数据库表中的每个实例或行必须可以被惟一地区分.因为我们有些表中是存在状态标识字段的,这个字段是多余的,但也是必须的 。
Mysql约束
查看表的字段信息:desc 表名;
查看表的所有信息:show create table 表名;
添加主键约束:alter table 表名 add constraint 主键 (形如:PK_表名) primary key 表名(主键字段);
添加外键约束:alter table 主表 add constraint 外键(形如:FK_主表_从表) foreign key 主表(外键字段) references 从表(主键字段);
Insert into emp(id,1,’王真’);
Insert into emp values(id,1,王真);
Insert into dept values(id,销售部);
references参照
删除主键约束:alter table 表名 drop primary key;
删除外键约束:alter table 表名 drop foreign key 外键(区分大小写);
主关键字约束,也叫: PRIMARY KEY
PRIMARY KEY约束 在数据库的每个表中,经常有通过一列或者多个列,唯一的标识表中的每一行。就好像我们平时使用的身份证,能够唯一的标识每个人一样。这样的一列或者多个列,被称为主键,通过主键,可以强制表的实体完整性。
在数据库管理系统中,保证数据库中的数据完整性是非常重要的。所谓数据完整性,就是指存储在数据库中数据的一致性和正确性。约束定义关于列中允许值的规则,是强制完整性的标准机制。使用约束优先于使用触发器、规则和默认值。查询优化器也使用约束定义生成高性能的查询执行计划。 每一个表中只有一个PRIMARY KEY约束,更简单的说,他是通过建立唯一索引保证指定列的实体完整性。在使用PRIMARY KEY约束时,该列的空值属性必须定义为NOT NULL,也就是说拥有主键的那一列,不能为空。 由于PRIMARY KEY约束确保唯一数据,所以经常用来定义标识列。标识列就是表中已经指派了标识属性的列。标识属性生成唯一数字。建立主键不仅可以保证表内数据的完整性,而且在为表建立主键的同时,MYSQL能够通过为主键创建唯一索引强制数据的唯一性。
主键列的数据类型不限,但此列必须是唯一并且非空。
自增列的类型应为数值型,所以大部分的表都用数值型做为主键;
外关键字约事,也叫外键约束: FOREIGN KEY
在mysql中,外键必须是其主键约束所在表中的主键且自增长,且引用双方的数据类型必须相同。文章分类表 - categoriescategory_id???? name1?????????????? SQL Server2?????????????? Oracle3?????????????? PostgreSQL
您可能关注的文档
最近下载
- 第十七章外阴色素减退性疾病.ppt VIP
- 考研真题 三峡大学水利与环境学院820数据库原理与应用历年考研真题汇编.docx VIP
- 中石化油品储运鉴定试题库——初 级 工.pdf VIP
- 探测器安装工程检验批质量验收记录表.docx VIP
- 2025上海松江区工作者招聘76人考试备考题库及答案解析.docx VIP
- 中国全面发育迟缓诊断指南2024解读PPT课件.pptx VIP
- 2020年国考公务员考试《行测》真题及答案(地市级).pdf VIP
- 试算法计算调洪演算程序.xls VIP
- 小学英语教学中分层次教学的实践探讨教学研究课题报告.docx
- 智能化弱电系统培训资料,大量系统图与实例图.pdf VIP
文档评论(0)