云计算百科
云计算领域专业知识百科平台

MySQL 表的操作:表的增删改

目录

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;

赞(0)
未经允许不得转载:网硕互联帮助中心 » MySQL 表的操作:表的增删改
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!