OCP培訓(xùn)課程:SQL之使用SELECT語(yǔ)句檢索數(shù)據(jù)
最新學(xué)訊:近期OCP認(rèn)證正在報(bào)名中,因考試人員較多請(qǐng)盡快報(bào)名獲取最近考試時(shí)間,報(bào)名費(fèi)用請(qǐng)聯(lián)系在線老師,甲骨文官方認(rèn)證,報(bào)名從速!
我要咨詢OCP培訓(xùn)課程:SQL之使用SELECT語(yǔ)句檢索數(shù)據(jù)
select語(yǔ)句有三個(gè)功能:投影、選擇和多表聯(lián)合,投影指選擇表的某些列,選擇指選擇表的某些行,多表聯(lián)合指從多張表獲取數(shù)據(jù)。這一章主要講投影的功能。

1、基本SELECT語(yǔ)句語(yǔ)法

包含select子句和from子句:
select子句列出要選擇的列,其中*表示選擇表中的所有列,distinct關(guān)鍵字表示去掉重復(fù)的列,多列之間使用逗號(hào)隔開,也可以使用表達(dá)式,可以為列或者表達(dá)式指定一個(gè)別名
from子句指明這些列來自于哪張表
例子:使用*選擇所有表中列
SQL> select * from departments;
例子:使用列名字選擇指定的列
SQL> select department_id,location_id from departments;
2、SQL語(yǔ)句的一些書寫規(guī)范
SQL語(yǔ)句不區(qū)分大小寫
SQL語(yǔ)句可以寫在一行,也可以跨行
關(guān)鍵字不能縮寫及跨行
子句一般單獨(dú)一行
可以使用縮進(jìn)提高可讀性
在SQL*PLUS中使用分號(hào)作為語(yǔ)句的結(jié)束
3、列的默認(rèn)顯示
在SQL Developer中:
列的對(duì)齊方式:居中
列頭顯示方式:大寫
在SQL*PLUS和PL/SQL Developer中:
字符和日期列左對(duì)齊
數(shù)字列右對(duì)齊
列頭顯示方式:大寫
4、算術(shù)表達(dá)式
使用算術(shù)運(yùn)算符創(chuàng)建表達(dá)式。

