​ 图书馆学习没有多大干劲了,数据库又快考试了根据考试内容写总结。老师回放已过期不得不自己来尝试 心酸!

需要按照要求给表创建主键、创建索引,创建外键(并设置删除和更新规则)

一、创建主键

​ 自己创建一个数据库和最少两个表(student表 和 course 表),然后上图:点击创建主键

二、创建外键

1、什么是外键:(这是百度说的,不是我说的)如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。

最后总结一下用人的话说:就是有两个表A和表B A和B同时有属性x,但是在A中X只是一个普普通通的键没啥大的作用,却在B中担当主键的位置。所以B就是主表,A就是从表,x就是A中的外键。所以A就是参照表,B就是被参照表。

我希望创建的外键在student表中,也就是说:course作为被参照表(主表)student表作为参照表(从表)。

表格信息:

表格名称 主键 外键
student sno scname
course cno

2、创建外间的步骤:

1、在student表中创建关系

弹出关系窗口,点击添加,点击 表和列的规范 一项,设置主表和从表的关系。(这里student表的scname参照course表中的cno)

2、设置insert和update规范

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eh1CsODt-1622373901735)(C:\Users\赵轶楠\AppData\Roaming\Typora\typora-user-images\image-20210530185111634.png)]

默认的不执行任何操作。如果是“不执行任何操作”,当我们删除或更新主键表的数据时,会告诉用户不能执行删除或更新该操作。

“级联”的意思是当我们删除或更新主键表的数据时,会删除或更新外键表中所涉及的相关数据的所有行。

“设置Null”的意思是当我们删除或更新主键表的数据时,外键表中的外键列的值会设为Null,但前提是该列允许为空。

“设置默认值”的意思是如果我们将外键列定义了默认值,当我们删除或更新主键表的数据时,外键表中的外键列的值设为定义的默认值。

使用代码创建外键(在创建表格时加上"foreign key() references table_name() "即可,先创建主表再创建从表)

create table course
cno nchar(10) primary key,
cname nchar(10) not null,
tname nchar(10);
create table student
sno nchar(10) primary key,
sname nchar(10) not null,
ssex nchar(10),
scname nchar(10) foreign key(scname) references course(cno);

三、创建索引

1、什么是索引:索引就像一个标签,创建索引之后便可以加快查询的速度

2、创建索引的步骤:

  • 点击表在索引处右击创建索引

  • 点击添加,至少选择一个作为索引点击确定,及创建完毕

出现第二个图标即是成功

