全国MySql二级考试 复习笔记(3月30日考后体验更新)
2019暑假更新:这场考试闭上眼睛就通过了,除了选择题有点需要背一背,感觉其他不怎么难的
2019年3月30号下午考的试,题目和题库非常接近,也遇到了原题,考试除了选择题感觉良好,毕竟就是复制粘贴就能拿很多分的考试
考场环境介绍
环境是win7+Wamp server
而不是想象中的linux+mysql
,mysql可以直接从考试软件中打开,此外可以访问http://localhost:8888/phpmyadmin
进行图形化处理(具体端口可以看第三题php题的地址),这就很有意思了,数据如果不会可以用GUI啊,还可以检查自己做的题目是否正确,是否添加进数据创建了索引啊视图啊之类的,所以操作题是相当简单的(比access要简单吧)
操作题解题技巧
- 考选择题记得用草稿纸抄一下题目上的
sql语句
避免操作题忘记语法, - 如果真的还是忘了,记得用
mysql help
命令
具体规则如下:
如果我要搜索
创建索引
的语法,在mysql下就输入help
+搜索内容
mysql> help CREATE index;
然后就会出现语法与详细解释了,很方便,其他查找类似,语句不对下面会给类似提示
- 或者可以到phpmyadmin里手动生成再点击sql语句,复制编辑粘贴就能获得答案了。
- 还有就是一旦出错语句是不能执行会报错的,如果分行执行,就可以方便我们定位错误检查错误,
- 可能会遇到保存sql到txt里面,记得一定先打开记事本再做再保存,一定要选择utf-8编码格式,ansi怕对中文支持不好丢分(如果先创建记事本,就不能选择编码格式了!)
这是我的一些小小建议,祝大家都能取得好成绩
操作题因为本地题库mysql根本无法运行,只能手打记事本对照答案
做了几套题发现有些规律,题库总是会考察几类东西
所以做一下笔记,顺带复习一下sql
重点复习对象
- 视图
- 事件
- 触发器
- 储存过程
- 储存函数
- 用户的创建与权限
- 利用MySql进行备份和恢复
- PHP与MySql面向过程交互
符号含义
[]
表示可选 |
表示多选一
视图
视图就是临时按照自己要求制作的表,方便下次直接引用
创建视图
CREATE [OR REPLACE]
VIEW view_name[(column_list)]
AS SELECT_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
说明:
or replace
表示可选替换同名视图
column_list
表示替换视图内的对应列名称
with check option
用于可更新视图上的修改,cascaded
为默认
表示更改会对仍需符合 select_statement
的条件,local
则只对定义视图进行检查
select_statement
本身也存在一些限制:
- 不能包含含有from的子查询
- 用户除了create view权限外还需要有select_statement内部的相关权限
- 不能引用系统变量或用户变量
- 不能引用预处理语句参数
- 引用的表或视图必须存在
- 若select语句引用的不是当前数据库的基础表或源视图,需要加数据库前缀
- 在由SELECT语句构造的视图定义中,允许使用ORDER BY 子句。但是,如果从特定视BY语句,则视图定义中的ORDER BY子句将被忽略
- 对于SELECT语句中的其他选项或子句,若所创建的视图中也包含了这些选项,则语句执行效果未定义。
例如,如果在视图定义中包含了LIMIT子句,而SELECT语句也使用了自己的LIMIT子句那么MySQL对使用哪-个LIMT语句未做定义。
修改视图
ALTER VIEW view_name[(column_list)]
AS SELECT_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
就是重新写一遍
删除视图
DROP VIEW [IF EXISTS]
view_name[,view_name]
事件
可以理解为mysql计划任务
,根据周期来执行一段sql语句,可精确到每一秒执行一个任务,执行事件前事件调度器
必须开启,其默认是关闭的
输入SET GLOBAL event_scheduler = ON;
执行即可
创建事件
CREATE
[DEFINER = { user | CURRENT_USER }]
EVENT
[IF NOT EXISTS]
event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO event_body;
schedule:
AT timestamp [+ INTERVAL interval] ...
| EVERY interval
[STARTS timestamp [+ INTERVAL interval] ...]
[EN