首页> 基础笔记 >Mysql基础学习 Mysql基础学习

MySQL数据字段属性基础学习

作者:小萝卜 2019-08-28 浏览 871

简介MySQL数据字段属性基础学习,ZEROFILL、UNSIGNED、AUTO_INCREMENT、NULL和NOT NULL、DEFAULT

MySQL数据字段属性基础学习

UNSIGNED

只能用于设置数值类型,不允许出现负数

最大存储长度会增加一倍

ZEROFILL

只能用于设置数值类型,在数值之前会自动用0补齐不足的位数

AUTO_INCREMENT

用于设置字段的自动增长属性,每增加一条记录,该字段的值会自动加1

NULL和NOT NULL

默认为NULL,即插入值时没有在此字段插入值,默认为NULL值,如果指定了NOT NULL,则必须在插入值时在此字段填入值

DEFAULT

可以通过此属性来指定一个默认值,如果没有在此列添加值,那么默认添加此值

实例:
-- 创建一个学生信息表
mysql> create table stu(
    -> id int unsigned not null auto_increment primary key,
    -> name varchar(16) not null unique,
    -> age tinyint unsigned not null default 20,
    -> sex enum('m','w') not null default 'm',
    -> classid char(7)
    -> );
Query OK, 0 rows affected (0.11 sec)

mysql> desc stu;
+---------+---------------------+------+-----+---------+----------------+
| Field   | Type                | Null | Key | Default | Extra          |
+---------+---------------------+------+-----+---------+----------------+
| id      | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| name    | varchar(16)         | NO   | UNI | NULL    |                |
| age     | tinyint(3) unsigned | NO   |     | 20      |                |
| sex     | enum('m','w')       | NO   |     | m       |                |
| classid | char(7)             | YES  |     | NULL    |                |
+---------+---------------------+------+-----+---------+----------------+
5 rows in set (0.06 sec)

mysql>
--修改表结构
mysql> select * from uu;
+------+-----------+------+------+
| id   | name      | age  | sex  |
+------+-----------+------+------+
|    1 | zhangsan  |   20 | m    |
|    2 | lisi      |   25 | w    |
|    4 | zhaoliu   |   25 | w    |
|    5 | xiaozhang |   24 | m    |
|    6 | xiaoli    |   23 | w    |
+------+-----------+------+------+
5 rows in set (0.00 sec)

-- 为uu表的name字段后添加一个m字段,int类型非空默认值为20
mysql> alter table uu add m int not null default 20 after name;
Query OK, 5 rows affected (0.11 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> desc uu;
+-------+---------------+------+-----+---------+-------+
| Field | Type          | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| id    | int(11)       | YES  |     | NULL    |       |
| name  | varchar(16)   | YES  |     | NULL    |       |
| m     | int(11)       | NO   |     | 20      |       |
| age   | tinyint(4)    | YES  |     | NULL    |       |
| sex   | enum('m','w') | YES  |     | NULL    |       |
+-------+---------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> select * from uu;
+------+-----------+----+------+------+
| id   | name      | m  | age  | sex  |
+------+-----------+----+------+------+
|    1 | zhangsan  | 20 |   20 | m    |
|    2 | lisi      | 20 |   25 | w    |
|    4 | zhaoliu   | 20 |   25 | w    |
|    5 | xiaozhang | 20 |   24 | m    |
|    6 | xiaoli    | 20 |   23 | w    |
+------+-----------+----+------+------+
5 rows in set (0.00 sec)

mysql>
mysql> desc uu;
+-------+---------------+------+-----+---------+-------+
| Field | Type          | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| id    | int(11)       | YES  |     | NULL    |       |
| name  | varchar(16)   | YES  |     | NULL    |       |
| m     | int(11)       | NO   |     | 20      |       |
| age   | tinyint(4)    | YES  |     | NULL    |       |
| sex   | enum('m','w') | YES  |     | NULL    |       |
+-------+---------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> select * from uu;
+------+-----------+----+------+------+
| id   | name      | m  | age  | sex  |
+------+-----------+----+------+------+
|    1 | zhangsan  | 20 |   20 | m    |
|    2 | lisi      | 20 |   25 | w    |
|    4 | zhaoliu   | 20 |   25 | w    |
|    5 | xiaozhang | 20 |   24 | m    |
|    6 | xiaoli    | 20 |   23 | w    |
+------+-----------+----+------+------+
5 rows in set (0.00 sec)

-- 在uu表的第一列添加一个x字段
mysql> alter table uu add x int first;
Query OK, 5 rows affected (0.02 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from uu;
+------+------+-----------+----+------+------+
| x    | id   | name      | m  | age  | sex  |
+------+------+-----------+----+------+------+
| NULL |    1 | zhangsan  | 20 |   20 | m    |
| NULL |    2 | lisi      | 20 |   25 | w    |
| NULL |    4 | zhaoliu   | 20 |   25 | w    |
| NULL |    5 | xiaozhang | 20 |   24 | m    |
| NULL |    6 | xiaoli    | 20 |   23 | w    |
+------+------+-----------+----+------+------+
5 rows in set (0.00 sec)
-- 删除uu表的x字段。
mysql> alter table uu drop x;
Query OK, 5 rows affected (0.06 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from uu;
+------+-----------+----+------+------+
| id   | name      | m  | age  | sex  |
+------+-----------+----+------+------+
|    1 | zhangsan  | 20 |   20 | m    |
|    2 | lisi      | 20 |   25 | w    |
|    4 | zhaoliu   | 20 |   25 | w    |
|    5 | xiaozhang | 20 |   24 | m    |
|    6 | xiaoli    | 20 |   23 | w    |
+------+-----------+----+------+------+
5 rows in set (0.00 sec)

mysql>
-- 修改字段
mysql> desc uu;
+-------+---------------+------+-----+---------+-------+
| Field | Type          | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| id    | int(11)       | YES  |     | NULL    |       |
| name  | varchar(16)   | YES  |     | NULL    |       |
| m     | int(11)       | NO   |     | 20      |       |
| age   | tinyint(4)    | YES  |     | NULL    |       |
| sex   | enum('m','w') | YES  |     | NULL    |       |
+-------+---------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> alter table uu change m mm tinyint not null default 20;
Query OK, 5 rows affected (0.06 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> desc uu;
+-------+---------------+------+-----+---------+-------+
| Field | Type          | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| id    | int(11)       | YES  |     | NULL    |       |
| name  | varchar(16)   | YES  |     | NULL    |       |
| mm    | tinyint(4)    | NO   |     | 20      |       |
| age   | tinyint(4)    | YES  |     | NULL    |       |
| sex   | enum('m','w') | YES  |     | NULL    |       |
+-------+---------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

 

很赞哦! (0)

文章评论

    高端网站建设