第一课:客户端
命令行下:sqlplus 用户名:scott 密码:tiger,sqlplus scott/tiger
2.开始-运行-sqlplus 图形版的sqlplus
toad:管理 plsql developer
第二课:更改用户
sys/bjsxt as sysdba
user scott account unlock;(解锁)
第三课:table_structures
表名 * from 表名
第四课:select语句
ename, sal*12 annual_sal from emp;
select ename sal*12 "annual sal" from emp;
双引号可以保持原大小写,并且中间可以加空格,不加全变为大写
dual,select 2*3 from dual,dual是系统自带的一张空表,计算数据时可以使用该表
3.任何含有空值的算术表达式的计算结果是空值
ename||sal from emp; ename+sal
ename ||abcdefg' from emp; ename+abcdefg
ename ||abcd''efg' from emp;
当字符串中含有单引号时,可用两个单引号代表一个单引号 ename+abcd’efg
linesize 200;--用于设定每行显示的宽度
pagesize 30;--设置显示的页数
第五课:distinct 除重复。
distinct deptno from emp;
distinct deptno,job from emp;
第六课:where
* from emp where empno = 10;
* from emp where empno <>10; !10
* from emp where ename = hebe';
* from emp where sal (not) between 800 and 1500;
* from emp where comm is (not) null;
* from emp where ename (not) in ('smith','philip','jay');
* from emp where ename like '_a%';一个 % any
* from emp where ename like '_a%';系统默认转义符是\,可以自己指定转义符
* from emp where ename like '_a%' escape '$设$为转义符。
第七课:order by
* from dept;
* from dept order by dept desc;(默认为asc – 升序)
ename, sal, deptno from emp where sal > 2000 order by deptno asc,ename desc;
第八课:sql_function
ename,sal*12 annual_sal from emp where ename not like '_a%' and sal > 1500
order by sal desc;
lower(ename) from emp; to 小写。
ename from emp where lower(ename) like '_a%';
substr(ename,2,3) from emp;从第二字符截,一共截三个字符。
chr(65) from dual;结果为a ascii to 字符。
ascii('a') from dual;结果为65 字符to ascii
round(35.572) from dual;结果为36
round(35.572,2) from dual;结果为35.57
round(35.572,-1) from dual;结果为40
10. to_char函数。
select to_char(sal,'$99,999.9999') from emp;to_char函数主要用于对日期和数字进行格式化 to &1,234.5600
to_char(sal,'l99,999.9999') from emp;人民币符号¥,l代表本地符号。
birthdate from emp;
显示为:birthdate
22-3月-87
改为:select to_char(birthdate,'yyyy-mm-dd hh24:mi:ss') from emp;
显示为:1987-03-22 12:00:00
函数 select ename,birthdate from emp where birthdate > to_date('1987-3-22 11:22:33','yyyy-mm-dd hh24:
mi:ss');不能直接写birthdate>'1987-2-22 11:22:
33'会出现格式不匹配,因为表中格式为dd-mm月-yy,
14. to_number 函数。
select sal from emp where sal > to_number('$12,444.99','99,999.99');
ename, sal*12+nvl(comm,0) from 这样防止comm为空时,sal*12相加也为空的情况
第九课:group function 组函数
max(sal) from emp;
min(sal) from emp;
to_char(**g(sal), 999,999,999.99') from emp;
round(sum(sal),2) from emp;
count(*)from emp where sal > 1500;
count(comm) from emp; 非空。
count(distinct deptno) from emp; 非空非重复。
第十课:group by语句
**g(sal) from emp group by deptno;
deptno,**g(sal) from emp group by deptno;
deptno,job,max(sal) from emp group by deptno,job;
4.求薪水值最高的人的名称select ename,max(sal) from emp;出错,因为max只能有一个值但是等于max的值可能有好几个,不能匹配。
可以写成select ename from emp where sal=(select max(sal) from emp);
group by 语句应注意,出现在select中的字段,如果没有出现在组函数中,必须出现在group by语句中。
第十一课:h**ing对分组结果筛选
是对单条记录进行筛选,h**ing是对分组结果进行筛选
select **g(sal),deptno from emp group by deptno h**ing **g(sal) >2000;
2.查询工资大于2000的雇员,按照部门编号进行分组,分组后平均薪水大于1500,按工资倒序排列
select deptno,**g(sal) from emp where sal > 2000 group by deptno h**ing **g(sal) >1500 order by **g(sal) desc;
第十二课:子查询
语句中嵌套select 语句,求哪些人工资在平均工资之上。
select ename,sal from emp where sal > select **g(sal) from emp);
2.查找每个部门挣钱最多的那个人的名字。
select ename, deptno from emp where sal in (select max(sal) from emp group by deptno) 查询会多值。正确写法是:
应把select max(sal),deptno from emp group by deptno当成一个表,语句如下:
select ename,sal from emp join (select max(sal) max_sal,deptno from emp group by deptno) t on ( and =
oracle笔记
1 查看表的结构 desc tabledescription 2 set timing on 打开操作表的时间记录。3 消除重复行 distinct 4 大小写不区分的是列名,而不是里面的数据。1 可以对某一列直接进行加减乘除。两列相加。2 如果有一列为null,所得结果也为空。使用nvl函数处理n...
Oracle笔记
第1页1.oracle 的使用 1.1.sqlplus 的命令 初始化表的位置 set nls lang american 设置编码才可以使用下面脚本 cd oracle home rdbms cd demo 我们目前使用的是oralce 9i 9201 版本 select from v versi...
oracle笔记
clear 清屏。col title for a20 设置title的字符最多有20个。oracle介绍。rdbsrdb 基本的存储结构是,二维表。表头。行。列。字段。sql的分类 dsl 关键字 select dml 操作 insert delete update ddl 定义 create dr...