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

1
DROP TABLE table_name;

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\text {SQL} 约束用于指定表中数据的规则。

使用 CREATE TABLE\text {CREATE TABLE} 语句创建表时或使用 ALTER TABLE\text {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\text {NULL}
UNIQUE 唯一性约束 确保列中的所有值都是不同的
PRIMARY KEY 主键约束 NOTNULL\text {NOTNULL}UNIQUE\text {UNIQUE} 的组合。唯一地标识表中的每一行
FOREIGN KEY 外键约束 防止破坏表之间链接的操作
CHECK CHECK\text {CHECK} 约束 确保列中的值满足特定条件
DEFAULT 默认值 如果未指定值,则为列设置默认值
CREATE INDEX 索引 用于非常快速地从数据库中创建和检索数据

MySQL Not Null

CREATE Not Null Constraints Syntax\text {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\text {Modify Not Null Constraints Syntax}

1
2
ALTER TABLE table_name
MODIFY column_name data_type NOT NULL;

MySQL Unique

CREATE Unique Constraints Syntax\text {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\text {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\text {DROP Unique Constraints Syntax}

1
2
ALTER TABLE table_name
DROP INDEX constraint_namen;

MySQL Primary Key

主键约束唯一标识表中的每条记录。

CREATE Primary Key Constraints Syntax\text {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\text {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\text {DROP Primary Key Constraints Syntax}

1
2
ALTER TABLE table_name
DROP PRIMARY KEY;

MySQL Foreign Key

外键约束防止可能破坏表之间的链接操作。

FOREIGN KEY\text {FOREIGN KEY}a\text {a} 表中的字段(或字段的集合),引用另一个表 A\text {A} 中的 PRIMARY KEY\text {PRIMARY KEY}

  • a\text {a}:子表
  • A\text {A}:父表

CREATE Foreign Key Constraints Syntax\text {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\text {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\text {DROP Foreign Key Constraints Syntax}

1
2
ALTER TABLE child_table
DROP FOREIGN KEY fk_constraint_name;

MySQL Check

CREATE Check Constraints Syntax\text {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\text {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\text {DROP Check Constraints Syntax}

1
2
ALTER TABLE table_name
DROP CHECK constraint_name;

MySQL Default

CREATE Default Constraints Syntax\text {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\text {Modify Default Constraints Syntax}

1
2
ALTER TABLE table_name
ALTER columnX SET DEFAULT default_value;

DROP Default Constraints Syntax\text {DROP Default Constraints Syntax}

1
2
ALTER TABLE table_name
ALTER columnX DROP DEFAULT;

MySQL Create Index

索引用于更快地从数据库中检索数据。用户看不到索引,它们只是用来加速搜索/查询。

使用索引更新表比不使用索引更新表要花费更多的时间(因为索引也需要更新)。因此,只对经常搜索的列创建索引。

CREATE INDEX Syntax\text {CREATE INDEX Syntax}

1
2
CREATE INDEX index_name
ON table_name (column1, column2, ...);

CREATE UNIQUE INDEX Syntax\text {CREATE UNIQUE INDEX Syntax}

1
2
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);

DROP INDEX Syntax\text {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\text {SQL} 语句的结果集的可视化表现。视图本身不包含数据,是一种虚拟表,由一个 SQL\text {SQL} 查询定义。当从视图中选择数据时,数据库动态地执行视图定义中的 SQL\text {SQL} 查询来生成结果集。视图可以包含一个表的所有列或选定的列,也可以来自一个或多个表,其中的数据就像从单个表中检索出来一样。

CREATE VIEW Syntax\text {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\text {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\text {DROP VIEW Syntax}

1
DROP VIEW view_name;