美文网首页
05,建表与修改表

05,建表与修改表

作者: 小碧小琳 | 来源:发表于2018-11-19 11:15 被阅读0次

一、建表

1、建表语法:

建表语法:所谓建表,就是一个声明列的过程。
Create table 表名(
列名1声明 列类型1 列1参数,
列名2声明 列类型2 列2参数,
。。。
。。。
列名n声明 列类型n 列n参数
)表声明engine。。。

2、建表

假设我们要简历一个SNS白领社交的表,需要的列名称有id,username等各种列名称,我们会先直观建立这样一张表。

然后依次考虑每一个列需要定义的列名称,列类型以及列参数。
于是可以得到下面这张表。

3、优化

画出表以后,发现表不够好,还是可以优化的。
其中,除了username和intro列以外,每一列都是定长的(如果每一列都是定长的,那么
可以极大提高查询速度。

因此,完全可以把username改成char(20)。即使会浪费一些空间,但是提高了速度。
但是自我介绍intro就不能用char(1500)了,这样空间浪费太过浪费了。

另外,根据特性,人的简介写完以后,改的机会并不高。
因此,我们可以把intro拿出来,另放到一个表中。在另一个表中,只留id,username,intro三列。

现在得到了两张表,第一张表中全是定长类型,查找很快。第二张表中优先考虑空间占用。

在开发中,会员的信息优化,往往是,把频繁用到的信息,优先考虑效率,存储到一张表中。
不常用的信息和比较占据空间的信息,优先考虑空间占用,存储到辅表中。

第二张表中,保留id,username和intro即可。

这样,就算暂时建立一张表了。

第一张表的建表语句:

create table member(
id int unsigned auto_increment primary key,
列明 列类型 参数 自增长主键
username char(20) not null default ‘’,
gender char(1) not null default ‘’,
weight tinyint unsigned not null default 0,
birth date not null default ‘1000-01-01’,
salary decimal(9,2) not null default 0.00,
lastlogin int not null default 0
)engine myisam charset utf8;

二、修改表

一张表,创建完毕,有了N列,之后还有可能要增加、删除、修改。

先创建一张表:

1、增加列语法:

1.1、新列在表的最后

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

1.2新列在某列后

1.3、新列在最前面

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

2、删除列语法

很简单,破坏总比创造简单的多。drop语句。drop删掉所有数据与结构。

drop与delete区别

alter table 表名 drop 列名

3、修改列语法

3.1、修改列类型-modify

Alter table 表名 modify 列名 新类型 新参数

比如alter gender ,应用场景:到了某世纪,性别发生了变化,性别有男/女/雌雄同体/伪娘。
这时,我们想把char(1)改为char(4)。

注意,modify是修改类型,参数,而不能修改列名。
修改列名,可以使用change。

3.2、修改列名列类型-change

修改列名及列类型:
(想一想,需要有旧列名,新列名与新参数)
Alter table 表名 change 旧列名 新列名 新参数

相关文章

网友评论

      本文标题:05,建表与修改表

      本文链接:https://www.haomeiwen.com/subject/fdhofqtx.html