创建数据库:
CREATE DATABASE xxx; # xxx为所要创建的数据库名字
查看已存在的数据库:
SHOW DATABASES;
选择已知存在的数据库:
USE xxx; # xxx为要选择的数据库名字
注意:
使用之后不能对其他数据库以及其他的数据中的数据表操作,只能对自身数据库操作。但可以使用 SHOW DATABASES 返回到根目录下进行对其他数据库的操作。
删除已知存在的数据库:
DROP DATABASE xxx; # xxx为要删除数据库的名字
删除不知是否存在的数据库:
DROP DATABASE IF EXISTS xxx; # xxx如果存在将删除该数据库,否则不作任何操作
退出(服务器仍然开启):
Exit
查看支持的存储引擎:
SHOW ENDINES;
或者:
SHOW VARIABLES LIKE ‘have%’;
查看默认存储引擎:
SHOW VARIABLES LIKE '%storage_engine%';
或者:
SHOW VARIABLES LIKE '%engine%';
查看MySQL帮助文档支持的目录列表:
HELP contents;
显示警告:
SHOW WARNINGS;
创建表:
CREATE TABLE xxx( # 建议xxx命名为t_xxx或者tab_xxx
字段名 数据类型,
字段名 数据类型,
.
.
.
字段名 数据类型
);
查看表的定义信息:
DESCRIBE xxx ; # xxx为已存在的表名
或者
DESC xxx; # xxx为已存在的表名
查看表的详细信息:
SHOW CREATE TABLE xxx; # xxx为已存在的表名
删除表:
DROP TABLE xxx ; # xxx为数据库已存在的表名
修改表名:
ALTER TABLE old_name RENAME new_name; # old_name为已存在的表名,new_name为新名字
在表的最后一个位置增加字段:
ALTER TABLE xxx
ADD 属性名 数据类型;
在表的第一个位置增加字段:
ALTER TABLE xxx
ADD 属性名 数据类型 FIRST;
在表的某个位置增加字段:
ALTER TABLE xxx
ADD 属性名 数据类型
AFTER 表中已存在属性名 ;
删除某个字段:
ALTER TABLE xxx
DROP 属性名;
修改某个字段数据类型:
ALTER TABLE xxx
MODIFY 属性名 修改后的数据类型;
修改某个字段的名字:
ALTER TABLE xxx
CHANGE 旧属性名 新属性名 旧数据类型;
同时修改某个字段的名字和数据类型:
ALTER TABLE xxx
CHANGE 旧属性名 新属性名 新数据类型;
修改字段的顺序到第一个:
ALTER TABLE xxx
MODIFY 属性 数据类型 FIRST;
修改字段顺序到任意位置:
ALTER TABLE xxx
MODIFY 属性1 数据类型 AFTER 属性2; # 此命令将属性1这个字段放到属性2下一个位置
完整性约束:
NOT NULL # 约束字段的值不能为空
DEFAULT 默认值 # 设置字段的默认值
NNIQUE KEY /UNIQUE # 设置字段的值是唯一
PRIMARY KEY # 约束字段为主键
AUTO_INCREMENT # 设置字段值自动增加
CONSTRAINT uk_字段名/pk_字段名/fk_字段名 UNIQUUE(字段名)/PRIMARY KEY(字段名)/FOREIGN KEY(字段名) # 给约束设置名字
# 设置外键约束
CONSTRAINT fk_字段名 FOREIGN KEY(子表中设置为外键的字段名); # fk_字段名为外键约束名
REFERENCES 父表名(父表中设置为主键的字段名)
删除主键约束:
ALTER TABLE xxx
DROP PRIMARY KEY;
添加主键约束:
ALTER TABLE xxx
ADD PRIMARY KEY(要设为主键的字段名);
创建表时创建普通索引:
INDEX/KEY 索引名(索引关联的字段名);
在已存在的表上创建普通索引:
CREATE INDEX 索引名
ON 表名(索引关联的字段名);
通过ALTER TABLE 创建普通索引:
ALTER TABLE xxx
ADD INDEX/KEY 索引名(索引关联的字段名);
创建表时创建唯一索引:
UNIQUE INDEX/KEY 索引名(索引关联的字段名);
在已存在的表上创建唯一索引:
CREATE UNIQUE INDEX 索引名
ON 表名(索引关联的字段名);
通过ALTER TABLE创建唯一索引:
ALTER TABLE xxx
ADD UNIQUE INDEX/KEY 索引名(索引关联的字段名);
删除索引:
DROP INDEX 索引名字
ON xxx; # xxx为表名
创建视图:
CREATE VIEW view_xxx
AS
SELECT 字段名1,字段名2 FROM 表名;
查看视图名:
SHOW TABLES;
查看视图详细信息:
SHOW TABLE STATUS;
查看视图定义信息:
SHOW CREATE VIEW viewname;
查看视图设计信息:
DESC viewname;
删除视图:
DROP VIEW viewname;
修改视图:
CREATE OR REPLACE VIEW view_xxx
AS
SELECT 新字段名 FROM 表名;
或者:
ALRER VIEW view_xxx
AS
SELECT 新字段名 FROM 表名;
创建触发器:
CREATE TRIGGER tri_xxx
BEFORE/AFTER 触发事件
ON table_name FOR EACH ROW 激活触发器后被执行的语句; # table_name为触发事件操作表的名字
查看触发器:
SHOW TRIGGERS;
或者:
USE information_schema;
SELECT * FROM TRIGGERS WHERE TRIGGERS_NAME = 'name' \G
删除触发器:
DROP TRIGGER tri_name;
插入一条部分数据记录:
INSERT INTO table_name(字段名1,字段名2)
VALUES(value1,value2);
插入一条完整数据记录:
INSERT INTO table_name VALUES(value1,value2);
插入多条部分数据记录:
INSERT INTO table_name(字段名1,字段名2)
VALUES(value11,value12),
(value21,value22),
......;
插入多条完整数据记录:
INSERT INTO table_name
VALUES(value11,value12),
(value21,value22),
......;
插入查询结果:
INSERT INTO table1_name(字段名11,字段名12)
SELECT (字段名21,字段名22)
FROM table2_name;
更新部分数据记录:
UPDATE table_name
SET 字段名1 = value1,
字段名2 = value2,
WHERE CONDITION;
更新全部数据记录:
UPDATE table_name
SET 字段名1 = value1,
字段名2 = value2;
删除部分数据记录:
DELETE FROM table_name
WHEN CONDITION
删除全部数据记录:
DELETE FROM table_name
简单查询所有字段数据:
SELECT * FROM table_name;
简单查询指定字段数据:
SELECT 字段名1,字段名2,字段名3 FROM table_name;
简单避免重复数据查询:
SELECT DISTINCT 字段名1,字段名2 FROM table_name;