一:创建表
创建表语法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
- field1 是表的列名(也就是属性);
- datatype代表列(属性)的类型;
- character set设置字符集,如果没有设置,则是所在数据库的默认字符集;
- collate 设置校验规则,如果没有设置,则以所在数据库的默认校验规则为准。
- engine 是设置存储引擎,存储引擎有MyISAM 、InnoDB、Memory ,同理,如果没有指定存储引擎,则是数据库默认存储引擎。
//默认存储引擎
mysql> create table pick (
-> name varchar(20),
-> age int ,
-> passworld varchar(32) comment'密码是32位',
-> birthday date comment '生日 日期类');
注:comment是注释。
desc table:查看表
NULL:是否允许为空,key是索引类型,Default是默认值,Extra是扩充。
//指定存储引擎
mysql> create table t1 (
-> age int,
-> name varchar(20)
-> )engine MyISAM;
不同的存储引擎,创建表的文件不同:
存储引擎是MyIASM/会创建3个表,t1.frm:表结构,t1.MYD:表数据,t1.MYI:表索引;
存储引擎是InnoDB,有文件(.frm、.ibd)。
二:修改表
在修改数据库的时候,只能修改数据库的字符集和校验规则。但是对于创建的表来说,可以修改很多东西,比如表名、列名(字段名)、字段类型大小、增加列、删除列…
语法:
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename DROP (column);
添加字段(add)
例:在表t1的name列后添加一列为图片路径:
alter table t1 add pic_url varchar(100) comment '图片路径' after name;
在第一列前插入一列:
alter table t1 add sno varchar(10) comment '学号' first ;
修改字段(modify)
将字段sno的类型修改为int:(modify)
alter table t1 modify sno int(11) ;
删除列:将列sno删除(drop)
alter table t1 drop sno;
将字段删除后,对应的列数据全都没有了。
修改表名:将表名t1修改为tt1(rename [to])
alter table t1 renmae to tt1;
修改列名:将列名pic_url修改 为pci(change)
alter table tt1 change pic_url pic varchar(100);
三:删除表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
例:删除表pick
drop table pick;