MySQL燕十八老师课程笔记:第五课:建表

MySQL中,Boolean型就是tinyint。
建表案例:创建某高端白领私密社交网站。username、id、gender、weight、birth、salary、lastlogin、
除了username和intro外,其他的列都定长,因此不妨让其所有列都定长,这样会带来查找效率和速度上的极大提高。
username:char(20) intro:char(1500)却浪费得太多了,另一方面,人的简介一旦注册完,改的频率也不是很高,因此我们可以把intro列单独拿出来,放到另一张表里。

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

建表:

#所谓建表,就是一个声明列的过程
#重点:如何设置合适的列类型
create table member(
id int unsigned auto_increment primary key,  
#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 '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 列名称 列类型 列参数;

#先随便建一个表:
create table m1(
id int unsigned auto_increment primary key
)engine myisam charset utf8;

#开始仿照上面那张表修改
alter table m1 add username char(20) not null default '';
alter table m1 add birth date not null default '0000-00-00';

在这里插入图片描述
发现新加的列在表的最后。如何在前面加呢?

alter table 表名 add 列名称 列类型 列参数 after 某列【把新列加在某指定列后】

alter table m1 add gender char(1) not null default '' after username;

在这里插入图片描述
如果想新建一个列,且在表的最前面,用first:
alter table 表名 add 列名称 列类型 列参数 first【把新列加在最前面】

alter table m1 add pid int not null default 0 first;

在这里插入图片描述
删除列:alter table 表名 drop 列名
在这里插入图片描述

修改列类型:alter table 表名 modify 列名 新类型 新参数;

#注意:modify 不能改列名。
alter table m1 modify gender char(4) not null default '';

在这里插入图片描述
修改列名和列类型:alter table 表名 change 旧列名 新列名 新类型 新参数;

alter table m1 change id uid int unsigned ;
#本身的primary key是不会变的。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值