首页 > 数据库技术 > 详细

mysql --键表约束

时间:2020-07-07 22:50:15      阅读:81      评论:0      收藏:0      [点我收藏+]

--mysql 键表约束,sql

--主键约束;
它能够唯一确定一张表中的一条记录,也就是我们通过给某个字段添加约束,就可以使得该字段不重复,且不为空。
有且只有一个

create table user (
id int primary key,
name varchar(20)
);

mysql> describe user;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

mysql> insert into user values(1,‘zhangsan‘);
Query OK, 1 row affected (0.00 sec)

mysql> insert into user values(1,‘zhangsan‘);
ERROR 1062 (23000): Duplicate entry ‘1‘ for key ‘user.PRIMARY‘
mysql>

mysql> insert into user values(1,‘zhangsan‘);
ERROR 1062 (23000): Duplicate entry ‘1‘ for key ‘user.PRIMARY‘
mysql> insert into user values(2,‘zhangsan‘);
Query OK, 1 row affected (0.00 sec)

mysql> select * from user;
+----+----------+
| id | name |
+----+----------+
| 1 | zhangsan |
| 2 | zhangsan |
+----+----------+
2 rows in set (0.00 sec)

mysql>

mysql> insert into user values(null,‘zhangsan‘);
ERROR 1048 (23000): Column ‘id‘ cannot be null
mysql>

--联合主键;
--只要联合主键值加起来不重复就可以,也不可以为空;
mysql> create table user2(
-> id int,
-> name varchar(20),
-> password varchar(20),
-> primary key(id,name)
-> );
Query OK, 0 rows affected (0.01 sec)

mysql> select * from user2;
+----+----------+----------+
| id | name | password |
+----+----------+----------+
| 1 | lisi | 234 |
| 1 | zhangsan | 123 |
| 2 | zhangsan | 123 |
+----+----------+----------+
3 rows in set (0.00 sec)

 


--自增约束
mysql> create table user3(
-> id int primary key auto_increment,
-> name varchar(20)
-> );
Query OK, 0 rows affected (0.01 sec)

mysql> insert into user3 (name) values(‘zhangsan‘);
Query OK, 1 row affected (0.01 sec)

mysql> select * from user3;
+----+----------+
| id | name |
+----+----------+
| 1 | zhangsan |
+----+----------+
1 row in set (0.00 sec)
mysql> insert into user3 (name) values(‘zhangsan‘);
Query OK, 1 row affected (0.00 sec)

mysql> select * from user3;
+----+----------+
| id | name |
+----+----------+
| 1 | zhangsan |
| 2 | zhangsan |
+----+----------+
2 rows in set (0.00 sec)

--> 就是自我增长


--外键约束;

--唯一约束;

--非空约束;

--默认约束;

mysql --键表约束

原文:https://www.cnblogs.com/clairedandan/p/13263658.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!