Skip to content

Commit

Permalink
sql statements from E to R
Browse files Browse the repository at this point in the history
  • Loading branch information
CharLotteiu committed Apr 29, 2021
1 parent 7e95754 commit 5522cb6
Show file tree
Hide file tree
Showing 22 changed files with 328 additions and 261 deletions.
7 changes: 4 additions & 3 deletions sql-statements/sql-statement-execute.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ The `EXECUTE` statement provides an SQL interface to server-side prepared statem

## Synopsis

**ExecuteStmt:**

![ExecuteStmt](/media/sqlgram/ExecuteStmt.png)
```ebnf+diagram
ExecuteStmt ::=
'EXECUTE' Identifier ( 'USING' UserVariable ( ',' UserVariable )* )?
```

## Examples

Expand Down
28 changes: 17 additions & 11 deletions sql-statements/sql-statement-explain-analyze.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,23 @@ The `EXPLAIN ANALYZE` statement works similar to `EXPLAIN`, with the major diffe
## Synopsis

**ExplainSym:**

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

**ExplainStmt:**

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

**ExplainableStmt:**

![ExplainableStmt](/media/sqlgram/ExplainableStmt.png)
```ebnf+diagram
ExplainSym ::=
'EXPLAIN'
| 'DESCRIBE'
| 'DESC'
ExplainStmt ::=
ExplainSym ( TableName ColumnName? | 'ANALYZE'? ExplainableStmt | 'FOR' 'CONNECTION' NUM | 'FORMAT' '=' ( stringLit | ExplainFormatType ) ( 'FOR' 'CONNECTION' NUM | ExplainableStmt ) )
ExplainableStmt ::=
SelectStmt
| DeleteFromStmt
| UpdateStmt
| InsertIntoStmt
| ReplaceIntoStmt
| UnionStmt
```

## EXPLAIN ANALYZE output format

Expand Down
28 changes: 17 additions & 11 deletions sql-statements/sql-statement-explain.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,23 @@ TiDB supports the `EXPLAIN [options] FOR CONNECTION connection_id` statement. Ho

## Synopsis

**ExplainSym:**

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

**ExplainStmt:**

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

**ExplainableStmt:**

![ExplainableStmt](/media/sqlgram/ExplainableStmt.png)
```ebnf+diagram
ExplainSym ::=
'EXPLAIN'
| 'DESCRIBE'
| 'DESC'
ExplainStmt ::=
ExplainSym ( TableName ColumnName? | 'ANALYZE'? ExplainableStmt | 'FOR' 'CONNECTION' NUM | 'FORMAT' '=' ( stringLit | ExplainFormatType ) ( 'FOR' 'CONNECTION' NUM | ExplainableStmt ) )
ExplainableStmt ::=
SelectStmt
| DeleteFromStmt
| UpdateStmt
| InsertIntoStmt
| ReplaceIntoStmt
| UnionStmt
```

## `EXPLAIN` output format

Expand Down
17 changes: 8 additions & 9 deletions sql-statements/sql-statement-flashback-table.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,16 @@ FLASHBACK TABLE table_name [TO other_table_name]

## Synopsis

**FlashbackTableStmt:**
```ebnf+diagram
FlashbackTableStmt ::=
'FLASHBACK' 'TABLE' TableName FlashbackToNewName
![FlashbackTableStmt](/media/sqlgram/FlashbackTableStmt.png)
TableName ::=
Identifier ( '.' Identifier )?
**TableName:**

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

**FlashbackToNewName:**

![FlashbackToNewName](/media/sqlgram/FlashbackToNewName.png)
FlashbackToNewName ::=
( 'TO' Identifier )?
```

## Notes

Expand Down
26 changes: 15 additions & 11 deletions sql-statements/sql-statement-flush-privileges.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,21 @@ This statement triggers TiDB to reload the in-memory copy of privileges from the

## Synopsis

**FlushStmt:**

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

**NoWriteToBinLogAliasOpt:**

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

**FlushOption:**

![FlushOption](/media/sqlgram/FlushOption.png)
```ebnf+diagram
FlushStmt ::=
'FLUSH' NoWriteToBinLogAliasOpt FlushOption
NoWriteToBinLogAliasOpt ::=
( 'NO_WRITE_TO_BINLOG' | 'LOCAL' )?
FlushOption ::=
'PRIVILEGES'
| 'STATUS'
| 'TIDB' 'PLUGINS' PluginNameList
| 'HOSTS'
| LogTypeOpt 'LOGS'
| TableOrTables TableNameListOpt WithReadLockOpt
```

## Examples

Expand Down
26 changes: 15 additions & 11 deletions sql-statements/sql-statement-flush-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,21 @@ This statement is included for compatibility with MySQL. It has no effect on TiD

## Synopsis

**FlushStmt:**

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

**NoWriteToBinLogAliasOpt:**

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

**FlushOption:**

![FlushOption](/media/sqlgram/FlushOption.png)
```ebnf+diagram
FlushStmt ::=
'FLUSH' NoWriteToBinLogAliasOpt FlushOption
NoWriteToBinLogAliasOpt ::=
( 'NO_WRITE_TO_BINLOG' | 'LOCAL' )?
FlushOption ::=
'PRIVILEGES'
| 'STATUS'
| 'TIDB' 'PLUGINS' PluginNameList
| 'HOSTS'
| LogTypeOpt 'LOGS'
| TableOrTables TableNameListOpt WithReadLockOpt
```

## Examples

Expand Down
43 changes: 22 additions & 21 deletions sql-statements/sql-statement-flush-tables.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,33 +10,34 @@ This statement is included for compatibility with MySQL. It has no effective usa

## Synopsis

**FlushStmt:**
```ebnf+diagram
FlushStmt ::=
'FLUSH' NoWriteToBinLogAliasOpt FlushOption
![FlushStmt](/media/sqlgram/FlushStmt.png)
NoWriteToBinLogAliasOpt ::=
( 'NO_WRITE_TO_BINLOG' | 'LOCAL' )?
**NoWriteToBinLogAliasOpt:**
FlushOption ::=
'PRIVILEGES'
| 'STATUS'
| 'TIDB' 'PLUGINS' PluginNameList
| 'HOSTS'
| LogTypeOpt 'LOGS'
| TableOrTables TableNameListOpt WithReadLockOpt
![NoWriteToBinLogAliasOpt](/media/sqlgram/NoWriteToBinLogAliasOpt.png)
LogTypeOpt ::=
( 'BINARY' | 'ENGINE' | 'ERROR' | 'GENERAL' | 'SLOW' )?
**FlushOption:**
TableOrTables ::=
'TABLE'
| 'TABLES'
![FlushOption](/media/sqlgram/FlushOption.png)
TableNameListOpt ::=
TableNameList?
**LogTypeOpt:**

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

**TableOrTables:**

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

**TableNameListOpt:**

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

**WithReadLockOpt:**

![WithReadLockOpt](/media/sqlgram/WithReadLockOpt.png)
WithReadLockOpt ::=
( 'WITH' 'READ' 'LOCK' )?
```

## Examples

Expand Down
73 changes: 46 additions & 27 deletions sql-statements/sql-statement-grant-privileges.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,33 +10,52 @@ This statement allocates privileges to a pre-existing user in TiDB. The privileg

## Synopsis

**GrantStmt:**

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

**PrivElemList:**

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

**PrivElem:**

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

**PrivType:**

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

**ObjectType:**

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

**PrivLevel:**

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

**UserSpecList:**

![UserSpecList](/media/sqlgram/UserSpecList.png)
```ebnf+diagram
GrantStmt ::=
'GRANT' PrivElemList 'ON' ObjectType PrivLevel 'TO' UserSpecList RequireClauseOpt WithGrantOptionOpt
PrivElemList ::=
PrivElem ( ',' PrivElem )*
PrivElem ::=
PrivType ( '(' ColumnNameList ')' )?
PrivType ::=
'ALL' 'PRIVILEGES'?
| 'ALTER' 'ROUTINE'?
| 'CREATE' ( 'USER' | 'TEMPORARY' 'TABLES' | 'VIEW' | 'ROLE' | 'ROUTINE' )?
| 'TRIGGER'
| 'DELETE'
| 'DROP' 'ROLE'?
| 'PROCESS'
| 'EXECUTE'
| 'INDEX'
| 'INSERT'
| 'SELECT'
| 'SUPER'
| 'SHOW' ( 'DATABASES' | 'VIEW' )
| 'UPDATE'
| 'GRANT' 'OPTION'
| 'REFERENCES'
| 'REPLICATION' ( 'SLAVE' | 'CLIENT' )
| 'USAGE'
| 'RELOAD'
| 'FILE'
| 'CONFIG'
| 'LOCK' 'TABLES'
| 'EVENT'
| 'SHUTDOWN'
ObjectType ::=
'TABLE'?
PrivLevel ::=
'*' ( '.' '*' )?
| Identifier ( '.' ( '*' | Identifier ) )?
UserSpecList ::=
UserSpec ( ',' UserSpec )*
```

## Examples

Expand Down
17 changes: 8 additions & 9 deletions sql-statements/sql-statement-grant-role.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,16 @@ Assigns a previously created role to an existing user. The user can use then use

## Synopsis

**GrantRoleStmt:**
```ebnf+diagram
GrantRoleStmt ::=
'GRANT' RolenameList 'TO' UsernameList
![GrantRoleStmt](/media/sqlgram/GrantRoleStmt.png)
RolenameList ::=
Rolename ( ',' Rolename )*
**RolenameList:**

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

**UsernameList:**

![UsernameList](/media/sqlgram/UsernameList.png)
UsernameList ::=
Username ( ',' Username )*
```

## Examples

Expand Down
Loading

0 comments on commit 5522cb6

Please sign in to comment.