此文中用到的表是Scott用户中自带的三张表:

基本select语句

基本语法:

select [distinct] *|{columnl,column2,column3..} from table [where {condition}];

select [是否剔除重复数据] *|{字段名(列名),字段名2(列名2),字段名3(列名3)..} from 表名 [where {条件}];注意事项:

1、select指定查询哪些列的数据;

2、column指定列名;

3、*代表查询所有列;

4、from指定查询哪张表;

5、distinct可选,指显示结果时,是否剔除重复数据;

6、where条件。

oracle表基本查询--简单的查询语句

查看表结构

SQL>desc 表名;

查询所有列

SQL>select * from 表名;

查询指定列

SQL>select 列1,列2,列3,.. from 表名;

如何取消重复行

SQL>select distinct deptno,job from emp;

查询SMITH的薪水,工作,所在部门

SQL>select sal,job,deptno from emp where ename='SMITH';

特别注意:oracle对sql语句不区分大小写,但对查询内容区分大小写。这与sqlserver是有区别的,sqlserver对查询内容不区分大小写。

使用算数表达式

显示每个雇员的年工资

SQL>select ename,sal*13+nvl(comm,0)*13 from emp;

使用列的别名

SQL>select ename "姓名",sal*13+nvl(comm,0)*13 "年收入" from emp;

SQL>select ename 姓名,sal*13+nvl(comm,0)*13 年收入 from emp;

SQL>select ename as "姓名",sal*13+nvl(comm,0)*13 as "年收入" from emp;

特别注意:oracle在使用别名时,可以用双引号或不使用或使用as来表明别名。但不能使用单引号。sqlserver是可以使用双引号、单引号。

如何处理null值

使用nvl函数来处理

nvl函数的使用,说明:nvl是oracle提供的函数,是用于处理null值使用的。sqlserver提供的则是isnull函数来处理null值。

SQL>select ename,sal*13+nvl(comm,0)*13 from emp;

nvl(值1,值2) 解释:nvl值1为null时则取值2,值1不为null时则取值1原值。

如何连接字符串(||)

SQL>select ename ||'年收入'||(sal*13+nvl(comm,0)*13) "雇员的年收入" from emp;

||在查询的时候,希望把多列内容做为一列内容返回可以使用||连接符。

oracle表基本查询--简单的查询语句

使用where子句

如何显示工资高于3000的员工

SQL>select ename,sal from emp where sal>3000;

如何查找1982.1.1后入职的员工

SQL>select ename,hiredate from emp where hiredate>'1-1月-82';

也可以使用to_char函数转换日期类型后再进行日期比较,如下:

SQL>select ename,hiredate from emp where to_char(hiredate,'yyyy-mm-dd')>'1982-1-1';

字符对比还是有一定出入的。不推荐使用。

如何显示工资在2000到2500的员工情况

SQL>select * from emp where sal>=2000 and sal<=2500;

SQL>select * from emp where sal between 2000 and 2500;

说明:between是指定区间内取值,如:between 2000 and 2500,取2000至2500内的值,同时包含2000和2500

如何使用like操作符

%:表示任意0到多个字符

_:表示任意单个字符

如何显示首字符为S的员工姓名和工资

SQL>select ename,sal from emp where ename like 'S%';

如何显示第三个字符为大写O的所有员工的姓名和工资

SQL>select ename,sal from emp where ename link '__O%';

在where条件中使用in

如何显示empno为123,345,800...的雇员情况

SQL>select * from emp where empno=123 or empno=345 or emp=800;

SQL>select * from emp where empno in(123,345,800);

使用is null的操作符

如何显示没有上级的雇员的情况

SQL>select * from emp where mgr is null;

使用逻辑操作符号

查询工资高于500或是岗位为manager的雇员,同时还要满足他们的姓名首写字母为大写的J

SQL>select * from emp where (sal>500 or job='MANAGER') and (ename like 'J%');

使用order by子句

如何按照工资的从低到高的顺序显示雇员的信息

SQL>select * from emp order by sal asc;

注意:asc写或不写都是升序排序即从小到大排序,desc则是降序排序从大到小排序。

按照部门号升序而雇员的入职时间降序排列

SQL>select * from emp order by deptno,hiredate desc;

使用列的别名排序

SQL>select ename,sal*12 "年薪" from emp order by "年薪" asc;

别名需要使用“”号圈中。