例子:使用+
SQL> SELECT last_name,salary,salary+300 from employees;
例子:使用*和+
SQL> SELECT last_name,salary,12*salary+100 from employees;
例子:使用括號(hào)改變運(yùn)算優(yōu)先級(jí)
SQL> SELECT last_name,salary,12*(salary+100) from employees;
5、null
null表示一個(gè)未知的值,既不是零也不是空格。
例子:查看人員表中的提成,其中有的人的提成為null
SQL> SELECT last_name,job_id,salary,commission_pct from employees;
null具有傳染性,也就是說null和任何值進(jìn)行運(yùn)算都為null。
例子:使用包含null的提成字段進(jìn)行算術(shù)運(yùn)算,結(jié)果也是null
SQL> select last_name,12*salary*commission_pct from employees;
6、定義列別名
前面的SQL語(yǔ)句一個(gè)列的名字為12*SALARY*COMMISSION_PCT,很長(zhǎng),我們可以使用一個(gè)有意義的簡(jiǎn)短別名來替代他,更易讀。
可以直接在列名字后面加上別名,也可以使用as關(guān)鍵字。
例子:使用as關(guān)鍵字加列別名以及直接加上列別名
SQL> select last_name as name,commission_pct comm from employees;
NAME COMM
------------------------- ----------
OConnell
別名和列名一樣,默認(rèn)都是以大寫顯示,如果別名包含空格,特殊字符或者不想使用大寫顯示,就需要加上雙引號(hào)。
例子:加上雙引號(hào)的別名
SQL> select last_name "Name",salary*12 "Annual Salary" from employees;
Name Annual Salary
------------------------- -------------
OConnell 31200
7、連接操作符||
Oracle中的連接操作符使用兩個(gè)豎杠表示,可以將列或者字符串與其他列連接起來,可以把多個(gè)字段連接成一個(gè)字段來顯示。
例子:2個(gè)字段連接成1個(gè)字段顯示
SQL> select last_name||job_id as "Employees" from employees;
Employees
-----------------------------------
AbelSA_REP
AndeSA_REP
AtkinsonST_CLERK
8、字變量
字變量是select語(yǔ)句中個(gè)一個(gè)字符,一個(gè)數(shù)字或者一個(gè)日期
日期和字符字變量的值必須使用單引號(hào)括起來
輸出的每一行都會(huì)顯示一次字變量字符
例子:使用單引號(hào)將字符字變量括起來,每一行都會(huì)顯示一次這個(gè)字變量
SQL> select last_name||' is a '||job_id as "Employee Details" from employees;
Employee Details
-----------------------------------------
Abel is a SA_REP
Ande is a SA_REP
Atkinson is a ST_CLERK
例子:把人員表某些數(shù)據(jù)轉(zhuǎn)換成insert語(yǔ)句,拷貝到其他數(shù)據(jù)庫(kù)去執(zhí)行,滿足臨時(shí)少量數(shù)據(jù)遷移的需求
SQL> select 'insert into employee(employee_id,last_name) values(' || employee_id || ',''' || last_name || ''');' as ttt from employees;
TTT
--------------------------------------------------------------------------------
insert into employee(employee_id,last_name) values(174,'Abel');
insert into employee(employee_id,last_name) values(166,'Ande');
這里如果要顯示字變量里面的單引號(hào),那就使用兩個(gè)單引號(hào),也可以使用q操作符,同時(shí)還需要加上分割符號(hào),可以是方框,問號(hào),小括號(hào),但是必須要配對(duì)。

例子:使用q操作符顯示字變量里面的單引號(hào)
SQL> select department_name||q'[,it's assigned Manager Id: ]'||manager_id AS "Department and Manager" from departments;
Department and Manager
--------------------------------------------------------------------------------
Administration,it's assigned Manager Id: 200
Marketing,it's assigned Manager Id: 201
這種方式平常用得少一些
9、使用distinct去掉重復(fù)的結(jié)果
使用select語(yǔ)句查詢的結(jié)果默認(rèn)顯示所有的行,包括重復(fù)的行,可以使用distinct關(guān)鍵字去重。
例子:對(duì)比不使用與使用distinct的結(jié)果
SQL> select department_id from employees;
DEPARTMENT_ID
-------------
50
不使用distinct,結(jié)果有107行
SQL> select distinct department_id from employees;
DEPARTMENT_ID
-------------
100
使用distinct,結(jié)果只有12行
例子:distinct后面跟多個(gè)字段,表示多個(gè)字段聯(lián)合起來唯一
SQL> select distinct department_id,manager_id from employees;
DEPARTMENT_ID MANAGER_ID
------------- ----------
40 101
10、SQL開發(fā)環(huán)境
我們平常用得更多的SQL開發(fā)環(huán)境是PL/SQL Developer,這里介紹了Oracle自己的SQL Developer,我們簡(jiǎn)單看一下。
首先啟動(dòng)SQL Developer。
[root@oracletest1 ~]# su - oracle
[oracle@oracletest1 ~]$ export DISPLAY=192.168.230.1:0.0
[oracle@oracletest1 ~]$ cd /u01/app/oracle/product/11.2.0/dbhome_1/sqldeveloper/
[oracle@oracletest1 sqldeveloper]$ ./sqldeveloper.sh
新建連接。

輸入連接名稱、用戶名、密碼、服務(wù)器地址、端口及SID,點(diǎn)擊“Test”,測(cè)試成功,點(diǎn)擊“Connect”,進(jìn)行連接。

就可以看到相關(guān)對(duì)象了。

這個(gè)SQL Developer功能和PL/SQL Developer差不多,平時(shí)用得也比較少,就不多講了。
- 冉乃綱-老師CUUG金牌講師
- 冉老師 CUUG金牌講師 Oracle及RedHat高級(jí)講師、Unix/Linux 資深專家...[詳細(xì)了解老師]

- 陳衛(wèi)星-老師CUUG金牌講師
- 陳老師 CUUG金牌講師 精通Oracle管理、備份恢復(fù)、性能優(yōu)化 11年Ora...[詳細(xì)了解老師]
