oracle教程从入门到精通.doc

上传人:hw****26 文档编号:3920196 上传时间:2019-08-22 格式:DOC 页数:84 大小:992.50KB
下载 相关 举报
oracle教程从入门到精通.doc_第1页
第1页 / 共84页
oracle教程从入门到精通.doc_第2页
第2页 / 共84页
oracle教程从入门到精通.doc_第3页
第3页 / 共84页
oracle教程从入门到精通.doc_第4页
第4页 / 共84页
oracle教程从入门到精通.doc_第5页
第5页 / 共84页
点击查看更多>>
资源描述

1、韩顺平玩转 oracle 视频教程笔记一:Oracle 认证,与其它数据库比较,安装Oracle 安装会自动的生成 sys 用户和 system 用户: (1) sys 用户是超级用户,具有最高权限,具有 sysdba 角色,有 create database 的权限,该用户默认的密码是 change_on_install (2) system 用户是管理操作员,权限也很大。具有 sysoper 角色,没有 create database的权限,默认的密码是 manager (3) 一般讲,对数据库维护,使用 system 用户登录就可以拉 也就是说 sys 和 system 这两个用户最大的

2、区别是在于有没有 create database 的权限。二: Oracle 的基本使用-基本命令sql*plus 的常用命令 连接命令 1.connect 用法:conn 用户名/密码网络服务名as sysdba/sysoper当用特权用户身份连接时,必须带上 as sysdba 或是 as sysoper 2.disconnect 说明: 该命令用来断开与当前数据库的连接 3.psssword 说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system 登录。 4.show user 说明: 显示当前用户名 5.exit 说明: 该命令会断开与数据库的连接,同

3、时会退出 sql*plus 文件操作命令 1.start 和 说明: 运行 sql 脚本 案例: sql d:a.sql 或是 sqlstart d:a.sql 2.edit 说明: 该命令可以编辑指定的 sql 脚本 案例: sqledit d:a.sql,这样会把 d:a.sql 这个文件打开 3.spool 说明: 该命令可以将 sql*plus 屏幕上的内容输出到指定文件中去。 案例: sqlspool d:b.sql 并输入 sqlspool off 交互式命令 1. (oracle 有个毛病,密码必须以字母开头,如果以字母开头,它不会创建用户) 给用户修改密码 概述:如果给自己修改

4、密码可以直接使用 password 用户名 如果给别人修改密码则需要具有 dba 的权限,或是拥有 alter user 的系统权限 SQL alter user 用户名 identified by 新密码 删除用户 概述:一般以 dba 的身份去删除某个用户,如果用其它用户去删除用户则需要具有 drop user 的权限。 比如 drop user 用户名 【cascade 】 在删除用户时,注意: 如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数 cascade; 用户管理的综合案例 概述:创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限

5、。给一个用户赋权限使用命令 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; 已连接。 SQL grant connect to xiaoming; 授权成功。 SQL conn xiaoming/m12; /后面的为密码分开来输

6、入。已连接。 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 xiaoming * 希望 xiaoming 用户可以去修改/ 删除,查询,添加 scott 的 emp

7、 表 grant all on emp to xiaoming * scott 希望收回 xiaoming 对 emp 表的查询权限 revoke select on emp from xiaoming /对权限的维护。 * 希望 xiaoming 用户可以去查询 scott 的 emp 表/还希望 xiaoming 可以把这个权限继续给别人。 -如果是对象权限,就加入 with grant option grant select on emp to xiaoming with grant option 我的操作过程: SQL conn scott/tiger; 已连接。 SQL grant

8、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 给 xiaoming 权限时: grant connect to xia

9、oming 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: 表或视图不存在 结果显示:小红受到诛连了。使用 p

10、rofile 管理用户口令 概述:profile 是口令限制,资源限制的命令集合,当建立数据库的,oracle 会自动建立名称为 default 的 profile。当建立用户没有指定 profile 选项,那么 oracle 就会将 default 分配给用户。 1.账户锁定 概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间 (天)一般用 dba 的身份去执行该命令。 例子:指定 scott 这个用户最多只能尝试 3 次登陆,锁定时间为 2 天,让我们看看怎么实现。创建 profile 文件 SQL create profile lock_account lim

