oracle语法
执行计划:
1.1 设置autotrace
序号 |
命令 |
解释 |
1 |
SET AUTOTRACE OFF |
此为默认值,即关闭Autotrace |
2 |
SET AUTOTRACE ON EXPLAIN |
只显示执行计划 |
3 |
SET AUTOTRACE ON STATISTICS |
只显示执行的统计信息 |
4 |
SET AUTOTRACE ON |
包含2,3两项内容 |
5 |
SET AUTOTRACE TRACEONLY |
与ON相似,但不显示语句的执行结果 |
SQL> set autotrace on
SQL> select * from dave;
ID NAME
---------- ----------
8 安庆
1 dave
2 bl
1 bl
2 dave
3 dba
4 sf-express
5 dmm
已选择8行。
执行计划
----------------------------------------------------------
Plan hash value: 3458767806
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 8 | 64 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| DAVE | 8 | 64 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
4 consistent gets
0 physical reads
0 redo size
609 bytes sent via SQL*Net to client
416 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
8 rows processed
----------------、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
select * from nls_database_parameters;//查询oracle参数
select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;
alter system kill session'1709,11947';
--我这里说的字段名跟列 是同一个意思,查询包含字段名字的所有表
select column_name,
table_name,data_type ,data_length,data_precision,data_scale from user_tab_columns where column_name='字段名';
//192.168.1.191:1521/orcl
sqlplus dev/dev@192.168.1.191/orcl
sqlplus sys/1 as sysdba
XMemcachedClient :内存数据库
Memcached :分布式内存对象缓存系统
XMemcached 是一个新 java memcached client 。也许你还不知道 memcached 是什么?可以先看看这里。简单来说, Memcached 是一个高性能的分布式内存对象的 key-value 缓存系统,用于动态 Web 应用以减轻数据库负载,现在也有很多人将它作为内存式数据库在使用, memcached 通过它的自定义协议与客户端交互,而 XMemcached 就是它的一个 java 客户端实现。
排除重复//排重
select * from test_zp a where id in(select min(id) from test_zp where name =a.name)
select a.* ,a.rowid from test_zp a where rowid in (select min(rowid) from test_zp group by name );
select min(id),min(age), name,sex from test_zp group by name,sex;
分页:
SELECT * FROM ( SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21
ABC型索引,ab/ac可走索引但是bc不走索引
建议一:在基数小的字段上要善于使用位图索引bitmap。(默认为b-tree索引)
若需要查询“所有没有身份证号码”的员工的信息的时候,标准索引并不能够起到加速查询速度的作用,因为位图索引会记录相关的NULL值列信息
当order by 字段出现在where条件中时,才会利用索引而无需排序操作。其他情况,order by不会出现排序操作。
struts阻止表单重复提交:分别是:token,tokenSession,tokenSession继承token而来。及button中的disabled="disabled"
1. 查看所有表空间大小
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files
2 group by tablespace_name;
2. 已经使用的表空间大小
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space
2 group by tablespace_name;
3. 所以使用空间可以这样计算
select a.tablespace_name,total,free,total-free used from
( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files
group by tablespace_name) a,
( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space
group by tablespace_name) b
where a.tablespace_name=b.tablespace_name;
4. 下面这条语句查看所有segment的大小。
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name
5. 还有在命令行情况下如何将结果放到一个文件里。
SQL> spool out.txt
SQL> select * from v$database;
SQL> spool off
select substr('D:\AssetsManagement\resource\ehcache\test.txt',(select INSTR('D:\AssetsManagement\resource\ehcache\test.txt','\',-1) from dual)+1 ) from dual;--文件名
select substr('D:\AssetsManagement\resource\ehcache\test.txt',1,(select INSTR('D:\AssetsManagement\resource\ehcache\test.txt','\',-1) from dual) ) from dual;--文件路径
查询本用户全部表下的表名:
select table_name from user_tables order by table_name;
oracle11g:非空表导出设置
select 'alter table '||table_name||' allocate extent;' from user_tables where nvl(num_rows,0)=0;
alter system set deferred_segment_creation=false;
1.创建表空间
create tablespace thams
logging
datafile 'F:\app\zhangpu\oradata\orcl\thams.dbf'
size 2000m
autoextend on
next 100m
maxsize 7024m;
--------------------------------
DML(data manipulation language):
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
DDL(data definition language):
DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
DCL(Data Control Language):
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL
---------------------------------
删除表空间
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
drop tablespace lis including contents and datafiles cascade onstraints;
//DROP TABLESPACE lis INCLUDING CONTENTS AND DATAFILES;
____________________________________________________________________
2.创建用户
使用sys用户登录到sysdba,然后找到users-->右键,创建-->
lis
lis
LIS
TEMP
DEFAULT
口令限期
对象权限 默认
角色权限 默认
系统权限 无 -->应用
3.使用新用户登录 如果报 ora-01045 则需要给新用户赋权限
grant create session to UserName;(UserName是登录出错的用户名)
grant create session to lis;
4.在PL\SQL上登录 用户:lis 密码:lis 表空间:LIS 最后:nomal
6.Oracle创建用户/密码并授权
(1) 创建用户
Create user 用户名 identified by 密码;(如果是数字则要加双引号”111111”,如果是字母就不用)
(2) 授权给某个用户
Grant connect,resource to 用户名;(只有用户有了connect 和 resource后才能操作其他表)
(3) 授DBA 权限
Grant dba to 用户名;
(4) 给用户创建会话的权限:
grant create session to DB_USER
(3) 授DBA 权限
Grant dba to 用户名;
(4)撤权:
revoke 权限... from 用户名;
(5)删除用户:
drop user username cascade (cascade 保证彻底删除)
(6) 查询表信息:
desc tablename;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下
对于单个user和tablespace 来说, 可以使用如下命令来完成。
步骤一: 删除user
drop user ×× cascade
说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的。
步骤二: 删除tablespace
drop user dev cascade;
alter tablespace DMS offline;
drop tablespace DMS including contents and datafiles cascade constraints;
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
drop user dev cascade;
DROP TABLESPACE LIS INCLUDING CONTENTS AND DATAFILES;
Oracle如何断开用户连接 搜出该用户的session的SID,SERIAL码,然后kill掉
select sid,serial# from v$session where username='user_name';
alter system kill session 'sid,serial';
alter system kill session '7,19';
alter system kill session '9,11';
alter system kill session '70,13';
alter system kill session '72,348';
alter system kill session '132,65';
alter system kill session '195,20';
alter system kill session '196,25';
alter system kill session '197,139';
当前表空间大小
select * from dba_data_files where tablespace_name=$TABLESPACE
已使用的表空间大小
select * from dba_segments where tablespace_name=$TABLESPACE_NAME;
未使用空间大小
select * from dba_free_space where tablespace_name=$TABLESPACE_NAME;
//导入导出/////////////////////////////////////////////////////////////////////////////////////////////////
四、导出数据
Oracle11g
在使用
exp
导出数据时会出现空表不能导出的问题,这是因为:
Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。、默认设置deferred_segment_creation 参数为TRUE,空表不分配segment。处理方法:在
sqlplus
中,执行如下命令:
SQL>alter system set deferred_segment_creation=false;
查看:
SQL>show parameter deferred_segment_creation;
该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用
--导出多个table:t1,t2,t3
exp username/password@sid tables=t1,t2,t3 file=d:\tbs.dmp log=d:\tbs.log grants=y
--导出表中符合条件的记录
exp dev/dev TABLES=(system_components) QUERY="'WHERE CODE=''系
统设置/菜单'' and create_time > TO_DATE(''2015-10-27'',''yyyy-MM-dd'')'" FILE =
C:\Users\zhangpu\Desktop\831_数据库改动\A.DMP LOG =A.LOG
--导出整个shcema:
exp dev/dev@orcl owner=dev file=F:\sx_20151102.dmp grants=y
--导入数据
Imp dev/dev@orcl file=E:\831开发平台\dev831_20151029.dmp full=y
Imp dms/dms@orcl file=D:\test\oauser.dmp full=y
imp ams/ams@orcl file=D:\test\sk_db20150605\amssk_db20150605.dmp FroUser=dev ToUser=dev1
使用cmd 进入到exp.demp 文件所在的文件夹下。
使用imp语句 : imp lis/lis@orcl file=exp.dmp FroUser=lis ToUser=lis
报错 imp-00013:
有两种解决方法:
1).使用dba用户导入 imp sys/sys file=exp.dmp fromuser=sys touser=lis ignore=yes
2).给lis赋dba的权限。使用sys登录PL\SQL执行Grant dba to lis; 然后再执行语句imp lis/lis@orcl file=exp.dmp FroUser=lis ToUser=lis
oracle导入excel:
第一步:建csv文件
第二步:建ctl文件
load data --控制文件标识
infile 'c:\test.csv' --要输入的数据文件名为test.csv
append into table test --向表test中追加记录
fields terminated by ',' --字段终止于X'09',是一个制表符(TAB),csv是","
(id,Name,hehe,tm,xgr) --定义列对应顺序
第三步:cmd命令执行:sqlldr userid=dev/dev control='c:\control.ctl'
sql>create directory dpdata1 as 'D:/test';
sql>select * from dba_directories;
sql>grant read, write on directory dpdata1 to dev
$expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASES.dmp logfile=aa.log job_name=CASES_EXPORT
$expdp ananda/abc123 tables=CASES directory=DPDATA1
dumpfile=expCASES_%U.dmp parallel=4 job_name=Cases_Export
1)按用户导
expdp dev/dev@orcl schemas=dev dumpfile=EXPDP11G_expdp_20150909_es.dmp DIRECTORY=dpdata1;
2)并行进程parallel
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;
4)按查询条件导
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;
五、还原数据
1)导到指定用户下
impdp dev/dev@ORCL schemas=dev dumpfile=EXPDP11G_20150420_000000.DMP DIRECTORY=dpdata1
2)改变表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加数据
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION=append;
select wm_concat(''''||a.TABLE_NAME||'''' ) from user_tables a where num_rows<1;
expdp myuser/mypwd@mydb directory=DIR dumpfile=a.dmp logfile=a.log tables=TABLEA
导出了表TABLEA,得到a.dmp文件.
impdp JEFF/jeffpwd@JEFF directory=DM_PMML_DIR dumpfile=a.dmp logfile=a.log tables=TABLEA REMAP_SCHEMA=myuser:JEFF
进行导入时,得到提示:
impdp dev/dev@ORCL dumpfile=EXPDP11G_EMPTY20140808.dmp DIRECTORY=dpdata1 REMAP_SCHEMA=dagldb:dev
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
oracle语法的更多相关文章
- Oracle 语法
1.行转列函数 11gR2以前: WM_CONCAT函数, 使用方式形如: SELECT SUS_SNO,WM_CONCAT(SRC_FILENAME) AS AAA FROM AML_SUS_TRD ...
- SQLServer、MySQL、Oracle语法差异小集锦
一.差异集锦 在建表的时候,只有自增的语法不同. 下面给出3种数据库通用的建表与初始化测试语句: CREATE TABLE Country( Id int PRIMARY KEY, Name ) ); ...
- ansi sql 语法 切换为 oracle 语法
语句粘贴到 工作表 打开查询构建器 勾选 创建oracle连接 over sql dev 的语法设置调整,否则表别名会右对齐 下面是 转换后的结果,是不是看得舒服多了
- SqlServer select * into 对应 Oracle语法
创建新表,并插入旧表值 Sql Server select * into new_emp from emp; Oracle create table new_emp as select * from ...
- [转]Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数
oracle的分析函数over 及开窗函数 一:分析函数Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是 对于每个组返回多行,而聚合函数对于每个组 ...
- sqlplus连接oracle语法
sqlplus文件在product\11.2.0\dbhome_1\BIN目录下. 连接语法:用户名/密码@ip/服务名
- jdbc连接oracle语法
public class LangDemo { public static void main(String[] args) throws Exception{ try { //加载驱动 Class. ...
- oracle语法练习汇总
全是自己一个一个敲出来的啊 啊 啊 --(1)查询20号部门的所有员工信息. --(2)查询所有工种为CLERK的员工的工号.员工名和部门名. select e.empno,e.ename,d.dna ...
- Oracle语法 及 SQL题目(一)
目录 课例复制 SQL题目一 SQL题目二 SQL题目三 笔记 课例复制 OCM 全称:Oracle Certified Master 认证大师 含义:Oracle 原厂推出的数据库方向最高级别认证 ...
随机推荐
- PS 证件照换颜色
1.打开要修改的图片,然后先Ctrl+J备份一份 2.点击魔法棒,点击要换颜色的地方,如衣服,之后会出现虚线,如果自动选择的不全,可以按住Shift键自行选择区域 3.然后Shift+Fn+F5(由于 ...
- OpenSUSE 11 安装Qt5.0,失败,失败,失败,留个坑,以后来填,万一实现了呢
我又来无耻的写问题来了,这次还真的是没有解决,线留坑吧,万一以后实现了. 同样,这次也是以恶搞网友说听说想在open suse 上面安装5.0版本以后的Qt,自己折腾好几没有成功. 我一想,哎,这不是 ...
- tomcat部署项目,80端口被占,解决方案
第一个解决方案: 最大的可能:被System占了. 解决Windows Server 2008 System进程占用80端口 输入netstat -ano 可以看到80端口被PID4占用,于是打开任务 ...
- 【quick-cocos2d-lua】 基本类及用法
1.cc.Director(导演类) 获得导演类实例:local director = cc.Director : getInstance() 其中 cc 是Cocos2d-x Lua 类的命名空间 ...
- 【WXS】变量定义保留标识符
以下字符不能作为变量名称定义: delete void typeof null undefined NaN Infinity var if else true false require this f ...
- gitolite 丢失管理密钥/访问权限 解决办法
登录到服务器. 使用完整路径克隆管理员仓库: git clone $HOME/repositories/gitolite-admin.git temp cd gitolite-admin/conf v ...
- 6.azkban的监控
azkaban自带的监控flow自带的邮件功能SLA总结写程序监控job情况监控azkaban的元数据库使用azkaban API监控总结 azkaban自带的监控 azkban目前仅仅支持邮件监控, ...
- node包管理相关
切换npm数据源 镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 1.通过config命令 npm config set registry https ...
- VS2013运行C++报错:This function or variable may be unsafe. Consider using fopen_s instead.
在vs2013中运行时发生的关于方法调用的不安全错误. 1.更换方法,但是有些方法更改后参数不变,所以可能比较麻烦. 2.添加一条预处理器定义: 点击项目——>属性——>c/c++——&g ...
- MyEclipse2013使用总结
1.myeclipse10中怎样将建的包设置成树形结构或者并列结构. 右上边三角那里进去设置选第一个是显示完整的包名,第二个显示的是树形结构这种方法没效 2.从高版本到项目的低版本的MyEclipse ...