MySQL表的操作
1. 表的操作
1.1 创建表
语法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
说明:
- field 表示列名
- datatype 表示列的类型
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
1.2 创建表案例
mysql> create table user1(
-> id int,
-> name varchar(20) comment '用户名',
-> password char(32) comment '用户的密码',
-> birthday date comment '用户的生日'
-> )character set utf8 collate utf8_general_ci engine MyIsam;
mysql> create table if not exists user2(
-> id int,
-> name varchar(20) comment '用户名',
-> password char(32) comment '用户的密码',
-> birthday date comment '用户的生日'
-> )charset=utf8 collate=utf8_general_ci engine=InnoDB;
说明:
不同的存储引擎,创建表的文件不一样。
user1 表存储引擎是MyISAM ,在数据目中有三个不同的文件,分别是:
- user1.frm:表结构
- user1.MYD:表数据
- user1.MYI:表索引
user2 表存储引擎是InnoDB ,在数据目中有两个不同的文件,分别是:
- user2.frm:表结构
- user2.ibd:表数据和索引
1.3 查看表结构
desc 表名;
show create table 表名;
# 查看表创建时的详细信息
1.4 修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
-
修改表名
alter table 旧名字 rename to 新名字 # 其中to可以省略
-
插入数据
insert into myuser values (1,'张三','abc123','2002-1-1'); insert into myuser values (1,'李四','123aaa','2002-12-4');
-
在表中添加一个字段,用于保存图片路径
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
插入新字段后,对原来表中的数据没有影响。
-
修改表中字段的属性
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);
注意:这里修改新属性只改变了类型,我们之前设置的comment备注被覆盖。
-
删除某一字段
ALTER TABLE tablename DROP (column);
注意:删除字段一定要小心,删除字段及其对应的列数据就都没了。
-
修改某一字段名称
mysql> alter table myuser change name XingMing varchar(70) DEFAULT NULL; # 新字段需要完整定义
1.5 删除表
语法:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
示例:
drop table user2;