当前位置:网站首页>TiDB 中的SQL 基本操作
TiDB 中的SQL 基本操作
2022-06-27 06:08:00 【添香小铺】
成功部署 TiDB 集群之后,便可以在 TiDB 中执行 SQL 语句了。因为 TiDB 兼容 MySQL,你可以使用 MySQL 客户端连接 TiDB,并且大多数情况下可以直接执行 MySQL 语句。
SQL 是一门声明性语言,它是数据库用户与数据库交互的方式。它更像是一种自然语言,好像在用英语与数据库进行对话。本文档介绍基本的 SQL 操作。完整的 SQL 语句列表,参见 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 语境中的 Database 或者说数据库,可以认为是表和索引等对象的集合。
使用 SHOW DATABASES 语句查看系统中数据库列表:
SHOW DATABASES;
使用名为 mysql 的数据库:
USE mysql;
使用 SHOW TABLES 语句查看数据库中的所有表。例如:
SHOW TABLES FROM mysql;
使用 CREATE DATABASE 语句创建数据库。语法如下:
CREATE DATABASE db_name [options];
例如,要创建一个名为 samp_db 的数据库,可使用以下语句:
CREATE DATABASE IF NOT EXISTS samp_db;
添加 IF NOT EXISTS 可防止发生错误。
使用 DROP DATABASE 语句删除数据库。例如:
DROP DATABASE samp_db;
创建、查看和删除表
使用 CREATE TABLE 语句创建表。语法如下:
CREATE TABLE table_name column_name data_type constraint;
例如,要创建一个名为 person 的表,包括编号、名字、生日等字段,可使用以下语句:
CREATE TABLE person ( id INT(11), name VARCHAR(255), birthday DATE );
使用 SHOW CREATE 语句查看建表语句,即 DDL。例如:
SHOW CREATE TABLE person;
使用 DROP TABLE 语句删除表。例如:
DROP TABLE person;
创建、查看和删除索引
索引通常用于加速索引列上的查询。对于值不唯一的列,可使用 CREATE INDEX 或 ALTER TABLE 语句创建普通索引。例如:
CREATE INDEX person_id ON person (id);
或者:
ALTER TABLE person ADD INDEX person_id (id);
对于值唯一的列,可以创建唯一索引。例如:
CREATE UNIQUE INDEX person_unique_id ON person (id);
或者:
ALTER TABLE person ADD UNIQUE person_unique_id (id);
使用 SHOW INDEX 语句查看表内所有索引:
SHOW INDEX FROM person;
使用 ALTER TABLE 或 DROP INDEX 语句来删除索引。与 CREATE INDEX 语句类似,DROP INDEX 也可以嵌入 ALTER TABLE 语句。例如:
DROP INDEX person_id ON person;
ALTER TABLE person DROP INDEX person_unique_id;
注意:DDL 操作不是事务,在执行 DDL 时,不需要对应 COMMIT 语句。
常用的 DML 功能是对表记录的新增、修改和删除,对应的命令分别是 INSERT、UPDATE 和 DELETE。
记录的增删改
使用 INSERT 语句向表内插入表记录。例如:
INSERT INTO person VALUES(1,'tom','20170912');
使用 INSERT 语句向表内插入包含部分字段数据的表记录。例如:
INSERT INTO person(id,name) VALUES('2','bob');
使用 UPDATE 语句向表内修改表记录的部分字段数据。例如:
UPDATE person SET birthday='20180808' WHERE id=2;
使用 DELETE 语句向表内删除部分表记录。例如:
DELETE FROM person WHERE id=2;
注意:UPDATE 和 DELETE 操作如果不带 WHERE 过滤条件是对全表进行操作。
DQL 数据查询语言是从一个表或多个表中检索出想要的数据行,通常是业务开发的核心内容。
查询数据
使用 SELECT 语句检索表内数据。例如:
SELECT * FROM person;
在 SELECT 后面加上要查询的列名。例如:
SELECT name FROM person;
+------+ | name | +------+ | tom | +------+ 1 rows in set (0.00 sec)
使用 WHERE 子句,对所有记录进行是否符合条件的筛选后再返回。例如:
SELECT * FROM person WHERE id<5;
常用的 DCL 功能是创建或删除用户,和对用户权限的管理。
创建、授权和删除用户
使用 CREATE USER 语句创建一个用户 tiuser,密码为 123456:
CREATE USER 'tiuser'@'localhost' IDENTIFIED BY '123456';
授权用户 tiuser 可检索数据库 samp_db 内的表:
GRANT SELECT ON samp_db.* TO 'tiuser'@'localhost';
查询用户 tiuser 的权限:
SHOW GRANTS for [email protected];
删除用户 tiuser:
DROP USER 'tiuser'@'localhost';
边栏推荐
- JVM overall structure analysis
- NEON优化1:软件性能优化、降功耗怎么搞?
- 代码即数据
- The restart status of the openstack instance will change to the error handling method. The openstack built by the container restarts the compute service method of the computing node and prompts the gi
- Distribution gaussienne, régression linéaire, régression logistique
- mysql 查询时将状态改为相对应的文字
- The form verifies the variables bound to the V-model, and the solution to invalid verification
- Add widget on qlistwidgetitem
- LeetCode 0086. Separate linked list
- 30 SCM common problems and solutions!
猜你喜欢

Information System Project Manager - Chapter VII project cost management

Proxy-Reflect使用详解

美摄云服务方案:专为轻量化视频制作场景打造

Yaml file encryption

多线程带来的的风险——线程安全

Go日志-Uber开源库zap使用

我对于测试团队建设的意见

Formation and release of function stack frame

Small program of C language practice (consolidate and deepen the understanding of knowledge points)

Proxy reflect usage details
随机推荐
310. 最小高度树
[FPGA] realize the data output of checkerboard horizontal and vertical gray scale diagram based on bt1120 timing design
Kubesphere cluster configuration NFS storage solution - favorite
Add widget on qlistwidgetitem
【Cocos Creator 3.5.1】this.node.getPosition(this._curPos)的使用
Yaml file encryption
Matlab quickly converts two-dimensional coordinates of images into longitude and latitude coordinates
写一个 goroutine 实例, 同时练习一下 chan
JVM garbage collection mechanism
美摄云服务方案:专为轻量化视频制作场景打造
Convolution neural network -- Application of CNN model (ore prospecting prediction)
函数式 连续式
JVM common instructions
Navigation [machine learning]
Implementation of easyexcel's function of merging cells with the same content and dynamic title
软件测试年终总结报告模板
使用CSDN 开发云搭建导航网站
【Cocos Creator 3.5.1】input.on的使用
427-二叉树(617.合并二叉树、700.二叉搜索树中的搜索、98. 验证二叉搜索树、530.二叉搜索树的最小绝对差)
程序猿学习抖音短视频制作