设为首页 收藏本站
查看: 2106|回复: 0

[经验分享] oracle笔记2-MG05 學習筆記~

[复制链接]

尚未签到

发表于 2018-9-5 11:24:12 | 显示全部楼层 |阅读模式
  2011-08-24
  alter user scott account unlock    更改用户解锁
  conn scott/tiger       重新以上述用户登录
  select语句:
  1、desc  emp        描述emp表,列出表的基本信息。
  2、数据类型:NUMBER(7,2)   7位的数字,2位小数
  学习例子:
  三张表分别为:emp  雇员表,dept 部门表,salgrade 工资等级表
  3、select from dept ;       注意:每个语句以;号结束
  4、desc dual    空表    DUMMY  空表   空表用途
  5、select sysdate from dual;
  6、select ename,sal12 from emp; 计算每个人的年薪
  select ename,sal12 anuual_sal from emp;
  select ename,sal12 "anuual sal" from emp;      anuual sal 之间不能有空格,如果有空间需加双引号
  7、select ename,sal*12 + comm from emp ;   任何空值的数学表达式都为空值
  8、两字符连接起来表达(两个字段间连接):select ename||sal from emp ;
  9、字段与字符连接:select ename || ‘abcde ’from emp;
  如果出现字符串里有引号的情况,即可以用两个引号表示一个引号,如:select ename || 'abc''de' from emp ;
  10、select distinct deptno from emp;  distinct(关键字,去除部门字段中重复的部分)
  11、where 过虑条件,not like‘_A%’第二个字母不能为A;
  12、desc  描述      降序排列   asc  升序排列(默认)
  13、 lower() 函数 把大写变成小写   如:select lower(ename) from emp ; 全部转为大写函数:upper() ,用法与lower()相同;
  14、substr()函数   如:select substr(ename,2,3) from emp;从第二个字符开始取3个字符。
  15、chr() 把数字转义为字符 如:select chr(65) from dual;
  16、ascii()把字符转义为数字 如:select ascii('A') from dual;
  17、select  round(23.652) from dual;  四舍五入
  select round(23.652,2) from dual; 四舍五入到小数点后两位 ,-1,如果是-1即是四舍五入到个位;
  18、to_char(sal,'$99,999.9999') 按指定格式输出,如:select to_char(sal,'$99,999.99999') from dual; 9代表一位数字,L代表本地货币,如:to_char(sal,'L99,999.9999')   ,0代表一位数字,数字格式模型。
  19、转换日期格式:select to_char(hiredate,'yyyy-mm-dd hh:mi:ss') from emp;
  20、to_date() 函数,把字串转为日期,如
  select ename,hiredate from emp where hiredate > to_date('1981-8-23 12:23:44', 'yyyy-mm-dd hh:mi:ss');
  21、 to_number() 函数,把字符串转为数字;如:
  select ename,sal12 from emp where sal12 > to_number('$123,3456.8997','$999,9999.9999');
  22、nvl()  处理空值函数;nvl(comm,0)表示如果comm里面的值为空则用0代替,如果不为空,则用原数表示
  如:select ename,sal*12 +nvl(comm,0) from emp;
  23、组函数:
  max()
  min()
  avg()
  sun()
  count()
  24、group by 分组函数的重要性,出现在select列表里的字段,如果没有出现在组函数里面,必须出现在group by函数里面,否则会出现错误:
  如:select deptno,avg(sal) from emp group by deptno ; 求出各部门的平均薪水;
  select deptno,job,max(sal) from emp group by deptno,job ;
  以deptno job分组
  25、子查询应用:select ename,sal from emp where sal = (select max(sal) from emp ); 查找薪水最大的人的姓名;
  26、having语句 对分组进行限制
  select avg(sal),deptno from emp group by deptno having avg(sal) > 2000;  求出平均薪水大于2000的部门;
  27、连接子查询:
  select ename,sal from emp join (select max(sal) max_sal , deptno from emp group by deptno) t on (emp.sal = t.max_sal and emp.deptno =t.deptno );
  求出每个部门薪水最高的人的姓名,与薪水
  28、表的自连接:select e1.ename,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno;
  sql 99 新语法,where 只作过虑条件使用
  十字连接:select dname,ename from emp cross join dept ;
  29、表连接的两个不同方法:where  与 join  ……  on
  如:select ename,dname from emp,dept where emp.deptno = dept.no;
  select ename,dname from emp join dept on (emp.deptno = dept.deptno);
  30、不等于连接
  如:select ename,grade from emp e, salgrade s where e.sal between s.losal and s.hisal;
  select ename,grade from emp e join salgrade s on (e.sal between s.losal and s.hisal) ;
  31、多表连接:
  select ename,dname,grade from emp e
  join dept d on (e.deptno = d.deptno)
  join salgrade s on (e.sal between s.losal and s.hisal)
  where ename not like '_A%'
  order by e.sal desc;
  32、左外连接:
  select e1.ename,e2.name from emp e1 left join emp e2 on (e1.mgr =e2.empno);
  32、右外连接:
  select ename,dname from emp e right outer join dept d on (e.deptno = d.deptno);
  33、左右全连接  full
  select ename,dname from emp e full  join dept d on (e.deptno = d.deptno);
  34、求部门平均薪水等级:
  select t.deptno,dname,grade from
  (select deptno,avg(sal) from emp group by deptno) t
  join dept d on t.deptno = d.deptno
  join salgrade s on t.avg_sal between s.losal and s.hisal
  order by t.avg_sal desc;
  35、用户授权:
  conn sys/tiger as sysdba
  创建视图:
  create v$_dept_avg_sal_info as
  select deptno,grade,avg_sal from
  (select deptno,avg(sal) avg_sal from emp group by deptno ) t
  join salgrade s on (t.avg_sal between s.losal and s.hisal)
  ;
  grant create table ,create view to scott;
  赋给用户scott  建立表,建立视图权限
  删除用户:drop user scott cascade;(注:要以管理员身份才可执行)
  36、conn sys/tiger as sysdba;    以管理员身份登录
  37、导出用户数据:
  进入一个空目录下,建立一个空文件夹来存放导出来的数据:
  c:\>cd temp
  c:\temp>del .;
  c:\temp>exp

  38、创建用户:creat user ming>  grant create session,create table,create view to ming; 授权
  39、导入用户数据:
  c:\temp>imp
  40、DML 语句:
  在dept插入一条数据:insert into dept values (50,'game','bj');
  注:字符串数据要使用单引号
  insert into dept (deptno,dname) values (60,'game2')
  insert into dept select * from dept; 把整张表都插入到里面去
  41、rollback:撤消上一步的操作
  42、备份一张表:create table emp2 as select * from emp;
  43、rownumber 的使用


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-563529-1-1.html 上篇帖子: oracle语句使用经验 下篇帖子: RHEL6 下安装oracle 10g-11300506
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表