mysql大表更新字段类型_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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值