操作实体(库、表的结构):

查看所有数据库:

SHOW DATABASES;

创建数据库:

CREATE DATABASE 库名 CHARSET=UTF8;

删除数据库:

DROP DATABASE 库名;

使用数据库:

USE 库名;

查看所有表:

SHOW TABLES;

创建表:

CREATE TABLE 表名(id INT,name CHAR(32),age INT,gender CHAR(4)...)CHARSET=UTF8;

删除表:

DROP TABLE 表名;

查看表结构:

DESC 表名;

修改表的名字:

ALTER TABLE 当前表名 RENAME 新表名;

添加字段:

ALTER TABLE 表名 ADD COLUMN 字段名 字段类型;

删除字段:

ALTER TABLE 表名 DROP COLUMN 字段名;

修改字段名称

ALTER TABLE 表名 CHANGE COLUMN 当前字段名 新字段名 当前字段类型;

修改字段名称加类型:

ALTER TABLE 表名 CHANGE COLUMN 当前字段名 新字段名 新字段类型;

修改字段类型:

ALTER TABLE 表名 MODIFY COLUMN 字段 新字段类型;

注:有多少行数据就有多少行被影响。

操作数据:

增:

INSERT INTO 表名(字段1,字段2,...) VALUE (值1,值2,...);

删:

DELETE FROM 表名 WHERE 字段1=值1;

改:

UPDATE 表名 SET 字段1=值1 WHERE 字段2=值2;

查:

SELECT 字段名或* FROM 表名 WHERE 字段=值;

 

主键:

添加主键:

ALTER TABLE 表名 ADD PRIMARY KEY(字段);
	ALTER TABLE 表名 ADD PRIMARY KEY AUTO_INCREMENT(字段); 
		--版本问题 这样写不报错也不生效,主键添加成功,自增属性未添加上
ALTER TABLE 表名 MODIFY 字段 INT AUTO_INCREMENT PRIMARY KEY; 
		--5.7版本要加自增用modify关键字

删除主键(不用指定字段):

ALTER TABLE 表名 DROP PRIMARY KEY;

 

外键:

建表时添加外键:

CREATE TABLE 中间表(
  	filed INT PRIMARY KEY AUTO_INCREMENT,
  	外键字段1 INT,
  	外键字段2 INT, 
  	FOREIGN KEY(外键字段1) REFERENCES 外表1(id),
  	FOREIGN KEY(外键字段2) REFERENCES 外表2(id)
);

建表时没有加外键 后面修改:

ALTER TABLE 表名
	ADD [CONSTRAINT 外键名]   #可以不给外键名
	FOREIGN KEY(外键字段) REFERENCES 关联表(关联字段名);

删除外键:

ALTER TABLE 表名 DROP FOREIGN KEY 外键名;

查看主键外键等建表时的信息(查看外键名):

SHOW CREATE TABLE 表名 \G;

 

关联查询:

内连接查询:

SELECT * FROM 表名1 INNER JOIN 表名2 ON 条件;

 

左表查询(左关联查询):

SELECT * FROM 表名1 LEFT JOIN 表名2 ON 条件;

 

右表查询(右关联查询);

SELECT * FROM 表名1 RIGHT JOIN 表名2 ON 条件

注:在关联查询中,只有两个表关联查询时必须用ON,两个以上表可以用WHERE条件

 

索引:

创建索引

普通索引:
			ALTER TABLE 表名 ADD INDEX(字段);
	唯一索引:
			ALTER TABLE 表名 ADD UNIQUE(字段);
	主键索引:
			ALTER TABLE 表名 ADD PRIMARY KEY(id);
	多列索引:
			ALTER TABLE 表名 ADD INDEX(字段1,字段2,...)

删除索引:

DROP INDEX 字段 ON 表名;

删除复合索引,需要删除创建索引时候的第一个字段:

DROP INDEX 字段 ON 字段1;

查看索引:

SHOW INDEX FROM 表名;

 

视图:

创建视图:

CREATE VIEW 视图名 AS (SELECT 字段1,字段2,字段3... FROM 表名);

查看视图:

SHOW TABLE STATUS WHERE COMMENT = "VIEW"\G;

使用视图:

SELECT * FROM 视图名;

删除视图:

DROP VIEW 视图名;

 

触发器:

创建触发器:

1、修改mysql的语法结束符
			DELIMITER ||
	2、设置触发器
			CREATE TRIGGER 触发器名 AFTER INSERT ON 表名 FOR EACH ROW
			BEGIN
 			INSERT INTO course(字段1) VALUE ("值1");
			END ||
	3、将mysql的语法结束符修改回来
			DELIMITER ;
	4、触发触发器
			INSERT INTO 表名 (字段1) VALUE ("值1");

查看触发器:

SELECT * FROM INFORMATION_SCHEMA_TRIGGERS \G;

删除触发器:

DROP TRIGGER 触发器名;

 

用户:

修改密码:

SET PASSWORD FOR 用户@"主机"=PASSWORD("新密码");

查看用户状态:

先使用mysql库:use mysql
		再SELECT user,host,authentication_string FROM user;

创建用户:

CREATE USER 用户@"主机";

注:主机地址写%.%.%.%,则允许全网段登录

创建用户并且设置密码:

CREATE USER 用户@"主机" IDENTIFIED BY "密码";

删除用户:

DROP USER 用户@"主机";

 

授权:

常规权限 : select查询 insert插入 update更新 delete删除 create创建

对指定用户的指定IP登录授权操作指定的数据库的表:

GRANT command ON database.table TO user@host;

授权指定用户指定IP登录拥有指定库指定标的指定字段的指定操作:

GRANT command(field) ON database.table TO user@host;