目录
创建表
查看表结构
修改表
新增列
修改列类型
修改列名
修改表名:
删除列
删除表
语法:
CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;说明:
- field 表示列名
- datatype 表示列的类型
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
- 最后一个属性不用加 ,
- 如果使用数据库默认的,最后一行括号后面的可以省略。
- ENGINE用于指定表所采用的存储引擎。
- COMMENT用于对指定列添加注释信息。
举例:
创建表user1
create table user1 ( id int, name varchar(20) comment '用户名', password char(32) comment '密码是32位的md5值', birthday date comment '生日' ) character set utf8 engine MyISAM;
创建表user2
create table user2 ( id int, name varchar(20) comment '用户名', password char(32) comment '密码是32位的md5值', birthday date comment '生日' ) character set utf8 engine innodb;
这是我们可以到目录:/var/lib/mysql/user1查看数据库内容
这里我们发现对于表users,users2它们的文件与后缀名是不一样的。
说明一下:
- 采用不同的存储引擎,创建表时所产生的文件不一样。
- 采用InnoDB存储引擎建表,会产生对应的xxx.frm(表结构)和xxx.ibd(表数据+表索引)文件。
- 采用MyISAM存储引擎建表,会产生对应的xxx.frm(表结构)、xxx.MYD(表数据)和xxx.MYI(表索引)文件。
desc 表明;
这里我们查看users的表结构:
desc user1;
- Filed:字段名字。
- Type:字段类型。
- Null:是否允许为空。
- Key:索引类型。
- Default:默认值。
- Extra:扩充。
ALTER TABLE table_name ADD 新增列名 新增列的属性; ALTER TABLE table_name MODIFY 列名 修改后的列属性; ALTER TABLE table_name DROP 列名; ALTER TABLE table_name RENAME [TO] 新表名; ALTER TABLE table_name CHANGE 列名 新列名 新列属性;
这里为了较好的演示先在修改表中插入两条数据:
alter table 表名 add 列名 列属性 [after 列名/ not null first];
在user表中新增一列照片路径:
注意:
after password表示该列新增到password属性后面,如果想要将新增的列放到第一列,可以将after及其以后的换成not null first,如果没有after password这部分默认是将新增的列放到最后面。
如:新增grade列放到第一列,新增hobby列放到最后面:
alter table 表名 modify 列名 修改后的列属性;
这里我们将user表中的password列的类型由char(20)修改成char(50),如下:
注意:
如果需要修改类型后仍然保留comment字段,需要在修改时重新指定comment字段。
alter table 表名 change 修改前的列名 修改后的列名 修改后的属性;
将user表中password列的列名改成passwd。如下:
alter table 修改前的表名 rename 修改后的表名;
将user表修改成employee。
alter table 表名 drop 删除列;
将employee表中的path列删除
DROP [TEMPORARY] TABLE [IF EXISTS] table_name;
将employee表删除:
上一篇:使用Node.js搭建服务器