11、it failed_login_attempts 3 password_lock_time 2; SQL alter user scott profile lock_account; 2.给账户(用户) 解锁 SQL alter user tea account unlock; 3.终止口令 为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要 dba 的身份来操作。 例子:给前面创建的用户 tea 创建一个 profile 文件,要求该用户每隔 10 天要修改自己的登陆密码,宽限期为 2 天。看看怎么做。 SQL create profile myprofile limit

12、 password_life_time 10 password_grace_time 2; SQL alter user tea profile myprofile; 口令历史 概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle 就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle 就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。 例子: 1)建立 profile SQLcreate profile password_history limit password_life_time 10 password_gra

13、ce_time 2 password_reuse_time 10 password_reuse_time /指定口令可重用时间即 10 天后就可以重用 2)分配给某个用户 删除 profile 概述:当不需要某个 profile 文件时,可以删除该文件。 SQL drop profile password_history 【casade】 注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。加了 casade,就会把级联的相关东西也给删除掉四:oracle 表的管理(数据类型,表创建删除,数据 CRUD 操作)oracle 的表的管理 表名和列的命名规则 必须以字母开头 长度不能超过

14、 30 个字符 不能使用 oracle 的保留字 只能使用如下字符 A-Z,a-z,0-9,$,#等 oracle 支持的数据类型 字符类 char 定长 最大 2000 个字符。 例子:char(10) 小韩前四个字符放 小韩,后添 6 个空格补全 如 小韩 varchar2(20) 变长 最大 4000 个字符。 例子:varchar2(10) 小韩 oracle 分配四个字符。这样可以节省空间。 clob(character large object) 字符型大对象 最大 4G char 查询的速度极快浪费空间,查询比较多的数据用。 varchar 节省空间 数字型number 范围 -

15、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 二进制数据 可以存放图片/声音 4G 一般来讲,在真实项目中是不会把图片和声音真的往数据库里存放,一般存放图片、视频的路径,如果安全需要比较高的话,

16、则放入数据库。 怎样创建表 建表-学生表 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); 修改表 添加一个字段SQLALTER TABLE student add (classId NUMBER(2); 修改一个字段的长度 SQLALTER TABLE student

17、 MODIFY (xm VARCHAR2(30); 修改字段的类型/或是名字(不能有数据) 不建议做 SQLALTER TABLE student modify (xm CHAR(30); 删除一个字段 不建议做(删了之后,顺序就变了。加就没问题,应为是加在后面)SQLALTER TABLE student DROP COLUMN sal; 修改表的名字 很少有这种需求 SQLRENAME student TO stu; 删除表 SQLDROP TABLE student; 添加数据 所有字段都插入数据 INSERT INTO student VALUES (A001, 张三, 男, 01-5

18、 月-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 (002, MIKE, 男, 1905-05-06, 10); 插入部分字段 INSERT INTO student(xh, xm, sex) VALUES

19、 (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,则应该这样写: select * from stu

20、dent where birthday is not null; 修改数据 修改一个字段UPDATE student SET sex = 女 WHERE xh = A001; 修改多个字段UPDATE student SET sex = 男, birthday = 1984-04-01 WHERE xh = A001; 修改含有 null 值的数据 不要用 = null 而是用 is null; SELECT * FROM student WHERE birthday IS null; 删除数据DELETE FROM student; 删除所有记录,表结构还在,写日志,可以恢复的,速度慢。 D

21、elete 的数据可以恢复。 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 用户存在的几张表(emp,dept)为大家演示如何使用select 语句,select 语句在软件编程中非常有用,希望大家好好的掌握。 emp 雇员表 clerk 普员工 salesman 销售 manager 经理 analyst 分析师 president 总裁 mgr 上级的编号 hiredate 入职时间 sal 月工资 comm 奖金 deptno 部门 dept 部门表 deptno 部门编号 accounting 财务部 research 研发部 operations 业务部 loc 部门所在地点

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲资料库 > 生活指南

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。