建表及相关操作

所谓建表就是一个声明列的过程.
create table 表名 (
列名1 列类型1 列1参数,
列名2 列类型2 列2参数,
....
...
列名n 列类型n 列n参数
)engine myisam/innodb/bdb charset utf8/gbk/latin1...

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 '0000-00-00',
lastlogin int unsigned not null default 0
)engine myisam charset utf8;

对该表的分析
Username char(20) 是会造成空间的浪费,但是提高的速度,值
若表中存在需要大空间又不常调用的列(如个人简介),可将其单独拿出来放在另一张表

建表时加not null default '' / default 0的原因
目的是不让表中出现null值
null是一种类型,比较时,只能用专门的is null 和** is not null来比较
碰到运算符,
一律返回null**
效率不高,影响提高索引效果

# 查看表
desc 表名
增加列
  • Alter table 表名 add 列名称 列类型 列参数; [加的列在表的最后]
  • Alter table 表名 add 列名称 列类型 列参数 after 某列 [把新列加在某列后]
  • Alter table 表名 add 列名称 列类型 列参数 first [把新列加在第一位]
删除列

Alter table 表名 drop 列名

修改列

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

修改列名及列类型

Alter table 表名 change 旧列名 新列名 新类型 新参数

修改表之增加主键

alter table tbName add primary key(主键所在列名);

alter table goods add primary key(id)
修改表之删除主键

alter table tbName drop primary key;

修改表之增加索引

alter table tbName add [unique|fulltext] index 索引名(列名);

修改表之删除索引

alter table tbName drop index 索引名;

清空表的数据

truncate tableName;

你可能感兴趣的:(建表及相关操作)