本文主要介绍的是关于Oracle中的简单查询和限定查询,下面话不多说,来一起看看吧。
sql:
1,DML(数据操作语言):主要指的是数据库的查询与更新的操作,查询操作是整个sql语法 中最麻烦也是笔试中最常用的部分。
2,DDL(数据定义语言):主要指的是数据对象的创建(表、用户、)例如:creat.需要相关的设计范式。
3,DCL(数据控制语言):主要进行权限的操作(需要结合用户来观察),此部分由DBA负责。
简单查询:
1,利用select @H_404_20@子句控制要显示的数据列:
2,可以使用distinct@H_404_20@来消除重复的数据行显示:
3,select@H_404_20@子句可以进行四则运算,可以直接输出常量内容,但是对于字符串使用单引号数字直接编写,日期格式按照字符格式:
5,where@H_404_20@子句一般都写在
from@H_404_20@子句之后,但是是紧跟着
from@H_404_20@子句之后执行的,
where@H_404_20@子句控制显示数据行的操作,而
select@H_404_20@控制数据列,
select@H_404_20@子句要落后于
where@H_404_20@子句执行,所以在
select@H_404_20@子句之中定义的别名无法在
where@H_404_20@中使用。
限定查询:
1,关系运算符:
select * from emp where ename ='SMITH'
select empno,job from emp where job<>'SALESMAN';
2,逻辑运算符:
3,范围查询:
4,空判断
(空在数据库上表示不确定,如果在数据列使用null不表示0)5,IN操作符
(类似于between and @H_404_20@而in给出的是指定的范围):
sql;">
select * from emp where empno in (7369,7566,7788,9999);
关于not in@H_404_20@与null@H_404_20@的问题:
在使用not in @H_404_20@进行范围判断的时候,如果范围有null@H_404_20@,那么不会有任何结果返回。
6,模糊查询:
“-”:匹配任意一位字符;
“%”:匹配任意的0,1,,或者多位字符;
查询姓名是以字母A开头的雇员信息:
sql;">
select * from emp where ename like 'A%'
查询姓名第二个字母是A的雇员信息:
sql;">
select * from emp where ename like '_A%';
查询姓名任意位置是A的雇员信息:
sql;">
select * from emp where ename like '%A%';
查询排序:
ASC(默认):按照升序排列;
DESC: 按照降序排列;
查询所有的雇员信息,要求按照工资的由高到低:
sql;">
select * from emp order by sal desc;
查询每个雇员的编号,姓名,年薪,按照年薪由低到高排序:
sql;">
select empno,sal*12 income from emp order by income;
语句的执行顺序:from @H_404_20@- where @H_404_20@-select @H_404_20@- order by@H_404_20@
基础练习:
1,选择部门30中的所有员工:
sql;">
select * from emp where deptno=30;
2,列出所有办事员(clerk)的姓名,编号,和部门编号:
sql;">
select ename,empno,deptno from emp
where job='CLERK';
3,找出佣金高于薪金的60%的员工:
sal*0.6 ;
4,找出部门10中所有的经理(manager)和部门20中所有的办事员(clerk):
sql;">
select *
from emp
where (deptno=10 and job='MANAGER' )or(deptno=20 and job='CLERK' );
5,找出部门10中所有的经理(manager),部门20中的所有办事员(clerk),以及既不是经理又不是办事员但是工资高于等于2000的所有员工资料:
=2000);
=2000);
6,找出收取佣金的员工的不同工作:
sql;">
select distinct job
from emp
where comm is not null;
7,找出收取佣金或者收取的佣金低于100的员工:
sql;">
select distinct job
from emp
where comm is null or comm<100;
8,显示不带有“R”的员工姓名:
sql;">
select *
from emp
where ename not like '%R%';
9,显示姓名字段含有A的所有员工姓名,显示的结果按照基本的工资由高到低,如果工资相同,则按照雇佣年限由早到晚,如果雇佣日期相同,则按职位排序:
sql;">
select * from emp where ename like '%A%' order by sal desc,hiredate
asc,job;
总结