oracle中的dual伪表、虚拟表
/*
dual是一个虚拟表,用来构成select的语法规则,oracle保
证dual里面永远只有一条记录。我们可以用它来做很多事情,如下:
*/
--SYSDATE表示系统时间,dual表示伪表(虚拟表)
SELECT SYSDATE FROM dual;
--做运算
SELECT (6 + 6) * 2 FROM dual;
--做字符串的拼接
SELECT '江西省赣州市' || '于都县' FROM dual;
--获得一个随机数
SELECT dbms_random.random FROM dual;
--查看当前用户
SELECT USER FROM dual;
--用来调用系统函数
--获得当前系统时间
SELECT to_char(SYSDATE,'yyyy-mm-dd hh24:mi:SS') FROM dual;
--获得主机名
SELECT SYS_CONTEXT('USERENV','TERMINAL') FROM dual;
/*
注意:在oracle数据库中,select后面哪怕跟的是常量,也必须要加上from dual;
但是在mysql数据库中,select后面如果是常量的话,可以不用加from 表名
*/
--以下是oracle数据库中的写法,常量后面必须要加上FROM dual;否则会报错
SELECT '江西省赣州市于都县' FROM dual;
SELECT 8 + 10 FROM dual;
--以下是mysql数据库中的写法
SELECT '江西省赣州市于都县';
SELECT 8 + 10;
![](https://img-blog.csdnimg.cn/20190602223416794.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2N6aDUwMA==,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190602223516950.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2N6aDUwMA==,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190602224401241.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2N6aDUwMA==,size_16,color_FFFFFF,t_70)