表的操作:
个人开发的建表思路:
- 频繁用到的信息,优先考虑效率,放到同一张表。
- 不常用的信息和比较占据空间的信息,优先考虑空间占用,存储到另外一张表(辅表)。
关于列需要注意的一些相关:
- 一切数据在修改前请注意备份!
- 在修改列类型的时候,如果强制修改不匹配的列类型,会导致数据无法存储,数据将会丢失。(在MySQL的strict_mode模式下,不匹配的列类型将无法修改。)
- 列名即为字段。
建表:
create table 表名 (列1名 列1类型 列1参数,列n名 列n类型);
例: create table testTable (id int primary key auto_increment,name varchar(20) not null defalut '');
#这里建了一张表,表名为testTable,共有两列:
#第一列的名称为id,使用int类型,参数为primary key和auto_increment。
#第二列的名称为name,使用varchar类型,参数为not null和default ''。
#表后可接参数:
create table 表名 (列1名 列1类型 列1参数,列n名 列n类型)engine myisam/innodb/bdb charset utf8/gbk;
例: create table testTable (id int primary key auto_increment,name varchar(20) not null defalut '')engine myisam charset utf8;
#engine后接引擎名,该处记录了myisam,innodb,bdb三种引擎。
#charset后接字符集,该处记录了utf,gbk两种字符集。
改表:
修改表名:
alter table 旧表名 rename to 新表名;
例: alter table oldName rename to newName;
rename table 旧表名 to 新表名;
例: rename table oldName to newName;
增加列:
#把新列添加到最后一列:
alter table 表名 add 列名称 列类型 列参数;
例: alter table testTable add testColumn varchar(20) not null default '';
#添加一列(testColumn)位于表的最后一列。
#把新列添加到第一列:
alter table 表名 add 列名称 列类型 列参数 first;
例: alter table testTable add testColumn varchar(20) not null default '' first;
#添加一列(testColumn)位于表的第一列。
#把新列添加到某列之后:
alter table 表名 add 列名称 列类型 列参数 after 列名;
例: alter table testTable add testColumn varchar(20) not null default '' after test;
#添加一列(testColumn)位于test列后。
修改列:
#修改列类型(不修改列名):
alter table 表名 modify 列名 新的列类型 新的列参数;
例: alter table testTable modify testColumn varchar(20) not null default '';
#该种方法无法修改表名。
#修改列类型(修改列名):
alter table 表名 change 旧列名 新列名 新的列类型 新的列参数;
例: alter table testTable change oldName newName varchar(20) not null default '';
#该种方法可以修改表名。
#修改列名称:
alter table 表名 rename column 旧列名 to 新列名;
例: alter table testTable rename column testColumn1 to testColumn2;
#只修改表名,并不修改其中参数。
删除列:
alter table 表名 drop 列名;
例: alter table testTable drop testCoulmn;
#会将该列删除,并不是清空列数据。
truncate 表名;
例: truncate testTable;
#会将改表数据全部清除并初始化,如有自增存在,自增将从头开始计数。
#drop与truncate的区别:
#drop是将表删除,从删除数据行的层面进行的。
#truncate相当于删表时重建一张同样结构的表,操作后得到一张全新的表。
删表:
drop table 表名;
例: drop table testTable;
查看表:
show tables;
查看表结构:
desc 表名;
例: desc testTable;
查看建表语句:
show create table 表名;
例: show create table testTable;