SQL SERVER 数据库主键
SQL SERVER 数据库主键
SQL SERVER 数据库主键
一、什么是主键
数据库主键是指表中一个列或者列的组合,其值能够唯一的标识表中的每一个行。这样的一列或者多列成为表的主键,通过它可以强制表的实体完整性。当创建或者更改表时可以通过定义PRIMARY KEY约束来创建主键,一个表只能有一个主键约束,而且主键约束中的列不能是空值,由于主键约束确保唯一数据,所一经常来定义标识列。
二、主键的作用
1、 从上面的定义可以看出,主键是用于唯一标识数据库表中一行数据的。
2、 作为一个可以被外键有效引用的对象。
三、主键的设计原则
1、 主键应当是对用户没有意义的,比如说用户登陆一个系统的时候的登录id;而这种情况就不可能了:“学生表”需要支持这样的需求“学生注销后,可以重新激活自己的信息,而且还要保持自己的号码跟原来的一直”,这样的话主键就不能满足要求了。
2、 唯一性,这个原则就不用多说了。
3、 非空性:主键的值是不可重复的,也不可以为空。
4. 永远也不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。
注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。
5. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
6. 主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。
四、创建主键
--在创建表时就可以对字段加上约束:
create table Student
(
StudentNo int PRIMARY KEY IDENTITY(1,1), --加主键约束,还有标识列属性(两者构成实体完整性)
StudentName nvarchar(15) not null, --加非空约束,不加"not null" 默认为:可以为空
StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外键约束,格式:FOREIGN KEY REFERENCES 关联的表名(字段名)
StudentAge int DEFAULT ((0)), --加默认值约束
StudentSex nvarchar(2) CHECK(StudentSex=N'男' or StudentSex=N'女') --加检查约束,格式:check (条件表达式)
)
五、测试添加删除主键
--删除主键
alter table Stu_PkFk_S drop constraint PK_S
go
--增加主键
alter table Stu_PkFk_S add constraint PK_S primary key (sno)
go
- sql server查询操作怎么做(sqlserver分页查询处理方法小结)
- SQL Server中@@ROWCOUNT的用法
- sqlserver 锁表原因(SQL Server学习笔记之事务、锁定、阻塞、死锁用法详解)
- windows性能计数器与SQL Server Profiler 组合分析性能
- SQL Server Check 约束
- sql server建表语句带字段说明(SqlServer给表增加多个字段的语法)
- sql数据库语言的两种使用方式(通过使用正确的search arguments来提高SQL Server数据库的性能)
- 无法打开sql server的连接(由于系统错误 126 SQL Server,指定驱动程序无法加载)
- sqlserver常用数据结构图(Sql Server数据库常用Transact-SQL脚本推荐)
- sql触发器编写教程(SQL Server 使用触发器trigger发送电子邮件步骤详解)
- SQL SERVER存储过程中使用事务与try catch
- sql 如何拆分字符串(SQL Server实现将特定字符串拆分并进行插入操作的方法)
- SQL Server的恢复模式
- sqlserver语句创建窗口布局(SQL Server 2012 开窗函数)
- SQL Server 批量导入数据的方法
- sql server 报错(sql server利用不同语种语言显示报错错误消息的方法示例)
- 这部动漫中的女孩子,可比101女孩更加励志(这部动漫中的女孩子)
- 《白狐的人生》热拍 贾征宇偶像包袱难自弃 图(白狐的人生热拍)
- 七夕取消了,牛郎织女没做核酸七夕已经取消(牛郎织女没做核酸七夕已经取消)
- 网友抵制 多地取消 夏日祭 为何惹众怒(网友抵制多地取消)
- 兄弟萌,今年的七夕又取消了 思考 思考(今年的七夕又取消了)
- 七夕取消是什么梗(七夕取消是什么梗)
热门推荐
- springcloud alibaba nacos linux配置的详细教程(springcloud alibaba nacos linux配置的详细教程)
- python开启线程池(对python:threading.Thread类的使用方法详解)
- 了解mysql数据自动备份(MySQL数据备份方法的选择与思考)
- python复杂的验证码处理(Python 通过打码平台实现验证码的实现)
- vue 怎么设置滚动条的长度(vue使用better-scroll实现横向滚动的方法实例)
- 安装apache服务失败怎么办(Apache安装后出现服务无法启动服务里启动出现错误代码1)
- css3实现3d效果教程(纯 CSS3实现的霓虹灯特效)
- php定时执行PHP(Cpanel下Cron Jobs定时执行PHP的方法)
- 介绍几个jQuery实用函数
- 用python做一个表白视频(python仿抖音表白神器)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9