本文主要介绍的是关于Oracle中的简单查询和限定查询,下面话不多说,来一起看看吧。
SQL:
1,DML(数据操作语言):主要指的是数据库的查询与更新的操作,查询操作是整个sql语法 中最麻烦也是笔试中最常用的部分。
2,DDL(数据定义语言):主要指的是数据对象的创建(表、用户、)例如:creat.需要相关的设计范式。
3,DCL(数据控制语言):主要进行权限的操作(需要结合用户来观察),此部分由DBA负责。
简单查询:
1,利用select 子句控制要显示的数据列:
select empno,ename,ename,job,sal from emp;
2,可以使用distinct来消除重复的数据行显示:
select distinct job from emp;
3,select子句可以进行四则运算,可以直接输出常量内容,但是对于字符串使用单引号数字直接编写,日期格式按照字符格式:
select empno,ename,(sal*15+(200+100)) income from emp;
4,||负责输出内容连接此类的操作很少直接在查询中出现:
select empno||ename from emp;
5,where子句一般都写在from子句之后,但是是紧跟着from子句之后执行的,where子句控制显示数据行的操作,而select控制数据列,select子句要落后于where子句执行,所以在select子句之中定义的别名无法在where中使用。
限定查询:
1,关系运算符:
select * from emp where sal>1500; select * from emp where ename ='SMITH' select empno,ename,job from emp where job<>'SALESMAN';
2,逻辑运算符:
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,范围查询:
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)
select * from emp where comm is not null;
5,IN操作符(类似于between and 而in给出的是指定的范围):
select * from emp where empno in (7369,7566,7788,9999);
关于not in与null的问题:
在使用not in 进行范围判断的时候,如果范围有null,那么不会有任何结果返回。
6,模糊查询:
“-”:匹配任意一位字符;
“%”:匹配任意的0,1,,或者多位字符;
查询姓名是以字母A开头的雇员信息:
select * from emp where ename like 'A%'
查询姓名第二个字母是A的雇员信息:
select * from emp where ename like '_A%';
查询姓名任意位置是A的雇员信息:
select * from emp where ename like '%A%';
查询排序:
ASC(默认):按照升序排列;
DESC: 按照降序排列;
查询所有的雇员信息,要求按照工资的由高到低:
select * from emp order by sal desc;
查询每个雇员的编号,姓名,年薪,按照年薪由低到高排序:
select empno ,ename,sal*12 income from emp order by income;
语句的执行顺序:from - where -select - order by
基础练习:
1,选择部门30中的所有员工:
select * from emp where deptno=30;
2,列出所有办事员(clerk)的姓名,编号,和部门编号:
select ename,empno,deptno from emp where job='CLERK';
3,找出佣金高于薪金的60%的员工:
select * from emp where comm>sal*0.6 ;
4,找出部门10中所有的经理(manager)和部门20中所有的办事员(clerk):
select * from emp where (deptno=10 and job='MANAGER' )or(deptno=20 and job='CLERK' );
5,找出部门10中所有的经理(manager),部门20中的所有办事员(clerk),以及既不是经理又不是办事员但是工资高于等于2000的所有员工资料:
select * from emp where (deptno=10 and job='MANAGER')or(deptno=20 and job='CLERK')or(job! ='MANAGER'and job!='CLERK' and sal>=2000);
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,找出收取佣金的员工的不同工作:
select distinct job from emp where comm is not null;
7,找出收取佣金或者收取的佣金低于100的员工:
select distinct job from emp where comm is null or comm<100;
8,显示不带有“R”的员工姓名:
select * from emp where ename not like '%R%';
9,显示姓名字段含有A的所有员工姓名,显示的结果按照基本的工资由高到低,如果工资相同,则按照雇佣年限由早到晚,如果雇佣日期相同,则按职位排序:
select * from emp where ename like '%A%' order by sal desc,hiredate asc,job;
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
本文向大家介绍Oracle基础学习之子查询,包括了Oracle基础学习之子查询的使用技巧和注意事项,需要的朋友参考一下 首先使用子查询的时候注意事项包括,子查询可以嵌套多层和子查询需要圆括号()括起来,下面我们来看看详细的介绍。 基础介绍 1,wherer:子查询一般会返回单行单列 单行多列 多行单列 ; 2,having:子查询会返回单行单列,同时表示要使用统计函数; 3,from:子查询返回多
本文向大家介绍Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解,包括了Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解的使用技巧和注意事项,需要的朋友参考一下 一、简单查询 SQL(Structured Query Language) 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。ANSI(美国国家标准学会)声称
本文向大家介绍MySQL中表子查询与关联子查询的基础学习教程,包括了MySQL中表子查询与关联子查询的基础学习教程的使用技巧和注意事项,需要的朋友参考一下 MySQL 表子查询 表子查询是指子查询返回的结果集是 N 行 N 列的一个表数据。 MySQL 表子查询实例 下面是用于例子的两张原始数据表: article 表: blog 表: SQL 如下: 查询返回结果如下所示: 该 SQL 的意义在
学习如何使用集成语言查询(Language Integrate Query,LINQ)从数据库中加载实体。 提示 你可以在 GitHub 上查阅当前文章涉及的代码样例。 101 个 LINQ 样例 该页面展示了一些样例以使用 Entity Framework Core 来完成普通的任务。关于 LINQ 所能做的更多事情,请查阅 101 个 LINQ 样例 加载所有数据 using (var con
问题内容: 我目前在理解和编写递归查询时遇到一些麻烦。我知道递归查询用于搜索信息层次结构,但是我还没有找到一个可以遍历层次结构的简单在线解决方案。例如,假设我有一个对家谱建模的关系: 如果我想编写一个遍历此家谱的递归查询,收集所有父母直到出生,我该如何处理? 提前致谢。 问题答案: 您可以使用子句。 在您的情况下,SQL可能类似于:
本文向大家介绍thinkphp学习笔记之多表查询,包括了thinkphp学习笔记之多表查询的使用技巧和注意事项,需要的朋友参考一下 在操作过程中,两表查询都没有问题,但是三表查询就开始出现问题 有以下三张表,分表为pl表(uid,content),user表(id,username),lyb表(uid,title) 多表查询操作有以下几种方法: ㈠视图模型(推荐) 定义视图模型,只需要继承Thin