oracle11g教程从入门到精通x课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《oracle11g教程从入门到精通x课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle11g 教程 入门 精通 课件
- 资源描述:
-
1、学 海 无 涯 韩顺平韩顺平玩转玩转 oracleoracle 视频教程笔记视频教程笔记一:Oracle 认证,与其它数据库比较,安装1学 海 无 涯 23学 海 无 涯 Oracle 安装会自动的生成 sys 用户和 system 用户:1sys 用户是超级用户,具有最高权限,具有 sysdba 角色,有 create database 的权限,该用户默认的密码是 change_on_install2system 用户是管理操作员,权限也很大。具有 sysoper 角色,没有 create database 的 权限,默认的密码是 manager3一般讲,对数据库维护,使用 system 用
2、户登录就可以拉也就是说 sys 和 system 这两个用户最大的区别是在于有没有 create database 的权限。二:Oracle 的基本使用-基本命令sql*plus 的常用命令 连连接命接命令令 1.1.connectconnect 用法:conn 用户名/密码网络服务名as sysdba/sysoper当用特权用户身份连 接时,必须带上 as sysdba 或是 as sysoper 2.2.disconnectdisconnect 说明:该命令用来断开与当前数据库的连接 3.psssword3.psssword 说明:该命令用于修改用户的密码,如果要想修改其它用户的密码,需要
3、用sys/system 登录。4.show4.show useruser 说明:显示当前用户名 5.exit5.exit 说明:该命令会断开与数据库的连接,同时会退出 sql*plus 文文件操作件操作命命令令 1.1.startstart 和和 说明:运行 sql 脚本 案例:sql d:a.sql 或是 sqlstart d:a.sql 2.edit2.edit 说明:该命令可以编辑指定的 sql 脚本 案例:sqledit d:a.sql,这样会把 d:a.sql 这个文件打开 3.spool3.spool 说明:该命令可以将 sql*plus 屏幕上的内容输出到指定文件中去。案例:sq
4、lspool d:b.sql 并输入 sqlspool off 交交互式命互式命令令 1.&1.&说明:可以替代变量,而该变量在执行时,需要用户输入。select*from emp where job=&job;2.2.editedit 说明:该命令可以编辑指定的 sql 脚本 案例:SQLedit d:a.sql 4学 海 无 涯 3 3.spoospool l 说明:该命令可以将 sql*plus 屏幕上的内容输出到指定文件中去。spool d:b.sql 并输入 spool off 显显示和设示和设置置环境环境变变量量 概述:可以用来控制输出的各种格式,set show 如果希望永久的保
5、存相关的设 置,可以去修改 glogin.sql 脚本 1.1.linesizelinesize 说明:设置显示行的宽度,默认是 80 个字符 show linesize set linesize 90 2.2.pagesizepagesize 说明:设置每页显示的行数目,默认是 14 用法和 linesize 一样 至于其它环境参数的使用也是大同小异 三:oracle 用户管理 oracle 用户的管理创创建用户建用户概述:在 oracle 中要创建一个新的用户使用 create user 语句,一般是具有 dba(数据库管理员)的权限才能使用。create user 用户名 identif
6、ied by 密码;(oracle 有个毛病,密码必须以字母开头,如果以字母 开头,它不会创建用户)给给用户修用户修改改密码密码概述:如果给自己修改密码可以直接使用password 用户名如果给别人修改密码则需要具有 dba 的权限,或是拥有 alter user 的系统权限SQL alter user 用户名 identified by 新密码删删除除用户用户概述:一般以 dba 的身份去删除某个用户,如果用其它用户去删除用户则需要具有 drop user的权限。比如 drop user 用户名【cascade】在删除用户时,注意:如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个
7、参数 cascade;用用户管理户管理的的综合综合案案例例概述:创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定 相应的权限。给一个用户赋权限使用命令 grant,回收权限使用命令 revoke。为了给讲清楚用户的管理,这里我给大家举一个案例。SQL conn xiaoming/m12;ERROR:学 海 无 涯 ORA-01045:user XIAOMING lacks CREATE SESSION privilege;logon denied警告:您不再连接到 ORACLE。SQL show user;USER 为 SQL conn system/p;已连接。SQ
8、L grant connect to xiaoming;授权成功。SQL conn xiaoming/m12;/后面的为密码分开来输入。已连接。SQL注意:grant connect to xiaoming;在这里,准确的讲,connect 不是权限,而是角色。看图:现在说下对象权限,现在要做这么件事情:*希望 xiaoming 用户可以去查询 emp 表*希望 xiaoming 用户可以去查询 scott 的 emp 表grant select on emp to xiaoming*希望 xiaoming 用户可以去修改 scott 的 emp 表grant update on emp to
9、 xiaoming*希望 xiaoming 用户可以去修改/删除,查询,添加 scott 的 emp 表grant all on emp to xiaoming*scott 希望收回 xiaoming 对 emp 表的查询权限revoke select on emp from xiaoming/对权限的维护。*希望 xiaoming 用户可以去查询 scott 的 emp 表/还希望 xiaoming 可以把这个权限继续给别56学 海 无 涯 人。-如果是对象权限,就加入 with grant option grant select on emp to xiaoming with grant
10、option我的操作过程:SQL conn scott/tiger;已连接。SQL grant select on scott.emp to xiaoming with grant option;授权成功。SQL conn system/p;已连接。SQL create user xiaohong identified by m123;用户已创建。SQL grant connect to xiaohong;授权成功。SQL conn xiaoming/m12;已连接。SQL grant select on scott.emp to xiaohong;授权成功。-如果是系统权限。system 给
11、 xiaoming 权限时:grant connect to xiaoming with admin option问题:如果 scott 把 xiaoming 对 emp 表的查询权限回收,那么 xiaohong 会怎样?答案:被回收。下面是我的操作过程:SQL conn scott/tiger;已连接。SQL revoke select on emp from xiaoming;撤销成功。SQL conn xiaohong/m123;已连接。SQL select*from scott.emp;select*from scott.emp第 1 行出现错误:ORA-00942:表或视图不存在结果
12、显示:小红受到诛连了。使使用用 profile 管管理理用用户户口口令令概述:profile 是口令限制,资源限制的命令集合,当建立数据库的,oracle 会自动建立名称 为 default 的 profile。当建立用户没有指定 profile 选项,那么 oracle 就会将 default 分配给用 户。1.账户锁定账户锁定7学 海 无 涯 概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用 dba 的身份去执行该命令。例子:指定 scott 这个用户最多只能尝试 3 次登陆,锁定时间为 2 天,让我们看看怎么实现。创建 profile 文件SQL
13、 create profile lock_account limit failed_login_attempts 3 password_lock_time 2;SQL alter user scott profile lock_account;2.2.给账给账户户(用户用户)解锁解锁SQL alter user tea account unlock;3.3.终止口令终止口令为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要 dba 的身份 来操作。例子:给前面创建的用户 tea 创建一个 profile 文件,要求该用户每隔 10 天要修改自己的登 陆密码,宽限期为 2 天
14、。看看怎么做。SQL create profile myprofile limit password_life_time 10 password_grace_time 2;SQL alter user tea profile myprofile;口口令历史令历史概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样 oracle 就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle 就会对新 旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。例子:1建立 profileSQLcreate profile password_history
15、limit password_life_time 10 password_grace_time 2 password_reuse_time 10password_reuse_time/指定口令可重用时间即 10 天后就可以重用2分配给某个用户删除删除 profile概述:当不需要某个 profile 文件时,可以删除该文件。SQL drop profile password_history【casade】注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。加了 casade,就会把级联的相关东西也给删除掉四:oracle 表的管理(数据类型,表创建删除,数据 CRUD 操作)orac
16、le 的表的管理 表名和列的命名规则 必须以字母开头 长度不能超过 30 个字符 不能使用 oracle 的保留字 只能使用如下字符 A-Z,a-z,0-9,$,#等 8学 海 无 涯 oracleoracle 支持的数据支持的数据类类型型 字字符符类类 charchar 定长 最大 2000 个字符。例子:char(10)小韩前四个字符放小韩,后添 6 个空格补全 如小韩varchar2(20)varchar2(20)变长 最大 4000 个字符。例子:varchar2(10)小韩 oracle 分配四个字符。这样可以节省空间。clob(character large object)字符型大
17、对象 最大 4Gchar 查询的速度极快浪费空间,查询比较多的数据用。varchar 节省空间 数字型 number 范围-10 的 38 次方 到 10 的 38 次方 可以表示整数,也可以表示小数 number(5,2)表示一位小数有 5 位有效数,2 位小数 范围:-999.99 到 999.99 number(5)表示一个 5 位整数 范围 99999 到-99999 日期类型 date 包含年月日和时分秒 oracle 默认格式 1-1 月-1999 timestamp 这是 oracle9i 对 date 数据类型的扩展。可以精确到毫秒。图片 blob 二进制数据 可以存放图片/声
18、音 4G 一般来讲,在真实项目中是不 会把图片和声音真的往数据库里存放,一般存放图片、视频的路径,如果安全需 要比较高的话,则放入数据库。怎样创建表 建表-学生表 create table student(-表 名 xh number(4),-学 号 xm varchar2(20),-姓 名 sex char(2),-性 别 birthday date,-出 生 日 期 sal number(7,2)-奖 学 金 );-班级表 CREATE TABLE class(classId NUMBER(2),cName VARCHAR2(40)9学 海 无 涯);修改表 添加一个字段 SQLALTER
19、 TABLE student add(classId NUMBER(2);修改一个字段的长度 SQLALTER TABLE student MODIFY(xm VARCHAR2(30);修改字段的类型/或是名字(不能有数据)不建议做 SQLALTER TABLE student modify(xm CHAR(30);删除一个字段 不建议做(删了之后,顺序就变了。加就没问题,应为是加在后 面)SQLALTER TABLE student DROP COLUMN sal;修改表的名字 很少有这种需求 SQLRENAME student TO stu;删除表 SQLDROP TABLE studen
20、t;添加数据 所有字段都插入数据 INSERT INTO student VALUES(A001,张三,男,01-5 月-05,10);oracle 中默认的日期格式dd-mon-yy dd 日子(天)mon 月份 yy 2 位 的年 09-6 月-99 1999 年 6 月 9 日 修改日期的默认格式(临时修改,数据库重启后仍为默认;如要修改需要修改注 册表)ALTER SESSION SET NLS_DATE_FORMAT=yyyy-mm-dd;修改后,可以用我们熟悉的格式添加日期类型:INSERT INTO student VALUES(A002,MIKE,男,1905-05-06,10
21、);插入部分字段 INSERT INTO student(xh,xm,sex)VALUES(A003,JOHN,女);插入空值 INSERT INTO student(xh,xm,sex,birthday)VALUES(A004,MARTIN,男,null);问题来了,如果你要查询 student 表里 birthday 为 null 的记录,怎么写 sql呢?错误写法:select*from student where birthday=null;正确写法:select*from student where birthday is null;如果要查询 birthday 不为 null,则应
22、该这样写:select*from student where birthday is not null;修改数据 修改一个字段 UPDATE student SET sex=女 WHERE xh=A001;修改多个字段 UPDATE student SET sex=男,birthday=1984-04-01 WHERE xh=A001;修改含有 null 值的数据 10学 海 无 涯 不要用=null 而是用 is null;SELECT*FROM student WHERE birthday IS null;删除数据 DELETE FROM student;删除所有记录,表结构还在,写日志,
23、可以恢复的,速度慢。Delete 的数据可以恢复。savepoint a;-创建保存点 DELETE FROM student;rollback to a;-恢复到保存点 一个有经验的 DBA,在确保完成无误的情况下要定期创建还原点。DROP TABLE student;-删除表的结构和数据;delete from student WHERE xh=A001;-删除一条记录;truncate TABLE student;-删除表中的所有记录,表结构还在,不写日志,无 法找回删除的记录,速度快。五:oracle 表查询(1)oracle 表基本查询 介绍在我们讲解的过程中我们利用scott 用户
24、存在的几张表(emp,dept)为大家演示如何使用select语句,select 语句在软件编程中非常有用,希望大家好好的掌握。emp 雇员表 clerk 普员工 salesman 销售 manager 经理 analyst 分析师 president 总裁 mgr 上级的编号hiredate 入职时间sal 月工资 comm 奖金 deptno 部门dept 部门表 deptno 部门编号 accounting 财务部 research 研发部 operations 业务部 loc 部门所在地点salgrade工资级别grade级别 losal最低工资 hisal最高工资11学 海 无 涯
25、简单的查询语句 查看表结构 DESC emp;查询所有列SELECT*FROM dept;切忌动不动就用 select*SET TIMING ON;打开显示操作时间的开关,在下面显示查询时间。CREATE TABLE users(userId VARCHAR2(10),uName VARCHAR2(20),uPassw VARCHAR2(30);INSERT INTO users VALUES(a0001,啊啊啊啊,aaaaaaaaaaaaaaaaaaaaaaa);-从自己复制,加大数据量 大概几万行就可以了 可以用来测试 sql 语句执行效率INSERT INTO users(userId,
展开阅读全文