3、用代码创建索引(CREATE[ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX索引名
ON {表名|视图名} (列名[ ASC | DESC ] [ ,…n ] ))

create index_name
on course(cno)

动作描述 使用聚集索引 使用非聚集索引
外键列 应 应
主键列 应 应
列经常被分组排序(order by) 应 应
返回某范围内的数据 应 不应
小数目的不同值 应 不应
大数目的不同值 不应 应
频繁更新的列 不应 应
频繁修改索引列 不应 应
一个或极少不同值 不应 不应

聚集索引:

  • 聚集索引的叶节点就是实际的数据页
  • 聚集索引中的排序顺序仅仅表示数据页链在逻辑上是有序的。而不是按照顺序物理的存储在磁盘上
  • 行的物理位置和行在索引中的位置是相同的
  • 每个表只能有一个聚集索引
  • 聚集索引的平均大小大约为表大小的5%左右

非聚集索引:

  • 非聚集索引的页,不是数据,而是指向数据页的页。
  • 若未指定索引类型,则默认为非聚集索引。
  • 叶节点页的次序和表的物理存储次序不同
  • 每个表最多可以有249个非聚集索引
  • 在非聚集索引创建之前创建聚集索引(否则会引发索引重建)

数据库基本操作(创建主键、外键以及索引)相关推荐

  1. MySql数据库主键外键与数据库设计

    MySql数据库主键外键与数据库设计 首先要指出的: 列.字段.属性是一个概念 行.记录.元组是一个概念 MySQL数据库CONSTRAINT约束:非空约束,唯一约束,主键约束,外键约束 show c ...

  2. Python攻城师————MySQL数据库(自增、外键、关键字)

    今日学习目标 正式学习MySQL数据库语句. 文章目录 今日学习目标 学习内容 一.自增特性 二.约束条件之外键 外键的定义 外键约束创建 三.查询关键字 查询关键字之select与from 查询关键 ...

  3. [数据库03]-约束(唯一性-主键-外键/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式

    [数据库03]-约束(唯一性-主键-外键)/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式 一.约束 1.1 唯一性约束(unique) 1.2 主键约束 1.3 外键约束 二.存储引擎 2 ...

  4. 数据库 主键 外键 唯一键区别

    下面我通过一个小栗子来说明我们应该如何选择主键,外键和唯一键.  现在我们想建立学生表,用来存储,一个系统的登陆信息.建表如下: create table student4 (   stu_id in ...

  5. MySQL数据库(25):外键 foreing key

    外键 foreing key 外键表示了两个实体之间的联系 外键 foreing key: A表中的一个字段的值指向另B表的主键 B: 主表 A: 从表 主表:主键(主关键字) = 从表:外键(外关键 ...

  6. mysql 主键外键sql_SQL外键VS主键说明了MySQL语法示例

    mysql 主键外键sql A Foreign Key is a key used to link two tables. The table with the Foreign Key Constra ...

  7. 主键主键外键和索引_主键和外键的目的/用途是什么?

    主键主键外键和索引 Primary and foreign keys are a way in which to constrain related data together to ensure d ...

  8. mysql中表的约束,主键外键唯一键

    mysql2 表的约束 空属性(NULL) 默认值 列描述 zerofill 主键 主键属性 复合主键 追加主键 删除主键 自增长 唯一键 外键 表的约束 空属性(NULL) 此时 name 的 Nu ...

  9. SQL-主键外键的定义

    primary key 主键 需设置为不为空不重复&自增列 not null auto_increment primary key 一个表仅允许一个主键,但主键可由多列组成 create ta ...

最新文章

  1. 在Windows7/10上快速搭建深度学习框架Caffe开发环境
  2. ExtJs6.5.2新手入门——如何用sencha cmd创建自己的第一个项目
  3. django 内置 admin
  4. java中mq组建是什么_Java教程之RabbitMQ介绍
  5. nginx学习十 ngx_cycle_t 、ngx_connection_t 和ngx_listening_t
  6. 为什么使用1 * 1 的卷积核
  7. python之用循环实现五子棋小程序
  8. android studio创建文件,如何在Android Studio中创建File Templates
  9. 淘淘相关工具类【json,httpClient,id,FTP,exception,cookie(包括共享cookie的设置等)】
  10. SpringBoot +spring security 与CSRF有关的几个 问题
  11. CAD转换PDF文件失败,打开后内容是空白的
  12. 十大重要IT公司排名 -2009
  13. 年轻人逃离算法?更懂你的时尚推荐算法,你会拒绝吗?| FashionHack 专栏
  14. Linux上搭建http服务器
  15. php的惰性加载,thinkphp5.0的惰性加载
  16. 微信小程序页面跳转,url传参参数丢失问题
  17. EOS智能合约开发系列(14): 关于require_auth函数
  18. 问题 E: 来淄博旅游
  19. 12.2 Kruskal算法
  20. zjs-my-diary-20191227

热门文章

  1. stm32中断源有哪些_143条 超详细整理STM32单片机学习笔记(必看)
  2. STM32简易示波器
  3. 【项目】区块链+人工智能 ---PAI白皮书分析(二)
  4. Jquery选择器之可见性选择器、属性过滤选择器
  5. 手把手教你轻松下载百度网盘超大文件
  6. 豆瓣电台WP7客户端 开发记录4
  7. IC卡、ID卡、M1卡、射频卡的区别是什么【转】
  8. LeetCode 1344. 时钟指针的夹角
  9. 社群运营当下最流行的红包玩法
  10. 2021玛卜码面试题汇总:前端、运维、产品经理、Python、Java...