当前位置:Gxlcms > 数据库问题 > MySQL----主键(PRIMARY KEY)和自增(AUTO INCREMENT)

MySQL----主键(PRIMARY KEY)和自增(AUTO INCREMENT)

时间:2021-07-01 10:21:17 帮助过:3人阅读

测试主键 CREATE TABLE test_primary_key( id INT UNSIGNED PRIMARY KEY, username VARCHAR(20) ); INSERT test_primary_key(id,username) VALUES(1,‘NAME1‘); INSERT test_primary_key(id,username) VALUES(1,‘name2‘); INSERT test_primary_key(username) VALUES(‘name3‘); CREATE TABLE test_primary_key1( id INT UNSIGNED KEY, username VARCHAR(20) ); CREATE TABLE test_primary_key2( id INT UNSIGNED, username VARCHAR(20), PRIMARY KEY(id) ); -- CREATE TABLE test_primary_key3( -- id INT UNSIGNED PRIMARY KEY, -- courseId INT UNSIGNED PRIMARY KEY, -- username VARCHAR(20), -- email VARCHAR(50) -- ); -- 复合主键 CREATE TABLE test_primary_key3( id INT UNSIGNED, courseId VARCHAR(20), username VARCHAR(20), email VARCHAR(50), PRIMARY KEY(id,courseId) ---<<---相当于通过id 和 courseId 都可以定位到要查询的记录 ); -- 1-a INSERT test_primary_key3(id,courseId,username,email) VALUES(1,1,‘xiaoming‘,‘8@qq.com‘); INSERT test_primary_key3(id,courseId,username,email) VALUES(2,1,‘xiaohong‘,‘71946@qq.com‘); INSERT test_primary_key3(id,courseId,username,email) VALUES(3,1,‘张三‘,‘3946@qq.com‘); INSERT test_primary_key3(id,courseId,username,email) VALUES(4,1,‘李四‘,‘17@qq.com‘); -- 测试AUTO_INCREMENT CREATE TABLE test_auto_increment( id INT UNSIGNED KEY AUTO_INCREMENT, username VARCHAR(20) );
-- id INT UNSIGNED KEY AUTO_INCREMENT 中有AUTO_INCREMENT时一定要有KEY, 否则会报错.

INSERT test_auto_increment(username) VALUES(‘A‘); INSERT test_auto_increment(username) VALUES(‘B‘); INSERT test_auto_increment(username) VALUES(‘C‘); INSERT test_auto_increment(id,username) VALUES(NULL,‘E‘); INSERT test_auto_increment(id,username) VALUES(DEFAULT,‘F‘);
INSERT test_auto_increment(id,username) VALUES(‘‘,‘M‘);--报错, 不能为‘‘;
INSERT test_auto_increment(id,username) VALUES(15,‘G‘);--此刻id从15开始编号

 

mysql> select * from test_primary_key3;
+----+----------+----------+-------------+
| id | courseId | username | email       |
+----+----------+----------+-------------+
|  1 | 1        | xiaoming | 8@qq.com    |
|  2 | 1        | ??       | 3946@qq.com |
|  4 | 1        | 李四     | 17@qq.com   |
+----+----------+----------+-------------+
3 rows in set (0.00 sec)

mysql> CREATE TABLE test_auto_increment(
    -> id INT UNSIGNED KEY AUTO_INCREMENT,
    -> username VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> DESC test_auto_increment;
+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| id       | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| username | varchar(20)      | YES  |     | NULL    |                |
+----------+------------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)



INSERT test_auto_increment(username) VALUES(‘A‘);
INSERT test_auto_increment(username) VALUES(‘B‘);
INSERT test_auto_increment(username) VALUES(‘C‘);

INSERT test_auto_increment(id,username) VALUES(NULL,‘E‘);
INSERT test_auto_increment(id,username) VALUES(DEFAULT,‘F‘);
INSERT test_auto_increment(id,username) VALUES(15,‘G‘);

 

mysql> SELECT * FROM test_auto_increment;
+----+----------+
| id | username |
+----+----------+
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | E |
| 5 | F |
| 15 | G |
+----+----------+
6 rows in set (0.00 sec)

 

MySQL----主键(PRIMARY KEY)和自增(AUTO INCREMENT)

标签:efault   效果   desc   select   ack   username   creat   测试   自增   

人气教程排行