oracle 笔记。课堂涂鸦

oracle中 字符区分大小写,SELECT时要注意;
oracle中,日期区分格式;
默认时间格式:DD-MON-RR;

ALTER SESSION SET NLS_LANGUAGE = AMERICAN;使当前会话进入英文环境。

ALTER SESSION SET NLS_LANGUAGE = 'SIMPLIFIED CHINESE';使当前会话进入中文环境。

当WHERE中的条件时日期时,要注意当前会话的时间格式;


SELECT *
FROM employees;
WHERE job_id LIKE 'AD/_%' ESCAPE '/'; 转义字符;

oracle中判断是否为空 不是使用 manager_id =null
而是使用 manager_id is null;


查询时,like模糊查询区分大小写;

别名时(一般情况不用双引号)如果别名中有空格,特殊符号,区分大小写时用双引号,别的情况都用单引号

还有个用双引号的情况:日期格式化的时候,''中的字符串描述
NOT BETWEEN AND
NOT IN
NOT LIKE
IS NOT NULL

SELECT last_name ,job_id,salary
FROM employees
WHERE job_id ='sa_rep'(注意大小写)
or job_id ="ad_dasdf"


ORDER BY +列名,总在语句最后
默认升序asc,列名1可接多个 列名,先按第一列排序,再按照后面的列排序
order by 后的列可以是select中的列名不存在的列名;
ORDER BY HEIR_DATE DESC; 降序排序
排序可以写列别名

SELECT salary*12 annsal
FROM employees
ORDER BY annsal;

where语句中不能写列别名

 

执行顺序
3.SELECT
1.FROM
2.WHERE
4.ORDER BY

 

先执行where,后执行SELECT  因此不能用列别名

内存中,所有的列可见 order by 可以用select中没有的列


表别名

联合查询时,可以用表别名,SELECT里必须用别名.列名;

 

下午

1 sql函数

字符函数
LPAD RPAD ,字符的左右端对齐,lpad(salary或者表达式,10,‘×’)

TRIM,去掉最左边,最右边的字符,不止空格

LOWER,全小写

UPPER 全大写
CONCAT 链接字符串
SUBSTR(‘helloworld’,1,5)  hello 1代表其实位置,5代表步长
LENTH 求长度
INSTR 求位置,返回整型
TRIM,只能去掉最左端最右端的字符
数字函数
ROUND 四舍五入 ROUND(545.926,2)  545.93 正数代表小数点后几位 0代表个位,负数以此类推
TRUNC 直接舍去 别的同上 。
MOD 取余

处理日期

Oracle存储日期的内部数字格式:世纪,年,月,日,时分秒
默认格式 DD-MON-RR  日月年 RR和YYYY的区别。

SYSDATE返回当前的系统时间 。
小时的计算 一小时1/24天


日期函数:
MONTHS_BETWEEN 2个参数,第一个参数大日期,第二个参数小日期,求出相差几个月
ADD_MONTHS 第一个日期上加上第二个日期的,返回月

NEXT_DAY 下一个星期几是几号
LAST_DAY 指定日期所在月的最后一天
ROUND 四舍五入日期
TRUNC 舍去


转换函数

分为隐性转换,显性转换。

implicit data type conversion

隐性转换比较耗资源;


四种连接

cross join 生成笛卡尔积
Natural Joins所有同名列 连接 等价连接
当同名列的数据类型不一致时 会报错

 


通用函数

NVL(1,2)第一个函数为空输出第二个字符串,如果不为空输出本身;

NVL2(1,2,3)第一个参数不为空时输出第二个参数,如果为空输出第三个参数

NULLIF(1,2)如果不相等输出第一个值,否则输出空值

COALESCE(1,2,3,4,。。。。N个参数) 输出第一个不为空的参数

 


自连接, 一个表2个别名

 

多表连接时,跟别的表的联系最大的表,写在最后。效率高一点。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值