Oracle 11g零基础入门:从SQL脚本实操到数据库核心概念

发布时间:2026/10/31 11:52:29
Oracle 11g零基础入门:从SQL脚本实操到数据库核心概念 简介本资源是《Oracle 11g从入门到精通第二版》配套的完整实例源程序包专为数据库初学者、SQL开发人员及DBA备考人员设计旨在通过可运行代码深化对Oracle核心机制的理解与实操能力。压缩包共495个文件涵盖236个SQL脚本.txt、123个编译类文件.class、44个Java源码.java、36个配置与元数据XML文件以及JPG图示、BAK备份脚本、DMP导出文件等全面支撑19章内容的实验验证——从基础安装、表/索引创建到存储过程、触发器、用户权限管理再到RMAN备份恢复、分区优化与闪回技术。1.21MB轻量级包体便于快速下载与本地部署。目前已有405人学习下载读者可直接执行脚本复现书中全部案例快速掌握建库、调优、安全加固与故障恢复等关键技能是理论落地不可或缺的实践载体。1. 别被“Oracle”吓住它不是数据库里的“玄学”而是你手边能摸得着的电子表格升级版你有没有过这种体验Excel 表格用着用着就卡了筛选一万多行数据要等三秒同事发来一个“客户订单汇总.xlsx”打开后发现有 12 张表、5 个跨表公式、3 个宏按钮还标着“请勿修改结构”这时候你其实已经站在了 Oracle 11g 的门口——它不是什么高不可攀的“企业黑匣子”而是一个把 Excel 的“多表联动权限控制多人协作不崩溃”能力放大一百倍的工具。Oracle 11g 是一个成熟稳定的关系型数据库管理系统RDBMS专为处理海量、高并发、强一致性的数据而设计。它不面向个人记账但面向银行每天处理百万笔转账、电商大促时扛住每秒上万订单查询、医院系统里同时调阅十万份病历而不卡顿。对零基础新手来说学 Oracle 11g 从哪开始不是先背“SGA”“PGA”“实例”这些词而是先学会建一张表、插一行数据、查出来、改掉它、再删掉它——这五步走通你就已经跑赢了 70% 犹豫不决的新手。这份《oracle11g从入门到精通第二版-实例源程序.rar》不是教材 PDF而是一整套“能直接双击运行”的练习脚本和配套说明里面每个 .sql 文件都对应书里一个真实小例子比如“第3章创建学生信息表并录入3条记录”。它不教你理论它带你动手——就像给你一把带刻度的螺丝刀而不是先让你背《机械原理》。2. 先搞懂一件事Oracle 11g 不是软件安装包而是一套“服务客户端练习材料”的组合体很多新手第一次下载完这个 .rar 文件解压看到一堆 .sql 和 .txt立刻懵了“这玩意儿怎么运行我电脑上没装 Oracle 啊”——这是最典型的认知偏差。Oracle 11g 本身是一个需要单独安装的数据库服务端类似 Windows 系统本身而你手里这份资源是给已经装好 Oracle 11g 的人准备的“练习弹药包”。它不包含安装程序但完整覆盖了从“连接数据库”到“执行第一个查询”的全部实操路径。我们分三块说清楚2.1 它到底包含什么三个文件夹解决三类问题解压后你会看到三个核心目录实际结构可能略有差异但逻辑一致/ch02_create_table/全是create_*.sql文件比如create_student_table.sql。这是“建表”练习内容就是一条标准 SQL 命令CREATE TABLE student (id NUMBER, name VARCHAR2(20));/ch03_insert_data/全是insert_*.sql文件比如insert_student_data.sql。这是“插数据”练习内容就是INSERT INTO student VALUES (1, 张三);这样的语句。/ch04_query_update_delete/包含select_*.sql、update_*.sql、delete_*.sql分别对应查、改、删操作。提示所有 .sql 文件都是纯文本用记事本就能打开看内容。别急着双击运行——它们不是.exe而是要“喂给”Oracle 数据库执行的指令清单。2.2 为什么必须先装 Oracle 11g类比“打印机和打印纸”想象你要打印一份合同Oracle 11g 数据库服务 打印机硬件得先插电、装驱动、连电脑SQL*Plus 或 SQL Developer 打印机驱动软件你点“打印”时调用的程序这份 .rar 里的 .sql 文件 打印纸上的文字内容你写好的合同正文。没有打印机光有合同稿没用没有数据库服务光有 .sql 文件也执行不了。所以第一步不是解压 rar而是确认你电脑上有没有“打印机”——即 Oracle 11g 服务是否已安装并启动。2.3 新手最该装哪个版本选“Oracle Database 11g Express Edition”XE官方原版 Oracle 11g 安装包超 2GB配置复杂对内存要求高建议 4GB新手极易在安装环节翻车。而Oracle 11g XEExpress Edition是官方免费提供的精简版限制明确最多 11GB 用户数据、使用 1 核 CPU、占用内存不超过 1GB。它足够跑通这本书里 95% 的例子且安装过程像装微信一样简单——下一步、下一步、设个密码、完成。安装后你会得到两个关键东西一个后台服务叫OracleServiceXEWindows 服务管理器里能看到一个命令行工具叫SQL*Plus开始菜单里有快捷方式图标是蓝色方块。这就是你的“打印机驱动”。2.4 第一个实操用 SQL*Plus 连上你的“打印机”打印第一行字我们跳过所有配置直奔最简路径。假设你已成功安装 Oracle 11g XE并记住了安装时设置的密码比如你设的是oracle123# 1. 打开命令提示符WinR → 输入 cmd → 回车 # 2. 输入以下命令注意用户名默认是 SYSTEM密码是你自己设的 sqlplus /nolog-- 3. 在 SQL*Plus 里输入连接命令替换 your_password 为你的密码 CONNECT SYSTEM/your_password AS SYSDBA-- 4. 成功连接后你会看到类似 Connected. 的提示 -- 现在输入第一条测试语句查当前时间验证数据库活没活 SELECT SYSDATE FROM DUAL;-- 5. 如果看到类似这样的输出恭喜你已连上数据库 SYSDATE --------- 24-APR-24这段操作的意义远不止“显示一个日期”。它验证了四件事你的 Oracle 服务正在运行否则CONNECT会报错ORA-12560: TNS:protocol adapter error你的密码正确否则报ORA-01017: invalid username/passwordSQL*Plus 能正常解析 SQL 语句DUAL是 Oracle 内置的单行虚表专为这类测试存在你已获得管理员权限AS SYSDBA可以执行建表等操作。这五步就是你和 Oracle 11g 的第一次握手。后面所有 .sql 文件都是在这次握手成功的基础上批量发送更多指令。3. 别急着跑代码先理解这四个词它们决定了你能不能看懂第一个 .sql 文件翻开/ch02_create_table/create_student_table.sql你大概率会看到这样一段-- 创建学生表 CREATE TABLE student ( id NUMBER(10) PRIMARY KEY, name VARCHAR2(20) NOT NULL, gender CHAR(1) DEFAULT M, birthday DATE );对零基础来说这不像代码更像密码本。别慌我们只盯住四个最常出现、也最容易误解的词用生活化方式讲透3.1CREATE TABLE不是“创建”而是“画一张带格子的白纸”在 Excel 里你新建一个 sheet就等于“创建一张表”。这张表本身不存数据只是定义了“有多少列”“每列叫什么”“每列能填什么类型的内容”。CREATE TABLE student就是在数据库里画出一张叫student的空白表格后续才能往里填数据。它不产生任何数据只产生结构。就像你买房子前先看户型图——图上画好了几室几厅但房子里还没家具。3.2NUMBER(10)和VARCHAR2(20)不是“数字”和“字符串”而是“格子尺寸说明书”NUMBER(10)表示这一列最多存 10 位数字比如1234567890但不强制填满 10 位。存5或123都合法系统自动补空格显示上或忽略存储上。它管的是“上限”不是“固定长度”。VARCHAR2(20)表示这一列最多存 20 个字符汉字、字母、数字都算 1 个且按实际长度存。存张三2 字只占 2 字节存张三丰是武当派创始人12 字就占 12 字节。VARCHAR2是 Oracle 推荐的可变长字符串类型比旧版VARCHAR更可靠。注意CHAR(1)是固定长度 1 字符存M占 1 字节存F也占 1 字节。它适合性别、状态码这类永远只有 1 个字符的字段。3.3PRIMARY KEY不是“主键”而是“这张表的身份证号规则”id NUMBER(10) PRIMARY KEY意味着这张student表里每一行的id值必须唯一不能有两个学生都是id1id值不能为空不能插入idNULL的记录系统会自动为id列建立索引加快按 ID 查找的速度。它就像学校给每个学生发的学号——全校唯一、不能为空、查学号能秒级定位到人。3.4DEFAULT M不是“默认值”而是“填表时的后悔药”gender CHAR(1) DEFAULT M表示如果插入新学生时你忘了写性别系统就自动帮你填MMale。比如执行INSERT INTO student (id, name, birthday) VALUES (1, 张三, DATE 2000-01-01);这条语句没提gender但数据库会自动补上M。它不是强制你必须填M而是“不填时的兜底方案”。你可以显式写INSERT ... VALUES (1, 张三, F, ...)来覆盖它。3.5 把这四点串起来读懂第一行建表语句再看一遍CREATE TABLE student ( id NUMBER(10) PRIMARY KEY, -- 学号10位内数字全校唯一不能为空 name VARCHAR2(20) NOT NULL, -- 姓名最多20字符不能为空NOT NULL是硬性要求 gender CHAR(1) DEFAULT M, -- 性别固定1字符不填就默认M birthday DATE -- 生日日期类型可为空 );现在它不再是一堆符号而是一份清晰的“学生信息登记表填写规范”。你甚至能脑补出这张表在 Excel 里长什么样A列是学号数字、B列是姓名文本、C列是性别单字母、D列是生日日期格式。Oracle 只是把这个规范用更严谨、更高效的方式固化下来。4. 真正动手用这份资源跑通第一个完整例子——从建表到查数据一步不跳现在我们把前面所有概念串起来用这份 .rar 里的真实文件完成一个闭环建表 → 插数据 → 查数据 → 验证结果。全程基于你已安装好的 Oracle 11g XE不依赖任何额外工具。4.1 准备工作找到文件、确认路径、启动 SQL*Plus解压.rar文件到一个简单路径比如D:\oracle_practice\进入子目录D:\oracle_practice\ch02_create_table\找到create_student_table.sql打开命令提示符cmd输入cd /d D:\oracle_practice\ch02_create_table切换到该目录启动 SQL*Plus 并连接如前所述sqlplus /nolog CONNECT SYSTEM/your_password AS SYSDBA4.2 第一步执行建表脚本 符号是关键在 SQL*Plus 中输入create_student_table.sql-- 你会看到类似输出 Table created.注意符号是 SQLPlus 的专属命令意思是“执行当前目录下的这个 .sql 文件”。它不是 SQL 语法而是 SQLPlus 的“快捷键”。没有直接输create_student_table.sql会被当成无效 SQL 报错。4.3 第二步插入三条测试数据用 ch03 的脚本退出当前 SQL*Plus输入EXIT重新打开一个新窗口确保环境干净cd /d D:\oracle_practice\ch03_insert_data sqlplus /nolog CONNECT SYSTEM/your_password AS SYSDBA执行插入脚本insert_student_data.sql-- 输出应为 3 rows created.打开insert_student_data.sql看一眼内容用记事本INSERT INTO student (id, name, gender, birthday) VALUES (1, 张三, M, DATE 2000-01-01); INSERT INTO student (id, name, gender, birthday) VALUES (2, 李四, F, DATE 2001-05-12); INSERT INTO student (id, name, gender, birthday) VALUES (3, 王五, M, DATE 1999-11-30); COMMIT;关键点解释每条INSERT语句末尾没有分号;—— 因为.sql文件是批量执行的SQL*Plus 默认以换行识别语句结束最后一行COMMIT;是提交事务。Oracle 默认开启事务不COMMIT数据只在当前会话可见关掉窗口就没了DATE 2000-01-01是 Oracle 的标准日期字面量写法比TO_DATE(2000-01-01,YYYY-MM-DD)更简洁安全。4.4 第三步查询数据亲眼看到结果保持在同一 SQL*Plus 窗口直接输入查询SELECT * FROM student;-- 你应该看到 ID NAME G BIRTHDAY ---------- -------------------- - --------- 1 张三 M 01-JAN-00 2 李四 F 12-MAY-01 3 王五 M 30-NOV-99提示Oracle 默认日期格式是DD-MON-RR如01-JAN-00年份显示两位是历史兼容设计。不用纠结它存的是完整日期显示格式可调整。4.5 验证成功检查表结构和数据量为了彻底确认再执行两条验证语句-- 查看表结构相当于 Excel 里右键“查看列属性” DESC student;-- 输出 Name Null? Type ----------------------------------------- -------- ---------------------------- ID NOT NULL NUMBER(10) NAME NOT NULL VARCHAR2(20) GENDER CHAR(1) BIRTHDAY DATE-- 查看总行数相当于 Excel 底部状态栏显示“共3行” SELECT COUNT(*) FROM student;-- 输出 COUNT(*) ---------- 3这四步建表→插数据→查数据→验证就是 Oracle 11g 最核心的工作流。你刚跑通的不是玩具而是银行开户系统、电商用户中心、医院挂号系统最底层的同一套逻辑。区别只在于数据量和并发量。这份资源的价值就在于它把这套逻辑拆解成一个个可触摸、可验证、可反复重来的 .sql 文件。5. 新手必踩的五个坑现象、原因、解法一条都不能跳刚上手时90% 的“连不上”“报错”“查不到”都集中在以下五个点。我第一次学时在第三条上卡了两天重装三次 Oracle XE——直到看到错误日志里那行TNS-12541: TNS:no listener才明白真相。5.1 现象ORA-12560: TNS:protocol adapter error原因Oracle 服务根本没启动。XE 安装后默认开机自启但如果你手动关过服务或电脑休眠后服务挂了就会报这个错。它和密码、网络都无关纯粹是“打印机没通电”。解决WinR 输入services.msc找到OracleServiceXE右键 → “启动”如果状态是“已停止”如果启动失败看“属性”里“登录身份”是否为“本地系统账户”启动成功后再试CONNECT。5.2 现象ORA-01017: invalid username/password原因密码输错或用户名写错。SYSTEM是默认管理员账户但很多人误写成systemOracle 默认区分大小写但SYSTEM在连接字符串里不区分更常见的是安装时设的密码和记忆中不一致。解决重置密码需用sqlplus / as sysdba连接ALTER USER SYSTEM IDENTIFIED BY new_password;或者用 Oracle 自带的密码重置工具XE 安装目录下config.bat。5.3 现象SP2-0310: unable to open file create_student_table.sql原因SQL*Plus 找不到文件。因为你没用cd切换到正确的目录或者文件名拼错了比如.sql写成.SQLWindows 下不敏感但某些环境敏感。解决在 SQL*Plus 外用dir命令确认当前目录下真有这个文件在 SQL*Plus 里用SPOOL test.logcreate_student_table.sqlSPOOL OFF然后看test.log里是否有路径提示最稳妥用绝对路径如D:\oracle_practice\ch02_create_table\create_student_table.sql。5.4 现象ORA-00942: table or view does not exist原因执行SELECT * FROM student;时报这个错说明表根本没建成功。可能建表脚本里有语法错误比如少了个括号或者建表语句执行后没看到Table created.提示你却以为成功了。解决先执行SELECT table_name FROM user_tables;看STUDENT是否在列表里Oracle 默认转大写如果不在回到建表步骤用create_student_table.sql重新执行并紧盯屏幕输出如果输出是ERROR at line X打开 .sql 文件看第 X 行附近有没有逗号、括号、引号缺失。5.5 现象插入数据后SELECT查不到或查到全是空值原因忘了COMMIT;。Oracle 的事务机制意味着不提交的数据只在当前会话有效。你在一个 SQL*Plus 窗口插了数据又开了新窗口查自然查不到。解决养成习惯每次INSERT/UPDATE/DELETE后立刻跟一句COMMIT;或者在 SQL*Plus 里执行SET AUTOCOMMIT ON让每条 DML 语句自动提交适合学习阶段检查是否真的执行了COMMIT看 SQL*Plus 提示是否返回Commit complete.。提示这些坑不是你笨而是 Oracle 的设计哲学决定的——它优先保证数据强一致性宁可让你多敲几个字也不自动帮你“猜意图”。跨过这五关你就拿到了 Oracle 的“操作许可证”。6. 下一步学什么从“会操作”到“能设计”我的血泪经验路径跑通第一个例子只是起点。接下来三个月我建议你按这个节奏推进每一步都对应这份资源里的具体文件绝不空谈理论6.1 第一周把“增删改查”练成肌肉记忆对应 ch02–ch04目标不是“知道”而是“不查文档就能写”。每天花 20 分钟做三件事盲打练习关掉所有窗口凭记忆写CREATE TABLE语句含主键、非空、默认值改写训练打开insert_student_data.sql把它改成插入“课程表”course字段cid NUMBER,cname VARCHAR2(30),credit NUMBER(2)再执行故障模拟故意删掉COMMIT;插入数据后另开一个 SQL*Plus 窗口查观察现象再补COMMIT验证。我第一次学时把VARCHAR2一直写成VARCHAR直到某次建表报ORA-00907: missing right parenthesis才去查文档发现 Oracle 11g 已弃用VARCHAR。从那以后我每次建表都强制DESC一下确认类型是VARCHAR2。6.2 第二周理解“约束”和“索引”——让数据自己守规矩对应 ch05–ch06别急着学存储过程。先啃透这两样约束ConstraintNOT NULL、UNIQUE、CHECK、FOREIGN KEY。它们不是代码是贴在表上的“法律条文”。比如CHECK (gender IN (M,F))插入X就直接拒绝比你在程序里写 if 判断更底层、更可靠。索引IndexCREATE INDEX idx_student_name ON student(name);。它像书的目录——没有它查“张三”要翻遍全表全表扫描有了它秒级定位。但索引不是越多越好每建一个索引插入数据就慢一分要同步更新索引树。这份资源里ch05_constraint目录下的脚本就是让你亲手加约束、删约束、看约束生效过程。6.3 第三周掌握“用户与权限”——告别永远用 SYSTEM对应 ch07你现在用SYSTEM账户干所有事就像用管理员账号上网。真实场景中DBA数据库管理员会创建不同角色CREATE USER scott IDENTIFIED BY tiger;GRANT CREATE SESSION, CREATE TABLE TO scott;GRANT SELECT ON system.student TO scott;这意味着scott用户能登录、能建自己的表但只能查system.student不能删。这份资源ch07_user_privilege里的脚本就是一步步带你创建用户、授予权限、回收权限。重点练GRANT SELECT ON xxx TO yyy和REVOKE这是 DBA 日常最多写的两条命令。6.4 第四周及以后用真实业务场景驱动学习对应 ch08–ch12这时别再孤立地学语法。打开ch08_school_db目录那里有完整的“学校数据库”脚本create_all_tables.sql建学生、课程、成绩、教师四张表insert_sample_data.sql插入 50 条模拟数据query_examples.sql包含 10 个真实查询比如“查每门课的平均分”“查没选课的学生”。你的任务是先不运行自己手写SELECT语句尝试运行query_examples.sql对比结果和写法差异修改其中一条比如把“平均分”改成“最高分”看MAX()怎么用。我当时卡在“查选了课但没成绩的学生”上写了三版 SQL 都不对。最后发现要用LEFT JOINWHERE score IS NULL。那一刻才真正懂SQL 不是命令是描述“我要什么数据”的逻辑语言。这份资源的价值就在于它用真实场景逼你思考而不是背答案。从那以后我每次写 SQL都强制走一遍“先想结果长什么样 → 再想哪些表要连 → 最后想条件怎么写”的流程哪怕只是查一行数据。希望帮到你。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询