大家好,我是 JiekeXu,江湖人称“强哥”,青学会 MOP 技术社区主席,荣获 Oracle ACE Pro 称号,墨天轮 MVP,墨天轮年度“墨力之星”,拥有 Oracle OCP/OCM 认证,MySQL 5.7/8.0 OCP 认证以及 PCA、PCTA、OBCA、OGCA、KCA、KCP、KCSM 等众多国产数据库认证证书,今天和大家一起看看 MySQL 8.0 OCP 1z0-909 开发考试 8 小时零基础速通指南!欢迎关注我的微信公众号“JiekeXu DBA之路”,然后点击右上方三个点“设为星标”置顶,更多干货文章才能第一时间推送,谢谢!

前 言
四月份的 MySQL 30 周年庆活动,领了两张考试券一直没有使用,近日工作也不用怎么加班,也没更新公众号,难得有时间;也是想着前面有大佬考了两次 909 才通过,说是比较难,那我也就想试一试,看看有多难,故有了本次考试经历。如果还有考券或者能注册领到考券的朋友可以看一下,没有考券的也没关系,上周 Oracle 官方又发布了一个新的阶梯性的挑战活动,详情可见我上一篇《Oracle 21 个认证又免费薅了,快来瞧瞧羊毛长啥样》 ,通过完成课程和考试就可获得一张新的考试券,就可以考 OCI、AI、多云、数据 四大类别的 21 个认证证书了,原先的 AI Vector 向量 1Z0-184-25 和 APEX 1Z0-771 以及 1Z0-915-1: MySQL HeatWave Implementation Associate - Rel1 考试也可以看完对应的课程白嫖了,备考攻略可看下面文章。
《1Z0-184-25: Oracle AI Vector Search 认证考试零基础指南》
《1Z0-184-25: Oracle AI Vector Search 认证考试零基础指南(二)》
《1Z0-771: Oracle APEX 开发认证考试白嫖宝典》


考试学习课程
今天来说说如何获得一个 MySQL 8.0 Database Developer Professional 认证证书,课程地址如下,使用 Oracle 账号登录。
https://mylearn.oracle.com/ou/learning-path/become-a-mysql-80-database-developer-professional/82110
1Z0-909: MySQL 8.0 Database Developer 考试也是和 MySQL OCP 一样在线考试,之前领了考券的朋友也可以继续考 909,90 分钟时间内答对 65 道选择题,62% 及格即可。

通过上面页面登录自己的 Oracle 账号,点击 Register Now 注册。

预约考试
点击右上角 Schedule your exam 进行考试预约,如果没有考券就会显示购买(自行想办法注册国外账号去领取考券吧)。下面来看看有了考券如何预约考试。

选择考试时间,我这里选择新加坡时间(避免选择北京上海时间怕可能被踢出考场),和北京时间没有区别,然后选择 7 月 5 日早上 10 点 15 分,本周最后一个可以考试的时间点了(每周周日不能考试)。

接着选择可用的考试券,这里还是之前 4 月份领取的 MySQL 30 周年庆活动考券,可以继续考试 909,然后点击保存继续【Save and Continue】。

接下来填写电话号码,直接填写 11 位号码就行不需要 +86,也是为了防止判断出是国内考生被踢出考场。自动带出姓名拼音,不是的话,早点去 CertView 修改,避免证书上出现昵称或者中文乱码不显示。然后点击保存继续【Save and Continue】。

接下来勾选【I’ve completed the system Readiness Check and ready to schedule the exam】,然后点击保存继续【Save and Continue】。

接下来就是 Terms and Conditions 拉到最后,勾选【Yes, I agree to the terms and conditions】
点击【Schedule your exam】完成考试预约。

https://mylearn.oracle.com/ou/exam/mysql-80-database-developer-1z0-909/149398/110626/170352
然后就回到了约考界面,可以看到考试倒计时或者约考成功的邮件,均可以证明已经预约好了考试。

等待倒计时结束后就可以开始正式考试了,所以需要提前配置好考试环境,下载考试插件,摄像头,音频等权限放开。

