目录
数据表介绍
数据表是数据库最重要的组成部分之一,数据保存在数据表中。数据表由行(row,也称记录)和列(column,也称字段)来组成,每个数据表至少有一列,行可以为0、1甚至多个。
数据表列出
列出当前数据库的所有数据表
show tables;
⚠️注意事项:当没有打开任意一个数据库时,MySql报错:ERROR 1046 (3D000): No database selected。
创建数据表
指定数据库创建表
create table if not exists <database_name>.<table_name>(
param1 varchar(23),
param2 int,
param3 datetime
) charset utf8;
名称 | 含义 |
database_name | 指定的数据库名称 |
table_name | 所要创建的表名称 |
💡提示:无论有没有打开数据库,指定正确的数据库名均可创建表。
💡提示:如果在指定的数据库中存在所要创建的表名称,该条SQL语句不会报错,返回一个warinings
⚠️注意:如果指定的数据库不存在,MySql报错:ERROR 1049 (42000): Unknown database 'xxx'
在当前打开的数据库中创建表
create table if not exists <table_name>(
param1 varchar(23),
param2 int,
param3 datetime
) charset utf8;
名称 | 含义 |
table_name | 所要创建的表名称 |
💡提示:如果在当前打开的数据库中存在所有创建的表名称,该条SQL语句不会报错,返回一个warnings
⚠️注意:当没有打开任何数据库时,该条语句报错:ERROR 1046 (3D000): No database selected
创建表时指定校对集
create table if not exists <table name>(
param1 varchar(23)
) charset utf8, collate <collation_name>;
名称 | 含义 |
table_name | 所要创建的表名称 |
collation_name | 当前MySql服务器所支持的校对集名称 |
💡提示:如果在当前打开的数据库中存在所有创建的表名称,该条SQL语句不会报错,返回一个warnings
💡提示:不同版本的MySql服务器所支持的校对集不同
⚠️如果指定了错误的校对集名称,MySql报错:ERROR 1273 (HY000): Unknown collation: 'xx'
查询表详情
指定数据库查询表创建信息
show create table <database_name>.<table_name>;
名称 | 含义 |
database_name | 数据库名称 |
table_name | 表名称 |
💡提示:如果当前数据库中database_name不存在,或者在database_name中不存在table_name表,则MySql报错:ERROR 1146 (42S02): Table 'database_name.table_name' doesn't exist
在当前打开的数据库中查询表创建信息
show create table <table_name>;
💡提示:如果当前数据库中database_name不存在,或者在database_name中不存在table_name表,则MySql报错:ERROR 1146 (42S02): Table 'database_name.table_name' doesn't exist
查询表详情(show)
show columns from <table_name>;
💡提示:如果当前数据库中database_name不存在,或者在database_name中不存在table_name表,则MySql报错:ERROR 1146 (42S02): Table 'database_name.table_name' doesn't exist
查询表详情(desc)
desc <table_name>;
💡提示:如果当前打开的数据库中不存在table_name表,则MySQL报错:ERROR 1146 (42S02): Table 'database_name.table_name' doesn't exist
💡提示:如果没有打开数据库,MySQL报错:ERROR 1046 (3D000): No database selected
数据表修改
修改表名称
rename table <old_table_name> to <new_table_name>;
💡提示:如果要被修改的表名称(old_table_name)不存在,MySQL报错:ERROR 1017 (HY000): Can't find file: './<database_name>/<old_table_name>.frm' (errno: 2 - No such file or directory)
💡提示:新的表明若已经在表中存在,MySQL报错:ERROR 1050 (42S01): Table '<new_table_name>' already exists
修改表字符集
alter table <table_name> charset <charset_name>;
💡提示:如果要修改的表名称不存在,MySQL报错:ERROR 1146 (42S02): Table 'demo27.vm2' doesn't exist
💡提示:如果修改后的字符集与原字符集相同,MySQL不会报错
数据表删除
删除一个表
drop table <table_name>;
⚠️注意:删除操作不可逆。
批量删除数据表
drop table <table_name1>, <table_name2>...;
⚠️注意:批量删除操作不可逆。