mysql约束,子查询,多表的练习

mysql约束,子查询,多表的练习

ID:34035537

大小:123.00 KB

页数:21页

时间:2019-03-03

mysql约束,子查询,多表的练习_第1页
mysql约束,子查询,多表的练习_第2页
mysql约束,子查询,多表的练习_第3页
mysql约束,子查询,多表的练习_第4页
mysql约束,子查询,多表的练习_第5页
资源描述:

《mysql约束,子查询,多表的练习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据库三范式三范式   第一范式:   1.每个表都要有主键   2.列不可分,比如:   createtablestu   (   idINT,   namevarchar2(20),   ageINT   )       insertintostuvalues(1,'yu',21);   createtablestu2   (   idvarchar   )   /   insertintostu2values('1_yu_21');   虽然表stu2可以字符串解析后可以达到和表stu一样的效果,但是显然第一种方法更好,查询数     据更加方便,而表stu2违反了第一范式

2、的列不可分原则。   第二范式:   当有两个以上字段作主键时,非主键字段不能部分依赖于主键字段,如有一个需求,一门老师教    多名学生,一名学生可以选多个老师的课。然后设计了一张表,有以下字段(老师编号、学生编号、老师姓名、学生姓名等),其中以老师编号和学生编号作联合主键,则些表就存在部分依赖    ,老师姓名部分依赖于老师编号,不满足第二范式,有数据冗余。要解决这个问题可以设计三张    表。   第三范式:   不能存在传递依赖,如有一张表有以下字段:(学号、姓名、班级号、班级名称、班级位置),    其中学号为主键,则班级号依赖于学号,每个学生都有相应的班级号,但是班级

3、名称、班级位置    是依赖于班级号,即它们通过班级号传递依赖于学号,不满足第三范式。 我们大部分的表设计都只要满足第二范式就可以了,数据库表中的每个实例或行必须可以被惟一地区分.因为我们有些表中是存在状态标识字段的,这个字段是多余的,但也是必须的。Mysql约束查看表的字段信息:desc表名;21/21查看表的所有信息:showcreatetable表名;添加主键约束:altertable表名addconstraint主键(形如:PK_表名)primarykey表名(主键字段);添加外键约束:altertable主表addconstraint外键(形如:FK_主表_从表)for

4、eignkey主表(外键字段)references从表(主键字段);Insertintoemp(id,1,’王真’);Insertintoempvalues(id,1,'王真');Insertintodeptvalues(id,'销售部');references参照删除主键约束:altertable表名dropprimarykey;删除外键约束:altertable表名dropforeignkey外键(区分大小写);主关键字约束,也叫:PRIMARYKEYPRIMARYKEY约束在数据库的每个表中,经常有通过一列或者多个列,唯一的标识表中的每一行。就好像我们平时使用的身份证,能够

5、唯一的标识每个人一样。这样的一列或者多个列,被称为主键,通过主键,可以强制表的实体完整性。在数据库管理系统中,保证数据库中的数据完整性是非常重要的。所谓数据完整性,就是指存储在数据库中数据的一致性和正确性。约束定义关于列中允许值的规则,是强制完整性的标准机制。使用约束优先于使用触发器、规则和默认值。查询优化器也使用约束定义生成高性能的查询执行计划。21/21每一个表中只有一个PRIMARYKEY约束,更简单的说,他是通过建立唯一索引保证指定列的实体完整性。在使用PRIMARYKEY约束时,该列的空值属性必须定义为NOTNULL,也就是说拥有主键的那一列,不能为空。由于PRIMAR

6、YKEY约束确保唯一数据,所以经常用来定义标识列。标识列就是表中已经指派了标识属性的列。标识属性生成唯一数字。建立主键不仅可以保证表内数据的完整性,而且在为表建立主键的同时,MYSQL能够通过为主键创建唯一索引强制数据的唯一性。主键列的数据类型不限,但此列必须是唯一并且非空。自增列的类型应为数值型,所以大部分的表都用数值型做为主键;外关键字约事,也叫外键约束:FOREIGNKEY在mysql中,外键必须是其主键约束所在表中的主键且自增长,且引用双方的数据类型必须相同。文章分类表-categoriescategory_id    name1              SQLServ

7、er2              Oracle3              PostgreSQL5              SQLite文章表-articlesarticle_id     category_id    title1              1              aa2              2              bb3              4              cc可见以上两个表之间是通过category_id,其中cate

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。