☰
Oracle 11g 零基础入门:从建表到查询的完整实例教程
2026/10/18 20:28:24 网站建设 项目流程

简介:这份资源是《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 的门推开,剩下的路,你一步一步走就行。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询