mysql 的列类型,增加更新表字段

#列类型

mysql 三大列类型
数值型
	tinyint
		占据空间 1字节 8个位 存储范围,-128-127,0-255
		0-2^8  0-255
		-2^7   2^7-1
	smallint
	mediuint
	int
	bigint
	
int系列声明时的参数
(M) unsigned zerofill
分析M参数  M表示补0宽度
M必须和zerofill配合才有意义, zerofill 表示的unsigned
alter table calss add snum smallint(5) zerofill not bull default 0;


小数(浮点型/定点型)

float(M,D)  decimal(M,D)
M 叫精度,代表总位数,而D 是标度,代表小数位(小数点右边的位数)
float(6,2) 表示 -9999.99到9999.99


字符串

char varchar text blob
char定长,和varchar变长
char(M) varchar(M) 中的M限制的是字符,不是字节
即char(2)charset utf8 ,是2个字符,如:'中国'

text 不用加默认值
blob 是二进制类型,用来存储图像,音频等二进制信息
意义:2进制,0-255都有可能出现




日期/时间类型

date
time

建表
SNS白领社交网站
会员表
create table snsmember (
id int unsigned primary key auto_increment,
username char(20) not null default '',
gender char(1) not null default '',
weight tinyint unsigned not null default 0,
birth date not null default '0000-00-00',
salary decimal(8,2) not null default 0.00,
lastlogin int unsigned not null default 0
)engine myisam charset utf8

/*有所优化,字段都是定长*/

#增加列或者删除列

alter table 表名 add 列名称 列类型 列参数

#在最前边增加一行
alter table 表名 add 列名称 列类型 列参数 first

#删除列
alter table 表名 drop 列名

#修改列

把char(1) 改为char(4)
alter table 表名 modify 列名 新类型 新参数

mysql> use test;
Database changed
mysql> create table test1(
    -> star varchar(20) not null default '',
    -> birth date not null default '0000-00-00'
    -> )engine myisam charset utf8;
Query OK, 0 rows affected (0.23 sec)

mysql> insert into test1
    -> values
    -> ('lin1ingxia','1967-3-23');
Query OK, 1 row affected (0.05 sec)

mysql> select * from test1;
+------------+------------+
| star       | birth      |
+------------+------------+
| lin1ingxia | 1967-03-23 |
+------------+------------+
1 row in set (0.01 sec)

mysql> create table snsmember (
    -> id int unsigned primary key auto_increment,
    -> username char(20) not null default '',
    -> gender char(1) not null default '',
    -> weight tinyint unsigned not null default 0,
    -> birth date not null default '0000-00-00',
    -> salary decimal(8,2) not null default 0.00,
    -> lastlogin int unsigned not null default 0
    -> )engine myisam charset utf8;
Query OK, 0 rows affected (0.11 sec)

mysql> create table m (
    -> id int unsigned primary key auto_increment
    -> )engine myisam charset utf8;
Query OK, 0 rows affected (0.06 sec)

mysql> alter table m add username char(20) not null default '';
Query OK, 0 rows affected (0.14 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select * from m;
Empty set (0.02 sec)

mysql> desc m;
+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| id       | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| username | char(20)         | NO   |     |         |                |
+----------+------------------+------+-----+---------+----------------+
2 rows in set (0.08 sec)

mysql> alter table m drop username;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc m;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
+-------+------------------+------+-----+---------+----------------+
1 row in set (0.00 sec)

mysql> alter table m add username char(20) not null default '';
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table m add email char(28) not null default '';
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table m modify email varchar(30) not null default '';
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc m;
+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| id       | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| username | char(20)         | NO   |     |         |                |
| email    | varchar(30)      | NO   |     |         |                |
+----------+------------------+------+-----+---------+----------------+
3 rows in set (0.03 sec)

mysql> exit


上一篇:企业网站html框架


下一篇:k码特权中关于 Redis & MySQL DB 乐观锁应用