Oracle学习 第12天
这周刚好两个系统上线,连续几天加班到半夜,这周末总算轻松了,可以在家休息下,补一补Oracle,还是之前的教程,看到【更新及事务处理】,边看边更新吧
1、Insert:好像没区别
2、Update:好像没区别
3、Delete:好像没区别
4、事务/锁:事务概念和MsSQL差不多,锁的话本来MsSQL就不熟,只知道查表的时候WITH(NOLOCK)脏读提高效率
5、替代变量:之前也看到过,不知数据库搞这种交互有什么意义,最多就是存储过程带变量进来就行了吧
=====================
也看了另外一个入门教程,函数,之前看过一个,再看这个巩固一下也好,过几天要弄真实环境来上上手了
一、数值函数
1、ROUND,取整
2、CEIL、FLOOR,上下值
3、ABS绝对值,MOD取模
4、POWER,幂
5、SQRT,平方根
6、三角函数,几乎用不上,就是数学上那些写法一样
二、字符串函数
1、UPPER、LOWER,大小写,多了个INITCAP首字母大写
2、SUBSTR,这个应该会比较常用,各个语言都是。SUBSTR('abcde',2,3),得到的是bcd,第三个参数忽略的话是取到尾,第二个参数负数的话是从尾开始
3、LENGTH,长度,空格也算
4、CONCAT,与||作用相同(MsSQL是直接用+就可以了)
5、TRIM,去首尾字符,只能是一个,另有LTRIM,RTRIM,不带参数的话是去空格
6、REPLACE,这个也比较常用,REPLACE('ABC','A','a'),最后一个参数不写的话就是去除
三、日期函数
1、SYSDATE,MsSQL是GETDATE,但格式不同,Oracle默认是DD-MON-RR,如02-7月-16
2、ADDMONTHS,添加月份
3、NEXT_DAY、LAST_DAY,NEXT_DAY可以看【下一个星期一】之类的,LAST_DAY无参数,仅返回所在月的最后一天
4、MONTHS_BETWEEN,相隔月份(小数)
5、EXTRACT,返回日期中的相应部份,如EXTRACT(YEAR FROM SYSDATE)
6、TO_CHAR,日期转字符,默认格式DD-MON-RR,要转成习惯的格式:TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
7、TO_DATE,字符转日期,转换完是系统默认格式,而不是字符的格式:TO_DATE('2016-07-02', 'YYYY-MM-DD'),转出来还是系统默认的02-7月-16
8、TO_CHAR数字转字符,参数:9忽略前面0,0位数不足补0,.或D显示小数点, ,或G显示千位符, $美元, S正负号,可以直接写最终想得到的结果
9、TO_NUMBER字符转数字,可以直接写格式
============================
再看一个存储过程的教程
1、建立存储过程:比MsSQL方便,可以CREATE OR REPLACE,MsSQL的存储过程每次前面还要专门写几行判断【如果存在则删除】
2、调用存储过程,要加括号?不知是不是强制的, MsSQL是不用加括号
3、参数,要强制加IN或OUT的输入输出?
4、事务提交/回滚,一般不在存储过程中处理这些,由调用存储过程的地方去处理
5、调试存储过程,一般不远程调试,可以把SQL DEVELOPER复制到服务器上去,解压后直接就可以用,很方便,调试就是下断点,很直观
6、存储函数,没什么区别,一般单个返回值用存储函数,无返回值或多个返回值,可用存储过程
============================
建表改表
1、建表,CREATE TABLE,还可以跟上 AS SELECT * FROM XX,有点像MsSQL的 SELECT * INTO XX FROM XXX,也和MsSQL一样,加一个WHERE 1<>1的话,可以仅复制结构,不复制数据
2、改表名, RENAME XX TO XXX。 这些建表改表的DDL不受事务操作,一执行就会提交
3、删表数据:DELETE和TRUNCATE
4、删表:DROP TABLE
5、闪回:FlashBack,Oracle 10g开始有的功能,类似回收站,表删了还能恢复,语法:FLASHBACK TABLE XX TO BEFORE DROP
6、删除闪回中的表:PURGE TABLE XX,或用PURGE RECYCLEBIN清空闪回
7、跳过闪回直接删除:DROP TABLE XX PURGE
8、加字段:ALTER TABLE ADD ( XX NUMBER(3) );和MsSQL差不多,但多了个括号,不知是不是强制的,可加DEFAULT
9、改字段:ALTER TABLE MODIFY( XX VARCHAR(2) ); MsSQL是ALTER COLUMN,Oracle是Modify,也可加DEFAULT,也多了括号
10、删字段:ALTER TABLE DROP COLUMN,这个倒是一样
11、无用列:删字段性能损耗大,ORACLE还提供了个方法,可以设置无用字段,ALTER TABLE 表名 SET UNUSED COLUMN (列名),COLUMN可以省略。
12、删除无用列:ALTER TABLE XX DROP UNUSED COLUMNS;
13、查看表注释:SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME = 'XXX';
14、填写表注释:COMMENT ON TABLE XX IS '注释内容'
15、查看列注释:SELECT * FROM USER_COL_COMMENTS WHERE TABLE_NAME = 'XXX';
16、填写列注释:COMMENT ON COLUMN XX.XXX IS '注释内容'
17、可见/不可见列:Oracle 12c 新特性,ALTER TABLE XX MODIFY( XXX INVISIBLE)
18、表空间:即MsSQL的库
今天虽然边学边刷微博,还看了电影,玩了游戏。。。但收获还是也挺大的,不知不觉也学了这么多