Oracle公司内部数据库培训资料01基本SQLSELECT语句

合集下载

sqlselect语句的基本知识

sqlselect语句的基本知识

sqlselect语句的基本知识内容提要:本文介绍sql select语句的结构和基本知识在众多的SQL语句中,SELECT语句是最常用的。

SELECT语句主要用来对数据库进行查询并返回符合用户标准的结果数据。

SELECT语句有5个主要的句子,而FROM是唯一必须的子句。

每一个子句有大量的选择项、参数等。

SELECT语句的语法格式如下:SELECT字段列表FROM 子句[WHERE 子句][GROUP BY 子句][ORDER BY 子句]SELECT语句的各项组成说明如下:第一,字段列表字段列表指定多个字段名称,各个字段之间用逗号“,”分隔。

例如:select 姓名,话费就是选择数据表中的“姓名”、“话费”2个字段。

第二,FROM子句FROM子句是一个必须的子句,指定要查询的数据表,各个数据表之间用逗号“,”分隔。

但要注意,如果是查询工作簿的数据表,必须用方括号将工作表名括起来,并且在工作表名后要有符号“$”。

例如:select 姓名,话费 from [初始数据$] 就是查询工作表为“初始数据”中的“姓名”、“话费”字段。

第三,允许在字段列表中自定义字段。

例如:select 日期,编号,销量,’北京’ as 城市 from [北京$]这句语句的意思就是从工作表“北京”中查询字段(日期,编号,销量),并在查询结果中同时生成一个新字段“城市”,“城市”字段下的项目都是“北京”。

输入上面查询语句的关键字select、as和from等的前后必须有一个空格,关键字的字母大小写无关紧要。

第四,多表查询多表查询的方法有多种。

通常可以使用UNION或UNION ALL连接多个SELECT语句。

查询多个工作表或数据表的数据,并将这些表的数据生成一个记录集,就可以利用UNION ALL将每个表的SELECT语句连接起来。

oracle中的sql语句

oracle中的sql语句

Oracle中的SQL语句主要包括以下几种:1. SELECT:用于从数据库表中查询数据。

例如:SELECT column1, column2 FROM table_name;2. INSERT INTO:用于向数据库表中插入数据。

例如:INSERT INTO table_name (column1, column2) VALUES (value1, value2);3. UPDATE:用于更新数据库表中的数据。

例如:UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;4. DELETE:用于删除数据库表中的数据。

例如:DELETE FROM table_name WHERE condition;5. CREATE TABLE:用于创建数据库表。

例如:CREATE TABLE table_name (column1 datatype,column2 datatype,...);6. ALTER TABLE:用于修改数据库表的结构。

例如:ALTER TABLE table_name ADD COLUMN column_name datatype;7. DROP TABLE:用于删除数据库表。

例如:DROP TABLE table_name;8. CREATE INDEX:用于创建索引以提高查询性能。

例如:CREATE INDEX index_name ON table_name (column_name);9. DROP INDEX:用于删除索引。

例如:DROP INDEX index_name;10. CREATE VIEW:用于创建视图,以便在不实际执行查询的情况下查看查询结果。

例如:CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;11. DROP VIEW:用于删除视图。

最新Oracle数据库Sql语句详解大全教学讲义PPT课件

最新Oracle数据库Sql语句详解大全教学讲义PPT课件
• 请查询出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的部门信息:
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 模糊查询 对查询结果排序
SELECT[DISTINCT] {*, column [alias], ...}
FROM
table
[WHERE
condition(s)]
[ORDER BY{column, expr, alias} [ASC|DESC]];
第三章 单行函数
本章目标
熟悉各种类型单行函数的使用 掌握转换函数的使用
两种SQL函数
• 请查询出当前用户下所有以‘s_’开头的表: SELECT table_name FROM user_tables WHERE table_name like 'S\_%' escape '\'

Oracle数据库Sql语句详解大全

