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(yea