目录
一、创建表
二、查看表结构
三、修改表
3.1 添加新列
3.2 修改列属性
3.3 删除列属性
3.4 修改表名
3.5 向表中插入
3.6 修改列名
四、删除表
一、创建表
语法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎; 
说明:
- field 表示列名
 - datatype 表示列的类型
 - character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
 - collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
 
示例:
mysql> create table users(
    -> id int,
    -> name varchar(20) comment '用户名',
    -> password char(32) comment '用户密码,最多为32位',
    -> birthday date comment '生日'
    -> );
 
如果不设置字符集 、校验规则、存储引擎,系统会使用默认的选项。

可以看到Linux目录下有库对应的目录和表对应的文件。
 
二、查看表结构
desc 表名; 
示例:
 
- Field: 字段的名称。
 - Type: 字段的MySQL数据类型。
 - Null: 这个字段是否可以为NULL。YES表示可以为NULL,NO表示不能为NULL。
 - Key: 表示这个字段是否是索引的一部分。
PRI表示这个字段是主键,
UNI表示这个字段是唯一索引的一部分,
MUL表示这个字段是多列索引的一部分。 - Default: 表示这个字段的默认值。
如果这个字段可以有默认值,并且默认值是字符串类型,那么默认值会以单引号包围。 - Extra: 这个字段包含了一些额外的信息,如是否为自动增长(auto_increment)、是否为非空(not_null)等。Extra字段为空,这意味着没有额外的信息。
 
三、修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
3.1 添加新列
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...); 
圆括号()可以加也可以不加,方括号[ ]不用加。
示例:添加名为电话号码的新列
 
可以在选项中使用 [after 列名] 指定在那一列后面。
3.2 修改列属性
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...); 
将users表中的name列的数据类型从VARCHAR(20)更改为VARCHAR(50),可以使用以下命令:ALTER TABLE users MODIFY name VARCHAR(50);
3.3 删除列属性
ALTER TABLE tablename DROP (column); 
删除字段一定要小心,因为删除字段及其对应的列数据都没了。
3.4 修改表名
alter table 旧表名 rename to 新表名; 
to 可省略,例如:alter table users rename employee;
3.5 向表中插入
insert into 表名 values(值1, 值2, 值3, ...);
insert into 表名 (列1, 列2, 列3, ...) values(值1, 值2, 值3, ...); 
- 方法1需要提供表中所有列的值,并且这些值必须与表中的列顺序和数据类型相匹配。
 - 方法2允许指定哪些列应该被插入,并且只提供这些列的值。如果不提供某个列的值,MySQL将自动为该列分配默认值(如果存在的话)。
 
3.6 修改列名
alter table 表名 change 旧列名 新列名 列属性; 
需要对新列名再次设置属性。
四、删除表
语法格式:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...;
 
- 使用TEMPORARY时,它告诉MySQL删除一个临时表
 - IF EXISTS是一个可选的子句,如果使用它,当指定的表不存在时,MySQL将不会抛出错误。
 
示例:
drop table t1; 
在MySQL中,DROP TABLE语句用于删除表。这个操作是不可逆的,一旦执行,表及其所有数据和结构都会被永久删除。在执行删除操作之前,要确保用户有足够的权限,并且已经备份了相关数据。



















