MySQL主键

“主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可以强制表的实体完整性。

选取设置主键约束的字段

主键约束即在表中定义一个主键来唯一确定表中每一行数据的标识符。主键可以是表中的某一列或者多列的组合,其中由多列组合的主键称为复合主键。

主键应该遵守下面的规则:

	每个表只能定义一个主键。主键值必须唯一标识表中的每一行,且不能为 NULL,即表中不可能存在两行数据有相同的主键值。这是唯一性原则。一个列名只能在复合主键列表中出现一次。复合主键不能包含不必要的多余列。当把复合主键的某一列删除后,如果剩下的列构成的主键仍然满足唯一性原则,那么这个复合主键是不正确的。这是最小化原则。

在创建表时设置主键约束

在 CREATE TABLE 语句中,主键是通过 PRIMARY KEY 关键字来指定的。

在定义列的同时指定主键,语法规则如下:

<字段名> <数据类型> PRIMARY KEY [默认值]

在 test_db 数据库中创建 tb_emp 3 数据表,其主键为 id,输入的 SQL 语句和运行结果如下所示。

mysql> CREATE TABLE tb_emp3-> (-> id INT(11) PRIMARY KEY,-> name VARCHAR(25),-> deptId INT(11),-> salary FLOAT-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp3;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)

在定义完所有列之后,指定主键的语法格式为:

[CONSTRAINT <约束名>] PRIMARY KEY [字段名]

在 test_db 数据库中创建 tb_emp 4 数据表,其主键为 id,输入的 SQL 语句和运行结果如下所示。

mysql> CREATE TABLE tb_emp4-> (-> id INT(11),-> name VARCHAR(25),-> deptId INT(11),-> salary FLOAT,-> PRIMARY KEY(id)-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp4;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)

在创建表时设置复合主键
主键由多个字段联合组成,语法规则如下:

PRIMARY KEY [字段1,字段2,…,字段n]

创建数据表 tb_emp5,假设表中没有主键 id,为了唯一确定一个员工,可以把 name、deptId 联合起来作为主键,输入的 SQL 语句和运行结果如下所示。

mysql> CREATE TABLE tb_emp5-> (-> name VARCHAR(25),-> deptId INT(11),-> salary FLOAT,-> PRIMARY KEY(id,deptId)-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp5;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name   | varchar(25) | NO   | PRI | NULL    |       |
| deptId | int(11)     | NO   | PRI | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.14 sec)

在修改表时添加主键约束
在修改数据表时添加主键约束的语法规则为:

ALTER TABLE <数据表名> ADD PRIMARY KEY(<列名>);

查看 tb_emp2 数据表的表结构,如下所示。

mysql> DESC tb_emp2;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)

修改数据表 tb_emp2,将字段 id 设置为主键,输入的 SQL 语句和运行结果如下所示。

