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

[经验分享] Oracle系列:(5)select子句

[复制链接]

尚未签到

发表于 2018-9-7 13:03:15 | 显示全部楼层 |阅读模式
  使用scott用户下emp表进行测试
  0、环境设置
--以下代码是对emp表进行显示做设置  

  
col empno for 9999;
  
col ename for a10;
  
col job for a10;
  
col mgr for 9999;
  
col hiredate for a12;
  
col sal for 9999;
  
col comm for 9999;
  
col deptno for 99;
  
col tname for a20;
  
set pagesize 80;
  1、查询
  查询emp表的所有内容,*号表示通配符,表示该表中的所有字段,但*号不能和具体字段一起使用
select * from emp;  或
select empno,ename,sal,deptno from emp;  查询emp表的员工编号,姓名,工资,部门号,列名,大小写不敏感,但提倡大写
select empno "编号",ename "姓名",sal "工资",deptNO "部门号" FROM Emp;  查询emp表的不重复的工作【distinct
select distinct job from emp;  查询员工的编号,姓名,月薪,年薪(月薪*12)
select empno,ename,sal,sal*12 "年薪" from emp;
DSC0000.png

  查询员工的编号,姓名,入职时间,月薪,年薪,年收入(年薪+奖金) 【NULL值判断和使用
select empno "编号",ename"姓名",hiredate "入职时间",sal "月薪",sal*12 "年薪",sal*12+comm "年收入" from emp;  如果结果为null,在sqlplus客户端工具中,是不显示null这个值的
  注意:null与具体数字运算时,结果为null。
DSC0001.png

  解决null的问题,使用NVL()函数,NVL(a,b):如果a是NULL,用b替代;如果a是非NULL,就不用b替代,直接返回a的值。
  select NVL(null,10) from emp;结果有14行记录
  select NVL(null,10) from dual;结果有1行记录
select empno "编号",ename"姓名",hiredate "入职时间",sal "月薪",sal*12 "年薪",sal*12+NVL(comm,0) "年收入" from emp;
DSC0002.png

  使用列别名,查询员工的编号,姓名,月薪,年薪,年收入(年薪+奖金),AS大小写都可,且可以省略AS,别名用双引号 【别名和引号
select empno AS "编号",ename as "姓名",sal "月薪" from emp;  或
select empno AS 编号,ename as 姓名,sal 月薪 from emp;  区别
select empno AS "编号",ename as 姓名,sal "月    薪" from emp;  不加双引号的别名不能有空格;加了双引号的别名可以有空格
  要加只能加双引号,不能加单引号,因为在oracle中单引号表示字符串类型或者是日期类型
  列名不能使用单引号,因为oracle认为单引号是字符串型或日期型
  【dual哑表、字符串连接符号||
  使用dual哑表或者伪表,使用字符串连接符号||,输出"hello world",在oracle中from是必须写的
select 'hello' || ' world' "结果" from dual;
DSC0003.png

  使用字符串连接符号||,显示如下格式信息:****的薪水是****美元
select ename || '的薪水是' || sal || '美元' from emp;
DSC0004.png

  【系统时间sysdate
  使用sysdate,显示系统当前时间,在默认情况下,oracle只显示日期,而不显示时间,格式:26-4月-15
select sysdate from dual;
DSC0005.png

  SQL语句的特点
  1)是SQL92/99的ANSI官方标准,只要按照该标准来写,在任何的关系型数据库中都可以直接执行
  2)SQL语句的关健字不能简写,例如:select,where,from
  3)大小写不敏感,提倡大写
  4)能够对表数据进行增删改查操作
  5)必须以分号结束
  6)通常称做语句
  SQLPLUS命令的特点
  1)是oracle自带的一款工具,在该工具中执行的命令叫SQLPLUS命令
  2)SQLPLUS工具的命令中的关健字可以简写,也可以不简写,例如:col ename for a10;
  3)大小写不敏感,提倡大写
  4)不能够对表数据进行增删改查操作,只能完成显示格式控制,例如:设置显示列宽,清屏,记录执行结果
  5)可以不用分号结束,也可以用分号结束,个人提倡不管SQL或SQLPLUS,都以分号结束
  6)通常称做命令,是SQLPLUS工具中的命令
  注意:SQLPLUS命令是SQLPLUS工具中特有的语句
  单引号出现的地方如下:
  1)字符串型,例如:'hello' || ' world'
  2)日期型,例如'25-4月-15'
  双引号出现的地方如下:
  1)列别名,例如:sal*12 "年 薪",或 sal*12 年薪,个人提倡用""双引号作列别名



运维网声明 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-566124-1-1.html 上篇帖子: Oracle系列:(4)Oracle预备知识2 下篇帖子: Oracle系列:(6)where子句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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