Oracle数据库Sql语句详解大全
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;
学习改变命运,知 识创造未来
Oracle数据库Sql语句详解大全
运用算数表达式
• 括号可以改变运算符运算的优先顺序:
SQL> SELECT last_name, salary, 12 * salary + 100
2 FROM
s_emp;
...
Velasquez 2500 30100
SQL> SELECT last_name, salary, 12 * (salary + 100)
SELECT [DISTINCT] {*,column[alias],...} FROM table;
学习改变命运,知 识创造未来
Oracle数据库Sql语句详解大全
引言
学习改变命运,知 识创造未来
Oracle数据库Sql语知 识创造未来
Oracle数据库Sql语句详解大全
小结
Where条件查询 Between…and & In & Like 模糊查询 对查询结果排序
SELECT[DISTINCT] {*, column [alias], ...}
FROM
table
[WHERE
condition(s)]
[ORDER BY{column, expr, alias} [ASC|DESC]];
返回日期所在月的最后一天

Oracle数据库基础知识:SELECT语句

Oracle数据库基础知识:SELECT语句

Oracle数据库基础知识:SELECT语句Oracle数据库基础知识:SELECT语句SELECT语句是指用来查询、添加、和删除数据库中数据的语句, 和删除数据库中数据的语句 , 它们是 SELECT 、 INSERT 、 UPDATE 、DELETE等. 下面是Oracle数据库基础知识——SELECT语句,希望对大家有所帮助!普通用户连接conn scott/tiger超级管理员连接conn “sys/sys as sysdba”Disconnect 断开连接把SQL存到文件 save c:\1.txtEd c:\1.txt编辑SQL语句@c:\1.txt运行SQL语句Desc emp描述EMP结构Select * from tab 查看该用户下大所有对象Show user显示当前用户书写SQL语句的原则大小写不敏感,但单引和双引内的大小写是敏感的。

切记!关键字不能缩写可以分行书写,但关键字不能被跨行书写,单引内也不要跨行书写。

一般每个子句是一行可以排版来增加可读性字符串用单引列的别名用双引SELECT语句1、简单的Select语句Select * from table 不指定查询的字段Select attr1,attr2 from table指定查询某些字段Select attr1,attr2 from table where attr1=xxx查询符合条件的指定字段2、使用算术表达式 + - / *表达式的运算是有优先级的,和程序中的.一样,先乘除后加减,括号强制优先级.+ - * /先乘除,后加减,括号强制优先级Select ename,12*sal+300 from emp;Select ename,12*(sal+300) from emp;3、连接运算符 ||4、使用字段别名 as别名的使用原则1。

区分同名列的名称2。

非法的表达式合法化3。

按照你的意愿显示列的名称4。

特殊的别名要双引5。

Oracle数据库知识点总结--sql语句

Oracle数据库知识点总结--sql语句

Oracle数据库知识点总结--sql语句Oracle数据库知识点:1.查看职工入职3周年的纪念日?select ename,ADD_MONTHS(hiredate,12*3)as"3周年" from emp;2.查看每个职工至今为止入职多少天了?select ename,TRUNC(SYSDATE-hiredate) from emp;3.查看每个职工至今为止入职多少个月了?select ename,MONTHS_BETWEEN(SYSDATE,hiredate) from emp;4.查看下个周三是几号?select NEXT_DAY(SYSDATE,4) from dual;5.查看1981年入职的员工?select ename,hiredate from emp where EXTRACT(year from hiredate)=1981;6.查看每个员工的总收入(收入=工资+奖金,奖金并不是每个人都有)?select ename,sal,comm,sal+NVL(comm,0)from emp;7.查看名字的第二个字母是A的员工?select ename from emp where ename LIKE '_A%';8.查看名字的最后一个字母是A(ename LIKE '%A')的员工,名字里有字母A(ename LIKE '%A%')的员工。

