一 、文字字符串
SELECT语句后面可以包含文字值:字符、表达式、数字
字符文字值必须用单引号括起来
对于文字值每行输出一次
二、消除重复行
DISTINCT应用到SELECT后所有列,所有列联合起来唯一
如果SELECT后面跟DISTINCT关键字,一定是直接跟在SELECT后面,前面没有任何内容
select distinct deptno from emp;
select distinct deptno,job from emp;--deptno,job的组合唯一
三、WHERE的作用
用where子句对表里的记录进行过滤
where子句跟在from子句后面,where子句后跟条件表达式
where子句后不能跟别名
select ename,deptno,sal
from emp
where deptno=10;
四、绑定变量
select ename,deptno,job
from emp
where deptno=&no;
select ename,deptno,sal
from emp
where sal>&salary
数据库命令大小写不敏感,但数据对大小写敏感
字符串必须用单引号引起来,字符串对大小写敏感
五、比较和逻辑运算符
1.逻辑比较运算符:
= > >= < <=
2.SQL比较运算符
BETWEEN AND; IN; LIKE; IS NULL
(1)BETWEEN AND表示一个范围,闭区间,含义为大于等于并且小于等于
select ename,job,sal,hiredate
from emp
where sal between 1500 and 2000;
(2)IN表示一个集合,是离散值,含义为等于其中任意一个值,等价于ANY
select deptno, dname, loc
from dept
where deptno in(10,20);
select ename,job,deptno
from emp
where job in('ANALYST','MANAGER');
(3)LIKE运算符
在字符串比较中可用like和通配符进行查找
通配符的种类:
%表示0或多个字符
_表示任意单个字符
select ename
from emp
where ename like 'M%';--以M开头
select ename
from emp
where ename like '_A%';--第二个字母为A
select ename from emp
where ename like 'A\_%' escape '\';--\后面的字符不按照通配符处理,当作本意进行处理
(4)IS NULL
测试NULL值需要IS NULL运算符
NULL不能用=和<>跟任何值比较,包括它自身
select empno, ename, job
from emp
where mgr IS NULL;
3.逻辑运算符:
AND; OR; NOT
六、运算符的否定形式
1.逻辑比较运算符
<> != ^=
2.SQL比较运算符
NOT BETWEEN AND
NOT IN
NOT LIKE
IS NOT NULL
select ename,job
from emp
where job<> 'SALEMAN';
七、WHERE后面跟多个条件
select ename,sal,deptno
from emp
where sal>=1000
and deptno=20
or deptno=10;--对部门10的员工sal没有要求
select ename, sal, deptno
from emp
where sal>1000
and (deptno=20
or deptno=10);
八、ORDER BY子句
用ORDER BY子句对查询出来的结果集进行排序
ASC升序,缺省值
DESC降序
ORDER BY是SELECT语句中最后一个句子
select ename, job, sal, from ep
order by sal desc;
select ename, job, sal, deptno from emp
order by deptno, sal, desc;--按deptno降序,相同deptno的按照sal降序排列
select ename, sal, deptno
from emp
order by 2;--按照第二个字段排序
九、SQL函数的两种类型
1.单行函数
(1)字符类型(character)
LOWER小写函数
select lower('SQL Course') from dual;--sql course
UPPER大写函数
select upper('SQL Course') from dual;--SQL COURSE
select * from emp
where upper(ename) ='SCOTT';
INITCAP首字符大写函数
select initcap('SQL Course') from dual;--Sql Course
CONCAT拼接函数
select concat('hello','world') from dual;--helloworld,用||更简单一些
SUBSTR求字串函数
select substr('helloworld',3,3)from dual;--llo
LENGTH字符串长度
select length('helloworld') from dual;--10
LPAD右对齐函数,位数不够,左边补指定字符
select lpad('hello',10,'*')from dual;--*****hello
RPAD左对齐函数,位数不够,右边补指定字符
(2)数值类型(number)
round(四舍五入)
select round(45.678,2) from dual;--45.68
select round(45.678,0) from dual;--45
select round(45.678,-1) from dual;--50
trunc(截取)
select trunc(45.678,2) from dual;--45.67
select trunc(45.678,0) from dual;-- 45
select trunc(45.678,-1) from dual;--40
mod(取模)
select mod(16,3) from dual;-- 1
(3)调用函数
2.多行函数(组函数)
转载请注明出处