MERGE
SQL> select *from orders_master; ORDER_ID ORDER_TOTAL---------- ----------- 1 1000 2 2000 3 3000 4SQL> select *from monthly_orders; ORDER_ID ORDER_TOTAL---------- ----------- 2 2500 3SQL> MERGE INTO orders_master o //目标 2 USING monthly_orders m //源 3 ON (o.order_id = m.order_id) //对比的值 4 WHEN MATCHED THEN //如匹配 5 UPDATE SET o.order_total = m.order_total // 将源的值 更新 到目标 6 DELETE WHER
media&instance-recovery
106.ff A tablespace, tbs_1, offline with the immediate option //offline (normal|temporary|immediate) offline immediate将buffer中的数据不写入就立即关闭。需要备份文件+archivelog+redolog 而instance recovery 不需要备份就可自动恢复的。redolog +undo。 SMON进程实现。D. If the above operation were successful, media recovery would be required to bring the tablespace online.[@more@]
having
在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句 限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询 结果。 在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚组函数 select max(sal),job emp group by job; (注意max(sal),job的job并非一定要出现,但有意义) 查询语句的select 和group by ,having 子句是聚组函数唯一出现的
group by
-------------所用表-----------------SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- -------------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-12月-80 800 20 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 50
GROUPING
GROUPING函数可以接受一列,返回0或者1。如果列值为空,那么GROUPING()返回1;如果列值非空,那么返回0。GROUPING只能在使用ROLLUP或CUBE的查询中使用。当需要在返回空值的地方显示某个值时,GROUPING()就非常有用。1、在ROLLUP中对单列使用GROUPING()SQL> select division_id,sum(salary) 2 from employees2 3 group by rollup(division_id) 4 order by division_id;DIV SUM(SALARY)--- -----------BUS 1610000OPE 1320000SAL 4936000SUP 1015000 8881000加上GROUPING来看看SQL> select grouping(div
foreign key
SQL> create table a (a int);表已创建。SQL> create table b (b int);表已创建。SQL> select * from a; A---------- 1 2SQL> select * from b; B---------- 1 2SQL> alter table a add constraint pk_a primary key (a);表已更改。SQL> alter table b add constraint fk_b foreign key (b) references a (a) on delete cascade;表已更改。 //references 后面的是爸爸============================================================SQL> delete from a where rown
DML-DDL-DQL-DCL
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。1 数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>2 数据操纵语言数据操纵语言DML主要有三种形式:1) 插入:INSERT2) 更新:UPDATE3) 删除:DELETE3 数据定义语言DDL数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等如:CREATE TABLE/VIEW/INDEX/SYN/CLUSTER| | | | |表 视图 索引 同义词 簇4
default
SQL> create table a88 (id int,sys_date date default sysdate);表已创建。SQL> insert into a88 values(1);insert into a88 values(1) *第 1 行出现错误:ORA-00947: 没有足够的值SQL> desc a88; 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- ID NUMBER(38) SYS_DATE DATESQL> select sysdate from dual;SYSDATE---
connect by prior
select ... from tablename where 条件3start with 条件1connect by 条件2简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段:org_id,parent_id那么通过表示每一条记录的parent是谁,就可以形成一个树状结构。用上述语法的查询可以取得这棵树的所有记录。其中:条件1 是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。条件2 是连接条件,其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR org_id = parent_id就是说上一条记录的org_id 是本条记录的parent_id,即本记录的父亲是上一条记录。
alias的使用
不可; having可 ; order by group by[@more@]
foobar转换格式时,输出文件的文件名更详细!
名称格式,使用如下参数;$caps(%genre% %artist% - %album%)$num(%tracknumber%,2) $caps(%title%) [@more@]
group by rollup & grouping
-------------所用表-----------------SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- -------------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-12月-80 800 20 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 50
登录FTP后,一看啥也没有。
FTP-SERVER-软件:Filezilla server客户端登录有,显示 空目录列表,啥也没有。查看共享的目录,只有一个管理员账号 ,添加SYSTEM 账号勾选全部权限选项。让Filezilla Server 有SYSTEM 的权限访问该目录。再次登录,正常。[@more@]
RH5 安装ORACLE 10G 出错 1,libXp.so.6: cannot open 2,libXt.so.6: cannot open
错误一: /tmp/OraInstall2007-12-30_02-16-11PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory occurred.. 原因是:缺少支持打印的图形化动态链接库libXp.so.6 这个错误是由于缺少系统安装包,在RHEL5以前的版本,可以安装xorg-x11-deprecated-libs包即可,这个安装包可以在系统光盘第三张盘中找到(对于redhat as4.2以前,redhat as4.4是在第四张安装光盘) 我下载的文件如下: xorg-x11-deprecated-libs-6.8.2-31.i386.rpm 本人RH5非正版,先mount RH5的安装盘,使用fin
清空swap空间
清空swap空间 swapoff -a swapon -a[@more@]
lvm 在线拓展 / 目录的大小
/目录 剩余706M [root@jjkk ~]# df -h文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/bg0-LogVol00 4.8G 3.8G 706M 85% //dev/sda1 99M 12M 82M 13% /boottmpfs 773M 0 773M 0% /dev/shm 查看 VG中PE的使用情况,[root@jjkk ~]# vgdisplay --- Volume group --- VG Name bg0 System ID Format lvm2 Metadata Areas 5 Metadata Sequence No 3 VG Access read/write VG Sta
Red Hat Package Manager(简称RPM) 的使用
Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的. 1.在安装之前,查看软件包里有什么内容: rpm -qpi Linux-1.4-6.i368.rpm 系统将会列出这个软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。 2.自定义安装,查看软件包将会在系统里安装哪些部分: rpm -qpl Linux-1.4-6.i368.rpm 3在安装过程中,若系统提示此软件已安装过或因其他原因无法继续安装,但若我们确实想执行安装命令,可以在 -ivh后加一参数“-replacepkgs”: rpm -ivh -replacepkgs Li
--SSH 拥有777权限,和SSH连上主机,登录后自动断开连接的问题。
当你 赋予 SSH 这个程序的文件的权限,为 777时,你会发现。你使用SSH无法连接到你的linux 主机了。本地登录后,你查看日志,会发现。她会你告诉你,你给他的权限太大。不安全。还有一种现象,你通过ssh连接主机,会发现,登录后,立马自动断开了。这种是由于 SSH所在的“/” 没有空闲空间了。这时,只有使用本地登录方式,删除不要的文件,清理出空间。如果是LVM的,并且还有空闲的PE,那就在线扩展空间。没有FREE PE 那就只有增加硬盘了。[@more@]
使用 SecureCRT连接 linux 主机,会有乱码现象
使用 SecureCRT连接 linux 主机,会有乱码现象,比如执行 setup 命令。解决办法;1,登录到linuxENV 查看环境变量。 LANG=en_US.UTF-82,修改 SecureCRT修改 SecureCRT 的配置 --- 外观 --- 字符编码 选择 UTF-8 总结;Linux说法语,你的代言人securecrt 说中文,那你肯定要乱码了。所以字符编码选择 只要保证与 你欲连接的 系统的 ENV 是一致的,就可以正确解码了。[@more@]
/dev 下的 MAKEDEV
# man MAKEDEV MAKEDEV(8) Linux Programmer’s Manual MAKEDEV(8)NAME MAKEDEV - create devicesSYNOPSIS /sbin/MAKEDEV -V /sbin/MAKEDEV [ -d directory ] [ -D directory ] [ -c configdir ] [ -m maxdevices ] [-a] [-n] [-v] [-i] [-M] [-S] [-u] [-x] device ...DESCRIPTION MAKEDEV is a program that will create the devices in /dev used to interface with drivers in the kernel. Note that programs giving the error ‘‘E