1. oracle軟件介紹 SQL Plus :是oracle的一個(gè)客戶端,。 Sql Plus(客戶端),,命令行直接輸入:sqlplus,然后按提示輸入用戶名,,密碼,。 從開始程序運(yùn)行:sqlplus,是圖形版的sqlplus. Toad:管理,, PlSql Developer: 更改用戶 sqlplus sys/bjsxt as sysdba alter user scott account unlock;(解鎖scott用戶,,不解鎖不能用) system、sys,、scott,,當(dāng)中system和sys的差別在與是否能創(chuàng)建數(shù)據(jù)庫(kù),sys用戶登錄才干夠創(chuàng)建數(shù)據(jù)庫(kù),,而scott是給剛開始學(xué)習(xí)的人學(xué)習(xí)的用戶,。學(xué)習(xí)者能夠用Scott登錄系統(tǒng),注意scott用戶登錄后,,就能夠使用Oracle提供的數(shù)據(jù)庫(kù)和數(shù)據(jù)表,,這些都是oracle提供的,。學(xué)習(xí)者不須要自己創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表,直接使用這些數(shù)據(jù)庫(kù)和數(shù)據(jù)表練習(xí)SQL,。 2. sql語言在大多數(shù)的數(shù)據(jù)庫(kù)系統(tǒng)上都通用.例如oracle,mysql等等. 3. 有4類需要學(xué)習(xí):查詢語句,dml語句,ddl語句,事物控制語句. 查詢語句里面只有一句話:select語句.( ******最重要):從表里面把數(shù)據(jù)選出來. Dml語句:數(shù)據(jù)操作語言,用來操作數(shù)據(jù)的 Ddl語句:數(shù)據(jù)定義語句. 4. Desc name:描述一下name這張表 Select * from 表名; 把這里面的數(shù)據(jù)都取出來.其中”;”表示結(jié)束. 計(jì)算數(shù)據(jù)可以用空表:比如:.select 2*3 from dual ,dual是系統(tǒng)專門提供的空表以用來計(jì)算純數(shù)據(jù)的計(jì)算,。 Select sysdate from dual; 取得當(dāng)前系統(tǒng)的時(shí)間,。 select ename,sal*12 annual_sal from emp;與select ename,sal*12 "annual sal" from emp;區(qū)別,,加雙引號(hào)保持原大小寫。不加全變大寫,。黑體字是別名,。 字符串連接符”||”,相當(dāng)于java中的”+”.將兩個(gè)字符串連接在一起. 字符串的表示:兩個(gè)單引號(hào)引起來的一大串字符(‘a(chǎn)hfjfsihf’). select ename || ‘a(chǎn)bcd’’ahhfdjsh’ 如果連接字符串中含有單引號(hào),用兩個(gè)單引號(hào)代替一個(gè)單引號(hào),。(結(jié)果:abcd’ ahhfdjsh) “0”和”null”不同,null是表示空值,連0都沒有. 任何含有null的表達(dá)式最后的結(jié)果都是空值. 5. select distinct deptno from emp; ---將emp表中deptno字段相同的去掉 select distinct deptno,,job from emp; ---包含兩個(gè)字段的,即將這兩個(gè)字段的組合,,重復(fù)的給去掉,。更多的項(xiàng),就是這么多項(xiàng)的組合的不重復(fù)組合,。 6. Where 過濾條件,,能過濾一些相關(guān)的記錄。 select * from 表名 where 字段 =10; select * from emp where deptno <>10; 表示“不等于10 ” select * from emp where ename ='bike'; select ename,sal from emp where sal between 800 and 1500 (>=800 and <=1500);兩種寫法都可以,。 空值處理:select ename,sal,comm from emp where comm is (not) null; select ename,sal,comm from emp where ename ( not)in ('smith','king','abc'); 或者 select ename from emp where ename like '_A%'; “_”代表一個(gè)字母, “%”代表0個(gè)或多個(gè)字母. 如果想要查詢的字段中含有%,, 可用轉(zhuǎn)義字符“\%”. 轉(zhuǎn)義字符默認(rèn)的是反斜杠“\”。 如果定義轉(zhuǎn)義字符可以用escape '$',,比如:select ename from emp where ename like '%$a%' escape '$'; 這里指的 $ 是轉(zhuǎn)義字符,。 7. 排序 Select * from表名 order by 字段 desc(降序); (默認(rèn):升序(asc)) select ename,sal,deptno from emp order by deptno asc,ename desc; 此處的意思不是組合,而是先按著deptno進(jìn)行排序,,如果其中deptno有相同的情況下,內(nèi)部再按著ename進(jìn)行排序,。 8. sql函數(shù) select ename,sal*12 annual_sal from emp where ename not like '_A%' and sal>800 order by sal desc; select lower(ename) from emp; 轉(zhuǎn)換成小寫,。 select ename from emp where lower(ename) like '_a%';(先把name都轉(zhuǎn)換為小寫,然后看看第二個(gè)字母是不是a)等同于:select ename from emp where ename like '_a%' or ename like '_A%'; select substr(ename,2,3) from emp;從第二字符截,一共截三個(gè)字符. select chr(65) from dual 結(jié)果為:A(將一個(gè)ascii碼轉(zhuǎn)換為字母) select ascii('a') from dual 結(jié)果為:65 select round(23.652,1) from dual; 結(jié)果為: 23.7 (四舍五入) select round(23.652,-1) from dual; 20(四舍五入到十位數(shù)) 將數(shù)字或者日期轉(zhuǎn)換為某種類型的格式:to_char select to_char(sal,'$99,,999,,999') from emp;(千分位符號(hào),三位一個(gè)“,,” 9代表的就是一位數(shù)字) select to_char(sal,'L99_999_999') from emp;人民幣符號(hào),L:代表本地符號(hào) 但是注意:這里面是9的話,,如果“,”前面沒有,,則不顯示,。但是若換成0的話,,則若前面沒有,則會(huì)自動(dòng)填上0對(duì)齊,。 這個(gè)需要掌握牢:date類型既包含日期,,也包含時(shí)間,包括分,,秒等,。 select birthdate from emp; 顯示為: BIRTHDATE ---------------- 17-12月-80 ---------------- 改為: select to_char(birthdate,'YYYY-MM-DD HH:MI:SS') from emp; 顯示: BIRTHDATE ------------------- 1980-12-17 12:00:00 ------------------- select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; //也可以改為:HH12 TO_CHAR(SYSDATE,'YY ------------------- 2007-02-25 14:46:14 |
|