2010年9月18日
2009年6月29日
2008年7月4日
<script language="JavaScript">
<!--
function ShowSize(files)
{
var fso,f;
fso=new ActiveXObject("Scripting.FileSystemObject");
f=fso.GetFile(files);
var fileSize = f.size ;
if((fileSize/1024) < 1024){
alert(fileSize/1024+"K");
}else if( ((fileSize/1024) > 1024) && ((fileSize/(1024*1024)) < 1024)){
alert(fileSize/(1024*1024)+"M");
}else{
alert(fileSize/(1024*1024*1024)+"G")
}
}
//-->
</script>
2008年6月18日
最近在項(xiàng)目中使用Sybase,發(fā)現(xiàn)數(shù)據(jù)庫(kù)日志滿了,所以在網(wǎng)上淘了兩條語(yǔ)句,拿出來(lái)貼一下,
1.打開(kāi)查詢分析器,輸入命令
DUMP TRANSACTION 數(shù)據(jù)庫(kù)名 WITH NO_LOG
2.再打開(kāi)企業(yè)管理器--右鍵你要壓縮的數(shù)據(jù)庫(kù)--所有任務(wù)--收縮數(shù)據(jù)庫(kù)--收縮文件--選擇日志文件--在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了。
清除Log有兩種方法:
1.自動(dòng)清除法
開(kāi)放數(shù)據(jù)庫(kù)選項(xiàng) Trunc Log on Chkpt,使數(shù)據(jù)庫(kù)系統(tǒng)每隔一段時(shí)間自動(dòng)清除Log。此方法的優(yōu)點(diǎn)是無(wú)須人工干預(yù),由SQL Server自動(dòng)執(zhí)行,并且一般不會(huì)出現(xiàn)Log溢滿的情況;缺點(diǎn)是只清除Log而不做備份。
2.手動(dòng)清除法
執(zhí)行命令“dump transaction”來(lái)清除Log。以下兩條命令都可以清除日志:
dump transaction with truncate_only
dump transaction with no_log
通常刪除事務(wù)日志中不活躍的部分可使用“dump transaction with trancate_only”命令,這條命令寫進(jìn)事務(wù)日志時(shí),還要做必要的并發(fā)性檢查。SYBASE提供“dump transaction with no_log”來(lái)處理某些非常緊迫的情況,使用這條命令有很大的危險(xiǎn)性,SQL Server會(huì)彈出一條警告信息。為了盡量確保數(shù)據(jù)庫(kù)的一致性,你應(yīng)將它作為“最后一招”。
以上兩種方法只??清除日志,而不做日志備份,若想備份日志,應(yīng)執(zhí)行“dump transaction database_name to dumpdevice”命令。
PS:附一個(gè)更好的方法
先分離數(shù)據(jù)庫(kù)后,直接刪除日志以后,再在查詢分析器里用
exec sp_attach_single_file_db '數(shù)據(jù)庫(kù)名', '.mdf文件路徑'
命令附加數(shù)據(jù)庫(kù)。 OVER.在別的地方看到的 不錯(cuò)。
2008年4月28日
最近去面試了兩家比較大的公司,感覺(jué)自己在SQL上還有欠缺,有些地方需要進(jìn)行加強(qiáng),所以找了些SQL的資料來(lái)看,現(xiàn)在在這里把它貼出來(lái),希望對(duì)大家能有用。
/Files/awed/1-5.rar
/Files/awed/6-13.rar
2008年4月22日
摘要: //是否為空校驗(yàn)
function isEmpty(s) {
var lll=trim(s);
if( lll == null || lll.length == 0 )
&n...
閱讀全文
摘要: 最近公司要求做一個(gè)WEB端的服務(wù)器實(shí)時(shí)流量利用率監(jiān)控曲線!
具體做法是后臺(tái)采用SNMP4J采集服務(wù)器流量,前臺(tái)采用DWR調(diào)用后臺(tái)Bean得到數(shù)據(jù),然后利用VML顯示曲線。
1、DWR配置,先把DWR.jar加入到WEB-INF/lib下。
在web.xml下加入如下片段:
<servlet>
&nbs...
閱讀全文
2008年4月18日
08-4-17下午和晚上
--having 對(duì)分組進(jìn)行限制,
--查詢按部門分組統(tǒng)計(jì)平均工資大于2000的部門
select round(avg(sal),2),deptno from emp group by deptno having avg(sal) >2000

--子查詢,在一個(gè)查詢中包含另一個(gè)查詢

--查詢員工工資大于所有員工平均工資的員工
select ename,sal from emp where sal > (select avg(sal) from emp)

--查詢各部門中工資最高的員工
select A.ename,A.sal,A.Deptno from emp A
join
(select max(sal) maxsal,deptno from emp group by deptno) B
on (A.Deptno=B.deptno and A.sal=B.maxsal)

--查詢各部門中工資最高的員工,和其工資等級(jí)
select C.ename,C.sal,D.grade,C.Deptno from salgrade D
join
(select A.ename,A.sal,A.Deptno from emp A
join
(select max(sal) maxsal,deptno from emp group by deptno) B
on (A.Deptno=B.deptno and A.sal=B.maxsal)) C
on (C.sal between D.LOSAL and D.HISAL)

--查詢員工的名稱,工資及工資等級(jí)
select ename,sal, grade from emp A, salgrade B where (A.Sal between B.losal and B.hisal)

--查詢所有員工的名稱和其經(jīng)理的名稱
select A.empno,A.ename, B.ename as marname from emp A,emp B where A.mgr=B.empno

--查詢員工的姓名和其所在部門的名稱
select ename,dname from emp a,dept b where a.deptno=b.deptno
select ename,dname from emp a join dept b on a.deptno=b.deptno

--左連接,即當(dāng)左邊表沒(méi)有與右邊表匹配的時(shí)候,顯示左表的全部數(shù)據(jù)
select A.empno,A.ename, B.ename as marname from emp A
left join emp B on A.mgr=B.empno

--右連接,即當(dāng)左邊表沒(méi)有與右邊表匹配的時(shí)候,顯示右表的全部數(shù)據(jù)
select A.empno,A.ename, B.dname from emp A
right join dept B on A.deptno=B.deptno

--求所有員工的平均薪水等級(jí)
select avg(C.grade) from
(select A.Empno,A.Ename,A.Sal,A.Deptno,B.grade from emp A
join salgrade B on A.Sal between B.losal and B.hisal) C

--查詢所有員工中,為經(jīng)理人的名稱
select ename from emp where empno in(select distinct mgr from emp)


--比普通員工薪水還要高的經(jīng)理人
select ename from emp where empno in (select distinct mgr from emp where mgr is not null)
and sal >
(select max(sal) from emp where empno not in
(select distinct mgr from emp where mgr is not null)--所有經(jīng)理人的編號(hào)
)
--比較效率
select * from emp where deptno=10 and ename like '%A%';
--第一條高于第二條,當(dāng)?shù)谝粋€(gè)條件不合適的時(shí)候就不用去核對(duì)第二個(gè)條件,而第一個(gè)條件較小所以會(huì)快些
select * from emp where ename like '%A%' and deptno=10
--創(chuàng)建表語(yǔ)句 create
orcal常用的類型有

