Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dev/reference/sql: add sql statements #1425

Merged
merged 23 commits into from
Jun 19, 2019
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
a429f02
dev/reference/sql: add sql statements
TomShawn Jun 10, 2019
37d757e
dev/reference/sql: fix aliases in sql statements
TomShawn Jun 10, 2019
9885110
Merge branch 'add-sql-statements' of https://github.com/TomShawn/docs…
Jun 11, 2019
066793e
Merge branch 'add-sql-statements' of https://github.com/TomShawn/docs…
TomShawn Jun 11, 2019
4abf75e
Merge branch 'TomShawn-add-sql-statements' of https://github.com/ping…
TomShawn Jun 11, 2019
3b6c50f
Apply suggestions from code review
TomShawn Jun 13, 2019
8ef8bf3
dev/reference/sql: improve wording
TomShawn Jun 13, 2019
3743cfd
Apply suggestions from code review
TomShawn Jun 14, 2019
4a454bb
dev/reference/sql: improve wording based on Calvin's suggestions
TomShawn Jun 14, 2019
071b458
Merge branch 'TomShawn-add-sql-statements' of https://github.com/ping…
TomShawn Jun 14, 2019
9d6e6d7
Merge branch 'master' of https://github.com/TomShawn/docs-cn into Tom…
TomShawn Jun 14, 2019
8274cea
Merge branch 'master' of https://github.com/TomShawn/docs-cn into Tom…
TomShawn Jun 17, 2019
af9510c
dev/reference/sql: fix wording
TomShawn Jun 17, 2019
fb669bd
dev/reference/sql: fix alias format
TomShawn Jun 17, 2019
acef3f2
dev/reference/sql: address comments & fix format
TomShawn Jun 18, 2019
7d414ad
Merge branch 'master' of https://github.com/TomShawn/docs-cn into Tom…
TomShawn Jun 19, 2019
01a35be
dev/reference/sql: add SELECT syntax description
TomShawn Jun 19, 2019
353d488
Apply suggestions from code review
TomShawn Jun 19, 2019
722a76d
dev/reference/sql: fix links
TomShawn Jun 19, 2019
cdf7305
Update dev/reference/sql/statements/begin.md
TomShawn Jun 19, 2019
ca7ea4f
Update dev/reference/sql/statements/kill.md
TomShawn Jun 19, 2019
9fa4dd2
Update TOC
TomShawn Jun 19, 2019
17514cc
Merge branch 'master' of https://github.com/TomShawn/docs-cn into Tom…
TomShawn Jun 19, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Next Next commit
dev/reference/sql: add sql statements
  • Loading branch information
TomShawn committed Jun 10, 2019
commit a429f029701269f418ef86982aadf369802ece0f
82 changes: 82 additions & 0 deletions dev/reference/sql/statements/add-column.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
---
title: ADD COLUMN
summary: TiDB 数据库中 ADD COLUMN 的使用概况。
category: reference
---

# ADD COLUMN

`ALTER TABLE.. ADD COLUMN` 语句用于在已有表中添加列。在 TiDB 中,`ADD COLUMN`为在线操作,不会影响表中的数据读写。
TomShawn marked this conversation as resolved.
Show resolved Hide resolved

## 总览

**AlterTableStmt:**

![AlterTableStmt](/media/sqlgram/AlterTableStmt.png)

**AlterTableSpec:**

![AlterTableSpec](/media/sqlgram/AlterTableSpec.png)

**ColumnKeywordOpt:**

![ColumnKeywordOpt](/media/sqlgram/ColumnKeywordOpt.png)

**ColumnDef:**

![ColumnDef](/media/sqlgram/ColumnDef.png)

**ColumnPosition:**

![ColumnPosition](/media/sqlgram/ColumnPosition.png)

## 实例
TomShawn marked this conversation as resolved.
Show resolved Hide resolved

```sql
mysql> CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY auto_increment);
Query OK, 0 rows affected (0.11 sec)

mysql> INSERT INTO t1 VALUES (NULL);
Query OK, 1 row affected (0.02 sec)

mysql> SELECT * FROM t1;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)

mysql> ALTER TABLE t1 ADD COLUMN c1 INT NOT NULL;
Query OK, 0 rows affected (0.28 sec)

mysql> SELECT * FROM t1;
+----+----+
| id | c1 |
+----+----+
| 1 | 0 |
+----+----+
1 row in set (0.00 sec)

mysql> ALTER TABLE t1 ADD c2 INT NOT NULL AFTER c1;
Query OK, 0 rows affected (0.28 sec)

mysql> SELECT * FROM t1;
+----+----+----+
| id | c1 | c2 |
+----+----+----+
| 1 | 0 | 0 |
+----+----+----+
1 row in set (0.00 sec)
```

## MySQL 兼容性

* 不支持同时添加多列。
* 不支持将新添加的列设为 `PRIMARY KEY`。
* 不支持将新添加的列设为 `AUTO_INCREMENT`。

## 另请参阅

* [ADD INDEX](/dev/reference/sql/statements/add-index.md)
* [CREATE TABLE](/dev/reference/sql/statements/create-table.md)
80 changes: 80 additions & 0 deletions dev/reference/sql/statements/add-index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
title: ADD INDEX
summary: TiDB 数据库中 ADD INDEX 的使用概况。
category: reference
---

# ADD INDEX

`ALTER TABLE.. ADD INDEX` 语句用于在已有表中添加一条索引。在 TiDB 中,`ADD INDEX` 为在线操作,不会影响表中的数据读写。
TomShawn marked this conversation as resolved.
Show resolved Hide resolved

## 总览

**AlterTableStmt:**

![AlterTableStmt](/media/sqlgram/AlterTableStmt.png)

**AlterTableSpec:**

![AlterTableSpec](/media/sqlgram/AlterTableSpec.png)

**ColumnKeywordOpt:**

![ColumnKeywordOpt](/media/sqlgram/ColumnKeywordOpt.png)

**ColumnDef:**

![ColumnDef](/media/sqlgram/ColumnDef.png)

**ColumnPosition:**

![ColumnPosition](/media/sqlgram/ColumnPosition.png)

## 实例
TomShawn marked this conversation as resolved.
Show resolved Hide resolved

```sql
mysql> CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY auto_increment, c1 INT NOT NULL);
Query OK, 0 rows affected (0.11 sec)

mysql> INSERT INTO t1 (c1) VALUES (1),(2),(3),(4),(5);
Query OK, 5 rows affected (0.03 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> EXPLAIN SELECT * FROM t1 WHERE c1 = 3;
+---------------------+----------+------+-------------------------------------------------------------+
| id | count | task | operator info |
+---------------------+----------+------+-------------------------------------------------------------+
| TableReader_7 | 10.00 | root | data:Selection_6 |
| └─Selection_6 | 10.00 | cop | eq(test.t1.c1, 3) |
| └─TableScan_5 | 10000.00 | cop | table:t1, range:[-inf,+inf], keep order:false, stats:pseudo |
+---------------------+----------+------+-------------------------------------------------------------+
3 rows in set (0.00 sec)

mysql> ALTER TABLE t1 ADD INDEX (c1);
Query OK, 0 rows affected (0.30 sec)

mysql> EXPLAIN SELECT * FROM t1 WHERE c1 = 3;
+-------------------+-------+------+-----------------------------------------------------------------+
| id | count | task | operator info |
+-------------------+-------+------+-----------------------------------------------------------------+
| IndexReader_6 | 10.00 | root | index:IndexScan_5 |
| └─IndexScan_5 | 10.00 | cop | table:t1, index:c1, range:[3,3], keep order:false, stats:pseudo |
+-------------------+-------+------+-----------------------------------------------------------------+
2 rows in set (0.00 sec)
```

## MySQL 兼容性

* 不支持 `FULLTEXT`,`HASH` 和 `SPATIAL` 索引。
* 不支持降序索引(类似于 MySQL 5.7)。
* 目前尚不支持同时添加多条索引。
TomShawn marked this conversation as resolved.
Show resolved Hide resolved
* 无法向表中添加 `PRIMARY KEY`。

## 另请参阅

* [CREATE INDEX](/dev/reference/sql/statements/create-index.md)
* [DROP INDEX](/dev/reference/sql/statements/drop-index.md)
* [RENAME INDEX](/dev/reference/sql/statements/rename-index.md)
* [ADD COLUMN](/dev/reference/sql/statements/add-column.md)
* [CREATE TABLE](/dev/reference/sql/statements/create-table.md)
* [EXPLAIN](/dev/reference/sql/statements/explain.md)
197 changes: 0 additions & 197 deletions dev/reference/sql/statements/admin.md

This file was deleted.

Loading