SQL簡單查詢:
select * from employees;
這種查詢語句的結構主要指的是從employees表中查詢出所需要的指令,但是這個是屬於SQL語句的
範疇。
SQL(Strunctured Query Language,結構化查詢語言)是一個功能強大的數據庫語言。SQL通常用於
與數據庫的通訊。ANSI(美國國家標準學會)聲稱,SQL是關係數據庫管理系統的標準語言。
oracle數據庫之所以發展的很好,主要也是因爲oracle是全世界最早採用SQL語句的數據庫產品。
SQL它可以分成幾種形式:
DML(Data Manipulation Language,數據操作語言) --用於檢索或者修改數據
DDL(Data Definition Language,數據定義語言) --用於定義數據的結構,如創建、修改或者刪
除數據對象
DCL(Data Control Language,數據控制語言) --用於定義數據庫用戶的權限
而簡單查詢指的是查詢出一張表中的所有的數據,簡單查詢的語法如下:
SELECT [DISTINCT] * |字段 [別名] [字段[別名]]
FROM 表名稱 [別名]
例子:查詢DEPARTMENTS表的全部記錄
SELECT * FROM departments;
例子:查詢出每個僱員的編號、名字、基本工資
SELECT employee_id,first_name,last_name,salary FROM employees;
例子:查詢出每個僱員職位
SELECT job FROM employees;
SQL> SELECT job_id FROM employees;
JOB_ID
----------
AC_ACCOUNT
AC_MGR
AD_ASST
AD_PRES
AD_VP
AD_VP
FI_ACCOUNT
FI_ACCOUNT
FI_ACCOUNT
FI_ACCOUNT
FI_ACCOUNT .
.
.
.
.
.
.
.
.
大家有沒有發現job內容中出現了重複的數據,那我們該怎麼處理呢?之所以我們會出現重複記錄
,可以使用我DISTINCT 消除重複記錄。
SELECT DISTINCT job_id FROM employees;
但是,對於重複數據,指的是一行的每個列的記錄都重複,才叫重複數據。
例子:查詢出每個僱員的姓名、職位
SQL> SELECT DISTINCT first_name,last_name,job_id from employees;
FIRST_NAME LAST_NAME JOB_ID
-------------------- ------------------------- ----------
Steven King AD_PRES
Diana Lorentz IT_PROG
Daniel Faviet FI_ACCOUNT
Guy Himuro PU_CLERK
Adam Fripp ST_MAN
Kevin Mourgos ST_MAN
Julia Nayer ST_CLERK
Jason Mallin ST_CLERK
Anthony Cabrio SH_CLERK
Timothy Gates SH_CLERK
Lex De Haan AD_VP
這時job_id的重複記錄有消失嗎?
在進行簡單查詢的操作之中,也可以使用各個數學的四則運算符。
例子:要求顯示每一個僱員的姓名、職位、基本年薪。
SELECT first_name,last_name,job_id,salary*12 FROM employees;
FIRST_NAME LAST_NAME JOB_ID SALARY*12
-------------------- ------------------------- ---------- ----------
Donald OConnell SH_CLERK 31200
Douglas Grant SH_CLERK 31200
Jennifer Whalen AD_ASST 52800
Michael Hartstein MK_MAN 156000
Pat Fay MK_REP 72000
Susan Mavris HR_REP 78000
Hermann Baer PR_REP 120000
Shelley Higgins AC_MGR 144000
William Gietz AC_ACCOUNT 99600
Steven King AD_PRES 288000
Neena Kochhar AD_VP 204000
在顯示列上顯示出SALARY*12,這樣不美觀我們可以加上個別名:
SELECT first_name,last_name,job_id,salary*12 income FROM employees;
SQL> SELECT first_name,last_name,job_id,salary*12 income FROM employees;
FIRST_NAME LAST_NAME JOB_ID INCOME
-------------------- ------------------------- ---------- ----------
Donald OConnell SH_CLERK 31200
Douglas Grant SH_CLERK 31200
Jennifer Whalen AD_ASST 52800
Michael Hartstein MK_MAN 156000
Pat Fay MK_REP 72000
Susan Mavris HR_REP 78000
Hermann Baer PR_REP 120000
Shelley Higgins AC_MGR 144000
William Gietz AC_ACCOUNT 99600
Steven King AD_PRES 288000
Neena Kochhar AD_VP 204000
但是這裏記住對於別名儘量不要使用“中文”。
例子:由於公司的福利很高,每個月都有300元的飯食補助以及100元的車費補貼,這時的年薪是多
少呢?
SQL> SELECT first_name,last_name,job_id,(salary+400)*12 income FROM employees;
FIRST_NAME LAST_NAME JOB_ID INCOME
-------------------- ------------------------- ---------- ----------
Donald OConnell SH_CLERK 36000
Douglas Grant SH_CLERK 36000
Jennifer Whalen AD_ASST 57600
Michael Hartstein MK_MAN 160800
Pat Fay MK_REP 76800
Susan Mavris HR_REP 82800
Hermann Baer PR_REP 124800
Shelley Higgins AC_MGR 148800
William Gietz AC_ACCOUNT 104400
Steven King AD_PRES 292800
Neena Kochhar AD_VP 208800
例子:公司每年的年底都會發一個月的基本工資
SQL> SELECT first_name,last_name,job_id,(salary+400)*12+salary income FROM employees;
FIRST_NAME LAST_NAME JOB_ID INCOME
-------------------- ------------------------- ---------- ----------
Donald OConnell SH_CLERK 38600
Douglas Grant SH_CLERK 38600
Jennifer Whalen AD_ASST 62000
Michael Hartstein MK_MAN 173800
Pat Fay MK_REP 82800
Susan Mavris HR_REP 89300
Hermann Baer PR_REP 134800
Shelley Higgins AC_MGR 160800
William Gietz AC_ACCOUNT 112700
Steven King AD_PRES 316800
Neena Kochhar AD_VP 225800
那麼在簡單查詢中,我們也可以使用“||”連接查詢的字段
SQL> SELECT employee_id ||','||first_name FROM employees;
EMPLOYEE_ID||','||FIRST_NAME
-------------------------------------------------------------
198,Donald
199,Douglas
200,Jennifer
201,Michael
202,Pat
203,Susan
204,Hermann
205,Shelley
206,William
100,Steven
101,Neena
由於“,”屬於原來輸出的字符串,所以必須使用“’”括起來,即:在SQL語句之中,“‘” 表
示的是字符串。
例子:要求現在的數據按照如下的格式顯示:
僱員編號爲:200的僱員,姓名是:Jennifer ,基本工資爲:4400,僱員職位爲:AD_ASST
現在相當於查詢:
SQL> SELECT '僱員編號爲:'||employee_id||',的僱員姓名是:'||first_name||' ,基本工資爲
:'||salary||',僱員職位爲:'||job_id||'!' FROM employees;
'僱員編號爲:'||EMPLOYEE_ID||',的僱員姓名是:'||FIRST_NAME||',基本工資爲:'||
SALARY||',僱員職螞爲:'||JOB_ID||'!'
--------------------------------------------------------------------------------------
-----------------------------------------------------------
僱員編號爲:198,的僱員姓名是:Donald ,基本工資爲:2600,僱員職位爲:SH_CLERK!
僱員編號爲:199,的僱員姓名是:Douglas ,基本工資爲:2600,僱員職位爲:SH_CLERK!
僱員編號爲:200,的僱員姓名是:Jennifer ,基本工資爲:4400,僱員職位爲:AD_ASST!
僱員編號爲:201,的僱員姓名是:Michael ,基本工資爲:13000,僱員職位爲:MK_MAN!
僱員編號爲:202,的僱員姓名是:Pat ,基本工資爲:6000,僱員職位爲:MK_REP!
僱員編號爲:203,的僱員姓名是:Susan ,基本工資爲:6500,僱員職位爲:HR_REP!
僱員編號爲:204,的僱員姓名是:Hermann ,基本工資爲:10000,僱員職位爲:PR_REP!
僱員編號爲:205,的僱員姓名是:Shelley ,基本工資爲:12000,僱員職位爲:AC_MGR!
僱員編號爲:206,的僱員姓名是:William ,基本工資爲:8300,僱員職位爲:AC_ACCOUNT!
僱員編號爲:100,的僱員姓名是:Steven ,基本工資爲:24000,僱員職位爲:AD_PRES!
僱員編號爲:101,的僱員姓名是:Neena ,基本工資爲:17000,僱員職位爲:AD_VP!
注意:只有在SELECT語句中才能使用“'”。