非空約束:NOT NULL
唯一約束:UNIQUE
主鍵約束:PRIMARY KEY
外建約束:REFERENCES 外鍵約束被參考字段必須為主鍵
如:
CREATE TABLE CLASS(ID NUMBER(8) PRIMARY KEY,NAME VARCHAR2(20) NOT NULL)
CREATE TABLE STUDENT (
ID NUMBER(8) PRIMARY KEY,
CLASS NUMBER(8) NOT NULL REFERENCES CLASS(ID),--增加了一個(gè)外鍵約束,關(guān)鏈CLASS表的ID
NAME VARCHAR2(20) NOT NULL
)
也可以這樣寫
CREATE TABLE STUDENT (
ID NUMBER(8) NOT NULL,
CLASS NUMBER(8) NOT NULL,
NAME VARCHAR2(20) NOT NULL,
CONSTRAINT S_ID_PK PRIMARY KEY(ID),
CONSTRAINT S_C_RE FOREIGN KEY (CLASS) REFERENCES CLASS(ID)
)

明天需要弄清楚的事:
如何在WEBLOGIC9上建立數(shù)據(jù)源

在建表時(shí)跟在字段后的約束為字段級(jí)約束,建完字段后使用CONSTRAINT建立的約束為表
級(jí)約束,可以給約束創(chuàng)建約束名。

