###创建数据库
CREATE { DATABASE | SCHEMA } [ IF NOT EXISTS ] db_name [ DEFAULT ] CHARACTER SET [ = ] charset_name
###删除数据库
DROP {DATABASE | SCHEMA } [ IF EXISTS ] db_name
###编码
-
显示数据库编码
SHOW CREATE { DATABASE | SCHEMA} db_name
-
修改数据库编码
ALTER { DATABASE | SCHEMA } [db_name] [DEFAULT ] CHARACTER SET [=] charset_name
-
在客户端以某种编码显示数据,并不改变数据存储的编码方式
SET NAMES charset_name
###进入(使用)某个数据库
USE db_name
###显示当前所使用的数据库
SELECT DATABASE();
###显示数据库中的表
- 显示当前数据库中的表
SHOW TABLES
- 显示某个数据库中的表
SHOW TABLES [FROM] db_name
###显示表中的所有字段
SHOW COLUMNS FROM table_name
DESCRIBE tb_name
###显示某个表中的信息(简单写法)
SELECT * FROM table_name
###删除记录
DELETE FROM table_name WHERE 条件
###添加列
- 添加单列
ALTER TABLE table_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]
注:单列可指定添加位置, FIRST 添加至 第一个
AFTER col_name 添加至 此字段后面
若不指定,则添加至 最后
- 添加多列
注:多列不可指定位置, 只能在最后
ALTER TABLE table_name ADD [COLUMN] ( column_name column_definition, column_name column_definition ... )
###删除单列
- 删除单列
ALTER TABLE tb_name DROP [COLUMN] col_name
- 删除多列
ALTER TABLE tb_name DROP [COLUMN] col_name, DROP [COLUMN] col_name ...
###添加/删除 主键约束
ALTER TABLE tb_name ADD [CONSTRAINT [symbol] PRIMARY KEY [index_type] (index_col_name, ....)
ALTER TABLE tb_anme DROP PRIMARY KEY
例如:
ALTER TABLE users ADD CONSTRAINT PK_users_id PRIMARY KEY(id);
ALTER TABLE users DROP PRIMARY KEY
###添加/删除 唯一约束
ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] UNIQUE [ INDEX | KEY ] [index_name] [index_type]
ALTER TABLE users DROP { INDEX | KEY } index_name;
例如:
ALTER TABLE users ADD UNIQUE (username)
ALTER TABLE users DROP INDEX username;
###添加/删除外键约
ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name](index_col_name, ...) reference_definition
ALTER TABLE tb_name DROP FOREIGN KEY fk_symbol
例如:user users 各为一张表
ALTER TABLE users ADD FOREIGN KEY(id) REFERENCES user(id)
ALTER TABLE users DROP FOREIGN KEY fk_symbol
###添加/删除 默认约束
ALTER TABLE tb_name ALTER[COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
例如:
ALTER TABLE users ALTER age SET DEFAULT 18
ALTER TABLE users ALTER age DROP DEFAULT
###修改列定义
ALTER TABLE tb_name MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name ]
###修改列名称
ALTER TABLE tb_name CHANGE [COLUMN] old_col_name new_col_name column_definition [ FIRST | AFTER col_name]
###修改数据表名
备注: 谨慎修改
- 一次只能修改一张数据表
ALTER TABLE old_tb_name RENAME [TO] new_tb_name
- 能同时修改多张数据表
RENAME TABLE old_tb_name TO new_tb_name [ , old_tb_name2 TO new_tb_name2]
…
###插入记录(三种)
INSERT [INTO] tb_anme[(col_name,...)] {VALUES | VALUE} ({expr|DEFAULT},...), (...),...
INSERT [INTO] tb_name SET col_name={expr | DEFAULT}, ...
INSERT [INTO] tb_name[(col_name,...)] SELECT ...
//将查询符合的记录插入到表中
###更新记录(对表的内容修改)
-
单表更新 (修改表某一行中的某个值)
UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT} [,col_name2={expr2|DEFAULT}] ... [WHERE where_condition]
注:如果where 条件,则是表的所有记录被更新 -
多表更新
UPDATE table_reference SET col_name1={expr | DEFAULT} [, col_name2={expr | DEFAULT}] ... [WHERE where_condition]
###删除记录(单表删除)
DELETE FROM tb_name [WHERE where_condition]
注:若不添加 where ,则删除表中全部记录
###查找记录
SELECT select_expr [,select_expr2 …] 只查找某一个函数或表达式
[
FROM tb_reference 查询表名
[WHERE where_condition] 查询条件
[GROUP BY {col_name | position} [ASC | DESC],…] 按某个字段进行分组,相同的只显示第一个
[HAVING where_condition] 分组时,给出显示条件
[ORDER BY {col_name | expr | position} [ ASC | DESC],…] 排序
[LIMIT {[offset,] row_count | row_count OFFSET offset} ]限制返回数量
]
###创建索引
ALTER TABLE tb_name ADD INDEX 索引名(col_name)
CREATE INDEX 索引名 ON tb_name(col_name)
###导入导出数据
导入: LOAD DATA INFILE '文件路径' INTO TABLE tb_anme
导出 :SELECT {col_name,col_name2 ...} INTO OUTFILE '文件路径' FROM tb_name
###数据的备份和恢复备份
- Linux 下
操作前请将终端cd 到备份文件所在文件夹
备份:mysqldump -u root db_name>备份文件名
,mysqldump -u root db_name db_table>备份文件名
恢复:SOURCE 路径
和mysqldump -u root db_name<备份文件名