示例数据库
之前有朋友找我咨询学习课程中的world、sakila、employee database 等示例数据库,今天无意中发现原来有一部分在这里可以下载。Airportdb 数据库比较大 625M,也不怎么使用,就不用下载了。
https://dev.mysql.com/doc/index-other.html
因为 employee 数据库在 Github 国内无法访问,故我这里已经下载了,有需要的可自取:
通过网盘分享的文件:MySQL 示例数据库
链接: https://pan.baidu.com/s/1JZ-4Bqqqy2DH9Y0QBI06oQ?pwd=p72v 提取码: p72v


转发送 MySQL OCP 908 真题活动
转发本文微信文章 MySQL 8.0 OCP 1z0-909 开发考试 8 小时零基础速通指南 到朋友圈 24 小时以上不分组,可以加我微信【JiekeXu_DBA】领取 MySQL OCP 908 考试真题,因官方活动本月底结束,那么转发活动也仅限本月有效!908 考试具体可看下面这篇文章:
MySQL 8.0 OCP 1Z0-908 考试解析指南(三)终结篇
课后习题
(1)Examine this statement,which executes successfully:
CREATE PROCEDURE getTotalSales(p_id, INT, OUT p_total INT)
SELECT SUM(amount) FROM orders WHERE emp_id=p_id INTO p_total;
Which statement invokes the stored routine? 哪条语句调用了存储过程?
A SELECT getTotalSales(10,@TOTAL);
B DO getTotalSales(10,@TOTAL);
C SET @TOTAL = getTotalSales(10,@TOTAL);
D CALL getTotalSales(10,@TOTAL);
E SET @ID=10; EXECUTE getTotalSales USING @ID,@TOTAL
解析:使用 CALL 语句调用先前使用 CREATE PROCEDURE 定义的存储过程。不带参数的存储过程可以不使用括号调用。也就是说,CALL p() 和 CALL p 是等价的。https://dev.mysql.com/doc/refman/8.0/en/call.html
(2)You want to retrieve the data of all customers having the last name O’ Hara with no first name.
Which two SELECT statements meet your requirement? 你想要检索所有姓氏为 O’ Hara 且没有名字的客户的数据。哪两个SELECT语句能满足你的要求?
A、SELECT * FROM cust WHERE last_name="O"’"Hara" AND first_name<=> NULL
B、SELECT * FROM cust WHERE last_name="O"’"Hara" AND first_name IS NULL
C、SELECT * FROM cust WHERE last_name=’O\'Hara' AND first_name = NULL
D、SELECT * FROM cust WHERE last_name=’O\'Hara' AND first_name <=> NULL
E、SELECT * FROM cust WHERE last_name=’O\'Hara' AND first_name IS NULL
F、SELECT * FROM cust WHERE last_name=’O’ ’Hara' AND first_name = NULL
解析:如果字符串内包含单引号(如 O’Hara ),需要通过双写单引号( ‘’ )或者斜杠()转义。在 SQL 中,判断 NULL 值需使用 IS NULL 或 安全等于运算符(<=>),不能用 =。故此题选择 D E。
(3)Examine this bar graph based on columns from country table:

Which two statements generate this bar graph?
A、SELECT Continent,REPEAT('#',COUNT(*)) AS Countries FROM country Group By Continent;
B、SELECT Continent,RPAD(' ',COUNT(*),'#') AS Countries FROM country Group By Continent;
C、SELECT Continent,GROUP_CONCAT('#') AS Countries FROM country Group By Continent;
D、SELECT Continent,SUBSTR('#',1,COUNT(*)) AS 'Countries' FROM country Group By Continent;
E、SELECT Continent,RIGHT ('#',COUNT(*)) AS Countries FROM country Group By Continent;

