-
2021-01-19 06:36:18
mysql设置主键的作用是:1、唯一地标识表中的每一行,通过它可强制表的实体完整性;2、主要是用于其他表的外键关联,以及本记录的修改与删除。
【相关学习推荐:mysql教程】
mysql设置主键的作用是:
1、什么是主键
数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。主键主要是用于其他表的外键关联,以及本记录的修改与删除。
2、主键的作用
主键是能确定一条记录的唯一标识,主键字段必须唯一,必须非空,一个表中只能有一个主键,主键可以包含一个或多个字段。
打个比方,一条记录包括身份正号,姓名,年龄,学校,国籍,性别等。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
3、MySQL创建一张没有主键的表[root@node110 ~]# mysql -uroot -pyinzhengjie
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.14 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql>
mysql> CREATE DATABASE devops CHARACTER SET = utf8;
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql>
mysql>
mysql> use devops
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql>
mysql> CREATE TABLE students(stu_id INT(11),stu_name VARCHAR(50),gender INT(11)); #首先,我们这里只是创建了一张极为普通的表。
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql> INSERT INTO students VALUES(1,'jason',10); #插入第一条数据
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> INSERT INTO students VALUES(2,'danny',20); #插入第二条数据
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> INSERT INTO students VALUES(1,'jenny',30); #插入第三条数据,注意!这个id和第一条插入的数据是相同的,别问我为什么这么干,我是故意这样搞的!
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> SELECT * FROM students; #我们查询咱们刚刚插入的三条数据
+--------+----------+--------+
| stu_id | stu_name | gender |
+--------+----------+--------+
| 1 | jason | 10 |
| 2 | danny | 20 |
| 1 | jenny | 30 |
+--------+----------+--------+
3 rows in set (0.00 sec)
mysql>
4、创建一张含有主键的表(student_primary)mysql> CREATE TABLE student_primary(stu_id INT(11) PRIMARY KEY AUTO_INCREMENT,stu_name VARCHAR(50),gender INT(11)); #仔细一下这个建表语句,除了和上面的表名不同,我还为stu_id字段加了主键属性,以及自动增长的属性!
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql> INSERT INTO student_primary VALUES(1,'json',10); #这里我们插入第一条数据
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> INSERT INTO student_primary VALUES(2,'danny',20); #这里我们插入第二条数据
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> INSERT INTO student_primary VALUES(1,'jenny',30); #这里我们插入第三条数据时,报错啦!提示主键重复!
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql>
mysql>
mysql> SELECT * FROM student_primary; #我们查看表中的数据,果不其然,只有两条数据!第三条数据没有被插入进来,因为它不符合我们定义的主键规则!主键必须唯一且非空!
+--------+----------+--------+
| stu_id | stu_name | gender |
+--------+----------+--------+
| 1 | json | 10 |
| 2 | danny | 20 |
+--------+----------+--------+
2 rows in set (0.00 sec)
mysql>
5、在创建一张含有主键的表(course)mysql> CREATE TABLE course(id INT(11) PRIMARY KEY AUTO_INCREMENT,course_name VARCHAR(30));
Query OK, 0 rows affected (0.02 sec)
mysql>
mysql> INSERT INTO course VALUES(1,'Chinese'); #插入第一条数据
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> INSERT INTO course VALUES(2,'English');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO course VALUES(3,'Mathematics'),(4,'Physics'),(5,'Chemistry'),(6,'Biology'); #咱们可以同时插入多条数据
Query OK, 4 rows affected (0.01 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql>
mysql> SELECT * FROM course;
+----+-------------+
| id | course_name |
+----+-------------+
| 1 | Chinese |
| 2 | English |
| 3 | Mathematics |
| 4 | Physics |
| 5 | Chemistry |
| 6 | Biology |
+----+-------------+
6 rows in set (0.00 sec)
mysql>
更多相关内容 -
SQL Server设置主键自增长列(使用sql语句实现)
2020-09-10 23:01:36主键自增长列在进行数据插入的时候,很有用的,如可以获取返回的自增ID值,接下来将介绍SQL Server如何设置主键自增长列,感兴趣的朋友可以了解下,希望本文对你有所帮助 -
oracle如何设置主键自增.doc
2019-09-11 17:49:33oracle设置主键自增的方法,可以图形化界面也可以用sql语句,两种方法均亲自验证过。 -
Android sqlite设置主键自增长的方法教程
2020-08-30 05:18:08主要给大家介绍了关于Android sqlite设置主键自增长的方法教程,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。 -
oracle设置主键自动增长
2012-11-09 14:46:02oracle设置主键自动增长 首先,你要有一张表! 然后,你需要一个自定义的sequence 以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle... -
access设置主键
2021-01-17 18:34:02在access中设置主键,指的是把某个数据表的某个字段设置为关键字段!下面我们先大体来了解主键是何概念!所谓的主键,其实并非大家想象中的那么神秘,主键其实也是一个字段而已,只不过,该字段中的任何数据,都是...在access中设置主键,指的是把某个数据表的某个字段设置为关键字段!
下面我们先大体来了解主键是何概念!所谓的主键,其实并非大家想象中的那么神秘,主键其实也是一个字段而已,只不过,该字段中的任何数据,都是唯一的,没有任何两个数据相同,这就好比我们的身份证号码一样,没有任何两个人的身份证号码相同。具有唯一性的字段可设置为主键,换句话说,如果想让某个字段的数据不重复,那么,就可以将其设置为主键。
主键的一个用途在于,没有重复的数据;另外,主键也是不同数据表之间产生关联的参照物;还有,主键更是检索数据的参照对象,主键在数据检索方面特别有效益。
最后,我们再来了解一个常识:并非所有的字段都适合做主键,比如姓名、性别等这些字段,数据可能会存在重复,因此不适合做主键。像编号、序号等这样的字段,里面的数据不重复的,就适合做主键了。
总之,主键指的是数据具有唯一性的可为数据检索提供效益的同时还能与其它数据表建立关联的一种特殊字段。下面,我们来学习如何建立主键吧。
如下图一样,在数据表对象中,选择“食品销售统计”数据表。
然后,如下图一样,点击右键然后选择“设计视图”。
打开如下的对话框。
上图中,选择要设置为主键的字段,如本例的食品编号,然后点击右键,在菜单中选择“主键”。这样,字段就被设置为主键了,被设置为主键的字段,前面会有一把钥匙的图标,看下图就明白了。
另外,一旦字段被设置为主键,那么,该字段的其中的一个重要的属性就是,数据不能垂直重复,因此,就会像上图一样,蓝线圈住那部分,在索引那里的属性为“有”,这有利于数据的查询检索,同时,还有“无重复”。
设置好主键之后,如果想取消字段的这种属性,那么,方法也简单了,同样,如上图一样,右键主键字段,在弹出的菜单中再次选择“主键”,这样,就取消主键的设置了。
-
mysql下创建字段并设置主键的php代码
2020-12-18 09:35:21复制代码 代码如下: mysql_select_db(“hills_database_test”,$dbcon); $alterpkadd=”alter table hills_testcreatetable ... 您可能感兴趣的文章:深入探寻mysql自增列导致主键重复问题的原因mysql把主键定义为自动 -
DBeaver设置主键 与 主键删除
2021-08-04 16:05:12初次使用DBeaver可视化工具,新建mysql测试表单,设置主键id自增,前提是id为主键。那么如何设置id为主键呢? 1.点击“约束”。 2.空白处右击,选择新建约束。选择要设置为主键的字段,确定。 3. 右下角...一、设置主键与设置主键自增
初次使用DBeaver可视化工具,新建mysql测试表单,设置主键id自增,前提是id为主键。那么如何设置id为主键呢?
1.点击“约束”。
2.空白处右击,选择新建约束。选择要设置为主键的字段,确定。
3. 右下角“保存”,弹出框点击“执行”。
4.主键添加成功
5.弹出框点击执行,成功添加主键自增。
至此,主键设置,以及主键自增设置完成。
二、主键删除
1.主键删除前提是把该主键的关联项去掉。此处要将主键自增先去除掉。
2.选中约束,右击,删除
3.右下角保存,弹出框执行
4.主键删除成功!又变成了最初的样子~
一切美好的遇见都是命中注定!!!
-
PostGreSQL设置主键自增
2022-04-01 15:19:53提示:我们在设计表结构的过程中,有的时候不太愿意用sql的语法来创建表结构,而是在navicat中直接用新建的方式来创建表结构,但是发现在 Navicat 15 for PostgreSQL中,并没有设置主键自增的选项,如下图: ...在Navicat 工具中设置postGreSql表字段自增
前言
提示:我们在设计表结构的过程中,有的时候不太愿意用sql的语法来创建表结构,而是在navicat中直接用新建的方式来创建表结构,但是发现在 Navicat 15 for PostgreSQL中,并没有设置主键自增的选项,如下图:
文章核心:我们要在已经有的表结构中去创建id为主键自增
一、示例表创建语法:
CREATE TABLE "public"."baj_test" ( "id" int4 NOT NULL, "name" varchar(50) COLLATE "pg_catalog"."default", CONSTRAINT "baj_test_pkey" PRIMARY KEY ("id") ) ; ALTER TABLE "public"."baj_test" OWNER TO "postgres"; COMMENT ON COLUMN "public"."baj_test"."id" IS '主键ID'; COMMENT ON COLUMN "public"."baj_test"."name" IS '姓名';
二、设置baj_test表中主键ID为自增
1.在PostgreSQL当中,我们实现ID自增首先创建一个关联序列序列
打开navcat查询列表,去创建一个序列
CREATE SEQUENCE baj_test_id_seq START 1;
如上代码中的1代码此主键从1开始,
注意:如果您项目中的表已经有数据,那么START 后边的数字一定要比数据库中的主键字段的最大值要大或者相同
2.然后在字段默认值里设 nextval(‘baj_test_id_seq’)保存即可
nextval('baj_test_id_seq')
三、我们看一下现在的表结构
id已经变成了主键自增
CREATE TABLE "public"."baj_test" ( "id" int4 NOT NULL DEFAULT nextval('baj_test_id_seq'::regclass), "name" varchar(50) COLLATE "pg_catalog"."default", CONSTRAINT "baj_test_pkey" PRIMARY KEY ("id") ) ; ALTER TABLE "public"."baj_test" OWNER TO "postgres"; COMMENT ON COLUMN "public"."baj_test"."id" IS '主键ID'; COMMENT ON COLUMN "public"."baj_test"."name" IS '姓名';
3.测试结果
手动录入name,id不用填写
-
Oracle设置主键自增
2022-04-19 19:51:461、如果没有表需要在创建表的时候创建主键 CREATE TABLE Demo ...2、如果有表,没有主键,需要设置主键 ALTER TABLE (表名) ADD CONSTRAINT (主键的名字) PRIMARY KEY ((主键)); 3、创建序列,实现主键自增 CREATE -
oracle怎样设置主键?_数据库
2021-05-07 04:58:07oracle设置主键的要领:1、在建立表时定义主键 ,代码为【constraint TF_B_AIR_CONFIG_PK primary key(TYPE_ID)】;2、在建立表后,运用alter table语法设置主键。 oracle设置主键的要领:一、什么是主键主键... -
mysql建表时设置主键的方法
2021-02-02 09:04:51mysql建表时设置主键的方法发布时间:2020-10-10 15:17:28来源:亿速云阅读:119作者:小新mysql建表时设置主键的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给... -
oracle如何设置主键?
2021-04-30 08:18:09oracle设置主键的方法:1、在创建表时定义主键 ,代码为【constraint TF_B_AIR_CONFIG_PK primary key(TYPE_ID)】;2、在创建表后,使用alter table语法设置主键。oracle设置主键的方法:一、什么是主键主键(primary... -
mysql用命令行如何设置主键
2021-01-19 11:01:21mysql用命令行设置主键的方法:首先进入到mysql命令行工具,并通过use关键字进行到目标数据库里;然后通过命令ADD PRIMARY KEY来添加主键,并回车即可。mysql用命令行设置主键的方法:1、首先我们通过终端进入到... -
C# dataTable 设置主键
2022-02-18 09:25:02//有几个主键就设置多长 DataColumn[] PrimaryKeyColumns = new DataColumn[2]; //添加主键,必须是已经在DataTable里有的列名 PrimaryKeyColumns[0] = dt.Columns["UserName"]; PrimaryKeyColumns[1] = dt.Columns... -
Postgresql设置主键递增
2022-04-22 11:27:231:创建表 create table test_c ...2:创建序列并设置规则 CREATE SEQUENCE test_c_id_seq START WITH 1 //从1开始 INCREMENT BY 1 //每次递增1 NO MINVALUE //无最小值 NO MAXVALUE //无最大值 CACHE 1; -
PostgreSQL设置主键
2021-02-26 09:41:02--从技术上讲,主键约束只是唯一约束和非空约束的组合。所以,下面两个表定义是等价的: CREATE TABLE products ( product_no integer UNIQUE NOT NULL, name text, price numeric ); CREATE TABLE products ( ... -
postgresql 设置主键自增
2022-03-22 17:48:05使用SERIAL 建表时使用 SERIAL 字段类型: CREATE TABLE users ( id SERIAL primary key , name character varying, password character varying ) 自动创建名为users_id_seq的序列,然后设置id默认值为该序列, 删除... -
mysql设置主键自增
2021-11-04 14:52:411.mysql数据库给主键增加一个自增的功能: mysql> alter table sec_user modify id integer auto_increment ; Query OK, 1 row affected (0.28 sec) Records: 1 Duplicates: 0 Warnings: 0 2.java程序添加... -
MySQL建表时不设置主键
2021-01-18 20:27:07翻译一下就是:如果没有主动设置主键,就会选一个不包含NULL的第一个唯一索引列作为主键列,并把它用作一个聚集索引。如果没有这样的索引就会使用行号生成一个聚集索引,把它当做主键,这个行号6bytes,自增。可以... -
ORACLE 设置主键自增
2021-10-22 16:45:11例:当前有表,名【test_incr】,其主键【tid】需要设置自增。 1、首先,创建【test_incr】表自增序列 create sequence test_incr_autoinc minvalue 1 maxvalue 9999999999999999999999999999 start with 1 ... -
jpa如何设置主键自动增长
2021-01-12 22:57:55我想问hibernate映射文件设置主键的generation=native到了jpa在哪里设置呢?@GeneratedValue(strategy = GenerationType.AUTO)@Idpublic Integer getId() {return id;}jpa在spring的设置:org.hibernate.cfg.Im... -
【Oracle】 设置主键
2020-12-22 10:09:56oracle设置主键的方法: 1、在创建表时定义主键 ,代码为【constraint TF_B_AIR_CONFIG_PK primary key(TYPE_ID)】; 2、在创建表后,使用alter table语法设置主键。 一、什么是主键 主键(primary key)是表中... -
MySQL InnoDB数据表不设置主键时的情况
2022-03-14 17:11:22问题 MySQL数据库规范中规定每张表中都需要设置主键,那么是因为什么原因而如此规定的呢。每一条规范都会有它背后的涵义。 -
oracle 设置主键SQL
2021-09-12 09:28:53--一个主键 ALTER TABLE tableName ADD CONSTRAINT ...--多个主键(若表中已经存在主键,需要删除后才能设置组合主键) ALTER TABLE tableName ADD CONSTRAINT tableName_PK PRIMARY KEY ("主键1", "主键2"); ... -
EF Core 2.2使用Code First模式如何设置主键不自增(如何设置主键可赋值)
2020-12-20 12:20:50【环境】:.NET Core 2.2 + EF Core 2.2,使用Code First模式,实体Entity的映射没有写在Entity里,分离了出来单独配置,通过实现...实体基类public class EntityBase{/// 主键/// The identifier.pu... -
mysql建表时怎么设置主键?
2021-02-02 09:04:50设置方法:在“CREATE TABLE”语句中,通过“PRIMARY KEY”关键字来指定主键,语法格式“字段名 数据类型 PRIMARY KEY [默认值]”或“[CONSTRAINT 约束名] PRIMARY KEY 字段名”。主键(PRIMARY KEY)的完整称呼是...