oracle入门之对表数据查询(一)的更多相关文章

  1. oracle入门之对表数据查询(三)

    oracle表复杂查询--子查询 什么是子查询? 子查询是指嵌入在其它sql语句中的select语句,也叫嵌套查询. 单行子查询 单行子查询是指只返回一行数据的子查询语句. 请思考:如果显示与smit ...

  2. oracle入门之对表数据查询(二)

    oracle表复杂查询 在实际应用中经常需要执行复杂的数据统计,经常需要显示多张表的数据,现在我们给大家介绍较为复杂的select语句 数据分组-max,min,avg,sum,count 如何显示所 ...

  3. oracle数据库使用之数据查询入门

    1.在查询过程中使用算术表达式对数据进行运算 student表结构如下: 最后一项salary表示每个人的月薪,我现在想查询每个人的年薪: 2.使用nvl函数处理null值,向表中插入一条数据,该数据 ...

  4. Oracle入门之对表内容的dml操作

    oracle表的管理--添加数据 使用insert语句向表中插入数据 插入数据基本语法: insert into table[(column [,column...])] values(value [ ...

  5. Oracle 数据库基础:数据查询与操作

    SELECT uname FROM TUser WHERE uname=‘admin’ SELECT 字段名列表 FROM 表名 WHERE 条件; 在Oracle数据库中,对象是属于模式的,每个账户 ...

  6. Windows 7下通过Excel2007连接Oracle数据库并对表查询

    http://blog.csdn.net/pan_tian/article/details/8133668 1. 环境变量的设置 1.1  ORACLE_HOME环境变量的设置,我这里指向了我的Ora ...

  7. Oracle从入门到精通 限定查询和排序查询的问题

    视频课程:李兴华 Oracle从入门到精通视频课程 学习者:阳光罗诺 视频来源:51CTO学院 知识点 SQL语句的执行顺序 限定符号的使用.   具体内容: 如果想要对所选择的数据进行控制,就可以使 ...

  8. Entity Framework 程序设计入门二 对数据进行CRUD操作和查询

    前一篇文章介绍了应用LLBL Gen生成Entity Framework所需要的类型定义,用一行代码完成数据资料的读取, <LLBL Gen + Entity Framework 程序设计入门& ...

  9. oracle学习 第二章 限制性查询和数据的排序 ——03

    这里.我们接着上一小节2.6留下的问题:假设要查询的字符串中含有"_"或"%".又该如何处理呢? 開始今天的学习. 2.7  怎样使用转义(escape)操作符 ...

随机推荐

  1. 从Scratch到Python之角色与造型

    从Scratch到Python之角色与造型 继续讲解通过python turtle从积木编程过渡到代码编程的技巧.角色是scratch中很重要的主角,每个角色可以更换不同的造型或者音效,堆叠不同的积木 ...

  2. 【React】学习之道

    一.工欲善其事必先利其器 - 准备工作 安装vscode:https://code.visualstudio.com/ 安装node.js:https://nodejs.org/en/ 安装gitba ...

  3. SQL 函数 coalesce()、row_number()的用法

    coalesce()函数 ①用途: 将空值替换成其他值 返回第一个非空值 ②表达式: COALESCE是一个函数, (expression_1, expression_2, ...,expressio ...

  4. Project D | Digital life

    I have a dream. 1999年黑客帝国就已经提出了数字化生命的雏形,近些年的黑镜和其他科幻电影更是脑洞大开,但是生命科学的进展却差强人意. 当今人类世界里有三大复杂系统:以细胞为基础的生命 ...

  5. java,桶排序,冒泡排序,快速排序

    1.桶排序: 百度百科:桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里.每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排 ...

  6. Django web框架-----Django templates模板

    说明:mytestsite是django框架下的项目,quicktool是mytestsite项目中的应用 一般的变量之类的用 {{ }}(变量),功能类的比如循环.条件判断是用 {% %}(标签) ...

  7. 微信小程序开发和h5的区别

    1. 开发小程序时,每个页面一定要在app.json文件中注册,页面文件夹和其包含的四个文件的名字要保持一致. 2. 小程序发起的都是HTTPS网络请求,在开发调试的过程中可以不校验协议和TLS版本, ...

  8. Android CmakeList

    https://www.cnblogs.com/chenxibobo/p/7678389.html

  9. JAVA写接口傻瓜($)教程(三)

    接上一篇 补充:事实上java的类需要在src文件夹里写,classes文件夹只是会同步src文件夹里的类.如果在classes文件夹里操作java类,是会提示文件只读的.src文件夹中进行代码编写 ...

  10. Java容器——List接口

    1. 定义 List是Collection的子接口,元素有序并且可以重复,表示线性表. 2. 常用实现类 ArrayList:它为元素提供了下标,可以看作长度可变的数组,为顺序线性表. LinkedL ...