9.查看工资介于1500-2000元之间的员工?select ename,sal from emp where sal BETWEEN 1500 AND 2000;10.查看公司有哪些部门?select DISTINCT deptno from emp;11.查看员工的工资排名?select ename,sal from emp ORDER BY sal DESC;12.查看公司的员工人数?select COUNT(ename) from emp;13.查看emp表有多少个部门?select COUNT(*) from (select DISTINCT deptno from emp);14.查看公司的平均奖金有多少(不是每个人都有奖金)?select AVG(NVL(comm,0)) from emp;15.查看每个部门的最高工资?select deptno,MAX(sal) from emp GROUP BY deptno;16.查看每个部门各有多少人?select COUNT(*),deptno from emp GROUP BY deptno;17.查看职员平均工资高于2000元的部门的平均工资?select AVG(sal),deptno from emp GROUP BY deptno HAVING AVG(sal)>2000;18.查询平均工资高于2000元的部门及部门所在地?select d.dname,AVG(e.sal),d.loc from emp e JOIN dept d ONe.deptno=d.deptno GROUP BY d.dname,d.loc HAVING AVG(e.sal)>2000;19.查看每个员工及其上司的名字?select e.ename,m.ename from emp e,emp m wheree.mgr=m.empno;20.查看每个领导手下有多少人?select m.ename,COUNT(*) from emp e,emp m wheree.mgr=m.empno GROUP BY m.ename;21.查看JONES的上司在哪儿工作?select m.ename,d.loc from emp e,emp m,dept d where e.mgr=m.empno AND m.deptno=d.deptno ANDe.ename='JONES';22.删除和JAMES相同部门的所有员工?delete from emp where deptno=(select deptno from emp where ename='JAMES');23.查看比CLERK和SALESMAN职位的工资都高的员工?select ename,sal from emp where sal>ALL(select sal from emp where job='CLERK' or job='SALESMAN');24.查看和CLERK职位同一部门的其它职位的员工?select ename,job,deptno from emp where deptno IN(select deptno from emp where job='CLERK')AND job<>'CLERK';25.查看没有下属的员工?select m.ename from emp m where NOT EXISTS (select * from emp e wheree.mgr=m.empno);26.查询列出最低薪水高于部门号为30的最低薪水的部门信息?select deptno,MIN(sal) from emp GROUP BY deptno HAVING MIN(sal)>(select MIN(sal) from emp where deptno=30);27.查看工资高于员工自己所在部门平均工资的员工信息?CREATE TABLE table1 ASselect AVG(sal) sal0,deptno from emp GROUP BY deptno;select ename,sal from emp e,table1 t where e.deptno=t.deptno ANDe.sal>t.sal0;28.列出公司工资排名的第6-10名的员工信息?select * from (select ROWNUM rn,t.* from(select ename,sal,job from emp ORDER BY sal DESC)t where ROWNUM <=10 )where rn >5;29.将公司的MANAGER、ANALYST、SALESMAN职位的工资分别提高20%、10%、5%后,查询公司员工的工资情况?select ename,job,sal,DECODE(job,'MANAGER',sal*1.2,'ANALYST',sal*1.1,'SALESMAN',sal*1.05,s al)sal0 from emp;30.将职位是ANALYST、MANAGER的看作一组,其它职位看作一组,分别统计两组职位的员工人数?select count(*),DECODE(job,'ANALYST','VIP','MANAGER','VIP','OTHER')from emp GROUP BY DECODE(job,'ANALYST','VIP','MANAGER','VIP','OTHER');31.查看公司每个部门的工资排名?select ename,deptno,sal, RANK()OVER(PARTITION BY deptno ORDER BY sal desc)sal_rank from emp;32.创建一个只读视图,把公司的数据按照部门编号和部门名称分组,获得每个部门的平均工资,最高工资,最低工资和工资总和?CREATE OR REPLACE VIEW v_emp ASSelect d.deptno,d.dname,AVG(e.sal),MAX(e.sal),MIN(e.sal),SUM(e.sal) from emp e,dept d where e.deptno=d.deptno GROUP BYd.deptno,d.dname WITH READ ONLY;33.给emp表中的id字段插入一个uuid值?INSERT INTO emp(id) VALUES(sys_guid());。

