Oracle(plsql)学习四——select查询语句

Oracle(plsql)学习四——select查询语句

Oracle(plsql)学习四——select查询语句

本文以该表作为示例:

Create table employees

(id number(3),

first_name varchar2(10),

Last_name varchar2(10),

User_id varchar2(10),

Salary number(5)

department_id number(3)

job_id number(3)

hire_date date);

注意:!!!

SQL 语言大小写不敏感

SQL 可以写在一行或者多行

关键字不能被缩写也不能分行

各子句一般要分行写

使用缩进提高语句的可读性。

1、查询emp表所有列

select * from employees;

2、选择特定的列

select id,salary from employees;

3、使用算数运算符查询

数字和日期使用的算术运算符:+、-、*、/ (加减乘除)

select last_name, salary, salary + 300

from employees;

空值是无效的,未指定的,未知的或不可预知的值,空值不是空格或者0!

4、列的别名

重命名方法:

紧跟列名

也可以在列名和别名之间加入关键字‘as’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写

例如:

SELECT last_name AS name, commission_pct comm

FROM employees;

SELECT last_name "Name", salary*12 "Annual Salary"

FROM employees;

5、连接符 ||

作用:把列与列、列与字符连接在一起

方法:用 ‘||’表示

例子:连接姓名与工作两个列

SELECT last_name ||' is a '||job_id

AS "Employee Details"

FROM employees;

6、删除重复行 distinct

使用distinct删除重复行

例子:查询部门id,去除重复行

SELECT DISTINCT department_id

FROM employees;

7、过滤 where

注意:WHERE 子句紧随 FROM 子句

例子:查询部门号等于90的员工的employee_id, last_name, job_id, department_id

SELECT employee_id, last_name, job_id, department_id

FROM employees

WHERE department_id = 90 ;

8、字符和日期

注意:

字符和日期要包含在单引号中

字符大小写敏感,日期格式敏感

默认的日期格式是 DD-MON月-RR

例子:

SELECT last_name, job_id, department_id

FROM employees

WHERE last_name = 'Whalen';

SELECT last_name, hire_date, department_id

FROM employees

WHERE hire_date = '7-6月-1994'

9、比较运算

例子:

SELECT last_name, salary

FROM employees

WHERE salary <= 3000;

between...and...

使用 BETWEEN 运算来显示在一个区间内的值

SELECT last_name, salary

FROM employees

WHERE salary BETWEEN 2500 AND 3500;

in

使用 IN运算显示列表中的值

SELECT employee_id, last_name, salary, manager_id

FROM employees

WHERE manager_id IN (100, 101, 201);

like

使用 LIKE 运算选择类似的值

选择条件可以包含字符或数字:

% 代表零个或多个字符(任意个字符)

_代表一个字符。

例子:查询first_name为S开头的员工姓名

SELECT first_name

FROM employees

WHERE first_name LIKE 'S%';

查询第二个字母为o的last_name

SELECT last_name

FROM employees

WHERE last_name LIKE '_o%'

null

使用null判断空值

SELECT last_name, manager_id

FROM employees

WHERE manager_id IS NULL;

10、逻辑运算

and

例子:查询工资大于等于10000并且job_id含有'MAN'的员工的员工号,姓名,工资

SELECT employee_id, last_name, job_id, salary

FROM employees

WHERE salary >=10000

AND job_id LIKE '%MAN%';

or

例子:查询工资大于等于10000或者job_id含有'MAN'的员工的员工号,姓名,工资

SELECT employee_id, last_name, job_id, salary

FROM employees

WHERE salary >= 10000

OR job_id LIKE '%MAN%';

11、order by 子句

使用 ORDER BY 子句排序

ASC(ascend):升序(默认升序,降序必须要特别指定)

DESC(descend): 降序

ORDER BY 子句在SELECT语句的结尾

例子:

查询员工的last_name, job_id, department_id, hire_date,并且根据hire_date升序排列

SELECT last_name, job_id, department_id, hire_date

FROM employees

ORDER BY hire_date ;

查询员工的last_name, job_id, department_id, hire_date,并且根据hire_date降序排列

SELECT last_name, job_id, department_id, hire_date

FROM employees

ORDER BY hire_date DESC ;

查询员工的last_name, job_id, department_id, hire_date,并且根据年工资升序排列

SELECT employee_id, last_name, salary*12 annsal

FROM employees

ORDER BY annsal;

总结:

SELECT *|{[DISTINCT] column|expression [alias],...}

FROM table

[WHERE condition(s)]

[[ORDER BY {column, expr, alias} [ASC|DESC]];

书写SELECT语句: SELECT … FROM…

返回表中的全部数据

返回表中指定列的数据

使用别名

使用WHERE 子句过滤数据

使用比较运算

使用 BETWEEN AND, IN, LIKE和 NULL运算

使用逻辑运算符 AND, OR和NOT

使用 ORDER BY 子句进行排序

相关推荐

苹果手机重力感应怎么设置
365被限制了让提款

苹果手机重力感应怎么设置

📅 10-03 👁️ 5649
第一章    开端章 (1
365bet新手开户指南

第一章 开端章 (1

📅 10-10 👁️ 9506
2025十大名牌排名:Lyst公佈第二季最受歡迎品牌,Miu Miu再次榮登首名!
[分享]【攻略】畅玩砍二!全方面超大型攻略(持续更新4.10日)
绿茶裱什么意思(绿茶裱什么意思语录)
365bet在线体育

绿茶裱什么意思(绿茶裱什么意思语录)

📅 08-23 👁️ 6568
什么是描述性评级
365bet新手开户指南

什么是描述性评级

📅 08-03 👁️ 9764