学习Oracle

设置行宽:set linesize 200 表示行宽被设置为200的字符

设置列宽:column name format a40 设置name列为40个字符,a表示alphanumeric,字符的意思

 

 between的用法:小<=   and   <=大,顺序不能反(大   and    小)就错了

between也能适用于介于日期之间的查询,但是日期需要加上单引号

 

 模糊查询:like   'x_'   'x%'

 

 not in中不能出现null,出现null结果为空

 

 排序:order  by  默认是升序ASC(从低到高)

 

desc降序(从高到低)

 

 select控制列   where控制行。select后面跟着列,where后面跟着条件嘛,条件筛选完就是行。

 

 排序空列值放到最后

 

 append:

 

 

 

 多列排序,比如我先按工资进行降序,再把空值放到最后,为什么空值需要放到最后还需要写语句来操作,因为空值在数据库中是最大的,默认是放到最前面的。

空值放最后之后再接着排序没有效果,是不是空值放最后这是一条单独的语句,不能和其他的操作组合在一起?

 

先按sal降序,降序中的相同部分再按comm来升序

 

 Oracle带的函数:

单行函数:

 

 

 

lower是把字符串全部变成小写的,upper是把字符串全部变成大写的,initcap是把字符穿的第一个字母变成大写的

看上面的两张表可以看出选择emp表是将很多相同列名的行的第一个列改成了别名而选择dual表却是只改变了一个列,这是为什么?

我们接下来看看emp和dual表的具体内容:

 

 那dual是什么表呢?

1:DUAL表是Oracle提供的最小的工作表,是sys用户下的一张内部表,所有用户都可以使用DUAL名称访问,无论什么时候这个表总是存在。
2:DUAL表是一个单行单列的虚拟表,这个表只有1列DUMMY,数据类型为VARCHAR2(1),不论执行什么操作(不要删除记录),它都只有一条记录——“X”,Oracle有内部逻辑保证DUAL表中只有一条数据
3:DUAL表主要用来选择系统变量或求一个表达式的值
4:最常见的一个简单的例子SELECT sysdate FROM daul
Oracle的SELECT语法的限制为 SELECT * | [column1 [AS alias1], column2 [AS alias2]] FROM table
所以没有表名就没有办法查询,而时间日期并不存放在任何表中,于是这个dual虚拟表的概念就被引入了。
5:dual是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中。

多行函数:

substr(str,begin,len):从1开始数

posted @   (((^_^)))  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示