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