77范文网 - 专业文章范例文档资料分享平台

oracle7天学习经典笔记(2)

来源:网络收集 时间:2019-03-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

--4.完成分页效果机制 select *from

(select a1.*,rownum rn from (select *from emp) a1 where rownum<=10) where rn>=6

--5.几个查询变化

--a.如果指定查询列,只需修改最底层的查询:select *from emp select ename,sal from emp

--b.如果是排序,只需修改最底层的查询:select *from emp select ename,sal from emp order by sal

--方法二:(最快) --根据ROWID来分

select *from t_xiaoxi where rowid in (select rid from

(select rownum rn,rid from

(select rowid rid,cid from t_xiaoxi order by cid desc) where rownum<10000) where rn>0080) order by cid desc

--方法三:按分析函数来分(最慢) select *from

(select t.*,row_number() over (order by cid desc) rk from t_xiaoxi t)

where rk<10000 and rk>9980

--查询总共有多少记录:使用count()函数

--用查询结果创建表(常用技巧)

create table myemp2 (id,name,sal) as select empno,ename,sal from emp --查看表的结构:desc myemp2 select *from myemp2

--复杂查询,合并查询,使用关键字:union ,union all,intersect,minus

--(1)union 该操作符用于取得2个结果集的并集,使用时会自动去掉结果集中的重复行 --集合查询速度比and,between等快

select ename,sal,job from emp where sal>2500 union select ename,sal,job from emp where job='MANAGER' --(2)union all 会出现重复,取并集

select ename,sal,job from emp where sal>2500 union all

select

ename,sal,job from emp where job='MANAGER' --(3)intersect 取交集 --(4)minus 取差集

--创建数据库有2种方法 --(1)使用工具;

--dbca【数据库创建配置助手】

--(2)。。。

*******************************************************************

--2010年10月1日 --第3章 事务与加锁

--时间转换函数to_date('1988-12-1','yyyy-mm-dd')

--设置回滚点:注意(只有在事务没有提交前管用) savepoint a1; rollback to a1;

--在java程序中如何使用事务

--加入事务处理(在java代码中写入)

--conn.setAutoCommit(false);//设置不能提交点

--只读事务:指只允许执行查询的操作,而不允许执行dml(增,删,改)操作的事务 --使用只读事务可以确保用户只能取得某时点的数据 set transaction read only

--1.sql函数的使用

lower(char):将字符串转换为小写 upper():--大写 length():

substr(char,m,n):截取字符,m 代表从第几的个字符开始截取 ,n 代表取3个

--以首字母大写方式显示所有员工的信息 --第一步:取首写字母大写

select upper(substr(ename,1,1)) from emp --第二步:取后面小写部分

select lower(substr(ename,2,length(ename)-1)) from emp --合并:使用 || 符合

select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename)-1)) from emp

--2.sql函数的使用

replace(char1,search_string,replace_string)--替换字符串 instr(char1,char2,[,n[,m]])--找函数的位置

--3.sql(数学)函数的使用:n 代表字字符 round(n,[m]):四舍五入 trunc(n,[m]):截取数字 mod(m,n):取模

floor(n):返回<=n的最大整数 ceil(n):返回>=n的最大整数

--表dual是用来做测试用的表 select mod(10,3) from dual

--显示在一个月为30天的情况所有员工的日新金,忽略余数 使用floor,trunc...

--日期函数

--默认情况:dd-mm-yy(即12-10月-2010) sysdate:获取系统时间

add_months(时间或者字段,所要加的月份数) last_day():返回指定日期所在月份的最后一天 --dual表位测试表

select sysdate from dual--查询当前时间 --查询入职超过300个月的员工

select *from emp where sysdate>add_months(hiredate,300) --查询员工入职的天数

select sysdate-hiredate \入职天数\--去掉小数

select trunc(sysdate-hiredate) \入职天数\--找出各月倒数第3天受雇的所有员工 select hiredate,last_day(hiredate) from emp

select hiredate,ename from emp where last_day(hiredate)-2=hiredate

--转换函数(隐形转换)

to_char(要转换的时间字符,转换成什么格式):

