表的基本操作
数据库建好之后,我们就可以接着创建真正存储数据的表了。创建表的时候首先需要描述清楚这个表长什么样,它有哪些列,这些列都是用来存什么类型的数据等等。
- 这个对表的描述称为表的结构或者定义。
- 有了表的结构之后,我们就可以着手把数据塞到这个表里了。
- 表中的一行叫做一条记录,一列叫做一个字段。
展示数据表
shell
show tables;
创建表
创建一个表需要完成下列步骤
- 给表起名
- 给表定义列
- 给列数据定义数据类型
- 有需要时,需要设置默认值
shell
CREATE TABLE 表名 (
列名1 数据类型 [列的属性],
列名2 数据类型 [列的属性],
...
列名n 数据类型 [列的属性]
);
示例:
shell
mysql> create table uses (
-> name varchar(100), age int);
添加注释
使用 comment
字段
shell
CREATE TABLE 表名 (
各个列的信息 ...
) COMMENT '表的注释信息';
IF NOT EXISTS
创建已经存在的表会出现错误提示,使用 IF NOT EXISTS 如果指定的表名不存在则创建这个表,如果存在那就什么都不做
shell
CREATE TABLE IF NOT EXISTS 表名(
各个列的信息 ...
);
删除表
慎用啊😂
shell
DROP TABLE 表1, 表2, ..., 表n;
IF EXISTS
如果删除不存在的表会报错
shell
DROP TABLE IF EXISTS 表名;
查看表结构
shell
DESCRIBE 表名;
DESC 表名;
EXPLAIN 表名;
SHOW COLUMNS FROM 表名;
SHOW FIELDS FROM 表名;
没有选择数据库对表操作
有时并没有使用 use
数据库而想对表进行操作
shell
数据库.表名
SHOW CREATE TABLE xiaohaizi.first_table
修改表
已创建表后,再次对表进行操作
修改表名
- 方式一
shell
ALTER TABLE 旧表名 RENAME TO 新表名;
- 方式二
shell
RENAME TABLE 旧表名1 TO 新表名1, 旧表名2 TO 新表名2, ... 旧表名n TO 新表名n;
这个可以同时操作多表 如果在操作表时,同时指定数据库,则会同时移动到指定的数据库中
shell
ALTER TABLE first_table1 RENAME TO dahaizi.first_table1;
RENAME TABLE dahaizi.first_table1 TO xiaohaizi.first_table;
增加列
shell
ALTER TABLE 表名 ADD COLUMN 列名 数据类型 [列的属性];
也可以增加列到特定的位置
shell
# 添加到首列
ALTER TABLE 表名 ADD COLUMN 列名 列的类型 [列的属性] FIRST;
# 添加到指定列的后面
ALTER TABLE 表名 ADD COLUMN 列名 列的类型 [列的属性] AFTER 指定列名;
删除列
shell
ALTER TABLE 表名 DROP COLUMN 列名;
修改列信息
- 方式一
shell
ALTER TABLE 表名 MODIFY 列名 新数据类型 [新属性];
shell
ALTER TABLE first_table MODIFY second_column VARCHAR(2);
**注意:**修改后的数据类型和属性一定要兼容表中现有的数据!
- 方式二
shell
ALTER TABLE 表名 CHANGE 旧列名 新列名 新数据类型 [新属性];
修改列排列位置
shell
# 移到首列
ALTER TABLE 表名 MODIFY 列名 列的类型 列的属性 FIRST;
# 移到指定列的后面
ALTER TABLE 表名 MODIFY 列名 列的类型 列的属性 AFTER 指定列名;
一条语句中包含多个修改操作
可以多条数据同时执行
shell
ALTER TABLE 表名 操作1, 操作2, ..., 操作n;
同时删除多列
shell
ALTER TABLE first_table DROP COLUMN third_column, DROP COLUMN fourth_column, DROP COLUMN fifth_column;