Oracle数据库SQL基础与进阶

Oracle数据库SQL基础与进阶
untax_billname where chr_id=a.billtype_id and chr_code in ('001','002'))
其他子查询(ALL,ANY,SOME) 该类子查询暂不做讨论
操作-Insert、Update、Delete语句的使用
学习目标:
➢如何使用INSERT UPDATE 和DELETE 来处理数据 ➢在操作数据时使用WHERE 子句的重要性 ➢从外部数据源中导入和导出数据的基本方法
查询-Select语句的使用
● 简单的Select查询:
查询表的所有列 select * from untax_billprice 查询表的指定列 select chr_name,price from untax_billprice 查询不重复的数据 select distinct price from untax_billprice
查询-Select语句的使用
表达式、条件语句和运算:
对于between…and,表示在某一段范围区间,它与price>=1 and price<=3是等价的
2、select * from untax_billprice where chr_code='001' or chr_code='002' or chr_code='010‘ 与 select * from untax_billprice where chr_code in (‘001’,‘002’,‘010’)等价
from untax_billname where chr_code='001')
查询-Select 该类子查询,其结果集为空时,返回false,非空时,返回true。理解

oracle基本select语句

oracle基本select语句

一、什么是Oracle数据库Oracle数据库是由美国Oracle公司开发并销售的一款关系型数据库管理系统(RDBMS)。

它是目前全球领先的企业级数据库,广泛应用于各行各业的大型企业和组织中。

Oracle数据库提供了丰富的功能和强大的性能,使其成为众多企业和组织首选的数据库管理系统之一。

二、Oracle数据库的基本SELECT语句在Oracle数据库中,SELECT语句是应用最为广泛和基础的查询语句,用于从数据库中检索数据。

基本的SELECT语句包括以下几个关键要素:1. 选择要检索的列SELECT语句的最基本形式是从指定的表中选择所需的列。

语法格式如下:```sqlSELECT column1, column2, ...FROM table_name;```这个语句将从指定的表中检索出所需的列,然后将其显示出来。

2. 指定要检索的表在SELECT语句中,需要指定从哪个表中检索数据。

语法格式如下: ```sqlSELECT column1, column2, ...FROM table_name;```这个语句将从指定的表中检索出所需的列,然后将其显示出来。

3. 添加查询条件有时候我们并不需要检索表中的所有数据,而是只想要满足某些特定条件的数据。

在这种情况下,可以使用SELECT语句的WHERE子句来添加查询条件。

语法格式如下:```sqlSELECT column1, column2, ...FROM table_nameWHERE condition;```这个语句将根据指定的条件,从表中检索出满足条件的数据,然后将其显示出来。

4. 对检索的数据进行排序有时候,我们需要以特定的顺序显示检索出的数据,这时可以使用SELECT语句的ORDER BY子句对数据进行排序。

语法格式如下:```sqlFROM table_nameORDER BY column1, column2, ... ASC|DESC;```这个语句将根据指定的列对检索出的数据进行升序(ASC)或降序(DESC)排序,然后将其显示出来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL statements
SQL*Plus commands
Oracle公司内部数据库培训资料01基本SQLSELECT语句
SQL*Plus
使用SQL*Plus可以:
• 描述表结构。 • 编辑 SQL 语句。 • 执行 SQL语句。 • 将 SQL 保存在文件中并将SQL语句执行结果保存在文
件中。
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
字符串
SELECT last_name ||' is a '||job_id AS "Employee Details"
FROM employees;

学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
SQL 和 SQL*Plus
SQL*Plus
浏览器
SQL 语句
Oracle 服务器
SQL*Plus 命令
客户端
查询结果 格式化报表
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
Oracle公司内部数据库培训资料01基本SQLSELECT语句
SQL SELECT 语句的功能