select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp

--在插入时间数据时,如果插入需要精确到分钟,秒,那么显示的时候就需要用该函数转换一下,才会显示到时、分、秒 --to_char()用于人民币的格式转换

select to_char(sal,'L99,999.99') from emp select to_char(sal,'$99,999.99') from emp

--显示1980年,12月份入职的员工

select *from emp where to_char(hiredate,'yyyy')=1980 select *from emp where to_char(hiredate,'mm')=12

--to_date()函数...

--系统函数 sys_context():

--(1)terminal:当前会话客户所对应的终端的标识符

select sys_context('USERENV','db_name') from dual--查询当前使用的数据库 --(2):language

select sys_context('USERENV','language') from dual --(3):session_user 当前用户

select sys_context('USERENV','session_user') from dual

--(4):current_schema 当前方案名(方案名与用户名一样)用户和方案的关系 --用户和方案的关系

select sys_context('USERENV','current_schema') from dual

--数据库管理员

sys(高于后者)与system用户的区别: (1)存储的数据的重要性不同 (2)权限不同

-- sys用户必需以as sysdba或者as sysoper身份登录

-- system用户可以以normal登录,但是就是一个普通用户

--注意:system可以以sysdba登录,但是如果以这样登录的话,那么就是一个sys用户了,具有他的所有权限

sysdba(高于后者)与sysoper的区别:sysoper>dba(普通用户)

前者可以打开、关闭数据库,创建和删除,后者不行,前者数据恢复可以是部分,可以是全部,而后者是全部恢复 --shutdown(关闭数据库) --startup(启动数据库)

--管理初始化的参数

--show parameter(该行没有运行出来,有点问题)

数据库表的逻辑备份与恢复 --逻辑备份和物理备份

前者:是将数据库的对象导出到一个磁盘里面存放(备份)

将磁盘的信息导入到数据库(恢复)--数据库在运行状态才能恢复

--导出:使用命令exp命令来完成

--注意:在导入导出的时候要到oracle的bin目录下EXP.exe中去操作********** 一、导出表

(1)导出表 a.导出自己的表

exp userid=scott/tiger@ORCL tables=(emp,dept) file=e:\\save1.dmp

b.导出其他方案的表(用户需要具有dba或者exp_full_database的权限) exp userid=scott/tiger@ORCL tables=(scott.emp,scott.dept) file=e:\\save2.dmp

(2)导出表的结构

exp userid=scott/tiger@ORCL tables=(emp,dept) file=e:\\save3.dmp rows=n

(3)使用直接导出方式(处理大表,速度快)

exp userid=scott/tiger@ORCL tables=(emp,dept) file=e:\\save4.dmp direct=y

二、导出方案,使用export工具导出一个方案或者多个方案中对象的表、索引、约束 (1)导出自己的方案

exp scott/tiger@ORCL owner=scott file=e:\\sava4.dmp

(2)导出其他的方案(用户需要具有dba或者exp_full_database的权限) exp system/manager@ORCL owner=(system,scott) file=e:\\sava4.dmp

三、导出数据库(利用export导出所有数据库中的对象及数据,用户需要具有dba或者exp_full_database的权限)

exp userid=system/manage@ORCL full=y inctype=complete file=e:\\save5.dmp --inctype=complete:增量备份 --full=y :全部导出

--导入省略...第4天3讲10分钟

--数据字典(基表,存放静态的数据)和动态性能视图(动态的数据) 数据字典的所有者是sys用户 数据字典只能执行select语句

user_xxx,all_xxx,dba_xxx --当前用户所建的所有表

select table_name from user_tables --当前用户可以访问到的所有表 select table_name from all_tables

--当前系统各个用户的所有表(只有是dba角色和拥有查询所有表权限的用户才可以访问) select table_name from dba_tables

--用户名,权限,角色

查询dba_users可以显示所有数据库用户的详细信息 select username,password from dba_users

查询dba_sys_privs可以显示用户具有的系统权限

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库oracle7天学习经典笔记(2)在线全文阅读。

oracle7天学习经典笔记(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/545854.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: