数据库——完整性约束条件

本文介绍了数据库的完整性约束条件,包括主键、自增长、非空约束、默认值和唯一性约束。主键作为唯一标识符,自增长字段常用于主键且只对整数列生效。非空约束确保字段不为空,默认值则可以为字段提供预设值,而唯一约束则保证字段数据的唯一性。
摘要由CSDN通过智能技术生成

1.完整性约束条件测试

1.1完整性约束条件有哪些

PRIMARY KEY 主键
AUTO_INCREMENT 自增长
FOREIGN KEY 外键
NOT NULL 非空
UNIQUE KEY 唯一
DEFAULT 默认值

1.1.1主键

主键:唯一标识符,身份证号和人的关系就相当于主键和记录的关系
一般加到无意义的字段上例如:编号字段
定义主键字段的要求:不能重复、被标志成主键的字段自动非空
分为单字段主键和多字段主键

--测试主键
CREATE TABLE IF NOT EXISTS user1(
id INT PRIMARY KEY,
username VARCHAR(20)
);
Query OK, 0 rows affected (0.09 sec)

DESC user1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.04 sec)
--查看创建表的定义
SHOW CREATE TABLE user1;
+-------+----------------------------------------------------------------------------
---------------------------------------------------------+
| Table | Create Table
                                                         |
+-------+----------------------------------------------------------------------------
---------------------------------------------------------+
| user1 | CREATE TABLE `user1` (
  `id` int(11) NOT NULL,
  `username` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+----------------------------------------------------------------------------
---------------------------------------------------------+
1 row in set (0.00 sec)
--主键值的唯一性
INSERT user1 VALUES(2,'QUEEN');
Query OK, 1 row affected (0.01 sec)
INSERT user1 VALUES(1,'KING');
Query OK, 1 row affected (0.00 sec)
INSERT user1 VALUES(1,'KING');
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
--查看记录
SELECT * FROM user1;
+----+----------+
| id | username |
+----+----------+
|  1 | KING     |
|  2 | QUEEN    |
+----+----------+
2 rows in set (0.00 sec)
--查看id为1的记录
SELECT * FROM user1 WHERE id=1;
+----+----------+
| id | username |
+----+----------+
|  1 | KING     |
+----+----------+
1 row in set (0.01 sec)
--设置两个主键
mysql> CREATE TABLE IF NOT EXISTS userb(
    -> id INT,
    -> username VARCHAR(20),
    -> card CHAR(18),
    -> PRIMARY KEY (id,card)
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> DESC userb;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | 0       |       |
| username | varchar(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值