学习改变命运,知 识创造未来
表1
表 Join
表2
Oracle公司内部数据库培训资料01基本SQLSELECT语句
基本 SELECT 语句
SELECT *|{[DISTINCT] column|expression [alias],...}
Oracle公司内部数据库 培训资料01基本 SQLSELECT语句
学习改变命运,知 识创造未来
2021年2月17日星期三
目标
通过本章学习,您将可以:
• 列举 SQL SELECT语句的功能。 • 执行简单的选择语句。 • SQL 语言和 SQL*Plus 命令的不同。
学习改变命运,知 识创造未来
SELECT last_name||job_id AS "Employees"
FROM
employees;

学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
字符串
• 字符串可以是 SELECT 列表中的一个字符,数字,日期。 • 日期和字符只能在单引号中出现。 • 每当返回一行时,字符串被输出一次。
• 在保存的文件中执行语句。 • 将文本文件装入 SQL*Plus编辑窗口。
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
显示表结构
使用 DESCRIBE 命令,表示表结构
DESC[RIBE] tablename
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
重复行
默认情况下,查询会返回全部行,包括重复行。
SELECT department_id FROM employees;

学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
删除重复行
在 SELECT 子句中使用关键字‘DISTINCT’删除重复行。
SELECT DISTINCT department_id FROM employees;
定义空值
• 空值是无效的,未指定的,未知的或不可预知的值。 • 空值不是空格或者0。
SELECT last_name, job_id, salary, commission_pct FROM employees;


学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
数字和日期使用的数学表达式。
操作符 + * /
描述 加 减 乘 除
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
使用数学运算符
SELECT last_name, salary, salary + 300 FROM employees;

学习改变命运,知 识创造未来
SQL 语句与 SQL*Plus 命令
SQL
SQL*Plus
• 一种语言 • ANSI 标准
• 一种环境 • Oracle 的特性之一
• 关键字不能缩写
• 关键字可以缩写
• 使用语句控制数据库中的表 的定义信息和表中的数据
• 命令不能改变数据库中的数 据的值
• 集中运行
学习改变命运,知 识创造未来
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
列头设置
• SQL*Plus:
– 字符和日期类型的列左对齐 – 字符类型的列右对齐 – 默认头显示方式:大写
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
算术运算符
选择特定的列
SELECT department_id, location_id FROM departments;
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
Writing SQL Statements
• SQL 语言大小写不敏感。 • SQL 可以写在一行或者多行 • 关键字不能被缩写也不能分行 • 各子句一般要分行写。 • 使用缩进提高语句的可读性。

学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
连接符
连接符:
• 把列与列,列与字符连接在一起。 • 用 ‘||’表示。 • 可以用来‘合成’列。
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
连接符应用举例
显示表结构
DESCRIBE employees
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句

学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本CT语句
使用括号
SELECT last_name, salary, 12*(salary+100) FROM employees;

学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
以便在别名中包含空格或特殊的字符并区分大小写。
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
使用别名
SELECT last_name AS name, commission_pct comm FROM employees;

SELECT last_name "Name", salary*12 "Annual Salary" FROM employees;
Oracle公司内部数据库培训资料01基本SQLSELECT语句
操作符优先级
* /+_
• 乘除的优先级高于加减。 • 同一优先级运算符从左向右执行。 • 括号内的运算先执行。
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
操作符优先级
SELECT last_name, salary, 12*salary+100 FROM employees;
空值在数学运算中的使用
包含空值的数学表达式的值都为空值
SELECT last_name, 12*salary*commission_pct FROM employees;
… …
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
列的别名
列的别名:
• 重命名一个列。 • 便于计算。 • 紧跟列名,也可以在列名和别名之间加入关键字‘AS’,
FROM
table;
• SELECT 标识 选择哪些列。 • FROM 标识从哪个表中选择。
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
选择全部列
SELECT * FROM departments;
学习改变命运,知 识创造未来
Oracle公司内部数据库培训资料01基本SQLSELECT语句
相关文档
最新文档