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)排序,然后将其显示出来。

oracle基础课程-select相关使用方法

oracle基础课程-select相关使用方法
col EMAIL format a20
select EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL from employees;
SET HEADING ON
列标题的默认显示
Sql*plus的默认显示
Date和character 型数据左对齐 Numeric 型数据右对齐 列标题默认显示为大写
SELECT first_name||' '||last_name||'''s phone number is '||phone_number "employee Phone number"
FROM employees;
DISTINCT关键字的用法
DISTINCT取消重复行
SELECT DISTINCT department_id
SELECT employee_id id, last_name as employee_name, salary "Salary", (400+salary)*12 "Annual Salary" FROM employees;
连接运算符的使用
采用双竖线(||)来做连接运算符 ,更清 楚地表达实际意思。
SELECT基本查询语句
基本查询语句语法:
SELECT [,...]} FROM
*|{[DISTINCT] 列名|表达式 [别名] 表名;
“*”号的使用 在查询语句中查找特定的列
查询公司所第有一部条门的查信询息。语句
SELECT * FROM departments;
第一条查询语句(续)
SE查LEC询T d公epa司rtm所ent_有id,部门的信息。

oracle基础select查询语句

oracle基础select查询语句

select dname "工资" from dept;--查询全部员工select * from emp;--查询指定的编号,姓名和职位select empno,ename,job from emp;--修改显示别名空格,数字和特殊符号(#$除外)做别名需要双引号select empno as "1" ,ename 员工姓名,job "职位" from emp;--去除重复行select distinct job from emp;--列拼接select concat(concat(concat(concat(concat(' 编号是:',empno ),'的雇员,姓名是:'),ename) ,'工作是:'),job) from emp;--oracle用简单办法||拼接select '编号:' || empno || '的雇员,姓名是:' || ename || ',工作是:' || job from emp;--使用nvl (v1,v2)处理空值v1不为空返回,v2为空返回v2select ename,sal,comm,sal*12 + nvl (comm,0) from emp;--使用decodeselect ename,sal,comm,sal*12 + decode(comm,null,0,comm)from emp;--单行单列虚拟表dualselect sysdate from dual--得到一个32位的唯一guidselect sys_guid() from dual;--进行加减乘除运算select 1+3 from dual--oracle条件语句查询--查询出基本工资大于2000的所有雇员信息select * from emp where sal > 2000;--查询职位是办事员的所有雇员信息select * from emp where job ='CLERK'--查询工资在2000-3000之间的员工信息select * from emp where sal>2000 and sal < 3000;--查询工资在2000-3000之间的全部雇员信息*(包含)select * from emp where sal >= 2000 and sal <=3000;select * from emp where sal between 2000 and 3000;--查询职位是办事员或者销售人员的全部信息select * from emp where job='CLERK' or job='SALESMAN';select * from emp where job in ('CLERK','SALESMAN');--查询所用不是办事员的雇员信息select * from emp where job <>'CLERK';select * from emp where job != 'CLERK';select * from emp where not job = 'CLERK';--查询所有某段时间内入职的员工信息select * from emp where hiredate between to_date('1981/1/1','yyyy/mm/dd') and to_date('1982/1/1','yyyy/mm/dd');--查询所有有奖金的雇员select * from emp where comm is not null;--查询所有没有奖金的雇员select * from emp where comm is null;--查询出员工编号为7369.7499,7521的信息select * from emp where empno =7369 or empno=7499;select * from emp where empno in (7369,7499,7521)--查询出员工编号不为7369.7499,7521的信息select * from emp where empno not in (7369,7499,7521);--查询员工姓名中以字母A为开头的全部员工信息select ename from emp where ename like 'A%';--查询员工姓名中第二个字母是A的全部员工信息select ename from emp where ename like '_A%';--查询员工姓名中有A的全部员工信息select ename from emp where ename like '%A%';--oracle结果排序--查询所有员工,并按照要求工资升序排序select * from emp order by sal;--查询所有员工,并按照要求工资升序排序select * from emp order by sal desc;--按照工资从高到低排序,如果工资相同,则按照雇佣时间先后排序select * from emp order by sal desc, hiredate;--排序中的空值问题select * from emp order by comm desc;select * from emp order by comm desc nulls first;select * from emp order by comm desc nulls last;--oracle单行函数--字符函数--字符串大写upperselect upper('mingming')from dual;--字符串小写lowerselect lower(ename) from emp;--首字符大写initcapselect initcap(ename) from emp;--字符串取长度lengthselect ename,length(ename) from emp;--字符串替换replaceselect ename,replace(ename,'A','#')from emp;--字符串截取substrselect ename,substr(ename,0,2) from emp; select ename,substr(ename,1,2) from emp;select ename,substr(ename,-1) from emp;select ename,substr(ename,-2,1) from emp; select ename,substr(ename,-2,3) from emp;--两边去掉空格trimselect ename,trim(ename) from emp;--数字函数--四舍五入select round(987.6543) from dual;--988select round(987.6543,0) from dual;--988select round(987.6543,1) from dual;--987.7 select round(987.6543,2) from dual;--987.65 select round(987.6543,-1) from dual;--990select round(987.6543,-2) from dual;--1000--trunc舍弃内容select trunc(953.6286) from dual; --953select trunc(953.6286,0) from dual;--953select trunc(953.6286,1) from dual;--953.6select trunc(953.6286,2) from dual;--953.62 select trunc(953.6286,-1) from dual;--950select trunc(953.6286,-2) from dual--900--取模mod /余数select mod(10,3) from dual;--日期函数--获取当前时间sysdateselect sysdate from dual;--表示几天之后的日期+dayselect sysdate+3 from dual;--两个日期之间的天数差sysdate-hiredate select ename,hiredate,sysdate-hiredate from emp ; select trunc(sysdate-hiredate) from emp ;--本月的最后一天日期last_dayselect last_day(sysdate) from dual;--两个日期键的月份差months_betweenselect ename,hiredate ,trunc(MONTHS_BETWEEN(sysdate,hiredate)) from emp;--求出四个月后的日期add_montsselect add_months(sysdate,2)from dual;--转换函数--日期变为字符串to_char*(mi,hh24,yyyy,day)select to_char(sysdate,'yyyy-mm-dd')from dual;--2017-11--12select to_char(sysdate,'yyyy-mm-dd hh:mi:ss')from dual;--2017-11-12 05:07:00--数字变为字符串to_char(L999,999,999)数字代表长度SELECT TO_CHAR(89078907890,'L9999,9999,9999,9999') FROM dual;-- $89,078,907,890--字符串转日期to_date(yyyy-mm-dd hh:mi:ss)--字符串必须是日期格式的字符串select to_date('2017-11-12','yyyy/mm/dd') from dual;--2017/11/12--字符串转数字to_number('123'+4)select to_number('123'+4) from dual--127--通用函数--nvl(v1,v2)处理null 如果第一个数为null返回第二个数,如果第一个数不为空返回第一个数select nvl(1,2)from dual;--1select nvl(null,2) from dual;--2--nvl(v1,v2,v3)处理null; 如果v1为null返回v3,否则返回v2select nvl2(null,1,2) from dual;select nvl2(3,1,2) from dual;--decode()多值判断DECODE(数值| 列,判断值1,显示值1,判断值2,显示值2,判断值3,显示值3,…)--将职位信息转为汉字SELECT empno,ename,job,DECODE(job,'CLERK','办事员','SALESMAN','销售人员','MANAGER','经理','ANALYST','分析员','PRESIDENT','总裁')FROM emp;--case when条件判断--将职位信息转为汉字select empno,ename,job,case jobwhen 'CLERK' then'业务员'when 'SALESMAN' then'销售人员'else'其他'endfrom emp;--oracle多行函数分组函数作用于一组数据,并对一组数据返回一个值--统计记录数count() 查询出所有员工的记录数select count(*) from emp;--不建议使用count(*),可以使用一个具体的列以免影响性能select count(empno) from emp;--最小值查询min()查询出来员工最低工资select min(sal) from emp;--最大值查询max()查询出来员工最高工资select max(sal) from emp;--查询平均值avg()查询出员工的平均工资select avg(sal) from emp;--求和函数sum()查询出某部门额员工工资总和select sum(sal) from emp where deptno=20;--分组汇合统计group by--查询每个部分的人数select deptno,count(*) from emp group by deptno;--查询出每个部分的平均工资select deptno,avg(sal)from emp group by deptno;--唯一字段做分组select ename,count(*) from emp group by ename;--过滤分组数据having--查询部分平均工资大于2000的部门,用having和where都可以实现select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;--第二天多表查询--笛卡尔集select * from emp,dept;--内连接--隐式内连接select e.empno,e.ename,e.job,d.dname from emp e,dept d where e.deptno = d.deptno;--显示内连接select e.empno,e.ename,e.job,d.dname from emp e inner join dept d on e.deptno =d.deptno; --左外连接select * from dept left join emp on dept.deptno = emp.deptno;--右外连接select * from emp e right join dept d on e.deptno=d.deptno;--oracle特有外连接--使用符号(+):放在作为补充显示的列后面select * from emp,dept where emp.deptno(+)=dept.deptno;--自连接--查询出员工的姓名,职位,领导姓名select * from emp a,emp b where a.mgr=b.empno;--使用左右外连接,找到没有领导的员工select * from emp a,emp b where a.mgr=b.empno(+);--多表联查--查询员工姓名,部门名称,领导姓名select e1.ename,e2.ename,d.dname from emp e1,emp e2,dept d where e1.mgr=e2.empno and e1.deptno=d.deptno;--查询员工姓名,部门名称,领导名称,员工工资等级select e1.ename,e2.ename,d.dname,s.grade from emp e1,emp e2,dept d,salgrade s where e1.mgr=e2.empno and e1.deptno=d.deptno and e1.sal between s.losal and s.hisal;--查询员工姓名、部门名称、领导名称、员工工资等级、领导工资等级select e1.ename, e2.ename, d.dname, s1.grade,s2.gradefrom emp e1, emp e2, dept d, salgrade s1,salgrade s2where e1.mgr = e2.empnoand e1.deptno = d.deptnoand e1.sal between s1.losal and s1.hisaland e1.sal between s2.losal and s2.hisal;--将工资等级转换为汉字select e1.ename, e2.ename, d.dname, decode(s1.grade,'1','第五级','2','第四级','3','第三级','4','第二级' ,'5','第一级'),decode(s2.grade,'1','第五级','2','第四级','3','第三级','4','第二级' ,'5','第一级')from emp e1, emp e2, dept d, salgrade s1,salgrade s2where e1.mgr = e2.empnoand e1.deptno = d.deptnoand e1.sal between s1.losal and s1.hisaland e1.sal between s2.losal and s2.hisal;--子查询--单行子查询(单行单列)--查询比员工7654工资高,并和7788相同职位的员工select e.ename from emp e where e.sal>(select sal from emp where empno=7654)and e.job=(select job from emp where empno =7788)Select * from emp where sal>(Select sal from emp where empno=7654)And job = (Select job from emp where empno=7788)--子查询放在select中--查询员工信息和部门名称select e.* ,(select d.dname from dept d where d.deptno=e.deptno)from emp e ;--多行子查询(多行多列和多行单列)--多行多列子查询实现--查询每个部门的最低工资,和最低工资的员工select e.ename,e.sal,d.dname from emp e,(select deptno ,min(sal) sal from emp group by deptno) dm,dept d where e.deptno = d.deptno and e.deptno = dm.deptno and e.sal= dm.sal;Select e.ename,e.sal,d.dnameFrom emp e,(Select deptno,min(sal) sal from emp group by deptno) dm,dept dWhere e.deptno=d.deptno and e.deptno=dm.deptno And e.sal = dm.sal--多行单列子查询实现--查询是领导的所有员工信息select * from emp where emp.empno in(select mgr from emp e where e.mgr is not null);--查询不是领导的所有员工信息select * from emp where empno not in (select nvl(mgr,0) from emp)--exists--判断结果集是否存在exists(sql语句)--用来判断结果集是否存在,如果存在返回true,如果不存在返回falseselect * from emp where exists (select * from dept)--查询有员工的部门select * from dept where deptno in (select deptno from emp where deptno is not null)select * from dept d where exists (select deptno from emp e where e.deptno= d.deptno )--查询是领导的所有的员工信息select * from emp e1 where exists (select e2.mgr from emp e2 where e2.mgr= e1.empno)--伪列rownumselect rownum, e.* from emp e;--查询员工信息的前三条select rownum, e.* from emp e where rownum<4;--排序后rownum乱序select rownum ,e.* fROM emp e where rownum<20 order by sal desc ;--解决办法,先排序再生成rownumselect * from emp order by sal desc;select rownum ,e.* from (select * from emp order by sal desc)e where rownum <4;select * from(Select rownum rm, t.* from (select * from emp order by sal desc) t) where rm<4--找到员工表中薪水大于本部门平均薪水的员工--本部门平均薪水select deptno,avg(sal) from emp group by deptno;select * from emp e,(select deptno,avg(sal)avs from emp group by deptno)m where e.sal>m.avs and e.deptno=m.deptno;--统计每年入职的员工个数select to_char(e.hiredate,'yyyy')hire_year,count(*) from emp e group by to_char(hiredate,'yyyy');SelectSum(hire_count) total,sum(decode(t.hire_year,'1980',t.hire_count)) "1980",sum(decode(t.hire_year,'1981',t.hire_count)) "1981",sum(decode(t.hire_year,'1982',t.hire_count)) "1982",sum(decode(t.hire_year,'1987',t.hire_count)) "1987"from(Select to_char(hiredate,'yyyy') hire_year,count(*) hire_countFrom emp group by to_char(hiredate,'yyyy')) trowidRowid是oracle数据库插入数据时给数据分配的真实物理地址,唯一不变Rownum 是伪列,在查询数据时才会生成的临时数值--集合运算--并集--查询工资大于1500或是20号部分的员工select * from emp where sal>1500 or deptno=20;--union实现select * from emp where sal>1500unionselect * from emp where deptno =20;--union all实现(没有去重)select * from emp where sal>1500union allselect * from emp where deptno =20;--交集*(intersect 取两个集合共同的部分)select * from emp where sal >1500 and deptno=20;select * from emp where sal >1500intersectselect * from emp where deptno=20;--差集(minus 从一个集合中去掉另一个集合剩余的部分)--1981年入职的普通员工,不包含总裁和经理select * from emp where to_char(hiredate,'yyyy')='1981'and job not in ('MANAGER','PRESIDENT')select * from emp where to_char(hiredate,'yyyy')='1981'minusselect * from emp where job in ('MANAGER','PRESIDENT')。

Oracle数据库--基本的select语句

Oracle数据库--基本的select语句

Oracle数据库--基本的select语句1. 基本select语句1)查看当前⽤户show userUSER 为 "SCOTT"2)查询当前⽤户下的表SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- DEPT TABLE EMP TABLE BONUS TABLE SALGRADE TABLE3)查看员⼯表的结构SQL> desc emp 名称是否为空? 类型 ----------------------------------------- -------- ---------------------------- EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2)4)清屏 SQL> host cls5)查询所有的员⼯信息 SQL> select * from emp;6)设置⾏宽 SQL> show linesize linesize 80 SQL> set linesize 1207)设置列宽 SQL> col ename for a8 SQL> col sal for 9999 SQL> / 8)通过列名 SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno 2 from emp; SQL优化的原则: 1。

尽量使⽤列名9)查询员⼯信息:员⼯号姓名⽉薪 SQL> select empno,ename,sal10)c命令 change 11)查询员⼯信息:员⼯号姓名⽉薪年薪 SQL> select empno,ename,sal,sal*12 2 from emp; 12)查询员⼯信息:员⼯号姓名⽉薪年薪奖⾦年收⼊ SQL> select empno,ename,sal,sal*12,comm,sal*12+comm 2 from emp; SQL中的null 1、包含null的表达式都为null 2、null永远!=null13)nvl(a,b) nvl2 当a为null,值为b 14)SQL中的null 2、null永远!=null 15)查询奖⾦为null的员⼯ SQL> select * 2 from emp 3 where comm=null; SQL> select * 2 from emp 3 where comm is null; 16)列的别名 select empno as "员⼯号",ename "姓名",sal "⽉薪",sal*12,comm,sal*12+nvl(comm,0) from emp 17)distinct 去掉重复记录 SQL> select deptno from emp; SQL> select distinct deptno from emp; SQL> select job from emp; SQL> select distinct job from emp; SQL> select distinct deptno,job from emp; distinct作⽤于后⾯所有的列 18)连接符 || concat函数 SQL> select concat('Hello',' World') from emp; SQL> select concat('Hello',' World') from dual; dual表:伪表 伪列 select 'Hello'||' World' 字符串 from dual; 查询员⼯信息:***的薪⽔是**** SQL> select ename||'的薪⽔是'||sal 信息 from emp;。

oracle的Select语句

oracle的Select语句

oracle的Select语句oracle的Select语句select 查询的一般格式是select {[distinct|all] columns | *} //1 选择列from {tables | views | other select} //2 数据来源where conditions //3 选择条件group by columns //4 分组having conditions //5 选择order by columns //6 排序一、选择列1. select后面出现的内容可以是from后面的数据来源中的列,也可以是*,也可以是常量或者T-SQL函数。

2. 如果列名很长,或者多个表的列名有冲突,可以使用as来定义别名。

二、数据来源1. 数据来源可以是表,视图,还可以是其他的select语句(即,行集)。

2. from子句中可以包含连接说明,即inner join,outer join这样的内容。

这个内容参见下面的内容。

3. 可以在from子句中为表,视图,或者其他select语句的结果指定别名,但是不要用as。

三、where子句1. 多个条件之间可以用and 或者or连接。

2. null值查询要使用is null,或者is not null,而不是=null或者<>null3. like是进行模式匹配的一种方式,列的数据类型可以是任何字符或者日期数据。

它的否定形式是not like。

%和_是通配符,一个表示0或多个任意字符,一个表示一个任意字符。

但是这两个字符如果不出现在like后面的模式中,就是两个普通字符。

4. text列的where条件只能是like,is null,patindex。

5. 如果要在like中匹配普通字符%和_,可以使用escape定义一个转义字符,这个转义字符可以随意指定。

然后将这个转义字符放在一个通配符或者单引号之前,就表示这个通配符或者单引号是一个普通的字符。

基本的SQLSELECT语句.ppt

基本的SQLSELECT语句.ppt

Inspur group 2019/4/3
3
基本的SQL SELECT语句
DBMS,是一个通用术语,适用于允许用户与数据库进行交互的软件。 但是,当你使用关系数据库时,DBMS软件被视为一个“关系数据库管 理系统(RDBMS)”。RDBMS是用来创建数据库的软件程序,它允许 你输入、处理和检索数据。 Oracle9i不仅可以用来引用单个数据元素,还可以引用对象(由单个数 据元素组成),所以它是一个“对象关系数据库管理系统” (ORDBMS)。本课程的数据库中存储的数据是由简单字母数据字符 组成,所以例子和概念也适用于RDBMS,对象的使用通常是在高级应 用程序开发课程中介绍的。
Inspur group 2019/4/3
13
SELECT语句中的运算 使用算数运算
SELECT子句中可以使用+,-,*,/这样的算术运算,Oracle9i中遵循 以下算术运算: 1. 在算术等式中从左向右计算,首先计算任何乘法和除法。 2. 在进行乘法和除法之后才计算任何加法和减法,也是在等式中从左 向右进行计算。 3. 可以使用括号覆盖计算顺序 例如:希望获取每本书所产生的利润。Books表包含两个可以用来计算 利润的字段:Cost和Retail。一本书的利润是书店为该书支付的金额 (成本)与书的销售价格(零售价)之间的差值。我们为计算出的字段 指定一个别名。
Inspur group 2019/4/3
4Hale Waihona Puke SELECT语句的语法SELECT [DISTINC|UNIQUE](*,columnname[AS alias],…) FROM tablename [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY columnname];

oracle select 语法

oracle select 语法

oracle select 语法Oracle是一款功能强大的关系型数据库管理系统,它使用SQL (Structured Query Language)语言实现对数据库的操作和管理。

其中,SELECT语法在Oracle数据库中被广泛使用,其作用是用来读取数据库中的数据。

SELECT语法的基础语句格式如下:SELECT column1, column2, …, columnNFROM table_name;其中,column1, column2, …, columnN是需要返回的数据列,table_name是需要查询的表。

除了基础语句格式外,SELECT语法还有以下的进阶用法:1. 使用DISTINCT子句,去除重复值SELECT DISTINCT column1, column2, …, columnNFROM table_name;2. 使用WHERE子句,指定查询条件SELECT column1, column2, …, columnNFROM table_nameWHERE condition;其中,condition指定的查询条件可以是任何条件,如等于(=)、大于(>)、小于(<)等。

3. 使用ORDER BY子句,对查询结果按指定条件进行排序SELECT column1, column2, …, columnNFROM table_nameORDER BY columnX;其中,columnX指定了需要按照哪一列进行排序,默认是升序排序,可以使用DESC关键字进行降序排序。

4. 使用GROUP BY子句,按指定列进行分组SELECT column1, SUM(column2), …, colu mnNFROM table_nameGROUP BY column1;其中,SUM(column2)是对column2进行求和操作,并按照column1列进行分组。

5. 使用HAVING子句,指定分组后的筛选条件SELECT column1, SUM(column2), …, columnNFROM table_nameGROUP BY column1HAVING condition;其中,condition是对分组后的数据进行筛选条件,这里的筛选条件不同于WHERE子句,它是对分组的数据进行筛选。

Oracle数据库Sql语句详解大全

Oracle数据库Sql语句详解大全
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%'
'11-JUL-94‘
NEXT_DAY('01-SEP-95','FRIDAY') '08-SEP-95‘
LAST_DAY('01-SEP-95')
'30-SEP-95'
日期函数
ROUND('25-MAY-95','MONTH') 95 ROUND('25-MAY-95 ','YEAR') TRUNC('25-MAY-95 ','MONTH') TRUNC('25-MAY-95 ','YEAR')
日期格式
DY DAY D DD W WW,IW MM MON MONTH YYYY,YYY,YY, Y YEAR RR HH,HH12 HH24 MI SS
星期几的缩写 星期几的全拼 一周的星期几,星期天=1,星期六=7 一月的第几天,131 一个月的第几周,1 5 一年的第几周,一年的ISO的第几周 两为数的月 月份的缩写 月份的全拼 四位数的年,三位数的年
拼接两个字符串,与 || 相同 取字符串的子串 以字符给出字符串的长度 以一个值来替换空值

oracle sql基础

oracle sql基础

实验1 sql基础基本查询语句●Select语句的作用查询指定的行查询指定的列多张表联合查询Select 语句可以查询指定的行,指定的列,也可以多张表联合查询来获得数据。

上面的三句话,开宗明义的定义了SQL 的基本功能,书写高效的SQL语句是我们永恒的追求,不管你是程序员还是数据库管理员。

Select既是入门所必备,又是数据库之颠峰。

●简易语法SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;大写的为关键字小写的为我们指定的名称SELECT子句指定你所关心的列FROM子句指定你所要查询的表之所以称之为简易语法,因为完全的SELECT语法很长,涉及到很多的逻辑关系,我们由浅入深。

虽然不能大成,但小成总会有的。

一般我们将select 叫做select子句,from 叫做from 子句。

实验1:书写一个最简单的sql语句,查询一张表的所有行和所有列该实验的目的是初步认识sql语句,执行一个最简单的查询.Select * from emp;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO----- ---------- --------- ---------- ------------ ---------- ----- ------7369 SMITH CLERK 7902 17-DEC-80 800 207499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 307521 WARD SALESMAN 7698 22-FEB-81 1250 500 307566 JONES MANAGER 7839 02-APR-81 2975 207654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 307698 BLAKE MANAGER 7839 01-MAY-81 2850 307782 CLARK MANAGER 7839 09-JUN-81 2450 107839 KING PRESIDENT 17-NOV-81 5000 107844 TURNER SALESMAN 7698 08-SEP-81 1500 0 307900 JAMES CLERK 7698 03-DEC-81 950 307902 FORD ANALYST 7566 03-DEC-81 3000 207934 MILLER CLERK 7782 23-JAN-82 1300 10你看到可能折行了,没有关系,后面我们会讲到.查询emp表的所有行,所有列。

SQLSELECT语句基础

SQLSELECT语句基础

SQLSELECT语句基础⽬录学习重点使⽤SELECT语句从表中选取数据。

为列设定显⽰⽤的别名。

SELECT语句中可以使⽤常数或者表达式。

通过指定DISTINCT可以删除重复的⾏。

SQL 语句中可以使⽤注释。

可以通过WHERE语句从表中选取出符合查询条件的数据。

⼀、列的查询从表中选取数据时需要使⽤SELECT语句,也就是只从表中选出(SELECT)必要数据的意思。

通过SELECT语句查询并选取出必要数据的过程称为匹配查询或查询(query)。

KEYWORDSELECT语句匹配查询查询SELECT语句是 SQL 语句中使⽤最多的最基本的 SQL 语句。

掌握了SELECT语句,距离掌握 SQL 语句就不远了。

SELECT语句的基本语法如下所⽰。

语法 1 基本的SELECT语句SELECT <列名>,……FROM <表名>;该SELECT语句包含了SELECT和FROM两个⼦句(clause)。

⼦句是 SQL 语句的组成要素,是以SELECT或者FROM等作为起始的短语。

KEYWORD⼦句SELECT⼦句中列举了希望从表中查询出的列的名称,⽽FROM⼦句则指定了选取出数据的表的名称。

接下来,我们尝试从中创建出的Product(商品)表中,查询出图 1 所⽰的product_id(商品编号)列、product_name(商品名称)列和purchase_price(进货单价)列。

图 1 查询出 Product 表中的列对应的SELECT语句请参见代码清单 1,该语句正常执⾏的结果如执⾏结果所⽰。

代码清单 1 从Product表中输出 3 列SELECT product_id, product_name, purchase_priceFROM Product;执⾏结果-----------+--------------+---------------0001 | T恤衫 | 5000002 | 打孔器 | 3200003 | 运动T恤 | 28000004 | 菜⼑ | 28000005 | ⾼压锅 | 50000006 | 叉⼦ |0007 | 擦菜板 | 7900008 | 圆珠笔 |SELECT语句第⼀⾏的SELECT product_id, product_name, purchase_price就是SELECT⼦句。

oracle数据库sql语句SELECT语句

oracle数据库sql语句SELECT语句

使用列的别名
SQL> SELECT ename AS name, sal salary 2 FROM emp; NAME SALARY ------------- --------... SQL> SELECT ename "Name", 2 sal*12 "Annual Salary" 3 FROM emp; Name Annual Salary
SQL> SELECT deptno 2 FROM emp;
DEPTNO --------10 30 10 20 ... 14 rows selected.
消除掉重复行
在SELECT语句中用 DISTINCT关键字来消除 所有重复的行。
SQL> SELECT DISTINCT deptno 2 FROM emp;
选出特定的列
SQL> SELECT deptno, loc 2 FROM dept; DEPTNO --------10 20 30 40 LOC ------------NEW YORK DALLAS CHICAGO BOSTON
重复行

查询语句执行的结果,缺省的显示方 法是显示所有的行,包括重复的行。
数学表达式中空值的处理

如果数学表达式中包含了一个空值, 那么该数学表达式计算的结果为空值
SQL> select ename, 12*sal+comm 2 from emp 3 WHERE ename='KING';
ENAME 12*SAL+COMM ---------- ----------KING
总结
SELECT FROM [DISTINCT] {*,column [alias],...} table;
  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语句
相关文档
最新文档