解析:REPEAT(str,count) 返回一个字符串,该字符串由重复了无数次的字符串 str 组成。如果 count 小于 1,则返回空字符串。如果 str 或 count 为空,则返回 NULL。https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_repeat
RPAD(str,len,padstr) 返回字符串 str,用字符串 padstr 右填充,长度为 len 字符。如果 str 长度大于 len,返回值将缩短为 len 字符。如果 str、padstr 或 len 为空,函数将返回 NULL。https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_rpad
(4)Examine this statement and output:
mysql> SELECT SUM(Population < 5000), SUM(Population < 10000), SUM(Population < 20000) FROM city\G
*************************** 1. row ***************************
SUM(Population < 5000): 30
SUM(Population < 10000): 42
SUM(Population < 20000): 54
Examine this statement,which executes successfully:
CREATE VIEW city_view AS SELECT * FROM city WHERE Population < 10000 WITH CHECK OPTION;
Which three statements can execute independently without error?
A、UPDATE city_views SET Population = Population + 5000
B、UPDATE city_views SET Population = Population - 5000 WHERE Population > 5000
C、UPDATE city_views sET Population=Population * 2
D、UPDATE city_views sET Population=Population / 2
E、INSERT INTO city_views SELECT * FROM city
F、INSERT INTO city_views SELECT * FROM city WHERE Population >= 10000
G、DELETE FROM city_views WHERE Population < 20000
解析:核心规则:WITH CHECK OPTION 的限制,通过视图修改数据时(UPDATE/INSERT),结果必须仍满足 Population < 10000,否则会报错。DELETE 操作不受 WITH CHECK OPTION 限制(只需删除视图中已存在的行,即原表中 Population < 10000 的行)。
(5)Examine these statements issued from sessions T1 and T2,and their opuput:

What is the isolation level of session T1?
A、Read uncommitted
B、Read committed
C、Repeatable read
D、Serializable
解析:会话 T1 开启了一个事务(START TRANSACTION;)。会话 T2 向 tab 表插入了一条新行,并且因为 autocommit = 1(意味着每条语句都作为一个独立事务,执行后自动提交 ),这条插入操作已提交。当会话 T1 再次执行 SELECT * FROM tab 查询时,它仍然只能看到最初的那一行数据,看不到会话 T2 插入的新行。
隔离级别分析
• 读未提交(Read uncommitted):允许一个事务看到其他事务未提交的更改。但这里 T2 的更改已经提交了,T1 却没看到,所以不是该级别。
• 读已提交(Read committed):一个事务只能看到其他事务已提交的更改。但实际情况是,T2 提交了更改后,T1 再次查询仍看不到,不符合该级别表现。
• 可重复读(Repeatable read):确保在一个事务内,对于同一查询,无论其他事务(即便已提交)如何修改数据,事务看到的结果集始终保持一致。这与我们观察到的行为吻合,T1 开启事务读数据后,再次读时,即便 T2 提交了新数据,T1 看到的还是最初的结果。
• 串行化(Serializable):这是最高级别的隔离,保证并发事务如同串行执行。虽然它也能实现可重复读效果,但当前场景用 “可重复读” 就能解释,串行化相对更严格,不是最贴合的。

课后测试题
https://mylearn.oracle.com/ou/course/practice-exam-1z0-909/123083/191377






















考试参考题

更多参考题请查看微信文章 MySQL 8.0 OCP 1z0-909 开发考试 8 小时零基础速通指南 。
考试参考题总共 131 道题,几乎都有解析,直接看题库,零基础的伙伴大约 8 小时就能搞定,如果想学习的那另说,80 小时都困难,仅考证的话足以,考试参考题准确率和正确率都很高,达到 85% 以上,新题不多,和 MySQL 908 OCP 一样就几个题。
注意:以上内容结合个人学习经验以及实操演练、官网、豆包、DeepSeek 等总结而成,AI 给出的答案也不一定对,但又因个人能力有限也无法判断对错,故有个别题目答案出现错误,但不影响整体答题效果,正确率达到 90%以上。此题库为个人花费一定的时间与精力整理而成,只为伙伴们学习 1Z_909 练习题,不要私自传播或商用,否则自己承担相应法律责任
正式考试后证书下载

通过考试后,一般十几分钟左右(也不一定,有的好几天),及时查看邮箱就行,邮箱收到一封恭喜考试通过的邮件之后就可以去 certview下载证书了。



全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~
欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
——————————————————————————





