主键!

数据库的主键表示一个列或者标识一条记录,不能有重复的,其值能唯一的标识表中的每一行,并且不能为空,也不能重复,一般默认为编号类。

例如:

在我们表中一般以标志性的字段,从这个字段名可以标识只一个实物,那这个字段就是主键。

作用:

主键——用来保证数据完整性

主键和外键的创建:

主键:

主键一般在建表的时候会默认设置为 primary key,

例如:

create table 表1( 列名1 数据类型 primary key, 列名2 数据类型 );

联合主键

当某一列不能唯一识别每行,使用联合主键,蒋两列看做一个整体,非空,唯一,不重复。

但是联合主键单属性可重复。(唯一约束可以解决)!

例如:
成绩表(学号,课程号,成绩)

成绩表中单一一个属性无法唯一标识一条记录,学号和课程编号的组合才可以唯一标识一条记录,所以学号和课程编号的属性组是一个主键。

常见约束

分类::约五大类

1:  not null 保证字段不能为空

2: default 默认 设置字段默认值,例如 ID 姓名;

3:primary key 主键 用于保重字段唯一性,且非空,例如编号,身份证号

4:unique 唯一约束 保证字段唯一性,可以为空。

5: foreign key 外键约束 用于限制两表关联列在主表中的值目的就是为了让两个表之间产生关联,

例如:foreign key (表一列(cid)) references 表二(主键ID(cid))

数据库主键概念与实际运用操作相关推荐

  1. 再议《反驳 吕震宇的“小议数据库主键选取策略(原创)” 》

    前天发表了篇文章叫<小议数据库主键选取策略(原创)>,随即有网友提出了反驳意见<反驳 吕震宇的"小议数据库主键选取策略(原创)" >,看到后,我又做了做实验 ...

  2. Oracle数据库主键自增

    Oracle数据库主键自增 在学习mysql时,我们很容易通过auto_increment就能实现主键自增的功能,但是在Oracle数据库中,是没有这个关键字的,所以也不能通过这样来实现主键自增.下面 ...

  3. oracle数据库主键自增序列_Oracle数据库主键自增

    Oracle数据库主键自增 在学习mysql时,我们很容易通过auto_increment就能实现主键自增的功能,但是在Oracle数据库中,是没有这个关键字的,所以也不能通过这样来实现主键自增.下面 ...

  4. (转)关于数据库主键和外键(终于弄懂啦)

    一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如   学生表(学号,姓名,性别,班级)  其中每个学 ...

  5. 小议数据库主键选取策略

    我们在建立数据库的时候,需要为每张表指定一个主键,所谓主键就是能够唯一标识表中某一 行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引.因为主键可以唯一标识某一行记录,所以可以确保执行数据更 ...

  6. 关于数据库主键和外键

    一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如   学生表(学号,姓名,性别,班级)  其中每个学 ...

  7. 小议数据库主键选取策略(转自吕震宇老师博文)

    < DOCTYPE html PUBLIC -WCDTD XHTML TransitionalEN httpwwwworgTRxhtmlDTDxhtml-transitionaldtd> ...

  8. 小议数据库主键选取策略(转)

    我们在建立数据库的时候,需要为每张表指定一个主键,所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引.因为主键可以唯一标识某一行记录,所以可以确保执行数据更新 ...

  9. 数据库主键到底是用自增长(INT)好还是UUID好?

    数据库主键到底是用自增长(INT)好还是UUID好? 使用自增长做主键的优点: 1.很小的数据存储空间 2.性能最好 3.容易记忆 使用自增长做主键的缺点: 1.如果存在大量的数据,可能会超出自增长的 ...

最新文章

  1. python字典排序方法_Python字典的排序方法一则
  2. 变量/值类型/引用类型/常量/枚举
  3. 算法73----用户喜好
  4. Qt选择文件对话框-中文路径-转std::string
  5. 5.1 代码合并:Merge、Rebase的选择
  6. mybatis select语句会默认带排序吗_MyBatis中#和$的区别详解
  7. STM32U5来了,100份好礼免费送!
  8. Hibernate的出现和Hinbernate的简单模拟实现
  9. 微课|中学生可以这样学Python(例4.5):计算最大函数值
  10. 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)...
  11. git merge 回退_git+vscode进行版本控制
  12. bean的生命周期(最全最细讲解)
  13. 同志亦凡人第一季/全集BQueer As Folk 1迅雷下载
  14. Mac录屏无声音?5分钟解决|mac录屏收音APP-Loopback for Mac使用方法
  15. Xposed获取微信个人信息
  16. win10打开热点的时候提示我们无法设置热点
  17. [总结]CSS/CSS3常用样式与web移动端资源
  18. 8 年 Java 开发含泪刷题,架构岗现在好难进,有点崩溃
  19. mdx格式的词典用什么软件打开_抄作业了!手把手教你安装欧路词典(ios系统为例)...
  20. 《云计算与大数据》课程报告

热门文章

  1. [INFOCOM 2019] NeuralWalk:使用神经网络的在线社交网络中的信任评估
  2. Oracle入门命令
  3. python连数据库如何不写明文密码_在Python中开发时保护MySQL密码?
  4. CSS选择器、网页美化(字体、阴影、列表、渐变)
  5. 简单理解RDMA RoCE
  6. $.each(json,function(index,item){ }); jquery遍历
  7. 社交电商应该怎么做?
  8. √ C# - 19.怎么使用反射(P528)
  9. 网狐旗舰U3D源码研究
  10. 服务器2012系统 win7,Windows Server 2012 R2 预览版安装全程图解