学习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开始数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)