Mysql代码指令
一.数据库
- 创建数据库
Create database 数据库名;
- 查看数据库
Show databases;
使用数据库
Use 数据库名;
- 修改数据库
Alter database 数据库名;
- 删除数据库
Drop database 数据库名;
二.表格
- 创建和查看表格
创建表格
create table 表名(
字段1 字段类型,
字段2 字段类型,
…
字段n 字段类型
);
查看表格
show tables;
desc 表格名;
- 修改数据表
(1)修改表名
alter table 原表名 rename to 新表名;
(2)修改字段
alter table 表名 change 原字段名 新字段名 新数据类型;
(3)添加字段
alter table 表名add 新字段名 新数据类型;
(4)删除字段
alter table 表名 drop字段名;
- 删除表
drop table 表名;
三.添加、删除、修改数据
- 添加插入数据
INSERT INTO 表名(字段名1,字段名2,...) VALUES (值 1,值 2,...);
- 插入多条数据
INSERT INTO 表名 [(字段名1,字段名2,...)]VALUES (值 1,值 2,…),(值 1,值 2,…),...;
- 修改数据
UPDATE 表名 SET 字段名1=值1[,字段名2 =值2,…] [WHERE 条件表达式];
- 删除数据
DELETE FROM 表名 [WHERE 条件表达式];
四.查询数据
1.SELECT语句的基本语法格式
SELECT [ALL | DISTINCT ] * | 列名1 [[AS] 别名] [,列名2,…,列名n]
FROM 表名
[WHERE条件表达式]
[GROUP BY 列名 [ASC | DESC] [HAVING 条件表达式]]
[ORDER BY 列名 [ASC | DESC] , ...]
[LIMIT [OFFSET] 记录数];
• SELECT 子句:指定查询结果集返回的列,当使用“*”时,用于显示表中所有的列;关键字DISTINCT为 可选参数,用于消除查询结果集中的重复记录。
• FROM子句:表示查询的数据源,可以是表或视图。
• WHERE子句:指定查询筛选条件。
• GROUP BY子句:指定查询的分组列名;关键字HAVING为可选参数,用于指定分组后的结果集筛选条件。
• ORDER BY子句:指定查询结果集的排序列名。
• LIMIT子句:用于限制查询结果集的行数。参数OFFSET为偏移量,当OFFSET值为0时,表示从查询结果从 第1条记录开始返回,如果OFFSET为1,表示查询结果从第2条记录开始,以此类推
查询语句的书写顺序和执行顺序
select ===> from ===> where ===> group by ===> having ===> order by ===> limit
五,存储函数,存储过程,事件
1.存储函数
CREATE FUNCTION 函数名 ([参数列表 ])
RETURNS 数据类型
[COMMENT ‘注释’]
[ [NOT] DETERMINISTIC ]
[{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }]
函数体;
参数列表:格式: 参数名 数据类型
RETURNS:指定返回值的数据类型
[NOT] DETERMINISTIC: 指明函数的确定性,当指明为DETERMINISTIC时,表示当输入 参数相同时,运行结束,函数的 输出结果也是不变的。
函数体:
BEGIN…END
必须包含RETURN语句
2.定义数据(局部变量)
DECLARE 变量名 数据类型 [ DEFAULT 初始值];
3.存储过程
CREATE PROCEDURE 存储过程名 ([参数列表 ])
[存储过程特性]
程序体;
参数列表:格式: [IN | OUT | INOUT ] 参数名 数据类型
存储过程特性: COMMENT, [NOT] DETERMINISTIC …
函数体: BEGIN…END
4.触发器
CREATE TRIGGER 触发器名
触发时间 触发事件
ON 表名 FOR EACH ROW
BEGIN
被触发后将要执行的动作
END;
触发时间:BEFORE/AFTER
触发事件:INSERT/UPDATE/DELET
5.事件
CREATE EVENT 事件名称
ON SCHEDULE 时间与频率
[ON COMPLETION [NOT] PRESERVE ]
[ENABLE | DISABLE]
[COMMENT 事件注释]
DO 程序体;
时间与频率:执行一次: AT 时间戳 [+ INTERVAL 时间间隔 时间单位]
周期性执行:EVERY 时间间隔 时间单位 [STARTS 开始时间 [+ INTERVAL 时间间隔] ]
[ENDS 结束时间 [+ INTERVAL 时间间隔] ]
六.数据库用户管理
查询主机用户(控制台输入)
use mysql;
select host,user,authentication_String from user;
1.创建用户
create user '用户名'@'登陆主机/ip' identified by '密码';
2.登录用户
mysql -u '用户名'@'登陆主机/ip'
3.修改密码
alter user ‘用户名'@'登陆主机/ip' identified by '密码';
4.删除用户
drop user '用户名'@'主机名'
七.用户权限管理
1.权限的授予
(1)权限授予
GRANT 权限类型 [(属性列表)] [,权限类型 [(属性列表)] [, …]]
ON [{TABLE | PRCEDURE | FUNCTION}]
{* | *.* | 数据库名.* | 数据库名. 表名 | 表名 | 数据库名.存储过程/函数名}
TO ’用户名’ [@’主机名’] [ , ’用户名’ [@’主机名’] [, …]]
[WITH GRANT OPTION]
* 使用ALL关键字,指定所有类型的权限
* 指定 WITH GRANT OPTION 的情形下, 允许该用户将自己所有的权限赋予其他用户
(2)权限的查看
SHOW GRANTS FOR ’用户名’ [@’主机名’];
2.权限的收回
REVOKE 权限类型 [(属性列表)] [,权限类型 [(属性列表)] [, …]]
ON [{TABLE | PRCEDURE | FUNCTION}]
{* | *.* | 数据库名.* | 数据库名. 表名 | 表名 | 数据库名.存储过程/函数名}
FROM ’用户名’ [@’主机名’] [ , ’用户名’ [@’主机名’] [, …]]
八.角色管理
创建角色 CREATE ROLE 角色名1 [, 角色名2, …];
删除角色 DROP ROLE 角色名1 [, 角色名2, …];
角色授权 GRANT 权限类型 ON 数据对象 TO ‘角色名’@’主机名’ ;
将角色指派给用户 GRANT角色名1 [, 角色名2, …] TO 用户1 [, 用户2, …] ;