目录
[2.1 查看表中某成员的数据](#2.1 查看表中某成员的数据)
[2.2 查看整个表中的表成员](#2.2 查看整个表中的表成员)
[2.3 查看创建表时的句柄](#2.3 查看创建表时的句柄)
[三、修改表 alter](#三、修改表 alter)
[3.1 重命名 rename](#3.1 重命名 rename)
[3.2 新增一列 add](#3.2 新增一列 add)
[3.3 更改列属性 modify](#3.3 更改列属性 modify)
[3.4 更改列名称 change](#3.4 更改列名称 change)
[3.5 删除某列](#3.5 删除某列)
上一篇博客介绍了库的操作,接下来来看一下表的相关操作。
一、创建表
create table table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
注意,最后一个数据成员后面没有逗号。
下面我们举例看一下如何创建表:
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;
Query OK, 0 rows affected, 2 warnings (0.00 sec)
mysql> create table user2(-> id int,
-> name varchar(20) comment '用户名',
-> password varchar(32) comment '用户密码',
-> birthday date comment '用户生日' ->
)charset=utf8 collate=utf8_general_ci engine=InnoDB;
Query OK, 0 rows affected, 2 warnings (0.04 sec)
对于字符集、校验集以及存储引擎的设置,以上两个例子中的方法都可以使用,可以直接使用空格,也可以使用 = 赋值。
二、查看表
2.1 查看表中某成员的数据
desc 表名;
关于查找到的信息,请看下图:
2.2 查看整个表中的表成员
show tables;
2.3 查看创建表时的句柄
show create table 表名 \G
\G 格式化显示,过滤掉不需要的符号
使用 \G 前:
使用 \G 后:
三、修改表 alter
3.1 重命名 rename
alter table tb_name rename to new_name;
在MySQL中对表进行重命名,输入以下语句:
mysql> alter table user1 rename to user;
Query OK, 0 rows affected (0.03 sec)
验证一下:
mysql> show tables;
+----------------------+
| Tables_in_helloworld |
+----------------------+
| user |
+----------------------+
1 row in set (0.00 sec)
可以看到 user1 真的被重命名为 user 了
3.2 新增一列 add
为了方便观察现象,先执行以下语句向表中插入两条数据:
mysql> insert into user values(1, '张三', '123456', '2010-06-18'), (2, '李四', '654321', '2014-07-12'); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0
alter table tb_name add 列名 数据类型 (comment '备注 ' after 某列名);
在某列后新增新列,括号中的内容可以省略
mysql> select * from user;
+------+--------+----------+------------+--------+
| id | name | password | birthday | school |
+------+--------+----------+------------+--------+
| 1 | 张三 | 123456 | 2010-06-18 | NULL |
| 2 | 李四 | 654321 | 2014-07-12 | NULL |
+------+--------+----------+------------+--------+
2 rows in set (0.00 sec)
可以看到,表中真的在 birthday 后新增了一列 school
3.3 更改列属性 modify
这里的列属性是列的数据类型与comment
alter table tb_name modify 列名 新属性 (comment '新备注');
将 `name` varchar(20) DEFAULT NULL COMMENT '用户名', 改为 varchar(32) 且不加 comment:mysql> alter table user modify name varchar(32);
使用 show create table user 查看:
`name` varchar(32) DEFAULT NULL,
从上面的例子可以看出来,在修改之前,因为我们在 create 时,为 name 添加了 comment ,但是修改后仅仅更改了数据类型,并没有新添加 comment ,之后在查看时,发现 comment 的内容消失了,这意味着什么呢?
不难看出, modify 的修改是以新属性覆盖旧属性
3.4 更改列名称 change
alter table tb_name change 原列名 新列名 列属性;
将表中第一列的 id 改为 ID:
mysql> alter table user change id ID int;
前后使用 show create table user; 可以发现:
`id` int DEFAULT NULL, 被修改为了 `ID` int DEFAULT NULL 。
3.5 删除某列
alter table tb_name drop 列名;
这个比较简单,就不做样例说明了。