oracle各种指令(上课笔记)
oracle各种指令(上课笔记)
1.启动服务(必须要启动)
(1)listener
(2)数据库
注意:
E:\oracle\product\10.1.0\db_1\NETWORK\ADMIN
listener.ora
tnsnames.ora
2.sql plus
可视化工具
dos
3.三个系统帐号
sys chang_on_install 角色 sysdba system manage scott tiger (普通用户) conn 用来连接数据库 conn 用户名/密码@//ip/数据库名 conn scott/tiger@//192.168.41.2/niit conn 用户名/密码 conn 用户名/密码 as sysdba
4.oracle一些常用的命令
(1) conn:建立连接
(2) disconn:断开连接
(3) show user; 查看当前用户
(4) start或@ :用来执行文件里的语句
(5) edit :用来编辑一个文件
(6) passw:用来修改自己的密码
如果要修改别人的密码,必须用管理员的身份来登录
alter user scott identified by tiger;
给用户去解锁
alter user scott account unlock;
(7) spool :将控制台中的内容输出到文件中去
spool d:\aa.txt
所有做的操作
spool off
(8) &:与数据进行交互
select empno from emp where ename=&aa;
5.oracle中的数据类型
(1)字符类
char 2000个字符 一个中文占两个字符
长度是定长 char(15) 'niit' 用空格来补全
varchar2 4000个字符
变长 varchar2(36) 'niit' 32
clob 4G内容
(2)数值类型
number -10的38次方 10的38次方 整数和浮点
number(n[,m])
number(3) -999 999
number(5,3) -99.999 99.999
(3)日期类型
date 年月日时分秒
timestamp 毫秒
得到当前系统的时间
sysdate 日月年 01-1月-13
systimestamp
6.简单查询
(1) select * from emp;
(2) select empno from emp where ename=&aa;
(3) +-*/ 得到所有员工的年薪为多少
select sal*13 from emp;
(4) as 起别名
select sal*13 年薪 from emp;
(5) null值的处理 nvl(comm,0)
select sal*13+nvl(comm,0) from emp;
(6) 字符连接符||
select 'name is'||ename from emp;
(7) and or
select empno from emp where ename='dd' or 5>3;
(8) in not in
select sal from emp where sal in(1200,4500,1500);
(9) between and
(10) > >= < <= !=(<>)
(11) like 模糊查询
% 表示有0到多个字符
_ 表示一个字符
找到所有员工名中有S 的员工的信息
select ename from emp where ename like '%S%';
select ename from emp where ename like '_O%';
(12) 排序 order by asc/desc
select sal from emp order by sal;
8. 单行函数
(1) 数值函数
(a) abs(n); 绝对值
select abs(-9) from dual; 9
(b) ceil(n): 天花板 大于等于n的最小整数
select ceil(3.4) from dual; 4
(c) floor(n): 地板 小于等于n的最大整数
select floor(3.4) from dual; 3
(d) round(n,m) 四舍五入
select round(3.5),round(3.4) from dual;
select round(333.35,1),round(343.33,-2) from dual;
(e) trunc(n,m) 截取
select trunc(3.5),trunc(3.4) from dual;
select trunc(333.35,1),trunc(353.33,-2) from dual;
(2) 字符函数
(1)concat(char,char) 连接字符
select concat(ename,sal) from emp;
(2) initcap(char) 首字母大写
select initcap(ename) from emp;
(3) instr(char,char[,n,m]) 找子串下标
select instr('abcdsdgsd','a') from dual;
select instr('abcdsdgsd','d',-1,3) from dual;
(4) length(char) :返回字符串的长度
select ename from emp where length(ename)==4;
(5) lower() 变成小写
(6) upper() 变成大写
(7) lpad() 左填充
(8) rpad() 右填充
select lpad(ename,10,'*') from emp;
(9) trim() 去掉两端空格
select trim(' aa ') from dual;
select trim('a' from 'aaabbbaaacccdddaaa') from dual;
rtrim()
ltrim()
(10) substr(char,n,m)
select substr('niit',1) from dual;
(3) 日期和时间
(1)sysdate
(2)systimestamp
(3)add_months(sysdate,2) 加/减几个月。
select sysdate,add_months(sysdate,2),add_months(sysdate,-2) from dual;
(4) alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
(5) months_between(d,d).相差的月份 oracle 31来计算
得到员工到目前为止干了多少个月
select months_between(hiredate,sysdate) from emp;
(6) extract(year from d)
year month day hour minute second
select extract(year from sysdate) from dual;
(7) last_day(d)得到日期中最后一天
(8) next_day();下一个工作日
(9) round :对日期四舍五入
(10)trunc :对日期截取
year month ,day
select round(sysdate,'month') from dual;
select trunc(sysdate,'month') from dual;
yyyy 年
mm 月
dd 日
hh hh24
mi
ss
$ 表示美元
L 本地货币的表示
, 数值之间的分隔
. 小数分隔
9 表示数值
0 表示小数位
(4) 转换函数
to_char(c,format)
select to_char(sysdate,'dd') from dual;
select to_char(123456,'$999,999.99') from dual;
$123,456
to_date('今天是2013年','"今天是"yyyy"年"') from dual;
to_number()
(5) 其它函数
nvl()
decode(); if else if else if
select decode(job,'CLERK',sal,'MANAGER',sal*1.2) from emp;
9.分组函数
count() 个数
sum() 求和
avg() 平均值
max() 最大值
min() 最小值
(1)各个部门的成员人数
group by 分组
select count(empno) from emp group by deptno;
select deptno ,count(empno) from emp group by deptno;
(2)得到每个部门的平均工资
select avg(sal) from emp group by deptno;
得到除了10号部门的平均工资
select deptno,avg(sal) from emp where deptno not in(10) group by deptno;
select deptno,avg(sal) from emp where avg(sal) >=2000 group by deptno;
(3) select deptno,avg(sal) from emp where deptno not in(10) group by deptno having avg(sal)>=800 order by avg(sal) asc;
1.where 过滤 一些记录
2.group by 分组 第二次记录
3.分组后的过滤 having 第三次记录
4.order by 排序
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。