mysql伪表 dual_Oracle系列:(5)select子句

使用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;

45b20f8ea0ffb7f71a5eb88fe4d989f5.png

查询员工的编号,姓名,入职时间,月薪,年薪,年收入(年薪+奖金) 【NULL值判断和使用】select empno "编号",ename"姓名",hiredate "入职时间",sal "月薪",sal*12 "年薪",sal*12+comm "年收入" from emp;

如果结果为null,在sqlplus客户端工具中,是不显示null这个值的

注意:null与具体数字运算时,结果为null。

62d66538995f9c34af41779e3a5c9933.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;

d7771bf8ba6c348fc2e8c0f4f661a3a8.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;

74ce1986c9367fe25d1acc591fcb5146.png

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

58df2b80a2f23f0791985c5b083809b6.png

【系统时间sysdate】

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

c586a32c4b41213624e53f75cc9b2550.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 年薪,个人提倡用""双引号作列别名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值