MySQL二级等级考试归纳——高级指令篇(下)
来源:互联网 发布:自学编程好找工作吗 编辑:程序博客网 时间:2024/05/16 00:27
接上篇,继续来高级指令。本篇包括的有:存储过程,存储函数,访问控制与安全管理,备份与恢复,对应书上10-12章。
因为打算把指令的部分归纳出来,文字太多的如概念之类的东西写到概念篇去了,有些太复杂的东西也没写在概念篇,可以看书或者查看其它资料。
时间比较赶,写到这一篇已经是写了大半天的了,精神力有点跟不上,所以可能没前几篇认真(也没见得有多认真),见谅……
http://blog.csdn.net/ycisacat/article/details/50933836 概念篇
http://blog.csdn.net/ycisacat/article/details/50935840基础指令篇 (增删改查)
http://blog.csdn.net/ycisacat/article/details/50963111 高级指令上篇(索引,视图,触发器,事件)五,存储过程
创建存储过程(指令过于复杂有太多要说明的东西,比较难归纳,此处只写一个比较简单的例子,具体解释参考其他资料):
DELIMITER $$
CREATE PROCEDURE pro_person({IN | OUT | INOUT} var_name CHAR(20))
DETERMINISTIC
BEGIN
UPDATE tb_person SET name=var_name;
END $$
查看存储过程:
SELECT 'pro_person' FROM mysql.proc WHERE db='db_name' (AND type='...')
或
SHOW PROCEDURE STATUS;
调用存储过程:
CALL pro_person('Sam');
删除存储过程:
DROP PROCEDURE FUNCTION IF EXISTS pro_person;
六,存储函数
创建存储函数(同存储过程,也是太复杂,此处只举一个书上的例子):
DELIMITER $$
CREATE FUNCTION fn_search(var_name CHAR(10))
RETURNS CHAR(2)
DETERMINISTIC
BEGIN
DECLARE ssex CHAR(2);
SELECT sex INTO ssex FROM tb_person WHERE name=var_name;
IF ssex IS NULL THEN
RETURN(SELECT '没有该学生');
ELSE IF ssex='女‘ THEN
RETURN(SELECT '女’);
ELSE RETURN(SELECT '男');
END IF;
END IF;
END $$
查看存储函数:
SHOW FUNCTIION STATUS;
调用存储函数:
SELECT fn_search('Bob');
删除存储函数:
DROP FUNCTION IF EXISTS fn_search;
七,访问控制与安全管理
查看所有账户:
SELECT * FROM mysql.user \G
查看账户权限:
SHOW GRANTS FOR 'root'@'localhost';
创建账户:
CREATE USER 'new_user'@'localhost' IDENTIFIED BY '123',
或
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'localhost' IDENTIFIED BY '123' WITH GRANT OPTION;(授予全部权限)
'new_user'是用户名,‘localhost'是账户所在主机名,localhost为本机,不指定时用’%'代替。‘new_user'@'localhost'和’new_user'@'%'不是同一个账户
WITH GRANT OPTION指权限可转移,即把自己所拥有的权限授予其他用户的权利
修改账号名:
RENAME USER 'new_user'@'localhost' TO 'somebody'@'localhost' ;
修改用户口令:
SET PASSORD FOR 'new_user'@'localhost' ='456';
授予权限:
GRANT SELECT(name)ON db_name.tb_person TO 'new_user'@'localhost' WITH GRANT OPTION; //授予localhost上的new_user用户在db_name数据库的tb_person表中选择name字段的权限
可授予的权限见概念篇。不指定数据库、表时,用*.*代替(*为通配符)
限制权限:
授予权限中的WITH GRANT OPTION改为以下:
WITH MAX_QUERIES_PER_HOUR count //限制每小时可以查询数据库的次数
WITH MAX_UPDATES_PER_HOUR count //限制每小时可以修改数据库的次数
WITH MAX_CONNECTIONS_PER_HOUR count //限制每小时可以连接数据库的次数
WITH MAX_USER_CONNECTIONS count //限制同时连接MySQL的最大用户数
count 为数值,为0则不起作用
导入数据:
LOAD DATA [LOCAL] INFILE 'C:\file.txt'
[REPLACE|IGNORE] INTO TABLE db_name.tb_person //导入文件中有与数据库原有行相同的唯一关键字时,REPLACE替换原有行,ignore跳过
(name,birthday) //载入一个表的部分列,或文件中字段值顺序与原表中列的顺序不同
FIELDS
TERMINATED BY ','
OPTIONALLY ENCLOSED BY ' " '
ESCAPED BY '#"
LINES
STARTING BY '$' //一个数据行以$开始
TERMINATED BY '?'
IGNORE 3 LINES //忽略前三行
SET score='80' //导入数据时修改表中列的值
用mysqldump备份:
mysqldump -h localhost -u root -p123 db_name tb_person >C:\file.txt //-p和密码间不可以有空格,备份一个表
mysqldump -h localhost -u root -p123 --databases db_name >C:\file.txt //备份一个数据库
mysqldump -h localhost -u root -p123 --all-databases >C:\file.txt //备份所有数据库
mysqldump -h localhost -u root -p123 --tab =C:\file.txt //把表结构和表数据分开备份
用mysqlimport备份:
mysqlimport -u root -p123 --low-priority --replace db_name C:\file.txt
用mysqlbinlog备份:
mysqlbinlog bin_log.000001 | mysql -u root -p123
清除日志文件:
RESET MASTER; //全部删除
PURGE {MASTER | BINARY} LOGS TO 'log_name'; //purge 为部分删除
PRUGE {MASTER | BINARY} LOGS BEFORE 'date’;
最后还有一篇是PHP的~
- MySQL二级等级考试归纳——高级指令篇(下)
- MySQL二级等级考试归纳——基本指令篇
- MySQL二级等级考试归纳——高级指令(上)
- MySQL二级等级考试归纳——概念篇
- MySQL二级等级考试归纳——PHP篇
- 等级考试(四):二级C++---回首往昔考试历程
- 国家等级考试二级Visual FoxPro应试手册(一)
- 等级考试(二):二级C++---宏观把控
- 如何复习全国C++二级等级考试
- 计算机等级考试上机模拟题(二级C语言)_等级考试模拟题,计算机等级考试,计算机考试
- C++等级考试选择篇(二)
- 二级MySQL数据库程序设计考试大纲(2015年版)
- 等级考试!!!
- 计算机三级等级考试C语言初学者可以参考的文章——三级等级考试C语言自学
- C++ 高级篇(五)—— 预处理指令
- C++ 高级篇(五)—— 预处理指令
- JAVA技能等级考试(1)
- 等级考试(一):三级网络---似曾相识
- PHP 底层的运行机制与原理
- 大数据并发问题
- Mac OS X ssh设置
- 海思H.265解码库破解
- 这只猩猩很难控制 - Two star programming
- MySQL二级等级考试归纳——高级指令篇(下)
- caffe源码简单解析——Blob(1)
- Centos下安装mysql5.1.7
- ReactNative更换JSContext增加注入方法
- 【原创】k8s源码分析------kube-apiserver分析(3)
- ListView相关属性
- MiniProfiler 兼容 Entity Framework 6
- Android 三大图片缓存原理、特性对比
- Shell编程(八)---输入输出重定向、文件包含