主键约束

  不多说,直接上干货!

(1)主键约束PRIMARY KEY

(2)每张数据表只能存在一个主键

(3)主键保证记录的唯一性

(4)主键自动为NOT NULL

(1)主键约束PRIMARY KEY

1 create table tb3(
2 id smallint unsigned auto_increment primary key,
3 username varchar(30) not null
4 );

  注意:auto_increment必须和主键一起使用,但是这并不代表主键一定要和auto_increment一起使用主键可以写成PRIMARY KEY,也可以写成KEY。

(3)主键保证记录的唯一性

insert tb3(username) values(‘zhangshan‘);

insert tb3(username) values(‘lisi‘);

 insert tb3(username) values(‘wangwu‘);

insert tb3(username) values(‘lineng‘);

select * from tb3;

create table tb4(
id smallint unsigned key,
username varchar(30) not null
);

 select columns from tb4;

insert tb4 values(3,‘zhaosi‘);

insert tb4 values(9,‘dajiao‘);

select * from tb4;

insert tb4 values(9,‘xiaomeng‘);

mysql> insert tb4 values(3,‘zhaosi‘);
Query OK, 1 row affected (0.05 sec)

mysql> insert tb4 values(9,‘dajiao‘);
Query OK, 1 row affected (0.07 sec)

mysql> select * from tb4;
+----+----------+
| id | username |
+----+----------+
| 3 | zhaosi |
| 9 | dajiao |
+----+----------+
2 rows in set (0.00 sec)

mysql> insert tb4 values(9,‘xiaomeng‘);
ERROR 1062 (23000): Duplicate entry ‘9‘ for key 1
mysql>

时间: 2024-12-26 00:13:51

主键约束的相关文章

主键约束,唯一性约束,唯一性索引

1)主键列:比如我们在表A中指定ID为主键,Oracle数据库会自动创建一个同名的唯一索引 可以通过 select constraint_name,constraint_type from user_indexes ui where ui.table_name='A'来查看主键上的唯一索引,如果此时我们在给ID列去创建唯一性索引或者非唯一性索引的话,都会报错,当然指定主键之后自动也会生成主键约束,主键就是一种约束 (2)非主键列:我们在非主键列上创建一个唯一性约束,Oracle同样自动创建了一个

SQL存储原理及聚集索引、非聚集索引、唯一索引、主键约束的关系(补)

索引类型 1.          唯一索引:唯一索引不允许两行具有相同的索引值 2.          主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型.主键索引要求主键中的每个值是唯一的,并且不能为空 3.          聚集索引(Clustered):表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能有一个 4.          非聚集索引(Non-clustered):非聚集索引指定表的逻辑顺序.数据存储在一个位置,索引存储在另一个位置,索引中包含指

使用主键约束

一.主键约束 (1) 主键是一列或多列的组合,能够唯一地标识表中的一条记录,加快数据库查询的速度(2) 主键约束要求主键列的数据唯一,并且不允许为空,主键和记录之间的关系是一一对应的(3) 主键分为两种类型:单字段主键和多字段联合主键,单字段主键由一个字段组成,多字段联合主键由多个字段联合组成 二.单字段主键 mysql> CREATE TABLE tb_emp2 -> ( -> id INT(11) PRIMARY KEY, # 定义列的同时定义主键 -> name VARCHA

oracle数据库添加,查询,删除主键约束

     主键约束在每个表中只有一个,但是一个主键约束可以由多个列组成 可以在创建表的时候就创建主键约束,也可以通过alter语句添加主键约束 1:添加主键约束 [1] 语法: CREATE TABLE 表名(        字段名  primary key,      字段名....., ); 示例: CREATE TABLE student(  id number primary key, name varchar(20), age number(3), email varchar2(50)

主键约束和唯一性约束

主键约束和唯一性约束都是索引,它们的区别是: 主键字段可以确保唯一性,但主键字段不能为NULL. 唯一性约束可以确保唯一性,但唯一性约束的字段可以为NULL 唯一性约束对含有NULL的记录不起作用,即可以重复加入含有NULL的记录,主键字段不能为NULL mysql-workbench无法创建多字段唯一性约束,可以在命令行手工增加增加多字段唯一性性约束mysql>alter table cmd_end_regexp add constraint dev_series_uniq UNIQUE(de

Oracle如何删除主键约束的同时也删除索引

一.现象 在oracle10g中删除主键约束后,在插入重复数据时候仍然报“ORA-00001”错误. 二.原因 Oracle在的10g版本中对内部函数"atbdui"进行了调整,导致在删除约束的时候无法删除用户创建的索引.这个现象被Oracle分类到了“PROBLEM”. 三.方法 在删除约束的时候需要显示的指定“drop index”选项来完成索引的级链删除. 例:alter table table_name drop constraint constraint_name casca

Oracle数据库,非空约束、主键约束、外键约束、唯一约束

非空约束:设置列时,可为空默认可为空,去掉对号之后设置数据不可为空: 唯一约束:在键中设置,唯一约束名称.类型Unique.列名:设置应用完成之后,此列数据具有唯一性:即数据不可重复 主键约束:主键列自动具有非空约束和唯一约束,一个表只能有一个主键约束(自动生成索引,提高查询效率)

Oracle的主键约束、唯一约束与外键约束

http://www.shangxueba.com/jingyan/122163.html主键:  1.主键约束: 一个表只能有一个主键约束.主键可以是单个字段,也可以是多个字段.无论是哪种情况,其所有字段都是NOT NULL.  2.Unique约束:一个表可以有多个Unique约束,Unique的字段可以为NULL.  3.主键与Unique:不同点在于一个表只能有一个主键约束,但是可以有多个Unique约束:主键所有字段都是not null,unique可以是null:相同点在于都能保证唯

主键约束 primary key

主键的作用: 可以唯一标识 一条数据,每张表里面只能有一个主键,.主键特性: 非空且唯一.当表里没有主键的时,第一个出现的非空且为唯一的列,被当成主键. 例子:create table tb3(     id int primary key,    name varchar(20) not null); 唯一标识 一条数据 #删除主键约束mysql -> alter table tb3           -> drop primary key #添加主键约束mysql> alter t