【MySQL学习笔记】第6章 修改表(二)

本文详细介绍了如何在MySQL中设置主键、唯一键和具有自动连续编号功能的列,以及如何确认主键、初始化连续编号、设置列默认值和创建索引。通过实例演示了CREATE TABLE、ALTER TABLE命令的使用,强调了主键的唯一性和重要性,以及索引在提高查询效率方面的作用。
摘要由CSDN通过智能技术生成

6.7 设置主键

6.7.1 什么是唯一

创建了数据库之后,需要想办法能从大量的数据中只确定一个符合条件的记录。例如让每一个会员都有一个独一无二的会员ID。这种‘只会确定一个’的独一无二的状态,称为唯一。

6.7.2 什么是主键

创建唯一记录时,会给列设置一个用于和其他列进行区分的特殊属性。

在这种情况下需要用到的就是主键(PRIMARY KEY)。主键是在多条记录中用于确定一条记录时使用的标识符。

主键的特征:

  • 没有重复的值
  • 不允许输入空值(NULL)

在创建表的时候设置主键

命令格式:CREATE TABLE 表名 (列名 数据类型 PRIMARY KEY,......);

6.7.3 创建主键

创建表t_pk,其中最为主键列的a为INT类型,列b为VARCHAR(10)类型。

输入:

CREATE TABLE t_pk (a INT PRIMARY KEY,b VARCHAR(10));

执行结果:

Query OK, 0 rows affected (0.03 sec)

检查结果:

mysql> DESC t_pk;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| a     | int(11)     | NO   | PRI | NULL    |       |
| b     | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

项目Key中显示的PRI表示主键PRIMARY KEY。另外在项目NULL中,列a显示为NO,这表示不允许输入NULL,即不允许输入空值。

6.7.4 确认主键

首先,向表t_pk中插入值为“1,‘啊’”的记录。

输入&执行结果:

mysql> INSERT INTO t_pk(a,b) VALUES(1,'啊');
Query OK, 1 row affected (0.01 sec)

检查结果:

mysql> SELECT * FROM t_pk;
+---+------+
| a | b    |
+---+------+
| 1 | 啊   |
+---+------+
1 row in set (0.00 sec)

检查向列中插入值1或者NULL的情况

输入&执行结果:

mysql> INSERT INTO t_pk(a) VALUES(1);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql> INSERT INTO t_pk(a) VALUES(NULL);
ERROR 1048 (23000): Column 'a' cannot be null

因为列a中不允许输入重复的值1和空值NULL,所以会报上述错误。

检查向列中插入值1或者NULL以外的情况

输入&执行结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

odi帆布

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值