度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1198|回复: 8
打印 上一主题 下一主题

[分享] Oracle基础学习之简单查询和限定查询

[复制链接]

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
跳转到指定楼层
楼主
发表于 2020-4-23 15:06:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
相信对于每个刚接触数据库的朋友们来说,查询是首先要学会的,本文主要给大家介绍了Oracle中的简单查询和限定查询,文中通过示例代码与文字说明给大家介绍的很详细,相信对大家的的理解和学习会很有帮助,下面感兴趣的朋友们一起来学习学习吧。



本文主要介绍的是关于Oracle中的简单查询和限定查询,下面话不多说,来一起看看吧。
SQL:
     1,DML(数据操作语言):主要指的是数据库的查询与更新的操作,查询操作是整个sql语法 中最麻烦也是笔试中最常用的部分。
     2,DDL(数据定义语言):主要指的是数据对象的创建(表、用户、)例如:creat.需要相关的设计范式。
     3,DCL(数据控制语言):主要进行权限的操作(需要结合用户来观察),此部分由DBA负责。
简单查询:
1,利用select 子句控制要显示的数据列:
1
select empno,ename,ename,job,sal from emp;



2,可以使用distinct来消除重复的数据行显示:
1
select distinct job from emp;



3,select子句可以进行四则运算,可以直接输出常量内容,但是对于字符串使用单引号数字直接编写,日期格式按照字符格式:
1
select empno,ename,(sal*15+(200+100)) income from emp;



4,||负责输出内容连接此类的操作很少直接在查询中出现:
1
select empno||ename from emp;



5,where子句一般都写在from子句之后,但是是紧跟着from子句之后执行的,where子句控制显示数据行的操作,而select控制数据列,select子句要落后于where子句执行,所以在select子句之中定义的别名无法在where中使用。
限定查询:
1,关系运算符:
1
2
3
4
5
select * from emp where sal>1500;

select * from emp where ename ='SMITH'

select empno,ename,job from emp where job<>'SALESMAN';



2,逻辑运算符:
1
2
3
select * from emp where sal>1500 and sal<3000;
select * from emp where sal>2000 or job='CLERK';
select * from emp where not sal >=2000;



3,范围查询:
1
2
select * from emp where sal between 1500 and 2000;
select * from emp where hiredate between '01-1月-1981'and'31-12月-1981';



4,空判断(空在数据库上表示不确定,如果在数据列使用null不表示0)
1
select * from emp where comm is not null;



5,IN操作符(类似于between and 而in给出的是指定的范围):
1
select * from emp where empno in (7369,7566,7788,9999);



关于not in与null的问题:
在使用not in 进行范围判断的时候,如果范围有null,那么不会有任何结果返回。
6,模糊查询:
“-”:匹配任意一位字符;
“%”:匹配任意的0,1,,或者多位字符;
查询姓名是以字母A开头的雇员信息:
1
select * from emp where ename like 'A%'



查询姓名第二个字母是A的雇员信息:
1
select * from emp where ename like '_A%';



查询姓名任意位置是A的雇员信息:
1
select * from emp where ename like '%A%';



查询排序:
ASC(默认):按照升序排列;
DESC: 按照降序排列;
查询所有的雇员信息,要求按照工资的由高到低:
1
select * from emp order by sal desc;



查询每个雇员的编号,姓名,年薪,按照年薪由低到高排序:
1
select empno ,ename,sal*12 income from emp order by income;



语句的执行顺序:from - where -select - order by



基础练习:
1,选择部门30中的所有员工:
1
select * from emp where deptno=30;



2,列出所有办事员(clerk)的姓名,编号,和部门编号
1
2
select ename,empno,deptno from emp
where job='CLERK';



3,找出佣金高于薪金的60%的员工:
1
select * from emp where comm>sal*0.6 ;



4,找出部门10中所有的经理(manager)和部门20中所有的办事员(clerk):
1
2
3
select *
from emp
where (deptno=10 and job='MANAGER' )or(deptno=20 and job='CLERK'   );



5,找出部门10中所有的经理(manager),部门20中的所有办事员(clerk),以及既不是经理又不是办事员但是工资高于等于2000的所有员工资料:
1
2
3
4
select *
from emp
where (deptno=10 and job='MANAGER')or(deptno=20 and
job='CLERK')or(job! ='MANAGER'and job!='CLERK' and sal>=2000);



1
2
3
4
select *
from emp
where (deptno=10 and job='MANAGER')or(deptno=20 and job='CLERK')or(job
not in ('CLERK','MANAGER') and sal>=2000);



6,找出收取佣金的员工的不同工作:
1
2
3
select distinct job
from emp
where comm is not null;



7,找出收取佣金或者收取的佣金低于100的员工:
1
2
3
select distinct job
from emp
where comm is null or comm<100;



8,显示不带有“R”的员工姓名:
1
2
3
select *
from emp
where ename not like '%R%';



9,显示姓名字段含有A的所有员工姓名,显示的结果按照基本的工资由高到低,如果工资相同,则按照雇佣年限由早到晚,如果雇佣日期相同,则按职位排序:
1
2
select * from emp where ename like '%A%' order by sal desc,hiredate
asc,job;



总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
发表于 2020-4-25 13:42:38 | 只看该作者
学习了

点评

非常好  详情 回复 发表于 2020-4-25 17:22
回复

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
板凳
 楼主| 发表于 2020-4-25 17:22:53 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
地板
发表于 2020-4-28 13:53:01 | 只看该作者
回复

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
5#
 楼主| 发表于 2020-4-28 15:10:52 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
6#
发表于 2020-4-29 13:52:59 | 只看该作者
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
7#
 楼主| 发表于 2020-4-29 17:06:43 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
8#
发表于 2020-4-30 13:50:27 | 只看该作者
回复

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
9#
 楼主| 发表于 2020-4-30 14:51:41 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-28 22:47 , Processed in 0.159855 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表