無(wú)論是B/C 架構(gòu)還是B/S架構(gòu)的軟件或系統(tǒng),都離不開(kāi)數(shù)據(jù)庫(kù)的存儲(chǔ),同時(shí)也少不數(shù)據(jù)的增冊(cè)改查操作,數(shù)據(jù)庫(kù)的查詢(xún)語(yǔ)句好與壞也決定著程序是否足夠優(yōu)化的標(biāo)準(zhǔn)之一,在此南昌網(wǎng)絡(luò)公司百恒網(wǎng)絡(luò)數(shù)據(jù)庫(kù)開(kāi)發(fā)工程師先向大家介紹一些基本的數(shù)據(jù)查詢(xún)和設(shè)置操作,以后會(huì)進(jìn)一步深學(xué)分享一些優(yōu)秀的查詢(xún)語(yǔ)句以便大家在工作上用得上,順便說(shuō)下,SQL> 這是本地操作的提示符,實(shí)際應(yīng)用時(shí)是不要此標(biāo)簽 。
1.SQL局部變量的定義和使用
創(chuàng)建一個(gè)@myvar變量,然后將一個(gè)字符串值放在變量中,輸出@myvar變量的值。
DECLARE @myvar char(10)
SELECT @myvar = '變量測(cè)試'
SELECT @myvar
GO
2.通過(guò)查詢(xún)給T-SQL變量賦值
USE test
GO
DECLARE @rows int
SET @rows = (SELECT COUNT(*) FROM sc)
SQL全局變量的定義和使用
3.顯示到當(dāng)前日期和時(shí)間為止試圖登錄SQL Server的次數(shù)。
SELECT GETDATE()AS '當(dāng)前時(shí)間',@@CONNECTIONS AS '登錄次數(shù)'
4.SQL*Plus命令綁定變量操作
VARIABLE job1 CHAR
EXECUTE :job1 :='CLERK'
SELECT * FROM EMP WHERE JOB=:JOB1;
PRINT job1
5.顯示行和頁(yè)變量的大小
SQL> SHOW linesize pagesize
6.查看回收站
使用SHOW recyclebin命令可查看回收站的內(nèi)容,一般來(lái)說(shuō),此項(xiàng)操作是在執(zhí)行清除(purge)回收站或閃回(flashback)恢復(fù)之前執(zhí)行的。
SQL>SHOW recyclebin
7.設(shè)置每行顯示80字符,每頁(yè)顯示26行
SQL> SET linesize 80 pagesize 26
8.設(shè)置數(shù)據(jù)自動(dòng)提交
SQL> SET AUTOCOMMIT on
SQL> SHOW AUTOCOMMIT
autocommit IMMEDIATE
9.設(shè)置“&”字符的輸入
在SQL*Plus默認(rèn)環(huán)境里會(huì)把'&字符'當(dāng)成變量來(lái)處理,有些時(shí)候也需要在SQL>的符號(hào)下輸入'&字符',只需要改變SQL*Plus下一個(gè)環(huán)境變量define即可。
查看當(dāng)前SQL*Plus的define狀態(tài):
SQL> SHOW define;
把默認(rèn)的&綁定變量的功能取消,可以把'&字符'當(dāng)成普通字符處理。
SQL> SET define off;
打開(kāi)&綁定變量的功能,&后面的字符串當(dāng)做變量使用。
SQL> SET define on;
10.設(shè)置列之間的分隔符
SQL> SHOW COLSEP
colsep " "
SQL> SET COLSEP |
SQL> SHOW COLSEP
colsep "|"
SQL>
11.設(shè)置是否顯示列標(biāo)題
SQL> SET heading off
SQL> show heading
heading OFF
SQL> SET heading on
12.設(shè)置命令提示符
SQL>SET sqlprompt SQL*PLUS>
SQL*PLUS>
13.設(shè)置系統(tǒng)時(shí)間顯示
SQL*PLUS>SET time on
10:36:35 SQL*PLUS>
14.把設(shè)置好的SQL環(huán)境變量值全部保存在一個(gè)腳本文件里
10:36:35 SQL*PLUS>STORE SET e:sqlsqlset.sql
Created file e:sqlsqlset.sql
15.按工資和崗位條件查找雇員信息
ACCEPT job1 CHAR PROMPT '請(qǐng)輸入要統(tǒng)計(jì)的工作職位名稱(chēng):' HIDE
ACCEPT salary NUMBER PROMPT '請(qǐng)輸入要統(tǒng)計(jì)的最低工資數(shù):'
PROMPT 按任一鍵繼續(xù)
PAUSE
SELECT * FROM BaiHeng_db WHERE job LIKE '&job1'+'%' AND sal>=&salary
16.數(shù)據(jù)表復(fù)制
①使用using子句指定一個(gè)查詢(xún),將其查詢(xún)結(jié)果數(shù)據(jù)復(fù)制到本地?cái)?shù)據(jù)庫(kù)的當(dāng)前模式下BaiHeng_dbloyee表中。例如:
copy from hr/hrd@rensh replace BaiHeng_dbloyee using SELECT last_name,salary from BaiHeng_db_details_view where department_id=30
②使用create命令從一個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)復(fù)制數(shù)據(jù)到本地?cái)?shù)據(jù)庫(kù)。
copy from hr/@bostondb create BaiHeng_dbcopy using SELECT*from hr
③為其他用戶(hù)復(fù)制數(shù)據(jù)。
copy from hr/hr@dbora create job using SELECT*from renbs.jobs
④以用戶(hù)hr的身份連接到數(shù)據(jù)庫(kù)dbora,將renbs模式的jobs表復(fù)制到本地?cái)?shù)據(jù)庫(kù)。
在同一個(gè)數(shù)據(jù)庫(kù)中可將一個(gè)模式的表復(fù)制到另一個(gè)模式中。同樣必須指定用戶(hù)口令和數(shù)據(jù)庫(kù)服務(wù)名。
copy from hr/password@mydatabase insert BaiHeng_dbloyee_copy2 using SELECT*from BaiHeng_dbloyee_copy
⑤在同一個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)中復(fù)制表,必須使關(guān)鍵字from和to中包含相同用戶(hù)名和數(shù)據(jù)庫(kù)服務(wù)名。
copy from hr/password@daliandb to hr/password@daliandb insert BaiHeng_dbloyee_copy2-
using SELECT*from BaiHeng_dbloyee_copy
17.Oracle的FORMAT用法
SQL> COLUMN DEPTNO JUSTIFY CENTER FORMAT A15;
SQL> SELECT * FROM dept;
DEPTNO DNAME LOC
------ --------- --------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
18.Oracle的BREAK用法
SELECT * FROM BaiHeng_db WHERE SAL>=1500 ORDER BY deptno
19.Oracle的COMPUTE用法
按部門(mén)統(tǒng)計(jì)工資情況并生成報(bào)表:
SQL>BREAK ON REPORT
SQL>COMPUTE sum LABEL小計(jì):OF sal ON REPORT;
本文僅限內(nèi)部技術(shù)人員學(xué)習(xí)交流,不得作于其他商業(yè)用途.希望此文對(duì)廣技人員有所幫助。原創(chuàng)文章出自:南昌網(wǎng)站建設(shè)公司-百恒網(wǎng)絡(luò) http: //www.myforexfactory.net 如轉(zhuǎn)載請(qǐng)注明出處!