您的位置:首页 > 数据库 > Oracle

Oracle学习笔记(二)

2016-06-12 18:00 323 查看
一 、文字字符串

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.多行函数(组函数)



转载请注明出处
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: