-
2021-06-28 16:11:01
主键=主码:某个能够唯一标识一条记录的最小属性集(是从候选码里人为挑选的一条)
关系数据库依赖于主键—它是数据库物理模式的基石。
唯一性:一个数据表只能有一个主键 标识性:一个数据表的所有记录都具有不同的主键取值 非空性:不能为空 人为的选取某个候选码为主码 作为一个可以被外键有效引用的对象。
主键约束:
- 表外添加
格式为: alter table 表格名称 add constraint 约束名称 增加的约束类型 (列名) 例子: alter table student add constraint sno primary key (id);
- 表内添加:
列名 type类型 primary key not NULL 例: sno char(10) primary key NOT NULL
删除主键约束:
PS:主键一般不会修改的
alter table products drop primary key;
外键约束:
- 表外添加:
格式: alert table 表名 add constraint 外键的名称 foreign key(外键字段名) references 外表表名(主键字段名) (列名) 例子: alter table student add constraint spno foreign key (spno) references spon_table (spno);
- 表内添加
列名 char(8) foreign key references 外表表名(主键字段名) NULL 例: spno char(8) foreign key references spon_table(spno) NULL
删除外键约束:
alter table 表名 drop foreign key 外键名;
主键和外键的意义:
主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。
更多相关内容 -
Mysql主键相关的sql语句集锦
2020-12-15 06:54:38添加表字段 alter table table1 add transactor varchar(10) not Null; alter table table1 add id int unsigned not Null auto_increment primary key 修改某个表的字段类型及指定为空或非空 ... -
SQL主键
2022-03-27 20:22:18在SQL中主键是唯一标示表中每一行的列或一组列。 SQL可以使用PRIMARY KEY约束为表创建主键。 如果主键只包含一列,则可以将PRIMARY KEY约束定义为列约束 。 每个表只能有一个主键。 参与主键的所有列必须定义为...- 在SQL中主键是唯一标示表中每一行的列或一组列。
- SQL可以使用PRIMARY KEY约束为表创建主键。
- 如果主键只包含一列,则可以将PRIMARY KEY约束定义为列约束 。
- 每个表只能有一个主键。
- 参与主键的所有列必须定义为NOT NULL。
- 在SQL中如果没有为这些列指定NOT NULL约束,SQL Server会自动为所有主键设置NOT NOLL 约束。
- 在创建主键时,SQL Server还会自动创建唯一的聚簇(如果指定,则为非聚集索引)。
- 以下实例创建一个包含主键的表,该主键包含一列:
在sales.activities表中,activity_id列是主键列。
Activity_id列包含唯一值。
IDENTITY属性用于activiy_id列以自动生成唯一的整数值。
- 在以下语句中创建一个名为sales.particiopants的新表,其主键由两列组成:
在这个示例中,activity_id或customer_id列中的值可以重复,但两列中的每个值组合必须是唯一。
- 在SQL中,通常情况下,表始终在创建是定义的主键。但是,有时,现有表可能由于某种原因下而没有定义主键。在这种情况下,可以使用ALTER TABLE语句向表中添加主键。请看以下实例:
如果要将event_id列为主键,请使用ALTER TABLE语句;
-
SQLServer 2012 主键约束(定义主键、删除主键)
2019-04-21 18:18:00在创建数据表的时候定义主键方式二:修改数据表定义主键删除主键使用SSMS工具删除主键方式一:在对象资源管理器中删除主键方式二:在表设计器中删除主键使用SQL方式删除主键 主关键字(primary key)是表中...文章目录
主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。一个表的主键可以由多个关键字共同组成,并且主关键字的列不能包含空值。
定义主键
使用SSMS工具定义主键
- 展开“数据库”,然后展开相应的数据库,再展开数据库中的“表”,右击需要定义主键的数据表,选择“设计”。
- 进入表设计器界面,右击相应的行(如果需要定义包含多个列的复合主键,则按住Ctrl键选择),然后选择“设置主键”,即完成主键的设置。
- 点击保存键,或者按Ctrl+F5键进行保存。展开数据表,展开“键”,可以看到定义的主键。
- 如果没有,请按刷新键或F5键进行刷新。
使用SQL方式定义主键
方式一:在创建数据表的时候定义主键
- 在SSMS工具栏中单击“新建查询”,打开“SQL编辑器”窗口
- 输入创建SQL代码
USE schoolDB --打开数据库schoolDB GO IF EXISTS(SELECT * FROM sysobjects WHERE name='student') DROP TABLE student --检查student是否已经存在,如果存在,则删除 GO CREATE TABLE student --表名为student ( StuID int NOT NULL PRIMARY KEY, --学生学号 StuName varchar(15) NOT NULL, --学生姓名 Sex char(2) NULL, --性别 Major varchar(20) NULL, --所选专业 )
- 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
- 点击“执行”按钮,或按住F5,执行SQL代码。
- 查看数据表中的键。
方式二:修改数据表定义主键
- 在SSMS工具栏中单击“新建查询”,打开“SQL编辑器”窗口
- 输入创建SQL代码
USE schoolDB --打开数据库schoolDB GO ALTER TABLE student ADD CONSTRAINT PK_student PRIMARY KEY (StuID) --将表中的StuID设为主键
- 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
- 点击“执行”按钮,或按住F5,执行SQL代码。
- 查看数据表中的键。
删除主键
使用SSMS工具删除主键
方式一:在对象资源管理器中删除主键
- 展开需要删除主键的数据表,然后再展开“键”。
- 右击需要删除的主键,选择“删除”。
- 在删除对象界面,点击“确定”,即可完成主键删除。
方式二:在表设计器中删除主键
- 右击需要删除主键的数据表,选择“设计”。
- 进入表设计器界面,右击包含主键的行,选择“删除主键”。
- 点击保存键,或者按Ctrl+F5键进行保存删除主键后的数据表信息。
使用SQL方式删除主键
-
在SSMS工具栏中单击“新建查询”,打开“SQL编辑器”窗口
-
输入创建SQL代码
USE schoolDB --打开数据库schoolDB GO ALTER TABLE student DROP CONSTRAINT PK_student --将表中的主键约束PK_studnet删除
- 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
- 点击“执行”按钮,或按住F5,执行SQL代码。
- 主键已被删除。
- 展开“数据库”,然后展开相应的数据库,再展开数据库中的“表”,右击需要定义主键的数据表,选择“设计”。
-
深入Mysql,SqlServer,Oracle主键自动增长的设置详解
2020-12-15 19:06:431、把主键定义为自动增长标识符类型MySql在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如: 代码如下:create table customers(id int auto_increment primary key not null, name... -
在SQL Server中建立主键外键的关系
2021-03-14 16:24:33其中CNum是主键,但是在Course表中出现了TNum,因此,我希望Course表中的TNum作为Teacher表中主键TNum的外键。 操作如下 右键点击“键”->“新建外键”->“添加” 随后出现以下界面: 点击“表和列规范右侧...首先我们先看两个表的信息
表一:Teacher表
显然其中TNum是主键。表二:Course表
其中CNum是主键,但是在Course表中出现了TNum,因此,我希望Course表中的TNum作为Teacher表中主键TNum的外键。
操作如下
右键点击“键”->“新建外键”->“添加” 随后出现以下界面:
点击“表和列规范右侧的省略号 出现一下界面:随后请读者将表格调成以下界面(很简单的)
点击确定 出现以下界面
左上角的FK_Course_Teacher 意思是:Course中有的列是Teacher某一列的ForeignKey(外键)。 -
SQL中的主键
2016-08-03 14:36:40当创建或者更改表时可以通过定义PRIMARY KEY约束来创建主键,一个表只能有一个主键约束,而且主键约束中的列不能是空值,由于主键约束确保唯一数据,所一经常来定义标识列。 二、主键的作用 ... -
如何在sql server中设置两个主键
2020-12-30 21:21:51建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。1、在数据库提供的GUI环境中建立。输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。2、通过... -
SQLServer学习笔记 - 主键的理解
2020-10-08 14:19:01最近在学习SQLServer时,发现里面有个主键的概念和作用总是模糊不清,因此上网去搜索了一些主键的一些意义,加深一下理解 什么是主键 按照百度百科的定义,主键(primary key)是数据表中的一个或多个字段,其值用于... -
PRIMARY KEY联合主键
2020-12-14 09:32:40阅读指南基本概念创建表时定义主键约束修改表时定义主键约束删除主键约束 基本概念 主键(PRIMARY KEY)的完整称呼是“主键约束”; 作用:为了便于 DBMS 更快的查找到表中的记录; 分类:①单字段主键;②多字段... -
SQL Server定义表主键、外键
2020-04-13 19:21:53主键 增加主键 PK_S主键名称 alter table Stu_PkTk_S add constraint PK_S primary key(sno) 删除主键 alter table Stu_PkFk_S drop constraint PK_S 外键 添加外键 alter table Stu_PkFk_Sc --从表 add ... -
SQLSERVER自增主键
2020-12-21 12:04:37SQLSERVER自增主键SQLServer 中含自增主键的表,通常不能直接指定ID值插入,可以采用以下方法插入。1. SQLServer 自增主键创建语法:identity(seed, increment)其中seed 起始值increment 增量示例:create table ... -
mysql把主键定义为自动增长标识符类型
2020-12-15 04:55:101、把主键定义为自动增长标识符类型 在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如: ...在MS SQLServer中,如果把表的主键设为identity类型,数据库就会自动 -
SQL教程(二):主键
2020-09-03 08:25:12文章目录主键【1】主键选取原则【2】ID主键【3】联合主键 ...主键定义:唯一定位记录的字段 一旦插入表中最好不要修改 【1】主键选取原则 不能选择任何业务相关的字段作为主键 手机号、邮箱、身份证号……这都是和. -
SQLServer中创建主键的方法
2018-04-07 09:44:48SQLServer创建主键的方法方法一:创建表之后,alter table table_name add primary key(字段1,字段2) 方法二:CREATE TABLE 表名 (字段名1 Int Not Null, 字段名2 nvarchar(13) Not Null 字段名3…………... -
SQL Server删除主键约束
2022-04-09 16:30:04代码: ALTER TABLE 表名 DROP CONSTRAINT 约束名; 示例: ALTER TABLE student_info DROP CONSTRAINT PK...参考:SQLServer 2012 主键约束(定义主键、删除主键)_柚子君.的博客-CSDN博客_sqlserver 主键 ... -
SQLserver数据库——表中主键约束
2019-02-05 23:56:50常见五种约束: 1.主键约束 ...1、主键约束 ...列级约束一般直接设置在该列的定义后面即可,表级约束通常设置在所有列定义之后。 在创建表时设置主键约束 ①在列级设置主键约束: CREATE... -
SQL的主键和外键
2021-06-26 22:16:461.定义主键和外键主要是为了维护关系数据库的完整性。 总结一下: (1)主键是能确定一条记录的唯一标识。 eg:一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证... -
SQL主键设置
2020-04-18 17:10:58-- ① SQL 在 "Persons" 表创建时在 "Id_P" 列创建 PRIMARY KEY 约束 CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(25) NOT NULL, FirstName varchar(255), Address varchar(255), City varcha... -
SQL Server的主键与外键约束
2022-04-20 20:27:05SQL Server的主键与外键约束SQL Server有许多的重要知识,...如果主键只包含一列,则可以将 PRIMARY KEY 约束定义为列约束,如果主键有两列或更多列,则必须使用 PRIMARY KEY约束作为表约束(代码如图所示): 每 -
Mysql,SqlServer,Oracle主键自动增长的设置
2021-01-19 16:16:12在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:CREATE TABLE google(id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,NAME VARCHAR(15),age INT,email VARCHAR(50),gender ... -
Mysql、Sql Server、Oracle主键自动增长的设置
2021-01-27 18:30:341、把主键定义为自动增长标识符类型MySql在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:create table customers(id int auto_increment primary key not null, name varchar... -
SQL语句中主键和外键
2019-05-06 13:56:06在创建表时,一般会定义一个主键来唯一标识一组信息,例如保存京东fuliuqingfeng的用户信息及其多个邮寄商品地址: CREATE TABLE user_info( id CHAR(36) PRIMARY KEY, user_name VARCHAR(30) not null, password... -
SQL常用语句|创建表,设置主键......
2021-02-05 05:11:24ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL 重命名表(Access 重命名表,请参考文章:在Access数据库中重命名表) sp_rename \'表名\', \'新表名\', \'OBJECT\' 新建约束 ALTER TABLE [表名] ADD ... -
Oracle创建主键自增表(sql语句实现)及触发器应用
2021-05-04 05:46:53Oracle创建主键自增表(sql语句实现)及触发器应用1、创建表复制代码 代码如下:createtableTest_Increase(useridnumber(10)NOTNULLprimarykey,/*主键,自动增加*/usernamevarchar2(20));2、创建自动增长序列复制代码 ... -
Mysql 增加主键或者修改主键的sql语句操作_Mysql_数据库
2021-02-12 08:27:07修改主键的sql语句块如下 mailbox 表新增字段 DROP PROCEDURE IF EXISTS mailbox_column_update; CREATE PROCEDURE mailbox_column_update() BEGIN -- 新增删除标志列 IF NOT EXISTS(SELECT 1 FROM information_... -
如何用sql语句创建具有多个主键(--联合主键)的表阿
2021-01-19 07:53:15MS是这样描述的:"在 Microsoft SQL Server2000中, 字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存 储和比较字符所使用的规则。" 在查询分析器内执行下面语句,可以得到SQL SERVER支持... -
SQL Server:主键与外键设置与相关理解
2022-04-13 19:51:14个人在学习数据库基础操作时主键外键的设置,以及对于两者之间关系的模糊之处的理解与总结。 -
在SQL Server Management Studio中使用SQL语句创建数据表并添加相关约束
2022-03-17 15:46:54SQL Server中使用SQL语句创建数据表并添加约束的基础教程 1. 创建数据库 创建数据表之前,需要先创建用户数据库(不推荐在系统数据库中创建表格),再去自己创建的数据库中创建相应的数据表,创建数据库的SQL语句... -
SQL Server 怎么建立联合主键?
2021-02-08 17:21:43建立联合主键有两种方式:一种是在建表时就写出,语句如下:Create Table 表名 (字段名1 Int Not Null,字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),字段名3…………字段名N………… )另一种是在...