SQL簡單查詢

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語句中才能使用“'”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章