From子句
-select用于指定要查询的列
-from指定要从哪几个表中查询
•如果要查询所有列,可以在select后面使用*号
•如果只查询特定的列,可以直接在select后面指定列名,列名之间用逗号隔开
select * from dept
使用别名
在sql语句中可以通过使用列的别名改标题的显示文字,或者表示计算结果的含义。
可以加as,也可以不加
如果希望别名要区分大小写,或者在别名中含有字符或空格,用“双引号引起来。
例子:select empno as id ,ename "Name",sal*12 "Annual Salary" from emp;
where子句
在select语句中,可以在where子句中使用比较辐照的限制查询结果
如果和数字比较的话,可以使用单引号,也可以不用
如果和字符及日期类型的数据比较,则必须用单引号一起
select * from emp where deptno = 10;
select ename,sal,job from emp where job ='salesman';
select 子句
如果只查询表的部分列,需要在select后制定列名
select ename,sal from emp;
使用>,<,>=,!=,<>(等价!=),=
select ename,sal from emp where sal <2000;
select ename,sal ,jbo from emp where deptno 1= 10;
select ename,sal,hiredate from emp where hiredate > to_date('2002-1-1','YYYY-MM-DD');
使用and,or关键词
在sql操作中,如果希望返回的结果必须满足多个条件,应该使用and逻辑操作符连接这些条件
在sql操作中,如果希望返回的结果瞒住多个条件之一即可,应该使用or逻辑操作符连接这些条件
select ename,sal,job from emp where sal >1000 and job='CLERK'
select ename sal,jbo from emp where sal >1000 or job 'CLERK'
使用like条件(模糊查询)
比较操作符like用来模糊查询
当用户执行查询时,不能完全确定某些星系的查询条件或者只知道信息的一部分,可以借助like来实现
like需要连个适配符
%表示0到多个通配符
_表示一个统配符
这两个统配符可以配合使用,够着灵活的匹配条件
select ename,job form emp
where ename like'_A%'
使用IN和NOT IN
比较操作符IN(list)用来取出符合列表范围中的数据。
List表示值列表,当列或表达式匹配列表中的任何一个值时,条件为TRUE,改条记录则被显示出来
IN也可以理解为一个范围比较操作符,只不过这个范围是一个指定的列表
NOT IN(list)取出不符合此列表中的数据记录
select enamel,job from emp wherejobIN(‘MANNAGER’,‘CLERK’);
select ename ,bob from emp where deptno not in (10,20);
between and (包含边界)
select enamel,sal from emp where sas betweeen in 1500 and 3000;
使用is null 和 is not null
空值null是一个特殊的值,比较的时候不能使用“=”号,必须使用is null,否则不能得到正确的结果。
select ename ,sal,comm from emp where comm is null;
使用any和all条件
all和any不能单独使用,必须配合单行比较符,>,>=,<,<=一起使用。
>any:大于最小(只要大于任何一个就行)
<any:小于最大(只要小于任意一个就行)
>all:大于最大(大于所有)
<al:小于最小(小于所有)
select emno,ename ,jbo ,sal ,deptno,form emp
where emp
where sal > any(3500,4000,4500)
查询条件中使用表达式和函数
当查询需要对选出的字典进行进一步计算,可以在数字列上使用算术表达式(+、-、*、/)
表达式符合四则运算的默认优先级,如果要改变优先级可以使用括号
算术运算主要针对数字类型的数据,对日期类型的数句可以做加减操作,表示一个日期值上加或减一个天数
select ename, sal , job from emp where ename=upeer(''rose);
select ename,sal,job from emp where sal*12 >100000;
使用distinct过滤重复
select deptno from emp;
select distinct deptno from emp;
select distinct deptno, job from emp;