深圳市金黑网络技术有限公司始终坚持以用户需求为导向,提供安全、稳定、高效的产品和服务!
签到 · 搜索导航 · 服务热线 · 微信/手机:17817817816

深圳网站建设

查看: 354|回复: 0

mysql数据库教程自动增长(auto_increment)主键(primary key)案例代码

[复制链接]

UID
1
贡献
844
金币
1540
主题
520
在线时间
333 小时
注册时间
2022-1-15
最后登录
2024-11-12
QQ
发表于 2022-11-27 19:06:11 | 354 | 0 | 显示全部楼层 |阅读模式
mysql数据库教程自动增长(auto_increment)主键(primary key)案例代码

  1. -- 创建主键方法一
  2. mysql> create table stu20(
  3.     -> id int auto_increment primary key,
  4.     -> name varchar(20)
  5.     -> );
  6. Query OK, 0 rows affected (0.04 sec)

  7. -- 创建主键方法二
  8. mysql> create table stu21(
  9.     -> id int auto_increment,
  10.     -> name varchar(20),
  11.     -> primary key(id)
  12.     -> );
  13. Query OK, 0 rows affected (0.02 sec)
复制代码
组合键

  1. mysql> create table stu22(
  2.     -> classname varchar(20),
  3.     -> stuname varchar(20),
  4.     -> primary key(classname,stuname)  -- 创建组合键
  5.     -> );
  6. Query OK, 0 rows affected (0.00 sec)

  7. mysql> desc stu22;
  8. +-----------+-------------+------+-----+---------+-------+
  9. | Field     | Type        | Null | Key | Default | Extra |
  10. +-----------+-------------+------+-----+---------+-------+
  11. | classname | varchar(20) | NO   | PRI |         |       |
  12. | stuname   | varchar(20) | NO   | PRI |         |       |
  13. +-----------+-------------+------+-----+---------+-------+
  14. 2 rows in set (0.00 sec)
复制代码
通过更改表添加主键

  1. mysql> create table stu23(
  2.     -> id int,
  3.     -> name varchar(20)
  4.     -> );
  5. Query OK, 0 rows affected (0.05 sec)

  6. -- 添加主键
  7. mysql> alter table stu23 add primary key(id);
  8. Query OK, 0 rows affected (0.09 sec)
  9. Records: 0  Duplicates: 0  Warnings: 0
复制代码
删除主键

  1. mysql> alter table stu23 drop primary key;
  2. Query OK, 0 rows affected (0.03 sec)
  3. Records: 0  Duplicates: 0  Warnings: 0
复制代码
插入数据

  1. mysql> create table stu25(
  2.     -> id tinyint unsigned auto_increment primary key,
  3.     -> name varchar(20)
  4.     -> );
  5. Query OK, 0 rows affected (0.05 sec)

  6. -- 插入数据
  7. mysql> insert into stu25 values (3,'tom');   -- 可以直接插入数字
  8. Query OK, 1 row affected (0.06 sec)

  9. -- 自动增长列可以插入null,让列的值自动递增
  10. mysql> insert into stu25 values (null,'berry');
  11. Query OK, 1 row affected (0.00 sec)
复制代码
小结:
1、只要是auto_increment必须是主键,但是主键不一定是auto_increment
2、主键特点是不能重复不能为空
3、一个表只能有一个主键,但是一个主键可以有多个字段组成
4、自动增长列通过插入null值让其递增
5、自动增长列的数据被删除,默认不再重复使用。truncate table删除数据后,再次插入从1开始
楼主热帖

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

快速回复 返回顶部 返回列表