TiDB 兼容 MySQL,在大多数情况下,您可以直接使用 MySQL 语句。对于不支持的功能,请参见与 MySQL 兼容性。 本页面将引导您了解基本的 TiDB SQL 语句,如 DDL、DML 和 CRUD 操作。有关 TiDB 语句的完整列表,更多详情请参见 SQL 语句概述。 根据功能,SQL 被划分为以下 4 种类型:
- DDL(Data Definition Language,数据定义语言):用于定义数据库对象,包括数据库、表、视图和索引。
- DML(Data Manipulation Language,数据操作语言):用于操作应用相关的记录。
- DQL(Data Query Language,数据查询语言):用于在条件过滤后查询记录。
- DCL(Data Control Language,数据控制语言):用于定义访问权限和安全级别。
常见的 DDL 功能包括创建、修改和删除对象(如表和索引)。对应的命令是 CREATE、ALTER 和 DROP。
在 TiDB 中,数据库可以被视为一组对象的集合,例如表和索引。
要显示数据库列表,使用 SHOW DATABASES 语句:
要使用名为 mysql 的数据库,使用以下语句:
要显示某个数据库中的所有表,使用 SHOW TABLES 语句:
要创建数据库,使用 CREATE DATABASE 语句:
要创建名为 samp_db 的数据库,使用以下语句:
添加 IF NOT EXISTS 以防止数据库已存在时出现错误。
要删除数据库,使用 DROP DATABASE 语句:
要创建表,使用 CREATE TABLE 语句:
例如,要创建一个名为 person 的表,包含编号、姓名和生日等字段,使用以下语句:
要查看创建该表的语句(DDL),使用 SHOW CREATE 语句:
要删除表,使用 DROP TABLE 语句:
索引用于加快对索引列的查询。对于值非唯一的列,创建索引使用 CREATE INDEX 语句:
也可以使用 ALTER TABLE 语句:
对于值唯一的列,创建唯一索引使用 CREATE UNIQUE INDEX 语句:
或者使用 ALTER TABLE 语句:
要显示表中的所有索引,使用 SHOW INDEX 语句:
要删除索引,可以使用 DROP INDEX 或 ALTER TABLE 语句。DROP INDEX 可以嵌套在 ALTER TABLE 中:
说明
DDL 操作不是事务性操作。执行 DDL 时,无需运行 COMMIT 语句。
常见的 DML 功能包括添加、修改和删除表中的记录。对应的命令是 INSERT、UPDATE 和 DELETE。
向表中插入数据,使用 INSERT 语句:
向表中插入部分字段的数据,使用 INSERT 语句:
更新表中某条记录的部分字段,使用 UPDATE 语句:
删除表中的数据,使用 DELETE 语句:
说明
不带 WHERE 条件的 UPDATE 和 DELETE 语句会操作整个表。
DQL 用于从表或多个表中检索所需的数据行。
要查看表中的数据,使用 SELECT 语句:
要查询特定列,添加列名到 SELECT 关键字后:
使用 WHERE 子句过滤所有符合条件的记录,然后返回结果:
DCL 通常用于创建或删除用户,以及管理用户权限。
要创建用户,使用 CREATE USER 语句。以下示例创建一个名为 tiuser,密码为 123456 的用户:
授予 tiuser 访问 samp_db 数据库中表的权限:
查看 tiuser 的权限:
删除 tiuser: