目录
1. 创建表
2. 查看表结构
3. 修改表
3.1 插入数据
3.2 添加字段
3.3 修改字段
3.4 删除字段
3.5 修改表名
3.6 修改字段名字
3.7 删除表
1. 创建表
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
- field 表示列名
- datatype 表示列的类型
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
例子:
create table user1 (
id int,
name varchar(20) comment '用户名',
password char(32) comment '用户的密码',
birthday date comment '用户的生日'
) character set utf8 engine MyISAM;
create table user2 (
id int,
name varchar(20) comment '用户名',
password char(32) comment '用户的密码',
birthday date comment '用户的生日'
) character set utf8 engine InnoDB;
不同的存储引擎,创建表的文件不一样。
root@iZuf6dza8bf7vp0zjipnhmZ:/var/lib/mysql/users# ll
total 128
drwxr-x— 2 mysql mysql 4096 Aug 10 01:32 ./
drwx—— 9 mysql mysql 4096 Aug 10 01:21 ../
-rw-r—– 1 mysql mysql 3989 Aug 10 01:27 user1_365.sdi
-rw-r—– 1 mysql mysql 0 Aug 10 01:27 user1.MYD
-rw-r—– 1 mysql mysql 1024 Aug 10 01:27 user1.MYI
-rw-r—– 1 mysql mysql 114688 Aug 10 01:32 user2.ibd
2. 查看表结构
desc 表名;
desc:describe,描述

3. 修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
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);
3.1 插入数据
- 在 user1 表添加两条记录:
insert into user1 values(1,'张三','123456','2005-10-15'),(2,'李四','54321','2004-10-
15');
3.2 添加字段
- 在 user1 表中添加一个字段,用户保存图片路径:
放到 birthday 字段后:
alter table users add image_path varchar(100) comment '用户头像路径' after
birthday;
放到第一个字段:
alter table users add image_path varchar(100) comment '用户头像路径' first;
mysql> desc user1;
+————+————–+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+————+————–+——+—–+———+——-+
| id | int | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| password | char(32) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| image_path | varchar(128) | YES | | NULL | |
+————+————–+——+—–+———+——-+
插入新字段后,对原来表中的数据没有影响:
mysql> select * from user1;
+——+——–+———-+————+————+
| id | name | password | birthday | image_path |
+——+——–+———-+————+————+
| 1 | 张三 | 12345 | 2005-10-15 | NULL |
| 2 | 李四 | 54321 | 2004-10-15 | NULL |
+——+——–+———-+————+————+
3.3 修改字段
- 修改 name,将其长度改为 60:
alter table user1 modify name varchar(60);
mysql> desc user1;
+————+————–+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+————+————–+——+—–+———+——-+
| id | int | YES | | NULL | |
| name | varchar(60) | YES | | NULL | |
| password | char(32) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| image_path | varchar(128) | YES | | NULL | |
+————+————–+——+—–+———+——-+
5 rows in set (0.00 sec)
3.4 删除字段
删除 password 字段:
alter table user1 drop password;
mysql> desc user1;
+————+————–+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+————+————–+——+—–+———+——-+
| id | int | YES | | NULL | |
| name | varchar(60) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| image_path | varchar(128) | YES | | NULL | |
+————+————–+——+—–+———+——-+
4 rows in set (0.00 sec)
3.5 修改表名
- 修改表名为 User1:
alter table user1 rename to User1;
alter table user1 rename User1;
- to:可以省略
mysql> show tables;
+—————–+
| Tables_in_users |
+—————–+
| User1 |
| user2 |
+—————–+
2 rows in set (0.00 sec)
3.6 修改字段名字
- 将 name 字段修改为 mz:
alter table User1 change name mz varchar(20);
注意:新字段需要完整定义
mysql> desc User1;
+————+————–+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+————+————–+——+—–+———+——-+
| id | int | YES | | NULL | |
| mz | varchar(20) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| image_path | varchar(128) | YES | | NULL | |
+————+————–+——+—–+———+——-+
4 rows in set (0.00 sec)
3.7 删除表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] …
例如:
drop table user2;
网硕互联帮助中心



评论前必须登录!
注册