Oracle数据库Sql语句详解大全-PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 请查询出s_emp表中部门ID为50并且工资大于1500的员 工的信息:
SELECT * FROM s_emp WHERE salary>1500 and dept_id=50
WHERE条件查询-BETWEEN&IN
• 请查询出s_emp表中工资在1500到2000之间的员工信息:
SELECT * FROM s_emp WHERE salary between 1500 and 2000 • 请查询出s_dept表中region_id为1,3的部门信息:
列别名
• 请查询出s_emp表中所有的员工的姓名:
SQL> SELECT firname_name || last_name FROM s_emp SQL> SELECT firname_name || last_name “姓名” FROM s_emp
空值的处理
• 请查询出s_emp表中所有的员工的工资:
OracleSQL
Name Date
第一章 SELECT查询
本章目标
写一条SELECT查询语句 在查询中使用表达式、运算符
对空值的处理
对查询字段起别名
查询字段的连接
SELECT查询基本语法
来自百度文库
SELECT FROM
<列名> <表名>
• 请查询出s_emp表中所有的员工信息:
SQL> SELECT * FROM s_emp
SELECT * FROM s_emp WHERE dept_id=41 ORDER BY salary DESC
SQL> SELECTlast_name, dept_id, salary
2 FROM
s_emp
3 ORDER BYdept_id, salary DESC;
小结
Where条件查询 Between…and & In & Like 模糊查询 对查询结果排序
SQL> SELECT last_name, salary*commission_pct/100 “工资” 2 FROM s_emp;
SQL> SELECT last_name , salary+salary*NVL(commission_pct,0)/100 2 FROM s_emp;
去掉重复行
课堂练习
已建立好的S_emp表,对此表中的数据进行模糊查 询,具体要求如下:
查询一名last_name以“M”开头的员工,他的 dept_id好像是’3X’ 查询工资在1200至1500之间的员工 查询来自部门ID为(41,42,43)的员工
查询结果排序
查询出s_emp表将部门ID为41的员工的工资按 从高到低排列显示出来:
• 请查询出当前用户下所有以‘s_’开头的表: SELECT table_name FROM user_tables WHERE table_name like 'S\_%' escape '\'
空值的查询
查询出s_emp表中非销售职位的员工信息:
SELECT * FROM s_emp WHERE commission_pct is null
使用LIKE、BETWEEN、IN进行模糊查询
第一章内容回顾
对员工表中信息进行查询,具体要求如下: 1. 查询s_emp表要求输出员工姓名(firs_name、 last_name)和实际工资(基本工资+提成):
查询基本语法
请查询出s_emp表中dept_id为41的员工信息:
SELECT <列名>
SQL> SELECT last_name, salary, 12 * salary + 100
2 FROM
s_emp;
...
Velasquez 2500 30100
SQL> SELECT last_name, salary, 12 * (salary + 100)
2 FROM
s_emp;
...
Velasquez 2500 31200
SELECT * FROM s_dept WHERE region_id in (1,3)
WHERE条件查询-like
• 请查询出s_emp表中姓中含有字母a的员工信息: SELECT * FROM s_emp WHERE last_name like '%a%'
• 请查询出s_emp表姓中第二个字母为a的员工信息: SELECT * FROM s_emp WHERE last_name like ‘_a%'
SELECT[DISTINCT] {*, column [alias], ...}
FROM
table
[WHERE
condition(s)]
[ORDER BY{column, expr, alias} [ASC|DESC]];
第三章 单行函数
• 请查询出s_dept表的部门名称:
SQL> SELECT 2 FROM
name s_dept;
SQL> SELECT DISTINCT name
2 FROM
s_dept;
去掉多列重复行
• 请查询出s_emp表中所有的员工的部门ID及职称:
SQL> SELECT DISTINCT dept_id, title
查询指定列
• 请查询出s_emp表中所有的员工的部门ID,工资:
SQL> SELECT dept_id , salary FROM s_emp
运用算数表达式
• 请查询出s_emp表中所有的员工的年薪:
SQL> SELECT salary*12 FROM s_emp
运用算数表达式
• 括号可以改变运算符运算的优先顺序:
FROM
<表名>
[WHERE <查询条件表达式>]
列名称
表名
过滤条件
SELECT
FROM
WHERE
*
S_emp
dept_id= 41
WHERE条件查询
• 请查询出s_emp表中last_name为Smith的员工的信息:
SELECT * FROM s_emp WHERE last_name = 'Smith'
2 FROM
s_emp;
小结
查询表的全部记录 查询指定的列 给列起别名 NVL函数及字符串连接符 重复行的处理Distinct
SELECT [DISTINCT] {*,column[alias],...} FROM table;
引言
第二章 条件查询
本章目标
WHERE条件查询
在查询中使用表达式、运算符
SELECT * FROM s_emp WHERE salary>1500 and dept_id=50
WHERE条件查询-BETWEEN&IN
• 请查询出s_emp表中工资在1500到2000之间的员工信息:
SELECT * FROM s_emp WHERE salary between 1500 and 2000 • 请查询出s_dept表中region_id为1,3的部门信息:
列别名
• 请查询出s_emp表中所有的员工的姓名:
SQL> SELECT firname_name || last_name FROM s_emp SQL> SELECT firname_name || last_name “姓名” FROM s_emp
空值的处理
• 请查询出s_emp表中所有的员工的工资:
OracleSQL
Name Date
第一章 SELECT查询
本章目标
写一条SELECT查询语句 在查询中使用表达式、运算符
对空值的处理
对查询字段起别名
查询字段的连接
SELECT查询基本语法
来自百度文库
SELECT FROM
<列名> <表名>
• 请查询出s_emp表中所有的员工信息:
SQL> SELECT * FROM s_emp
SELECT * FROM s_emp WHERE dept_id=41 ORDER BY salary DESC
SQL> SELECTlast_name, dept_id, salary
2 FROM
s_emp
3 ORDER BYdept_id, salary DESC;
小结
Where条件查询 Between…and & In & Like 模糊查询 对查询结果排序
SQL> SELECT last_name, salary*commission_pct/100 “工资” 2 FROM s_emp;
SQL> SELECT last_name , salary+salary*NVL(commission_pct,0)/100 2 FROM s_emp;
去掉重复行
课堂练习
已建立好的S_emp表,对此表中的数据进行模糊查 询,具体要求如下:
查询一名last_name以“M”开头的员工,他的 dept_id好像是’3X’ 查询工资在1200至1500之间的员工 查询来自部门ID为(41,42,43)的员工
查询结果排序
查询出s_emp表将部门ID为41的员工的工资按 从高到低排列显示出来:
• 请查询出当前用户下所有以‘s_’开头的表: SELECT table_name FROM user_tables WHERE table_name like 'S\_%' escape '\'
空值的查询
查询出s_emp表中非销售职位的员工信息:
SELECT * FROM s_emp WHERE commission_pct is null
使用LIKE、BETWEEN、IN进行模糊查询
第一章内容回顾
对员工表中信息进行查询,具体要求如下: 1. 查询s_emp表要求输出员工姓名(firs_name、 last_name)和实际工资(基本工资+提成):
查询基本语法
请查询出s_emp表中dept_id为41的员工信息:
SELECT <列名>
SQL> SELECT last_name, salary, 12 * salary + 100
2 FROM
s_emp;
...
Velasquez 2500 30100
SQL> SELECT last_name, salary, 12 * (salary + 100)
2 FROM
s_emp;
...
Velasquez 2500 31200
SELECT * FROM s_dept WHERE region_id in (1,3)
WHERE条件查询-like
• 请查询出s_emp表中姓中含有字母a的员工信息: SELECT * FROM s_emp WHERE last_name like '%a%'
• 请查询出s_emp表姓中第二个字母为a的员工信息: SELECT * FROM s_emp WHERE last_name like ‘_a%'
SELECT[DISTINCT] {*, column [alias], ...}
FROM
table
[WHERE
condition(s)]
[ORDER BY{column, expr, alias} [ASC|DESC]];
第三章 单行函数
• 请查询出s_dept表的部门名称:
SQL> SELECT 2 FROM
name s_dept;
SQL> SELECT DISTINCT name
2 FROM
s_dept;
去掉多列重复行
• 请查询出s_emp表中所有的员工的部门ID及职称:
SQL> SELECT DISTINCT dept_id, title
查询指定列
• 请查询出s_emp表中所有的员工的部门ID,工资:
SQL> SELECT dept_id , salary FROM s_emp
运用算数表达式
• 请查询出s_emp表中所有的员工的年薪:
SQL> SELECT salary*12 FROM s_emp
运用算数表达式
• 括号可以改变运算符运算的优先顺序:
FROM
<表名>
[WHERE <查询条件表达式>]
列名称
表名
过滤条件
SELECT
FROM
WHERE
*
S_emp
dept_id= 41
WHERE条件查询
• 请查询出s_emp表中last_name为Smith的员工的信息:
SELECT * FROM s_emp WHERE last_name = 'Smith'
2 FROM
s_emp;
小结
查询表的全部记录 查询指定的列 给列起别名 NVL函数及字符串连接符 重复行的处理Distinct
SELECT [DISTINCT] {*,column[alias],...} FROM table;
引言
第二章 条件查询
本章目标
WHERE条件查询
在查询中使用表达式、运算符