Oracle读书笔记(一)
2017-07-16 09:17
162 查看
前言
sqlplus sys/所设定的密码 as sysdba(用管理员登陆) alter user scott account unlock;(解锁scott账户)
1. table structure
描述某一张表:desc 表名 select * from 表名
2. select 语句
计算数据可以用空表:比如:select 2*3 from dual
select ename,sal*12 annual_sal from emp;与select ename,sal*12 "annual sal" from emp;区别,加双引号保持原大小写。不加全变大写。
select ename || "abcd" 如果连接字符串中含有单引号,用两 4000 个单引号代替一个单引号。(||代表连接符)
3. distinct
select deptno from emp; select distinct deptno from emp; select distinct deptno from emp; select distinct deptno ,job from emp 去掉deptno,job两者组合的重复。更多的项,就是这么多项的组合的不重复组合。
4. where
select * from emp where deptno =10; select * from emp where deptno <>10;不等于10 select * from emp where ename ='bike'; select ename,sal from emp where sal between 800 and 1500 (>=800 and <=1500)空值处理: select ename,sal,comm from emp where comm is (not) null; select ename,sal,comm from emp where ename ( not)in ('smith','king','abc'); select ename from emp where ename like '_A%';_代表一个字母,%代表0个或多个字母. 如果查询% 可用转义字符.\%. 还可以用escape '$'比如:select ename from emp where ename like '%$a%' escape '$';
5. orderby
select * from dept; select * from dept order by dept desc;(默认:asc) select ename,sal,deptno from emp order by deptno asc,ename desc;
6. sql function1
select ename,sal*12 annual_sal from emp where ename not like '_A%' and sal>800 order by sal desc; select lower(ename) from emp; select ename from emp where lower(ename) like '_a%';等同于 select ename from emp where ename like '_a%' or ename like '_A%'; select substr(ename,2,3) from emp;从第二字符截,一共截三个字符. select chr(65) from dual 结果为:A select ascii('a') from dual 结果为:65 select round(23.652,1) from dual; 结果为: 23.7 select round(23.652,-1) from dual; 20 select to_char(sal,'$99_999_999') from emp; select to_char(sal,'L99_999_999') from emp;人民币符号,L:代表本地符号 这个需要掌握牢: select birthdate from emp; 显示为: BIRTHDATE ---------------- 17-12月-80 ---------------- 改为: select to_char(birthdate,'YYYY-MM-DD HH:MI:SS') from emp; 显示: BIRTHDATE ------------------- 1980-12-17 12:00:00 ------------------- select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; //也可以改为:HH12 TO_CHAR(SYSDATE,'YY ------------------- 2017-07-15 14:46:14
to_date函数: select ename,birthdate from emp where birthdate > to_date('1981-2-20 12:34:56','YYYY-MM-DD HH24:MI:SS'); 如果直接写 birthdate>'1981-2-20 12:34:56'会出现格式不匹配,因为表中的格式为: DD-MM月-YY.
select sal from emp where sal>888.88 无错.但 select sal from emp where sal>$1,250,00; 会出现无效字符错误. 改为: select sal from emp where sal>to_number('$1,250.00','$9,999.99');s 把空值改为0 select ename,sal*12+nvl(comm,0) from emp; 这样可以防止comm为空时,sal*12相加也为空的情况.
7. Group function 组函数
max,min,avg ,count,sum函数
select to_char(avg(sal),'99999999,99') from emp;
select round(avg(sal),2) from emp; 结果:2073.21 select count(*) from emp where deptno=10; select count(ename) from emp where deptno=10; count某个字段,如果这个字段不为空就算一个. select count(distinct deptno) from emp; select sum(sal) from emp;
前言
sqlplus sys/所设定的密码 as sysdba(用管理员登陆) alter user scott account unlock;(解锁scott账户)
1. table structure
描述某一张表:desc 表名 select * from 表名
2. select 语句
计算数据可以用空表:比如:select 2*3 from dual
select ename,sal*12 annual_sal from emp;与select ename,sal*12 "annual sal" from emp;区别,加双引号保持原大小写。不加全变大写。
select ename || "abcd" 如果连接字符串中含有单引号,用两个单引号代替一个单引号。(||代表连接符)
3. distinct
select deptno from emp; select distinct deptno from emp; select distinct deptno from emp; select distinct deptno ,job from emp 去掉deptno,job两者组合的重复。更多的项,就是这么多项的组合的不重复组合。
4. where
select * from emp where deptno =10; select * from emp where deptno <>10;不等于10 select * from emp where ename ='bike'; select ename,sal from emp where sal between 800 and 1500 (>=800 and <=1500)空值处理: select ename,sal,comm from emp where comm is (not) null; select ename,sal,comm from emp where ename ( not)in ('smith','king','abc'); select ename from emp where ename like '_A%';_代表一个字母,%代表0个或多个字母. 如果查询% 可用转义字符.\%. 还可以用escape '$'比如:select ename from emp where ename like '%$a%' escape '$';
5. orderby
select * from dept; select * from dept order by dept desc;(默认:asc) select ename,sal,deptno from emp order by deptno asc,ename desc;
6. sql function1
select ename,sal*12 annual_sal from emp where ename not like '_A%' and sal>800 order by sal desc; select lower(ename) from emp; select ename from emp where lower(ename) like '_a%';等同于 select ename from emp where ename like '_a%' or ename like '_A%'; select substr(ename,2,3) from emp;从第二字符截,一共截三个字符. select chr(65) from dual 结果为:A select ascii('a') from dual 结果为:65 select round(23.652,1) from dual; 结果为: 23.7 select round(23.652,-1) from dual; 20 select to_char(sal,'$99_999_999') from emp; select to_char(sal,'L99_999_999') from emp;人民币符号,L:代表本地符号 这个需要掌握牢: select birthdate from emp; 显示为: BIRTHDATE ---------------- 17-12月-80 ---------------- 改为: select to_char(birthdate,'YYYY-MM-DD HH:MI:SS') from emp; 显示: BIRTHDATE ------------------- 1980-12-17 12:00:00 ------------------- select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; //也可以改为:HH12 TO_CHAR(SYSDATE,'YY ------------------- 2017-07-15 14:46:14
to_date函数: select ename,birthdate from emp where birthdate > to_date('1981-2-20 12:34:56','YYYY-MM-DD HH24:MI:SS'); 如果直接写 birthdate>'1981-2-20 12:34:56'会出现格式不匹配,因为表中的格式为: DD-MM月-YY.
select sal from emp where sal>888.88 无错.但 select sal from emp where sal>$1,250,00; 会出现无效字符错误. 改为: select sal from emp where sal>to_number('$1,250.00','$9,999.99');s 把空值改为0 select ename,sal*12+nvl(comm,0) from emp; 这样可以防止comm为空时,sal*12相加也为空的情况.
7. Group function 组函数
max,min,avg ,count,sum函数
select to_char(avg(sal),'99999999,99') from emp;
select round(avg(sal),2) from emp; 结果:2073.21 select count(*) from emp where deptno=10; select count(ename) from emp where deptno=10; count某个字段,如果这个字段不为空就算一个. select count(distinct deptno) from emp; select sum(sal) from emp;
相关文章推荐
- 《Oracle 9i&10g 编程艺术》读书笔记——事务
- Oracle 11g控制文件和日志文件管理(《Oracle从入门到精通》读书笔记2)
- sql分组查询 group by having(Oracle 10g宝典第六章读书笔记)
- Oracle读书笔记-----PL/SQL编程(二)之程序流程
- Oracle 9i 10g编程艺术 —— 读书笔记(二)
- 【读书笔记】【收获,不止Oracle】嵌套循环与索引
- 《Oracle PL/SQL 完全自学手册》读书笔记 2.5 PL/SQL基本结构
- 2012年1月10日 星期二(oracle读书笔记,体系架构和存储结构)
- oracle读书笔记
- 6.读书笔记收获不止Oracle之 逻辑体系
- 【读书笔记】【收获,不止Oracle】位图索引(2)
- oracle读书笔记之体系结构一
- 30.读书笔记收获不止Oracle之表的哈希连接
- 《基于ORACLE SQL优化》读书笔记-CURSOR
- oracle 读书笔记
- oracle读书笔记-----PL/SQL编程(一)之基本数据类型、程序结构
- Oracle读书笔记-----PL/SQL编程(二)之程序流程
- Oracle读书笔记-----PL/SQL编程(三)之游标
- 2012年1月9日 星期一(oracle读书笔记,PL/SQL程序触发器的使用)
- 2012年1月12日 星期四(oracle读书笔记,oracle体系架构之数据字典)