Oracle 的 SQL 基础内容挺扎实的,尤其是准备考 1Z0-051 这门认证的时候,Oracle Database: SQL Fundamentals I这块资料就蛮有用了。里面讲得比较细,从表的创建、数据插入,到怎么用LIKE和ESCAPE做精准匹配,都有实战场景。你要是卡在CREATE TABLE AS和DEFAULT的语法上,那几个例子讲得挺清楚,能避开不少坑。
表的默认值设置有点反直觉,像下面这条语句看起来能用,但其实是不行的:
CREATE TABLE new_sales(prod_id, cust_id, order_date DEFAULT SYSDATE)
AS SELECT prod_id, cust_id, time_id FROM sales;
你得先创建表结构,再加默认值,或者直接定义完整表字段。多人刚开始容易被这个误导。
视图部分也讲得蛮清楚,像WITH CHECK OPTION
这种你不常用但面试会被问到的语法也都有。比如这条语句:
CREATE VIEW v3 AS SELECT * FROM SALES WHERE cust_id=2034 WITH CHECK OPTION;
就是一个限制视图写操作范围的例子。用得对,可以帮你控制数据一致性。
文档里还特地提到了哪些视图能做DML 操作,哪些不行,比如用了GROUP BY
、UNION
这些聚合或集合操作就不支持直接更新。这种细节,备考的时候容易漏掉。
还有模式匹配部分的LIKE '%_D123%' ESCAPE '_'
写法,蛮实用,尤其当你数据里真的有下划线时。别小看ESCAPE
,一旦写错,那匹配结果就全歪了。
要是你想系统学一下,还可以看看这些补充资料:
如果你正准备考1Z0-051,建议手动敲一遍这些例子。实践起来你会发现,有些题考的就是你有没有踩过坑。