约束子查询多表的练习.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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中,外键必须是其主键约束所在表中的主键且自增长,且引用双方的数据类型必须相同。 文章分类表 - categories category_id???? name 1?????????????? SQL Server 2?????????????? Oracle 3?????????????? PostgreSQL

文档评论(0)

feixiang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档