SELECT
4 methodsPostgreSQL 支持的高级 SELECT 构造。
CREATE TABLE [IF NOT EXISTS] tbl (col type [constraints], ...)在与当前行相关的滑动行窗口上计算值,不折叠行。
Parameters
| Name | Type | Description |
|---|---|---|
| tbl | identifier | Table name. |
| type | datatype | INT, VARCHAR(n), DATETIME, DECIMAL(p,s), etc. |
| constraints | constraint | NOT NULL, DEFAULT, AUTO_INCREMENT, PRIMARY KEY. |
Returns
void
Example
mysql
CREATE TABLE users (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);ALTER TABLE tbl ADD [COLUMN] col type | DROP COLUMN col | MODIFY col type通用表表达式(CTE),命名子查询并在外层 SELECT 中引用。
Parameters
| Name | Type | Description |
|---|---|---|
| tbl | identifier | Table to alter. |
| col | identifier | Column to add, drop or modify. |
Returns
void
Example
mysql
ALTER TABLE users
ADD COLUMN last_login DATETIME NULL,
MODIFY email VARCHAR(320) NOT NULL;CREATE [UNIQUE] INDEX name ON tbl (col, ...) [USING BTREE]LATERAL 连接允许 FROM 子句中的子查询引用前面 FROM 项的列。
Parameters
| Name | Type | Description |
|---|---|---|
| name | identifier | Index name. |
| tbl | identifier | Table to index. |
| col | column-list | Indexed columns. |
Returns
void
Example
mysql
CREATE UNIQUE INDEX idx_users_email ON users (email);CONSTRAINT name PRIMARY KEY|FOREIGN KEY|UNIQUE|CHECK (cols)返回 INSERT、UPDATE 或 DELETE 影响的行,适用于读取生成的键和触发器。
Parameters
| Name | Type | Description |
|---|---|---|
| name | identifier | Optional constraint name. |
| cols | column-list | Columns the constraint applies to. |
Returns
void
Example
mysql
CONSTRAINT fk_orders_user
FOREIGN KEY (user_id) REFERENCES users(id)
ON DELETE CASCADE ON UPDATE RESTRICT