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


转载于:https://blog.51cto.com/atxstrom/886289