**DATABASE**
-- 创建数据库
CREATE DATABASE db_name;
-- 删除数据库
DROP DATABASE db_name;
**TABLE**
-- 创建表
CREATE TABLE table_name(
column_name datatype,
column_name datatype,
column_name datatype
);
-- 删除表
DROP TABLE table_name;
-- 清空表
TRUNCATE TABLE table_name;
-- 修改表(基本)
-- 添加列
ALTER TABLE table_name ADD COLUMN column_name datatype; -- 列名不加``或''
-- 删除列
ALTER TABLE table_name DROP COLUMN column_name;
-- 更改列数据类型
ALTER TABLE table_name MODIFY COLUMN column_name datatype;
-- 修改表(约束 CONSTRAINT)
-- 1、CREATE TABLE时
CREATE TABLE(
-- ① AUTO_INCREMENT
column_name datatype AUTO_INCREMENT, -- AUTO_INCREMENT可以直接再后面加
-- ② NOT NULL
column_name datatype NOT NULL, -- NOT NULL可以直接在后面加
-- ③ UNIQUE
UNIQUE(column_name[,column_name,...]),
CONSTRAINT constraint_name UNIQUE (column_name[,column_name,...]),
-- ④ PRIMARY KEY ( UNIQUE and NOT NULL )
PRIMARY KEY (column_name[,column_name]),
CONSTRAINT constraint_name PRIMARY KEY (column_name),
-- ⑤ FOREIGH KEY
FOREIGH KEY (column_name) REFERENCES other_table (column_name),
CONSTRAINT constraint_name FOREIGH KEY (column_name) REFERENCE other_table (column_name),
-- ⑥ CHECK
CHECK (表达式)
CONSTRAINT constraint_name CHECK (表达式),
-- ⑦ DEFAULT
column_name datatype DEFAULT default_value
);
-- 2、ALTER TABLE时 ( ③ ④ ⑤ ⑥ 在约束后面指定列,因此不需要ALTER COLUMNS )
-- ① AUTO_INCREMENT
ALTER TABLE table_name AUTO_INCREMENT=100;
-- ③ UNIQUE
ALTER TABLE table_name ADD UNIQUE (column_name);
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column_name);
-- ④ PRIMARY KEY
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column_name);
-- ⑤ FOREIGH KEY
ALTER TABLE table_name ADD UNIQUE (column_name);
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGH KEY (column_name) REFERENCES other_table (column_name);
-- ⑥ CHECK
ALTER TABLE table_name ADD CHECK (表达式)
ALTER TABLE table_name ADD CONSTRAINT constraint_name CHECK (表达式);
-- ⑦ DEFAULT
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT value;
-- 3、删除CONSTRAINT
-- 删除约束
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
-- ③ UNIQUE
ALTER TABLE table_name DROP INDEX column_name;
-- ④ PRIMARY KEY
ALTER TABLE table_name DROP PRIMARY KEY;
-- ⑤ FOREIGH KEY
ALTER TABLE table_name DROP FOREIGH KEY column_name;
-- ⑥ CHECK
ALTER TABLE table_name DROP CHECK constraint_name;
-- ⑦ DEFAULT
ALTER TABLE table_name ALTER COLUMN column_name DROP DEFAULT;
**INDEX**
-- 创建索引
CREATE INDEX index_name ON table_name (column_name);
CREATE UNIQUE INDEX index_name ON table_name (column_name);
-- 删除索引
ALTER TABLE table_name DROP INDEX index_name;
**VIEW**
-- 创建视图(视图可以被用来查询)
CREATE VIEW view_name AS SELECT语句;
-- 删除视图
DROP VIEW view_name;
DML(数据库操纵语言)
-- SELECT TOP语句
SELECT column_name FROM table_name LIMIT value;
-- (列操作)别名
SELECT column_name AS column_alias FROM table_name AS table_alias;
-- (列操作)拼接
SELECT CONCAT(column_name1,sep,column_name2,sep...) AS new_column_name FROM table_name;
-- (行操作) JOIN 连接两个或多个表的行再进行查询
SELECT table.column,table_column FROM table1 ? JOIN table2;
/*
? JOIN:
INNER JOIN:交集
LEFT JOIN:左+左交右
RIGHT JOIN:右+右交左
FULL JOIN:并集
*/
-- (行操作) UNION 连接两个查询的结果
/*
要求,两个表有相同数量的列,且列的数据类型要相似,顺序也必须相同;
默认保留第一个表的列名;
UNION 默认去重,可以用 UNION ALL,则保留重复的值
*/
SELECT columns FROM table1
UNION (ALL)
SELECT columns FROM table2
-- 操作符
-- LIKE '' / NOT LIKE ''
_:1个字符
%:0个或多个字符
[charlist]:charlist中的任意单个字符
[^charlist] / [!charlist]:不在charlist中的任意单个字符
-- IN (,,) / NOT IN (,,)
-- BETWEEN a AND b / NOT BETWEEN a AND b