Oracle系列:(5)select子句
使用scott用户下emp表进行测试 0、环境设置 --以下代码是对emp表进行显示做设置 colempnofor9999; colenamefora10; coljobfora10; colmgrfor9999; colhiredatefora12; colsalfor9999; colcommfor9999; coldeptnofor99; setpagesize20; coltnamefora20; 1、查询 查询emp表的所有内容,*号表示通配符,表示该表中的所有字段,但*号不能和具体字段一起使用 select*fromemp; 或 selectempno,ename,sal,deptnofromemp; 查询emp表的员工编号,姓名,工资,部门号,列名,大小写不敏感,但提倡大写 selectempno"编号",ename"姓名",sal"工资",deptNO"部门号"FROMEmp; 查询emp表的不重复的工作【distinct】 selectdistinctjobfromemp; 查询员工的编号,姓名,月薪,年薪(月薪*12) selectempno,sal*12"年薪"fromemp; 查询员工的编号,姓名,入职时间,月薪,年薪,年收入(年薪+奖金) 【NULL值判断和使用】 selectempno"编号",hiredate"入职时间",sal"月薪",sal*12"年薪",sal*12+comm"年收入"fromemp; 如果结果为null,在sqlplus客户端工具中,是不显示null这个值的 注意:null与具体数字运算时,结果为null。 解决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行记录 selectempno"编号",sal*12+NVL(comm,0)"年收入"fromemp; 使用列别名,查询员工的编号,姓名,月薪,年薪,年收入(年薪+奖金),AS大小写都可,且可以省略AS,别名用双引号 【别名和引号】 selectempnoAS"编号",enameas"姓名",sal"月薪"fromemp; 或 selectempnoAS编号,enameas姓名,sal月薪fromemp; 区别 selectempnoAS"编号",sal"月薪"fromemp; 不加双引号的别名不能有空格;加了双引号的别名可以有空格 要加只能加双引号,不能加单引号,因为在oracle中单引号表示字符串类型或者是日期类型 列名不能使用单引号,因为oracle认为单引号是字符串型或日期型 【dual哑表、字符串连接符号||】 使用dual哑表或者伪表,使用字符串连接符号||,输出"hello world",在oracle中from是必须写的 select'hello'||'world'"结果"fromdual; 使用字符串连接符号||,显示如下格式信息:****的薪水是****美元 selectename||'的薪水是'||sal||'美元'fromemp; 【系统时间sysdate】 使用sysdate,显示系统当前时间,在默认情况下,oracle只显示日期,而不显示时间,格式:26-4月-15 selectsysdatefromdual; |