MySQL——表操作
1. 创建表
CREATE TABLE [IF NOT EXISTS] table_name(field1 datatype1 [COMMENT '注释信息'],field2 datatype2 [COMMENT '注释信息'],field3 datatype3 [COMMENT '注释信息']
)[CHARSET=charset_name] [COLLATE=collation_name] [ENGINE=engine_name];
说明一下:
1. SQL中大写的表示关键字,[ ]中代表的是可选项。
2. field表示列名,datatype表示列的类型。
3. CHARSET用于指定表所采用的编码格式,如果没有指定则以所在数据库的编码格式为准。
4. COLLATE用于指定表所采用的校验规则,如果没有指定则以所在数据库的校验规则为准。
5. ENGINE用于指定表所采用的存储引擎。
6. COMMENT用于对指定列添加注释信息。
使用”show engines“SQL可以查看当前MySQL支持的存储引擎。如下:
可以看到我当前的MySQL默认使用的是InnoDB存储引擎,如果我建表时没有指定使用哪种存储引擎,那么就会默认使用InnoDB存储引擎。
我们创建表,从系统角度来看就是在特定目录下创建新文件。
创建表案例
采用不同的存储引擎,创建表时所产生的文件不一样;上面默认是InnoDB存储引擎。
这里改成MyISAM,我们会发现对应产生的文件发生了变化。
2. 查看表结构
使用“desc+表名”可以查看表结构。
说明一下:
Field表示该字段的名字。
Type表示该字段的类型。
Null表示该字段是否允许为空。
Key表示索引类型,比如主键索引为PRI。
Default表示该字段的默认值。
Extra表示该字段的额外信息说明。
可以使用“show create table 表名 \G”来查看创建表的详细信息。
3. 修改表
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 列名 新列名 新列属性;
我们先向test_user表中插入一些数据,以便一会儿看到变化。
1. 新增列
在test_user表中新增一列用于保存用户的照片路径。如下:
新增列后可以通过desc命令确认新增成功,这时再插入一条用户记录后查看表中信息。如下:
可以看到在新增列之前插入表中的两条记录对应的path值为NULL,因此新增列后可能还需要对原来插入的记录进行修改。这里用的是默认值。
2. 修改列类型
将test_user表中password列的类型由char(30)改成char(60)。如下:
3. 修改列名
将test_user表中password列的列名改成passwd。如下:
4. 修改表名
将test_user表的表名改成employee。如下:
5. 删除列
将employee表中的path列删除。如下:
注意: 删除列后,该列对应的所有数据都没有了。
4. 删除表
DROP [TEMPORARY] TABLE [IF EXISTS] table_name;
将employee表删除。如下: