进阶-式微03mysql基础二基本操作_第1页
进阶-式微03mysql基础二基本操作_第2页
进阶-式微03mysql基础二基本操作_第3页
进阶-式微03mysql基础二基本操作_第4页
进阶-式微03mysql基础二基本操作_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Python工具库教室讲师:式微老师时间:2018年7月教学监督热线 免责声明:如果本课程内有任何内容侵害了您的权益,请您及时联系我们教学监督热线 0102知识点一: 表约束知识点二: 表关系本节知识点非空约束,唯一约束,自增长,默认约束主键约束,外键约束一对多,一对一 ,多对多阶段一表约束教学监督热线 例子:create table tb1( id int, name varchar(20) not null);注意 空字符不等于null# 取消非空约束mysql alter table tb1 - modify id int ;#手动,添加非空约束 (必须这个字段,没有NULL值)mysq

2、l alter table tb1 - modify id int not null;not null 非空约束 有非空约束的字段,insert的时候,必须添加unique key 唯一约束例子:create table tb2( id int unique key, name varchar(20);#删除唯一约束mysql alter table tb2 - drop key name;#添加唯一约束mysql alter table tb2 - add unique key(name) -;确保字段中的值的唯一 主键约束 primary key例子:create table tb3( i

3、d int primary key, name varchar(20) not null); #添加主键约束mysql alter table tb3 - add primary key(id);#删除主键约束mysql - alter table tb3 - drop primary key;唯一标识 一条数据主键的作用: 可以唯一标识 一条数据,每张表里面只能有一个主键,。主键的主要目的是帮助MySQL以最快的速度查找到表中的某一条信息主键特性: 非空且唯一。当表里没有主键的时,第一个出现的非空且为唯一的列,被当成主键。 自增长 auto_increment例子:create table

4、tb5( id int primary key auto_increment, name varchar(20)auto_increment =100;#增加自动增长auto_incrementmysql alter table tb5 - modify id int auto_increment;#删除自动增长mysql alter table tb5 - modify id int;auto_increment :自动编号,一般与主键组合使用。一个表里面只有一个自增默认情况下,起始值为1,每次的增量为1。 默认约束 default例子:create table tb6( id int pr

5、imary key auto_increment, name varchar(20) not null, age int not null default 18);mysql alter table tb6 - modify age int default 20;#删除defaultmysql alter table tb6 - modify age int;default :初始值设置,插入记录时,如果没有明确为字段赋值,则自动赋予默认值。 外键约束 foreign key外键约束 :保持数据一致性,完整性实现一对多关系。外键必须关联到键上面去,一般情况是,关联到另一张表的主键(因为一个表只

6、存一类信息。用外键来做参照,保证数据的一致性,可以减少数据冗余)#表acreate table a( a_id int primary key auto_increment, a_name varchar(20) not null);insert into a values(1,a1),(2,a2);#表bcreate table b( b_id int primary key, b_name varchar(20) not null, fy_id int not null, constraint AB_id foreign key(fy_id) references a(a_id);#删除外

7、键alter table b drop foreign key AB_id;#增加外键mysql alter table b - add constraint AB_id foreign key(fy_id) references a(a_id);B表中的fy_id 字段,只能添加 a_id中 已有的数据。A表中a_id 被参照的数据, 不能被修改和删除考驾照学员表(身份证号,姓名,性别) # 主键身份证号 特性:非空且唯一科目表(科目号,科目内容,扣分) # 主键 科目号成绩表(身份证号,科目号,成绩) # 联合主键 身份证号 + 科目号成绩表中的身份证号是学员表的外键,成绩表中的科目号是科

8、目表的外键主键和外键是为了维护关系数据库的完整性:1.主键是能确定一条记录的唯一标识2.外键用于与其他表建立联系。是能确定另一张表记录的字段,用于保持数据的一致性。阶段二表关系教学监督热线 一对一, 一对多, 多对多学生选课系统:一对一关系 (学生详情)举例,学生表中有学号、姓名、学院,但学生还有些比如电话,家庭住址等比较私密的信息,这些信息不会放在学生表当中,会新建一个学生的详细信息表来存放。这时的学生表和学生的详细信息表两者的关系就是一对一的关系,因为一个学生只有一条详细信息。用主键加主键的方式来实现这种关系。#建立详细学生表:create table student_details( i

9、d int primary key, sex varchar(20) not null, age int, address varchar(20) comment 家庭住址, parents varchar(20), home_num varchar(20), foreign key (id) references student(s_id);insert into student_details values(1,男,18,湖南长沙,家长姓名,123456);一对一 : 用外键的方式,把两个表的主键关联学号为1的详情:一对多关系 (学生所属学院) 举例,通常情况下,学校中一个学院可以有很多的

10、学生,而一个学生只属于某一个学院。学院与学生之间的关系就是一对多的关系,通过外键关联来实现这种关系。#创建学院表create table department( d_id int primary key auto_increment, # 学院id d_name varchar(20) not null # 学院名);#创建学生表create table student( s_id int primary key auto_increment, # 学生id s_name varchar(20) not null, # 学生名字 dept_id int not null, # 所属学院 id

11、constraint SD_id foreign key(dept_id) references department(d_id) #外键);注意:学生表中 只能添加 ,已有的学院idinsert into department values(1,外语学院),(2,计算机学院);insert into student values(1,张三,2),(2,李四,1);多对多关系 (学生选课) 举例,学生要报名选修课,一个学生可以报名多门课程,一个课程有很多的学生报名,那么学生表和课程表两者就形成了多对多关系。对于多对多关系,需要创建中间表 实现。#建立课程表:学生表create table co

12、urs( cours_id int primary key auto_increment, cours_name varchar(20) not null );# 选课表 (中间表)create table select( s_id int, #用来记录学生id cours_id int, #用来记录 课程id primary key(s_id,cours_id), # 联合主键 foreign key(s_id) references student(s_id), # 关联学生id foreign key(cours_id) references cours(cours_id) # 关联 课程id);insert into cour

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论