创建表

基本语法

1
2
3
create table 表名(字段1 字段类型, 字段2 字段类型, ...字段n 字段类型);
-- 示例:创建一个user表,有username和password两个字段
create table user(username varchar(20), password varchar(20));

关于数据类型的知识,会在后面记录

查看数据表结构

基本用法

1
2
3
desc 表名;
-- 示例
desc user;
1
2
3
4
5
6
7
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | YES | | NULL | |
| password | varchar(20) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

查看表的创建语句

基本用法

1
2
3
show create table 表名 \G;
-- 示例
show create table user \G;
1
2
3
4
5
6
7
8
9
10
*************************** 1. row ***************************
Table: user
Create Table: CREATE TABLE `user` (
`username` varchar(20) DEFAULT NULL,
`password` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

ERROR:
No query specified

上面表的创建 SQL 语句中,除了可以看到表定义以外,还可以看到表的 engine(存储引擎) 和 charset(字符集)等信息。“\G”选项的含义是使得记录能够按照字段竖着排列,对于内 容比较长的记录更易于显示。

删除表

基本用法

1
drop table 表名;

删除表。表和数据均会丢失,请勿必删除重要表之前备份数据

指定表引擎和字符集

创建表的最后,我们常用 MyISAM 或者 InnoDB 引擎
指定引擎时,我们可以用

1
ENGINE=InnoDB

指定表默认字符集

1
DEFAULT CHARSET=utf8

示例:

1
2
3
create table testEngine(id int(10)) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- Query OK, 0 rows affected, 2 warnings (0.00 sec)
show create table testEngine \G;
1
2
3
4
5
6
7
8
9
*************************** 1. row ***************************
Table: testEngine
Create Table: CREATE TABLE `testEngine` (
`id` int DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3
1 row in set (0.00 sec)

ERROR:
No query specified

删除这个表

1
drop table testEngine;

重命名数据表

基本操作

1
2
3
4
alter table 旧表名 rename 新表名;
-- 示例
-- 将表名user改为users
alter table user rename users;
1
2
3
4
5
6
7
8
9
mysql> show tablse;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tablse' at line 1
mysql> show tables;
+-----------------+
| Tables_in_study |
+-----------------+
| users |
+-----------------+
1 row in set (0.00 sec)