您的位置:首页 > 数据库 > Oracle

Oracle学习 第12天

2016-07-02 09:17 399 查看
这周刚好两个系统上线,连续几天加班到半夜,这周末总算轻松了,可以在家休息下,补一补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的库

今天虽然边学边刷微博,还看了电影,玩了游戏。。。但收获还是也挺大的,不知不觉也学了这么多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: