MySQL Database
MySQL Create DB
1
| CREATE DATABASE databasename;
|
MySQL Drop DB
1
| DROP DATABASE databasename;
|
MySQL Create Table
1 2 3 4 5 6
| CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, .... );
|
MySQL Drop Table
MySQL Alter Table
ADD Column
1 2
| ALTER TABLE table_name ADD column_name datatype;
|
ADD Column
1 2
| ALTER TABLE table_name DROP COLUMN column_name;
|
MODIFY COLUMN
1 2
| ALTER TABLE table_name MODIFY COLUMN column_name datatype;
|
MySQL Constraints
SQL 约束用于指定表中数据的规则。
使用 CREATE TABLE 语句创建表时或使用 ALTER TABLE 语句创建表后指定约束。
1 2 3 4 5 6
| CREATE TABLE table_name ( column1 datatype constraint, column2 datatype constraint, column3 datatype constraint, .... );
|
约束用于限制进入表中的数据,确保数据的准确性和可靠性。
约束可以是列级别的,也可以是表级别的。列级约束应用于列,表级约束应用于整个表。
Constraint |
约束 |
含义 |
NOT NULL |
非空约束 |
确保列不能有 NULL 值 |
UNIQUE |
唯一性约束 |
确保列中的所有值都是不同的 |
PRIMARY KEY |
主键约束 |
NOTNULL 和 UNIQUE 的组合。唯一地标识表中的每一行 |
FOREIGN KEY |
外键约束 |
防止破坏表之间链接的操作 |
CHECK |
CHECK 约束 |
确保列中的值满足特定条件 |
DEFAULT |
默认值 |
如果未指定值,则为列设置默认值 |
CREATE INDEX |
索引 |
用于非常快速地从数据库中创建和检索数据 |
MySQL Not Null
CREATE Not Null Constraints Syntax:
1 2 3 4 5
| CREATE TABLE table_name ( column_name1 data_type NOT NULL, column_name2 data_type, ... );
|
Modify Not Null Constraints Syntax:
1 2
| ALTER TABLE table_name MODIFY column_name data_type NOT NULL;
|
MySQL Unique
CREATE Unique Constraints Syntax:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| CREATE TABLE table_name ( column_name1 data_type UNIQUE, column_name2 data_type, ... );
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, ... UNIQUE (column_name1, column_name2, ...) );
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, ... CONSTRAINT constraint_name UNIQUE (column_name1, column_name2, ...) );
|
Modify Unique Constraints Syntax:
1 2 3 4 5 6 7 8
| ALTER TABLE table_name ADD UNIQUE (column_name);
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column_name);
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column_name1, column_name2, ...);
|
DROP Unique Constraints Syntax:
1 2
| ALTER TABLE table_name DROP INDEX constraint_namen;
|
MySQL Primary Key
主键约束唯一标识表中的每条记录。
CREATE Primary Key Constraints Syntax:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| CREATE TABLE table_name ( column_name1 data_type PRIMARY KEY, column_name2 data_type, ... );
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, ... PRIMARY KEY (column_name1, column_name2, ...) );
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, ... CONSTRAINT constraint_name PRIMARY KEY (column_name1, column_name2, ...) );
|
Modify Primary Key Constraints Syntax:
1 2 3 4 5
| ALTER TABLE table_name ADD PRIMARY KEY (column_name1, column_name2, ...);
ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY column_name1, column_name2, ...);
|
DROP Primary Key Constraints Syntax:
1 2
| ALTER TABLE table_name DROP PRIMARY KEY;
|
MySQL Foreign Key
外键约束防止可能破坏表之间的链接操作。
FOREIGN KEY 是 a 表中的字段(或字段的集合),引用另一个表 A 中的 PRIMARY KEY。
- a:子表
- A:父表
CREATE Foreign Key Constraints Syntax:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| CREATE TABLE child_table ( column1 datatype, column2 datatype, ... FOREIGN KEY (column1, column2, ..., columnN) REFERENCES parent_table (parent_column1, parent_column2, ..., parent_columnN) [ON DELETE reference_option] [ON UPDATE reference_option] );
CREATE TABLE child_table ( column1 datatype, column2 datatype, ... CONSTRAINT fk_constraint_name FOREIGN KEY (column1, column2, ..., columnN) REFERENCES parent_table (parent_column1, parent_column2, ..., parent_columnN) [ON DELETE reference_option] [ON UPDATE reference_option] );
|
Modify Foreign Key Constraints Syntax:
1 2 3 4 5 6 7 8 9 10 11 12
| ALTER TABLE child_table ADD FOREIGN KEY (child_column1, child_column2, ..., child_columnN) REFERENCES parent_table (parent_column1, parent_column2, ..., parent_columnN) [ON DELETE action] [ON UPDATE action];
ALTER TABLE child_table ADD CONSTRAINT fk_constraint_name FOREIGN KEY (child_column1, child_column2, ..., child_columnN) REFERENCES parent_table (parent_column1, parent_column2, ..., parent_columnN) [ON DELETE action] [ON UPDATE action];
|
DROP Foreign Key Constraints Syntax:
1 2
| ALTER TABLE child_table DROP FOREIGN KEY fk_constraint_name;
|
MySQL Check
CREATE Check Constraints Syntax:
1 2 3 4 5 6 7 8 9 10 11 12 13
| CREATE TABLE table_name ( column_name1 data_type CHECK (condition), column_name2 data_type, ... );
CREATE TABLE table_name ( column1 datatype, column2 datatype, ... columnN datatype, CONSTRAINT constraint_name CHECK (condition) );
|
Modify Check Constraints Syntax:
1 2 3 4 5
| ALTER TABLE table_name ADD CHECK (condition);
ALTER TABLE table_name ADD CONSTRAINT constraint_name CHECK (condition);
|
DROP Check Constraints Syntax:
1 2
| ALTER TABLE table_name DROP CHECK constraint_name;
|
MySQL Default
CREATE Default Constraints Syntax:
1 2 3 4 5 6
| CREATE TABLE table_name ( column1 datatype DEFAULT default_value, column2 datatype, ... columnN datatype );
|
Modify Default Constraints Syntax:
1 2
| ALTER TABLE table_name ALTER columnX SET DEFAULT default_value;
|
DROP Default Constraints Syntax:
1 2
| ALTER TABLE table_name ALTER columnX DROP DEFAULT;
|
MySQL Create Index
索引用于更快地从数据库中检索数据。用户看不到索引,它们只是用来加速搜索/查询。
使用索引更新表比不使用索引更新表要花费更多的时间(因为索引也需要更新)。因此,只对经常搜索的列创建索引。
CREATE INDEX Syntax:
1 2
| CREATE INDEX index_name ON table_name (column1, column2, ...);
|
CREATE UNIQUE INDEX Syntax:
1 2
| CREATE UNIQUE INDEX index_name ON table_name (column1, column2, ...);
|
DROP INDEX Syntax:
1 2
| ALTER TABLE table_name DROP INDEX index_name;
|
MySQL Auto Increment
AUTO _ INCREMENT
关键字来执行自动增量特性。
MySQL Dates
数据类型 |
格式 |
DATE |
YYYY-MM-DD |
DATETIME |
YYYY-MM-DD HH:MI:SS |
TIMESTAMP |
YYYY-MM-DD HH: MI: SS |
YEAR |
YYYY or YY |
MySQL Views
视图:基于 SQL 语句的结果集的可视化表现。视图本身不包含数据,是一种虚拟表,由一个 SQL 查询定义。当从视图中选择数据时,数据库动态地执行视图定义中的 SQL 查询来生成结果集。视图可以包含一个表的所有列或选定的列,也可以来自一个或多个表,其中的数据就像从单个表中检索出来一样。
CREATE VIEW Syntax:
1 2 3 4
| CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
|
CREATE OR REPLACE VIEW Syntax:
1 2 3 4
| CREATE OR REPLACE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
|
DROP VIEW Syntax: