Move the docs folder
This commit is contained in:
committed by
LINxiansheng
parent
7c6dcc6712
commit
d42f317422
@ -0,0 +1,84 @@
|
||||
数据库操作
|
||||
==========================
|
||||
|
||||
本节主要提供数据库的创建、查看、修改和删除示例。
|
||||
|
||||
创建数据库
|
||||
--------------------------
|
||||
|
||||
使用 `CREATE DATABASE` 语句创建数据库。
|
||||
|
||||
示例如下:
|
||||
|
||||
* 创建数据库 `test2`,并指定字符集为 `UTF8`。
|
||||
|
||||
```sql
|
||||
obclient> CREATE DATABASE test2 DEFAULT CHARACTER SET UTF8;
|
||||
Query OK, 1 row affected (0.00 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 创建读写属性的数据库 `test3`。
|
||||
|
||||
```sql
|
||||
obclient> CREATE DATABASE test3 READ WRITE;
|
||||
Query OK, 1 row affected (0.03 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
更多 `CREATE DATABASE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [CREATE DATABASE](../../10.sql-reference/5.sql-statement/11.create-database.md)章节。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
查看数据库
|
||||
--------------------------
|
||||
|
||||
使用 `SHOW DATABASES` 语句查看数据库。
|
||||
|
||||
示例如下:
|
||||
|
||||
```sql
|
||||
obclient> SHOW DATABASES;
|
||||
```
|
||||
|
||||
|
||||
|
||||
修改数据库
|
||||
--------------------------
|
||||
|
||||
使用 `ALTER DATABASE` 语句来修改 DataBase 数据库的属性。
|
||||
|
||||
示例如下:
|
||||
|
||||
修改数据库 `test2` 的字符集为 `UTF8MB4`,校对规则为 `UTF8MB4_BIN`,且为读写属性。
|
||||
|
||||
```sql
|
||||
obclient> ALTER DATABASE test2 DEFAULT CHARACTER SET UTF8MB4;
|
||||
|
||||
obclient> ALTER DATABASE test2 DEFAULT COLLATE UTF8MB4_BIN;
|
||||
|
||||
obclient> ALTER DATABASE test2 READ WRITE;
|
||||
```
|
||||
|
||||
|
||||
|
||||
更多 `ALTER DATABASE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [ALTER DATABASE](../../10.sql-reference/5.sql-statement/2.alter-database.md)章节。
|
||||
|
||||
删除数据库
|
||||
--------------------------
|
||||
|
||||
使用 `DROP DATABASE` 语句删除数据库。
|
||||
|
||||
示例如下:
|
||||
|
||||
```sql
|
||||
obclient> DROP DATABASE my_db;
|
||||
```
|
||||
|
||||
|
||||
|
||||
更多 `DROP DATABASE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [DROP DATABASE](../../10.sql-reference/5.sql-statement/24.drop-database.md)章节。
|
||||
@ -0,0 +1,188 @@
|
||||
表操作
|
||||
========================
|
||||
|
||||
本节主要提供数据库表的创建、查看、修改和删除示例。
|
||||
|
||||
创建表
|
||||
------------------------
|
||||
|
||||
使用 `CREATE TABLE` 语句在数据库中创建新表。
|
||||
|
||||
示例如下:
|
||||
|
||||
```sql
|
||||
obclient> CREATE TABLE test (c1 int primary key, c2 VARCHAR(3));
|
||||
```
|
||||
|
||||
|
||||
|
||||
更多 `CREATE TABLE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [CREATE TABLE](../../10.sql-reference/5.sql-statement/18.create-table.md)章节。
|
||||
|
||||
查看表
|
||||
------------------------
|
||||
|
||||
使用 `SHOW CREATE TABLE` 语句查看建表语句。
|
||||
|
||||
示例如下:
|
||||
|
||||
```sql
|
||||
obclient> SHOW CREATE TABLE test;
|
||||
```
|
||||
|
||||
|
||||
|
||||
使用 `SHOW TABLES` 语句查看指定数据库中的所有表。
|
||||
|
||||
示例如下:
|
||||
|
||||
```sql
|
||||
obclient> SHOW TABLES FROM my_db;
|
||||
```
|
||||
|
||||
|
||||
|
||||
修改表
|
||||
------------------------
|
||||
|
||||
使用 `ALTER TABLE` 语句来修改已存在的表的结构,包括修改表及表属性、新增列、修改列及属性、删除列等。
|
||||
|
||||
示例如下:
|
||||
|
||||
* 把表 `test` 的字段 `c2` 改名为 `c3`,并同时修改其字段类型。
|
||||
|
||||
```sql
|
||||
obclient> DESCRIBE test;
|
||||
+-------+------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-------+------------+------+-----+---------+-------+
|
||||
| c1 | int(11) | NO | PRI | NULL | |
|
||||
| c2 | varchar(3) | YES | | NULL | |
|
||||
+-------+------------+------+-----+---------+-------+
|
||||
|
||||
obclient> ALTER TABLE test CHANGE COLUMN c2 c3 CHAR(10);
|
||||
Query OK, 0 rows affected (0.08 sec)
|
||||
obclient> DESCRIBE test;
|
||||
+-------+----------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-------+----------+------+-----+---------+-------+
|
||||
| c1 | int(11) | NO | PRI | NULL | |
|
||||
| c3 | char(10) | YES | | NULL | |
|
||||
+-------+----------+------+-----+---------+-------+
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 增加、删除列
|
||||
|
||||
* 增加列前,执行 `DESCRIBE test``;` 命令查看表信息。
|
||||
|
||||
```sql
|
||||
obclient> DESCRIBE test;
|
||||
+-------+-------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-------+-------------+------+-----+---------+-------+
|
||||
| c1 | int(11) | NO | PRI | NULL | |
|
||||
| c2 | varchar(3) | YES | | NULL | |
|
||||
+-------+-------------+------+-----+---------+-------+
|
||||
2 rows in set (0.01 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 执行以下命令,增加 `c3` 列。
|
||||
|
||||
```sql
|
||||
obclient> ALTER TABLE test ADD c3 int;
|
||||
Query OK, 0 rows affected (0.08 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 增加列后,执行 `DESCRIBE test;` 命令查看表信息。
|
||||
|
||||
```sql
|
||||
obclient> DESCRIBE test;
|
||||
+-------+-------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-------+-------------+------+-----+---------+-------+
|
||||
| c1 | int(11) | NO | PRI | NULL | |
|
||||
| c2 | varchar(3) | YES | | NULL | |
|
||||
| c3 | int(11) | YES | | NULL | |
|
||||
+-------+-------------+------+-----+---------+-------+
|
||||
3 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 执行以下命令,删除 `c3` 列。
|
||||
|
||||
```sql
|
||||
obclient> ALTER TABLE test DROP c3;
|
||||
Query OK, 0 rows affected (0.08 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 删除列后,执行 `DESCRIBE test;` 命令查看表信息。
|
||||
|
||||
```sql
|
||||
obclient> DESCRIBE test;
|
||||
+-------+-------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-------+-------------+------+-----+---------+-------+
|
||||
| c1 | int(11) | NO | PRI | NULL | |
|
||||
| c2 | varchar(50) | YES | | NULL | |
|
||||
+-------+-------------+------+-----+---------+-------+
|
||||
2 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* 设置表 `test` 的副本数,并且增加列 `c5`。
|
||||
|
||||
```sql
|
||||
obclient> ALTER TABLE test SET REPLICA_NUM=2, ADD COLUMN c5 INT;
|
||||
Query OK, 0 rows affected (0.06 sec)
|
||||
obclient> DESCRIBE test;
|
||||
+-------+------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-------+------------+------+-----+---------+-------+
|
||||
| c1 | int(11) | NO | PRI | NULL | |
|
||||
| c2 | varchar(3) | YES | | NULL | |
|
||||
| c5 | int(11) | YES | | NULL | |
|
||||
+-------+------------+------+-----+---------+-------+
|
||||
3 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
更多 `ALTER TABLE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [ALTER TABLE](../../10.sql-reference/5.sql-statement/7.alter-table.md) 章节。
|
||||
|
||||
删除表
|
||||
------------------------
|
||||
|
||||
使用 `DROP TABLE` 语句删除表。
|
||||
|
||||
示例如下:
|
||||
|
||||
```sql
|
||||
obclient> DROP TABLE test;
|
||||
```
|
||||
|
||||
|
||||
|
||||
或者
|
||||
|
||||
```sql
|
||||
obclient> DROP TABLE IF EXISTS test;
|
||||
```
|
||||
|
||||
|
||||
|
||||
更多 `DROP TABLE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [DROP TABLE](../../10.sql-reference/5.sql-statement/30.drop-table.md)章节。
|
||||
@ -0,0 +1,65 @@
|
||||
索引操作
|
||||
=========================
|
||||
|
||||
索引是创建在表上并对数据库表中一列或多列的值进行排序的一种结构。其作用主要在于提高查询的速度,降低数据库系统的性能开销。
|
||||
|
||||
创建索引
|
||||
-------------
|
||||
|
||||
使用 `CREATE INDEX` 语句创建表的索引。
|
||||
|
||||
示例:
|
||||
|
||||
1. 执行以下命令,创建表 `test`。
|
||||
|
||||
```sql
|
||||
obclient> CREATE TABLE test (c1 int primary key, c2 VARCHAR(10));
|
||||
```
|
||||
|
||||
|
||||
|
||||
2. 执行以下命令,创建表 test 的索引。
|
||||
|
||||
```sql
|
||||
obclient> CREATE INDEX test_index ON test (c1, c2);
|
||||
```
|
||||
|
||||
|
||||
|
||||
更多 `CREATE INDEX` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中的 [CREATE INDEX](../../10.sql-reference/5.sql-statement/12.create-index.md)章节。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
查看索引
|
||||
-------------
|
||||
|
||||
使用 `SHOW INDEX` 语句查看表的索引。
|
||||
|
||||
示例如下:
|
||||
|
||||
查看表 `test` 的索引。
|
||||
|
||||
```sql
|
||||
obclient> SHOW INDEX FROM test;
|
||||
```
|
||||
|
||||
|
||||
|
||||
删除索引
|
||||
-------------
|
||||
|
||||
使用 `DROP INDEX` 语句删除表的索引。
|
||||
|
||||
示例如下:
|
||||
|
||||
删除表 `test` 的索引。
|
||||
|
||||
```sql
|
||||
obclient> DROP INDEX test_index ON test;
|
||||
```
|
||||
|
||||
|
||||
|
||||
更多 `DROP INDEX` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中的 [DROP INDEX](../../10.sql-reference/5.sql-statement/25.drop-index.md)章节。
|
||||
@ -0,0 +1,57 @@
|
||||
插入数据
|
||||
=========================
|
||||
|
||||
使用 `INSERT` 语句在已经存在的表中插入数据。
|
||||
|
||||
示例如下:
|
||||
|
||||
假设有如下所示数据的表 `t1`。
|
||||
|
||||
```sql
|
||||
obclient> CREATE TABLE t1(c1 int primary key, c2 int) partition BY key(c1) partitions 4;
|
||||
Query OK, 0 rows affected (0.11 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 向表 t1 中插入一行数据。
|
||||
|
||||
```sql
|
||||
obclient> INSERT INTO t1 VALUES(1,1);
|
||||
Query OK, 1 row affected (0.01 sec)
|
||||
|
||||
obclient> SELECT * FROM t1;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 1 | 1 |
|
||||
+----+------+
|
||||
1 row in set (0.04 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 向表 t1 中插入多行数据。
|
||||
|
||||
```sql
|
||||
obclient> INSERT t1 VALUES(1,1),(2,default),(2+2,3*4);
|
||||
Query OK, 3 rows affected (0.02 sec)
|
||||
Records: 3 Duplicates: 0 Warnings: 0
|
||||
|
||||
obclient> SELECT * FROM t1;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 1 | 1 |
|
||||
| 2 | NULL |
|
||||
| 4 | 12 |
|
||||
+----+------+
|
||||
3 rows in set (0.02 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
更多 `INSERT `语句相关的语法请参见《SQL 参考(MySQL 模式)》中 [INSERT](../../10.sql-reference/5.sql-statement/41.INSERT.md)章节。
|
||||
159
docs/docs-cn/2.quickstart/6.basic-operations/5.delete-data.md
Normal file
159
docs/docs-cn/2.quickstart/6.basic-operations/5.delete-data.md
Normal file
@ -0,0 +1,159 @@
|
||||
删除数据
|
||||
=========================
|
||||
|
||||
使用 DELETE 语句删除数据。
|
||||
|
||||
示例如下:
|
||||
|
||||
假设有如下所示数据的表 `t1` 和 `t2`。其中,表 `t2` 为 KEY 分区表,且分区名由系统根据分区命令规则自动生成,即分区名为 `p0`、`p1`、`p2`、`p3`。
|
||||
|
||||
```sql
|
||||
obclient> CREATE TABLE t1(c1 int primary key, c2 int);
|
||||
Query OK, 0 rows affected (0.16 sec)
|
||||
obclient> INSERT t1 VALUES(1,1),(2,2),(3,3),(4,4);
|
||||
Query OK, 4 rows affected (0.00 sec)
|
||||
Records: 4 Duplicates: 0 Warnings: 0
|
||||
obclient> SELECT * FROM t1;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 1 | 1 |
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
| 4 | 4 |
|
||||
+----+------+
|
||||
4 rows in set (0.06 sec)
|
||||
|
||||
obclient> CREATE TABLE t2(c1 int primary key, c2 int) partition BY key(c1) partitions 4;
|
||||
Query OK, 0 rows affected (0.19 sec)
|
||||
obclient> INSERT INTO t2 VALUES(5,5),(1,1),(2,2),(3,3);
|
||||
Query OK, 4 rows affected (0.01 sec)
|
||||
Records: 4 Duplicates: 0 Warnings: 0
|
||||
obclient> SELECT * FROM t2;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 5 | 5 |
|
||||
| 1 | 1 |
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
+----+------+
|
||||
4 rows in set (0.02 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 单表删除,删除 `c1=2` 的行,其中 `c1` 列为表 `t1` 中的 Primary Key。
|
||||
|
||||
```sql
|
||||
obclient> DELETE FROM t1 WHERE c1 = 2;
|
||||
Query OK, 1 row affected (0.02 sec)
|
||||
|
||||
obclient> SELECT * FROM t1;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 1 | 1 |
|
||||
| 3 | 3 |
|
||||
| 4 | 4 |
|
||||
+----+------+
|
||||
3 rows in set (0.01 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 单表删除,删除表 `t1` 中按照 `c2` 列排序之后的第一行数据。
|
||||
|
||||
```sql
|
||||
obclient> DELETE FROM t1 ORDER BY c2 LIMIT 1;
|
||||
Query OK, 1 row affected (0.01 sec)
|
||||
|
||||
obclient> SELECT * FROM t1;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
| 4 | 4 |
|
||||
+----+------+
|
||||
3 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 单表删除,删除表 `t2` 的 `p2` 分区的数据。
|
||||
|
||||
```sql
|
||||
obclient> SELECT * FROM t2 PARTITION(p2);
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 1 | 1 |
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
+----+------+
|
||||
3 rows in set (0.01 sec)
|
||||
|
||||
obclient> DELETE FROM t2 PARTITION(p2);
|
||||
Query OK, 3 rows affected (0.02 sec)
|
||||
|
||||
obclient> SELECT * FROM t2;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 5 | 5 |
|
||||
+----+------+
|
||||
1 row in set (0.02 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 多表删除,删除 `t1`、`t2` 表中 `t1.c1 = t2.c1` 的数据。
|
||||
|
||||
```sql
|
||||
obclient> DELETE t1, t2 FROM t1, t2 WHERE t1.c1 = t2.c1;
|
||||
Query OK, 3 rows affected (0.02 sec)
|
||||
|
||||
obclient> SELECT * FROM t1;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 4 | 4 |
|
||||
+----+------+
|
||||
1 row in set (0.01 sec)
|
||||
|
||||
obclient> SELECT * FROM t2;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 5 | 5 |
|
||||
+----+------+
|
||||
1 row in set (0.01 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 多表删除,删除 `t1`、`t2` 表中 `t1.c1 = t2.c1` 的数据。
|
||||
|
||||
```sql
|
||||
obclient> DELETE FROM t1, t2 USING t1, t2 WHERE t1.c1 = t2.c1;
|
||||
Query OK, 4 rows affected (0.02 sec)
|
||||
|
||||
obclient> SELECT * FROM t1;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 4 | 4 |
|
||||
+----+------+
|
||||
1 row in set (0.01 sec)
|
||||
|
||||
obclient> SELECT * FROM t2;
|
||||
Empty set (0.01 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
更多 `DELETE `语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [DELETE](../../10.sql-reference/5.sql-statement/23.DELETE.md)章节。
|
||||
153
docs/docs-cn/2.quickstart/6.basic-operations/6.update-data.md
Normal file
153
docs/docs-cn/2.quickstart/6.basic-operations/6.update-data.md
Normal file
@ -0,0 +1,153 @@
|
||||
更新数据
|
||||
=========================
|
||||
|
||||
使用 `UPDATE` 语句修改表中的字段值。
|
||||
|
||||
示例如下:
|
||||
|
||||
创建示例表 `t1` 和 `t2`。
|
||||
|
||||
```sql
|
||||
obclient> CREATE TABLE t1(c1 int primary key, c2 int);
|
||||
Query OK, 0 rows affected (0.16 sec)
|
||||
obclient> INSERT t1 VALUES(1,1),(2,2),(3,3),(4,4);
|
||||
Query OK, 4 rows affected (0.02 sec)
|
||||
Records: 4 Duplicates: 0 Warnings: 0
|
||||
obclient> SELECT * FROM t1;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 1 | 1 |
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
| 4 | 4 |
|
||||
+----+------+
|
||||
4 rows in set (0.06 sec)
|
||||
|
||||
obclient> CREATE TABLE t2(c1 int primary key, c2 int) partition by key(c1) partitions 4;
|
||||
Query OK, 0 rows affected(0.19 sec)
|
||||
obclient> INSERT t2 VALUES(5,5),(1,1),(2,2),(3,3);
|
||||
Query OK, 4 rows affected (0.01 sec)
|
||||
Records: 4 Duplicates: 0 Warnings: 0
|
||||
obclient> SELECT * FROM t2;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 5 | 5 |
|
||||
| 1 | 1 |
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
+----+------+
|
||||
4 rows in set (0.02 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 将表 `t1` 中 `t1.c1=1` 对应的那一行数据的 `c2` 列值修改为 `100`。
|
||||
|
||||
```sql
|
||||
obclient> UPDATE t1 SET t1.c2 = 100 WHERE t1.c1 = 1;
|
||||
Query OK, 1 row affected (0.02 sec)
|
||||
Rows matched: 1 Changed: 1 Warnings: 0
|
||||
|
||||
obclient> SELECT * FROM t1;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 1 | 100 |
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
| 4 | 4 |
|
||||
+----+------+
|
||||
4 rows in set (0.01 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 将表 `t1` 中按照 `c2` 列排序的前两行数据的 `c2` 列值修改为 `100`。
|
||||
|
||||
```sql
|
||||
obclient> UPDATE t1 set t1.c2 = 100 ORDER BY c2 LIMIT 2;
|
||||
Query OK, 2 rows affected (0.02 sec)
|
||||
Rows matched: 2 Changed: 2 Warnings: 0
|
||||
|
||||
obclient> SELECT * FROM t1;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 1 | 100 |
|
||||
| 2 | 100 |
|
||||
| 3 | 3 |
|
||||
| 4 | 4 |
|
||||
+----+------+
|
||||
4 rows in set (0.01 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 将表 `t2` 中 `p2` 分区的数据中 `t2.c1 > 2` 的对应行数据的 `c2` 列值修改为 `100`。
|
||||
|
||||
```sql
|
||||
obclient> SELECT * FROM t2 partition (p2);
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 1 | 1 |
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
+----+------+
|
||||
3 rows in set (0.01 sec)
|
||||
|
||||
obclient> UPDATE t2 partition(p2) SET t2.c2 = 100 WHERE t2.c1 > 2;
|
||||
Query OK, 1 row affected (0.02 sec)
|
||||
Rows matched: 1 Changed: 1 Warnings: 0
|
||||
|
||||
obclient> SELECT * FROM t2 partition (p2);
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 1 | 1 |
|
||||
| 2 | 2 |
|
||||
| 3 | 100 |
|
||||
+----+------+
|
||||
3 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
* 修改多个表。对于表 `t1` 和表 `t2` 中满足 `t1.c2 = t2.c2` 对应行的数据,将表 `t1` 中的 `c2` 列值修改为 `100`,表 `t2` 中的 `c2` 列值修改为 `200`。
|
||||
|
||||
```sql
|
||||
obclient> UPDATE t1,t2 SET t1.c2 = 100, t2.c2 = 200 WHERE t1.c2 = t2.c2;
|
||||
Query OK, 6 rows affected (0.03 sec)
|
||||
Rows matched: 6 Changed: 6 Warnings: 0
|
||||
|
||||
obclient> SELECT * FROM t1;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 1 | 100 |
|
||||
| 2 | 100 |
|
||||
| 3 | 100 |
|
||||
| 4 | 4 |
|
||||
+----+------+
|
||||
4 rows in set (0.00 sec)
|
||||
|
||||
obclient> SELECT * FROM t2;
|
||||
+----+------+
|
||||
| c1 | c2 |
|
||||
+----+------+
|
||||
| 5 | 5 |
|
||||
| 1 | 200 |
|
||||
| 2 | 200 |
|
||||
| 3 | 200 |
|
||||
+----+------+
|
||||
4 rows in set (0.01 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
更多 `UPDATE` 语句相关的语法请参见《SQL 参考(MySQL 模式)》中 [UPDATE](../../10.sql-reference/5.sql-statement/61.UPDATE.md)章节。
|
||||
81
docs/docs-cn/2.quickstart/6.basic-operations/7.query-data.md
Normal file
81
docs/docs-cn/2.quickstart/6.basic-operations/7.query-data.md
Normal file
@ -0,0 +1,81 @@
|
||||
查询数据
|
||||
=========================
|
||||
|
||||
使用 `SELECT` 语句查询表中的内容。
|
||||
|
||||
示例如下:
|
||||
|
||||
假设有如下所示数据的表 `a`。
|
||||
|
||||
```sql
|
||||
obclient> CREATE TABLE a (id int, name varchar(50), num int);
|
||||
Query OK, 0 rows affected (0.07 sec)
|
||||
|
||||
obclient> INSERT INTO a VALUES(1,'a',100),(2,'b',200),(3,'a',50);
|
||||
Query OK, 3 rows affected (0.00 sec)
|
||||
Records: 3 Duplicates: 0 Warnings: 0
|
||||
|
||||
obclient> SELECT * FROM a;
|
||||
+------+------+------+
|
||||
| ID | NAME | NUM |
|
||||
+------+------+------+
|
||||
| 1 | a | 100 |
|
||||
| 2 | b | 200 |
|
||||
| 3 | a | 50 |
|
||||
+------+------+------+
|
||||
3 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
1. 从表 `a` 中读取 `name` 的数据。
|
||||
|
||||
```sql
|
||||
obclient> SELECT name FROM a;
|
||||
+------+
|
||||
| NAME |
|
||||
+------+
|
||||
| a |
|
||||
| b |
|
||||
| a |
|
||||
+------+
|
||||
3 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
2. 在查询结果中对 `name` 进行去重处理。
|
||||
|
||||
```sql
|
||||
obclient> SELECT DISTINCT name FROM a;
|
||||
+------+
|
||||
| NAME |
|
||||
+------+
|
||||
| a |
|
||||
| b |
|
||||
+------+
|
||||
2 rows in set (0.01 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
3. 从表 `a` 中根据筛选条件 `name = 'a'` ,输出对应的 `id` 、`name` 和 `num`。
|
||||
|
||||
```sql
|
||||
obclient> SELECT id, name, num FROM a WHERE name = 'a';
|
||||
+------+------+------+
|
||||
| ID | NAME | NUM |
|
||||
+------+------+------+
|
||||
| 1 | a | 100 |
|
||||
| 3 | a | 50 |
|
||||
+------+------+------+
|
||||
2 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
更多 `SELECT` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [SELECT](../../10.sql-reference/5.sql-statement/54.SELECT.md)章节。
|
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,61 @@
|
||||
提交事务
|
||||
=========================
|
||||
|
||||
使用 `COMMIT` 语句提交事务。
|
||||
|
||||
在提交事务(`COMMIT`)之前:
|
||||
|
||||
* 您的修改只对当前会话可见,对其他数据库会话均不可见。
|
||||
|
||||
|
||||
|
||||
* 您的修改没有持久化,您可以通过 `ROLLBACK` 语句撤销修改。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
在提交事务(`COMMIT`)之后:
|
||||
|
||||
* 您的修改对所有数据库会话可见。
|
||||
|
||||
|
||||
|
||||
* 您的修改持久化成功,不能通过 `ROLLBACK` 语句回滚修改。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
示例如下:
|
||||
|
||||
```sql
|
||||
obclient> INSERT INTO t_insert(id,name) VALUES(4,'JP');
|
||||
Query OK, 1 row affected (0.01 sec)
|
||||
|
||||
obclient> COMMIT;
|
||||
Query OK, 0 rows affected (0.00 sec)
|
||||
|
||||
obclient> exit;
|
||||
Bye
|
||||
|
||||
[user@host ~]$obclient -h192.168.1.101 -utpcc@obbmsql#obdemo -P2883 -p123456 TPCC
|
||||
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
|
||||
|
||||
obclient> SELECT * FROM t_insert;
|
||||
+----+------+-------+---------------------+
|
||||
| ID | NAME | VALUE | GMT_CREATE |
|
||||
+----+------+-------+---------------------+
|
||||
| 1 | CN | 10001 | 2020-04-02 17:52:31 |
|
||||
| 2 | US | 10002 | 2020-04-02 17:52:38 |
|
||||
| 3 | EN | 10003 | 2020-04-02 17:52:38 |
|
||||
| 4 | JP | NULL | 2020-04-02 17:53:34 |
|
||||
+----+------+-------+---------------------+
|
||||
4 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
更多事务控制语句相关的说明请参见 [关于事务控制语句](../../7.developer-guide-1/3.about-dml-statements-and-transactions/2.about-transactional-control-statements.md)。
|
||||
@ -0,0 +1,108 @@
|
||||
回滚事务
|
||||
=========================
|
||||
|
||||
使用 `ROLLBACK` 语句回滚事务。
|
||||
|
||||
回滚一个事务指将事务的修改全部撤销。可以回滚当前整个未提交的事务,也可以回滚到事务中任意一个保存点。如果要回滚到某个保存点,必须结合使用 `ROLLBACK` 和 `TO SAVEPOINT` 语句。
|
||||
|
||||
其中:
|
||||
|
||||
* 如果回滚整个事务,则:
|
||||
|
||||
* 事务会结束
|
||||
|
||||
|
||||
|
||||
* 所有的修改会被丢弃
|
||||
|
||||
|
||||
|
||||
* 清除所有保存点
|
||||
|
||||
|
||||
|
||||
* 释放事务持有的所有锁
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* 如果回滚到某个保存点,则:
|
||||
|
||||
* 事务不会结束
|
||||
|
||||
|
||||
|
||||
* 保存点之前的修改被保留,保存点之后的修改被丢弃
|
||||
|
||||
|
||||
|
||||
* 清除保存点之后的保存点(不包括保存点自身)
|
||||
|
||||
|
||||
|
||||
* 释放保存点之后事务持有的所有锁
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
示例如下:
|
||||
|
||||
回滚事务的全部修改:
|
||||
|
||||
```sql
|
||||
obclient> SELECT * FROM t_insert;
|
||||
+----+------+-------+---------------------+
|
||||
| ID | NAME | VALUE | GMT_CREATE |
|
||||
+----+------+-------+---------------------+
|
||||
| 1 | CN | 10001 | 2020-04-02 17:52:31 |
|
||||
| 2 | US | 10002 | 2020-04-02 17:52:38 |
|
||||
| 3 | EN | 10003 | 2020-04-02 17:52:38 |
|
||||
+----+------+-------+---------------------+
|
||||
3 rows in set (0.00 sec)
|
||||
|
||||
obclient> INSERT INTO t_insert(id, name, value) VALUES(4,'JP',10004);
|
||||
Query OK, 1 row affected (0.00 sec)
|
||||
|
||||
obclient> INSERT INTO t_insert(id, name, value) VALUES(5,'FR',10005),(6,'RU',10006);
|
||||
Query OK, 2 rows affected (0.00 sec)
|
||||
Records: 2 Duplicates: 0 Warnings: 0
|
||||
|
||||
obclient> SELECT * FROM t_insert;
|
||||
+----+------+-------+---------------------+
|
||||
| ID | NAME | VALUE | GMT_CREATE |
|
||||
+----+------+-------+---------------------+
|
||||
| 1 | CN | 10001 | 2020-04-02 17:52:31 |
|
||||
| 2 | US | 10002 | 2020-04-02 17:52:38 |
|
||||
| 3 | EN | 10003 | 2020-04-02 17:52:38 |
|
||||
| 4 | JP | 10004 | 2020-04-02 17:53:34 |
|
||||
| 5 | FR | 10005 | 2020-04-02 17:54:53 |
|
||||
| 6 | RU | 10006 | 2020-04-02 17:54:53 |
|
||||
+----+------+-------+---------------------+
|
||||
6 rows in set (0.00 sec)
|
||||
|
||||
|
||||
obclient> ROLLBACK;
|
||||
Query OK, 0 rows affected (0.00 sec)
|
||||
|
||||
obclient> SELECT * FROM t_insert;
|
||||
+----+------+-------+---------------------+
|
||||
| ID | NAME | VALUE | GMT_CREATE |
|
||||
+----+------+-------+---------------------+
|
||||
| 1 | CN | 10001 | 2020-04-02 17:52:31 |
|
||||
| 2 | US | 10002 | 2020-04-02 17:52:38 |
|
||||
| 3 | EN | 10003 | 2020-04-02 17:52:38 |
|
||||
|
||||
+----+------+-------+---------------------+
|
||||
3 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
更多事务控制语句相关的说明请参见 [关于事务控制语句](../../7.developer-guide-1/3.about-dml-statements-and-transactions/2.about-transactional-control-statements.md)。
|
||||
Reference in New Issue
Block a user