目录
1、字段属性
1.1 zerofill 填充0
影响数字的显示方式:如果一个数字的宽度小于所允许的最大宽度,这个值前面会用0填充。如果声明了zerofill,该列会自动设为unsigned。
1.2 primary key 主键
具有主键约束的列不允许有null值,并且不允许有重复值。Primary key = not null + unique
主键:用来唯一的标示表中的每一行,其类型一般为整型或者字符串。
每个表最多只允许一个主键。主键名总是PRIMARY。
建立主键的好处:
方便查找,在查询数据的时候,先查询索引,然后根据索引去查询数据,速度会非常快
索引的作用:就是在查询数据的时候可以提速,没有索引就是全表扫描。
root@hunan 14:32 mysql>create table width(id int(4) zerofill primary key,name varchar(10));
Query OK, 0 rows affected (0.01 sec)
root@hunan 14:38 mysql>desc width;
+-------+--------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------------------+------+-----+---------+-------+
| id | int(4) unsigned zerofill | NO | PRI | NULL | |
| name | varchar(10) | YES | | NULL | |
+-------+--------------------------+------+-----+---------+-------+
2 rows in set (0.11 sec)
root@hunan 14:38 mysql>insert into width(id,name) values(1,'cali'),(2,'xiaoxiao');
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
root@hunan 14:39 mysql>select * from width;
+------+----------+
| id | name |
+------+----------+
| 0001 | cali |
| 0002 | xiaoxiao |
+------+----------+
2 rows in set (0.00 sec)
root@hunan 14:39 mysql>insert into width(id,name) values(1,'cali'),(2,'xiaoxiao');
ERROR 1062 (23000): Duplicate entry '0001' for key 'PRIMARY'
root@hunan 14:40 mysql>insert into width(id,name) values(3,'cali'),(4,'xiaoxiao');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
root@hunan 14:41 mysql>select * from width;
+------+----------+
| id | name |
+------+----------+
| 0001 | cali |
| 0002 | xiaoxiao |
| 0003 | cali |
| 0004 | xiaoxiao |
+------+----------+
一个表内可以建立两个主键:
root@hunan 16:31 mysql>create table user(id int,name varchar(10),primary key(id,name));
Query OK, 0 rows affected (0.08 sec)
root@hunan 16:32 mysql>insert into user(id,name) value(1,'xixi'),(2,'xixi');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
1.3 auto_increment
在上一个基础上自增,默认的起始值是1,步长(偏移量)是1,适合整数类型的不是适合字符串类型。
只适应于整数类型。一个表中只有一个列可以是自动增长的。
root@hunan 14:50 mysql>insert into t1 values(5,'xiaoxiao'),(9,'jiaojiao');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
root@hunan 14:52 mysql>select * from t1;
+----+----------+
| id