Oracle 11g 零基础入门:从建表到查询的完整实例教程 简介这份资源是《Oracle 11g从入门到精通第二版》配套的实例源程序压缩包面向数据库初学者、高校学生以及希望系统巩固Oracle技能的DBA与开发人员帮助读者通过动手实践理解数据库核心概念与操作流程。包内共495个文件以txt脚本、class与java源码、xml配置、jpg图示及bak备份文件为主另含doc、xls、ctl、dmp等辅助资料整体约1.21MB覆盖安装配置、SQL查询、表与索引、视图、存储过程、触发器、游标、权限角色、备份恢复、SQL调优、分区与并行执行等19个章节的实践内容。目前已有405人学习下载。借助这些源程序读者可对照章节逐项运行验证观察数据存储、事务处理与恢复策略的实际效果并参考备份脚本与索引示例排查常见问题从而把书本知识转化为可复用的数据库管理能力。1. 零基础别慌Oracle 11g 到底是个什么东西你可能听过“数据库”这个词但脑子里没什么具体画面。没关系我第一次接触 Oracle 11g 的时候也以为它是个特别高深的黑匣子。其实你可以把它想象成一个超级能干的仓库管理员你告诉它“把张三的电话号码存起来”它就记在本子上你问它“张三的电话是多少”它立刻翻给你。这个“仓库”就是数据库而 Oracle 11g 就是其中一款非常经典、很多企业还在用的仓库管理系统。那为什么现在学 Oracle 11g 还有意义因为大量传统企业、金融系统、政务平台的数据底座就是它。你学会它等于拿到了一把打开企业级数据世界的钥匙。这份“从入门到精通第二版”的实例源程序就是给你一堆现成的、能直接跑的例子让你不用从零瞎琢磨。它适合完全没碰过数据库的新手也适合想系统补课的后端开发。你不需要先懂什么高深算法只要会基本的电脑操作就能跟着跑起来。2. 先搞懂三个核心概念表、SQL 和实例2.1 表就是一张张 Excel 表格别被“关系型数据库”这个词吓到。Oracle 里存数据的基本单位叫“表”你可以直接把它当成 Excel 的一个 sheet。比如一张员工表列就是“工号、姓名、部门、工资”每一行就是一个员工的具体信息。你平时怎么在 Excel 里填数据在 Oracle 里就是怎么往表里插数据。区别在于Oracle 的表可以存几千万行而且能同时让几百个人一起查、一起改不会像 Excel 那样发个文件传来传去就乱套。我第一次学的时候导师让我先建一张“学生表”就四个字段学号、姓名、班级、入学日期。建完之后我忽然就明白了——原来数据库没那么玄乎就是先把架子搭好再往里放东西。这份源程序里有很多类似的建表例子你照着敲一遍手感马上就来了。2.2 SQL 就是你对仓库管理员说的话你不可能直接用手去翻仓库的货架你得用语言告诉管理员你要干什么。SQL 就是这门语言。它分几大类建表的叫 DDL增删改数据的叫 DML查数据的叫 DQL。新手最先要练熟的就是查数据也就是 SELECT 语句。比如-- 从员工表里查出所有工资大于 5000 的人 SELECT 工号, 姓名, 工资 FROM 员工表 WHERE 工资 5000;这段代码的意思很直白SELECT 后面写你要哪些列FROM 后面写从哪张表拿WHERE 后面写筛选条件。你把它读成“从员工表里选工号、姓名、工资条件是工资大于五千”完全通顺。源程序里这类查询例子最多你先照着改数字、改条件慢慢就找到感觉了。2.3 实例就是一套跑起来的 Oracle 环境你光有表结构和 SQL 语句还不够得有一个“活的” Oracle 在后台运行。这个运行起来的整体就叫“实例”。你可以把它理解成一家已经开门营业的仓库有管理员、有货架、有账本。你装好 Oracle 11g 软件创建一个数据库再启动它就等于把这家仓库开起来了。源程序里的脚本就是往这个已经开门的仓库里放货、取货的操作指南。提示新手最容易在“装软件”这一步卡住。建议先按源程序里附带的安装说明走一遍不要自己乱改配置。装完之后用系统自带的 SQL*Plus 工具连上去能执行一条SELECT 1 FROM DUAL;并看到结果就算环境通了。3. 第一个能跑的例子从建表到查数据3.1 准备一张最简单的表我们不动源程序里复杂的例子先自己建一张“通讯录”表只有三个字段编号、姓名、电话。打开你的 SQL 工具输入下面这段-- 如果表已存在就先删掉避免重复建表报错 DROP TABLE 通讯录; -- 创建通讯录表 CREATE TABLE 通讯录 ( 编号 NUMBER(4), -- 编号最多4位数字 姓名 VARCHAR2(20), -- 姓名最多20个字符 电话 VARCHAR2(15) -- 电话最多15个字符 );第一句 DROP TABLE 是“后悔药”万一你之前建过同名的表先删掉免得冲突。第二句 CREATE TABLE 就是搭架子括号里写清楚每一列叫什么、能放什么类型的数据。NUMBER(4) 表示最多四位数字VARCHAR2(20) 表示最多二十个字符。你执行完这两句仓库里就多了一张空表格。3.2 往里塞三条数据表建好了但里面是空的。我们用 INSERT 语句往里放三条记录-- 插入三条通讯录记录 INSERT INTO 通讯录 (编号, 姓名, 电话) VALUES (1, 张三, 13800001111); INSERT INTO 通讯录 (编号, 姓名, 电话) VALUES (2, 李四, 13900002222); INSERT INTO 通讯录 (编号, 姓名, 电话) VALUES (3, 王五, 13700003333); -- 执行完必须提交否则数据只在当前会话里有效 COMMIT;INSERT INTO 后面跟表名和列名VALUES 后面跟具体值。注意字符串要用单引号包起来数字不用。最后那句 COMMIT 特别关键——Oracle 默认不会自动保存你的修改你不提交别人就看不到你自己换个窗口也查不到。很多新手插完数据一查是空的就是忘了 COMMIT这个坑我后面还会细说。3.3 把数据查出来看看现在用 SELECT 把刚才插的数据捞出来-- 查询通讯录里所有记录 SELECT 编号, 姓名, 电话 FROM 通讯录 ORDER BY 编号;ORDER BY 编号 表示按编号从小到大排。你执行完应该看到三行结果跟刚才插进去的一模一样。到这一步你已经完成了“建表 → 插入 → 查询”的完整闭环。源程序里成百上千个例子拆开看都是这个套路的变体换张表、换几个字段、加个筛选条件、加个排序。你把这个小例子跑通三遍手就熟了。注意如果你查出来是“未选定行”先检查是不是忘了 COMMIT再检查表名有没有写错。Oracle 对大小写不敏感但字符串里的内容区分大小写。4. 新手避坑这五个错误几乎人人都会犯4.1 现象插完数据查不到原因没提交解决执行 COMMIT这是排名第一的新手翻车现场。你在一个窗口插了数据兴冲冲换个窗口去查结果空空如也。不是数据库坏了是你没提交。Oracle 为了保证数据安全默认把每个操作都放在一个“事务”里你不说“提交”它就不算数。养成习惯每次插完、改完、删完顺手敲一个 COMMIT。如果你只是想试试不想真改那就敲 ROLLBACK 回滚掉。4.2 现象建表报错“名称已被使用”原因表已存在解决先删或改名你第一次建表成功了第二次想再建一张同名的Oracle 直接甩你一个 ORA-00955 错误。这不是你写错了是仓库里已经有同名的货架。解决办法很简单要么在 CREATE TABLE 前面加一句 DROP TABLE 表名要么换个表名。源程序里很多脚本开头都有 DROP 语句就是为了让你反复跑不报错。4.3 现象中文变成乱码原因字符集不匹配解决统一用 AL32UTF8你插进去“张三”查出来是“”这就是字符集在捣鬼。Oracle 11g 安装的时候会让你选字符集新手建议直接选 AL32UTF8它能兼容绝大多数中文环境。如果你已经装完了才发现乱码那就得重新建库或者改字符集比较麻烦。所以第一次装的时候多看一眼能省后面很多事。4.4 现象SQL 语句报错但看不出哪错了原因漏了分号或引号解决逐行检查Oracle 的报错有时候很笼统只说“无效的 SQL 语句”。十有八九是你漏了结尾的分号或者字符串少了一个单引号。我的血泪经验是把 SQL 写成多行每行只做一件事这样一眼就能看出哪行缺东西。比如 INSERT 语句列名一行、VALUES 一行别全挤在一行里。4.5 现象连不上数据库原因服务没启动或监听没开解决检查服务列表你打开工具输入用户名密码结果连不上。先别怀疑密码错了去 Windows 服务列表里看看 Oracle 的两个关键服务是不是“正在运行”一个是 OracleService 开头的实例服务一个是 OracleOraDb11g_home1TNSListener 开头的监听服务。这两个没起来就像仓库门没开你怎么喊管理员都听不见。启动它们再连一次。5. 下一步学什么从会跑例子到能自己写5.1 先把源程序里的查询例子刷一遍你现在已经会建表、插数据、查数据了。接下来别急着学高级东西先把源程序里所有带 SELECT 的脚本找出来一个一个跑。跑的时候做三件事第一把 WHERE 条件改一改看看结果怎么变第二把 ORDER BY 的列换一换看看排序效果第三试着同时查两张表比如员工表和部门表用员工表里的部门编号去匹配部门表里的部门名称。这就是最早的“关联查询”你不需要理解原理先看现象。5.2 再学增删改和常用函数查询熟了之后回头把 INSERT、UPDATE、DELETE 练扎实。UPDATE 和 DELETE 一定要带 WHERE 条件不然整张表都被你改了或删了那可真没后悔药。然后学几个常用函数COUNT 数行数、SUM 求和、AVG 求平均、TO_CHAR 转字符串、TO_DATE 转日期。这些在源程序里都有现成例子你搜函数名就能找到。5.3 最后碰表连接和子查询等你把单表操作玩顺了再去看多表连接。源程序里通常会有“查询每个部门的员工人数”这种例子那就是表连接的典型场景。你先照着抄抄完改条件改完再自己想一个需求比如“查出工资最高的前三个人”试着用子查询写出来。写不出来就翻源程序看别人怎么组织的。学习阶段重点练什么源程序里对应的例子类型第一周建表、插入、简单查询基础 DDL 和 SELECT 脚本第二周条件筛选、排序、常用函数带 WHERE 和 ORDER BY 的查询第三周增删改、事务提交回滚DML 脚本和 COMMIT/ROLLBACK第四周多表连接、子查询关联查询和嵌套查询例子5.4 我踩过的一个坑别一上来就啃管理手册我刚开始学的时候觉得“精通”就得把 Oracle 的管理手册从头看一遍结果看了三天就放弃了全是内存参数、表空间、归档日志跟我想做的增删改查完全不沾边。后来导师跟我说你先用起来再回头补管理知识。这句话救了我。你现在的目标不是当数据库管理员而是能熟练地用 SQL 把数据存进去、查出来。等你能独立写出一个多表关联的报表查询了再去看那些管理概念你会发现它们突然变得好理解了。从那以后我每次带新人都强制让他们先跑通一个“建表 → 插入 → 查询 → 提交”的完整小例子再去看源程序里复杂的脚本。这个习惯让我少走了很多弯路。希望这份源程序也能帮你把 Oracle 11g 的门推开剩下的路你一步一步走就行。希望帮到你。本文还有配套的精品资源点击获取