mysql> ALTER TABLE tb_emp2-> ADD PRIMARY KEY(id);
Query OK, 0 rows affected (0.94 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp2;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.12 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电大计算机一级b考试试题,电大计算机考试本科试题

目录&#xff1a;按住Ctrl键点击相关的标题&#xff0c;可以快速的切换到相应的内容处 操作系统应用 计算机网络应用 文字编辑 电子表格 电子演示文稿电子表格 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1在考生文件夹下新建一个Excel工作簿&#xff0c;完成以下操作…

antd table排序 vue_antd of Vue 之table组件踩坑记

需求&#xff1a;页面里有个table&#xff0c;点击编辑可以编辑该table&#xff0c;保存数据并展示到页面上来第一种方法就是把编辑态的table做成子组件(且叫editeTable)&#xff0c;通过v-show判断是否进入编辑态来显示隐藏。先仿造原本父组件(且叫fatherTable)&#xff0c;做…

计算机管理也无法运行,【两种解决方法】任务管理器打不开怎么办?

任务管理器调不出来怎么办&#xff1f;任务管理器打不开是怎么回事呢&#xff1f;以下两种方法可解决任务管理器打不开问题&#xff1f;1、打开电脑&#xff0c;点击左下角”开始“&#xff0c;选择运行&#xff0c;打开运行对话框后输入"regedit“如下图&#xff1a;2、在…

MySQL唯一约束

MySQL唯一约束&#xff08;Unique Key&#xff09;要求该列唯一&#xff0c;允许为空&#xff0c;但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。 在创建表时设置唯一约束 在定义完列之后直接使用 UNIQUE 关键字指定唯一约束&#xff0c;语法规则如下&…

单纯形法表格法例题详解_最优化单纯形法例题讲解.doc

最优化单纯形法例题讲解.doc例1 用单纯形法解下列问题&#xff1a;解&#xff1a;将原问题化成标准形&#xff1a;x4与添加的松弛变量x&#xff0c;x在约束方程组中其系数正好构成一个3阶单位阵&#xff0c;它们可以作为初始基变量&#xff0c;初始基可行解为X(0, 0, , 8, 4)T列…

卫星轨道的计算是利用计算机的,轨道计算

轨道计算是一种粗略测定天体轨道的方法。在轨道计算中﹐人们事先不必对天体轨道作任何初始估计﹐而是从若干观测资料出发﹐根据力学和几何条件定出天体的初始轨道﹐以便及时跟踪天体﹐或作为轨道改进的初值。为了计算六个轨道要素(见二体问题)﹐至少必须有三次光学观测﹐因为每…

MySQL检查约束

MySQL 检查约束&#xff08;CHECK&#xff09;可以通过 CREATE TABLE 或 ALTER TABLE 语句实现&#xff0c;根据用户实际的完整性要求来定义。它可以分别对列或表实施 CHECK 约束。 选取设置检查约束的字段 检查约束使用 CHECK 关键字&#xff0c;具体的语法格式如下&#xf…

计算机虚拟现实技术论文好写吗,虚拟现实技术的论文

虚拟现实技术的论文虚拟现实技术&#xff0c;又称灵境技术&#xff0c;是90年代为科学界和工程界所关注的技术。下面时刻小编给大家搜集的关于虚拟现实技术的科技论文&#xff0c;希望大家喜欢&#xff01;摘要&#xff1a;虚拟现实技术是一种可以创建和体验虚拟世界的计算机技…

sqlserver 微信 读取_Sql Server使用链接服务器远程取数据_sqlserver

由于最近开发的一个查询系统,基本是在其它服务器的,所以在本地服务器设计了中间,用来存从远程服务器取数据!一种方法是通过,OPENDATASOURCE来远程读取数据!SELECT *FROM OPENDATASOURCE(SQLOLEDB,Data SourceServerName;User IDMyUID;PasswordMyPasshttp://www.gaodaima…

MySQL默认约束

“默认值&#xff08;Default&#xff09;”的完整称呼是“默认值约束&#xff08;Default Constraint&#xff09;”。MySQL 默认值约束用来指定某列的默认值。 例如女性同学较多&#xff0c;性别就可以默认为“女”。如果插入一条新的记录时没有为这个字段赋值&#xff0c;那…

设计一个具有大纯时延时间的一阶惯性环节的计算机控制系统,具有一阶纯滞后环节设计.doc...

文档介绍&#xff1a;目录第一部分设计任务及方案1、设计题目及要求2、设计方案分析论证第二部分方案各模块分析1、被控对象分析2、测量元件热电阻及前置放大电路3、A/D转换器4、控制器(单片机)5、光隔驱动器第三部分数字控制器D(Z)的设计1、数字控制器D(Z)2、程序流程图设计第…

MySQL非空约束

MySQL 非空约束&#xff08;NOT NULL&#xff09;可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词&#xff0c;来约束该列的取值不能为空。 非空约束&#xff08;Not Null Constraint&#xff09;指字段的值不能为空。对…

计算机操作安全协议,安全协议操作语义模型研究及应用-计算机软件与理论专业论文.docx...

安全协议操作语义模型研究及应用-计算机软件与理论专业论文摘摘 要桂林电子科技大学学位论文桂林电子科技大学学位论文摘要安全协议的操作语义模型是一种分析安全协议的新模型&#xff0c;它结合了以往多种协议 分析模型的优点&#xff0c;能分析多个协议及多个主体并行运行的协…

python怎么开发工具_为程序员和新手准备的8大Python开发工具

Python 是一种开源编程语言&#xff0c;用于 Web 编程、数据科学、人工智能和许多科学应用。学习 Python 使程序员能够专注于解决问题&#xff0c;而不是专注于语法&#xff0c;其丰富的库赋予它完成伟大任务所需的力量。1) IDLE安装 Python 时&#xff0c;默认情况下也会安装 …

MySQL查看表中的约束

MySQL 中可以使用 SHOW CREATE TABLE 语句来查看表中的约束。 查看数据表中的约束语法格式如下&#xff1a; SHOW CREATE TABLE <数据表名>;创建数据表 tb_emp8 并指定 id 为主键约束&#xff0c;name 为唯一约束&#xff0c;deptId 为非空约束和外键约束&#xff0c;然…

文件后缀_电脑文件名的后缀即扩展名的显示和隐藏方法

前两天碰到一个同事问我&#xff0c;他的文件名后面的格式不显示了&#xff0c;就是扩展名&#xff0c;比如Word文档名称后缀的doc或者docx和Excel表格名称后缀的xls或者xlsx没有了&#xff0c;还有一些其他文件的后缀也不显示了。我三两下就给他改好了。那么今天就来给大家讲一…

u盘无法格式化不在计算机中,在电脑中,为什么U盘不能格式化?

我们有时候会碰到在电脑中U盘不能格式化的问题&#xff0c;这该怎么办呢&#xff1f;接下来小编就从解决方法来为大家介绍下为什么U盘不能格式化&#xff1f;1. 首先在桌面左下角点击“开始菜单”-->点击“运行..”&#xff0c;然后在运行框中输入&#xff1a;“regedit.exe…

四种依恋类型_依恋关系的研究

说到依恋关系&#xff0c;大家都会想到安全型、焦虑型、回避型&#xff0c;以及这些类型会影响到成年后的人际关系。本文具体罗列一下心理学家研究依恋关系的都做出了怎样的努力。第一&#xff1a;哈罗做的恒河猴验。实验情境&#xff1a;把小猴放在一个笼子里&#xff0c;这个…

MySQL 查询数据表

MySQL 表单查询是指从一张表的数据中查询所需的数据&#xff0c;主要有查询所有字段、查询指定字段、查询指定记录、查询空值、多条件的查询、对查询结果进行排序等。 基本语法 MySQL 从数据表中查询数据的基本语句为 SELECT 语句&#xff0c;基本格式如下&#xff1a; SELE…

内网通看不到其他人_小学生在新版本里用“吃鸡内挂”,巡查员:封不了,手机自带的...

欢迎诸位小伙伴们来到本期天哥开讲的《和平精英》“精英那点事儿”~接下来呢&#xff0c;咱们聊聊玩家用“吃鸡内挂”打沙漠地图、出生岛的ID为何会消失不见以及未更新的新枪提前出现等有趣的玩家游戏经历与发现~得&#xff0c;废话不多说了&#xff0c;还是各位小伙伴们熟悉的…