CONSTRAINT 增加表級(jí)約束

如:增加約束,不能同時(shí)出現(xiàn)NAME,ADDRESS,AGE相同的數(shù)據(jù)
CREATE TABLE TEST (
NAME VARCHAR2(20) NOT NULL,
ADDRESS VARCHAR2(128),
AGE NUMBER(2),
CONSTRAINT NAME_ADD_AGE_UNI QNIQUE (NAME,ADDRESS,AGE)
)


2008年4月17日
2008-4-17上午
練習(xí)中所使用的表全為ORACLE安裝時(shí)所表的數(shù)據(jù)及表。
-- distinct 去掉重復(fù)的記錄
select distinct deptno,ename,sal from emp ;
--substr(str,start,len),截取字符串,STR需要截取的字符串或列,START為從第幾個(gè)字符開(kāi)始,LEN截取多長(zhǎng)
select substr(ENAME,2,2) from emp order by deptno asc,ename desc;
select chr(65) from dual; --將一個(gè)數(shù)轉(zhuǎn)換為字符
select ascii('A') from dual;--求一個(gè)數(shù)的ASCII碼
select round(23.652) from dual ;--四舍五入
select round(23.45902234,2) from dual;--四舍五入,后點(diǎn)小數(shù)2位
select to_char(sal,'$99,999.9999') from emp ;
--將一個(gè)數(shù)轉(zhuǎn)換為字符串并按某種格式,
--其中一個(gè)9代表一個(gè)數(shù)字,如果不夠位數(shù)取后面位,


select to_char(sal,'L99,999.9999') from emp ;--前面加上L,即Local加上本地字符串
select to_char(hiredate,'yyyy-mm-dd HH:mm:ss') from emp;
select to_char(sysdate,'yyyy-mm-dd hh24:mm:ss') today from dual ;
--日期轉(zhuǎn)換函數(shù)to_date(str1,str2) str1需要轉(zhuǎn)換的字符串,str2為轉(zhuǎn)換成什么格式
select * from emp where hiredate > to_date('1981-02-01','yyyy-mm-dd')
--將字符串轉(zhuǎn)換為數(shù)字to_number(str1,str2)str1需要轉(zhuǎn)換的字符串,str2為轉(zhuǎn)換成什么格式
select sal from emp where sal > to_number('$1,220.00','$99,999.9999')
--NULL情況處理,使用nvl(str1,str2),str1為需要處理的列,STR2為為空時(shí)默認(rèn)的值,如果為空時(shí)則為0,不為NULL時(shí)則直接為comm
select ename,nvl(comm,0) comm from emp ;
--四入五入到幾位,
select round(max(sal),2) 最大工資,round(min(sal),2) 最小工資,round(avg(sal),2) 平均工資 from emp ;
--將數(shù)字轉(zhuǎn)換為某種格式的字符串
select to_char(max(sal),'L9,999.99') 最大工資,to_char(min(sal),'L9,999.99') 最小工資,to_char(avg(sal),'L9,999.99') 平均工資 from emp ;
--group by分組查詢
select sal,deptno from emp group by deptno,sal;
--求所有員工中單個(gè)部門工資最高的員工所有信息
select A.* from emp A
inner join
(select deptno, max(sal) as total from emp group by deptno) B
on A.Deptno=B.deptno and A.Sal=B.total

2007年12月12日