首页 > 数据库 > Oracle > oracle学习笔记零碎(三)
1. Oracle不赞成删除数据文件,一般如果整个表空间都没用的话,则将整个表空间都drop掉!
2. 现在的话,开始思考:什么时候用alter system,alter datebase,alter tablespace??有无规律?
3. 在归档模式下,每当发生一次日志切换,都会归档一次
4. 究竟recover datafile # 时做了什么??是借助归档日志和联机日志来recover的吗?为什么数据库某个数据文件顺坏后,随便很久前备份的对应的dbf后缀的文件替换原顺坏文件后再recover datafile @ 就可以alter database open成功???!!!
5. 为什么select file#,error from v$recover_file;会报错:”缺失表达式”??似乎只有当把所有的字段都一起查询时才能成功???
6. 即使数据文件不存在,它也是online的,为什么??
7. 使用resetlogs,将导致online logs里的内容丢失,并且所有的备份失效,仅当online logs 随坏的情况下,才使用resetlos模式。
8. 其实数据库中的实体其实和java中的类是一个意思,都是一个实体对象,然后里面封装了好多属性。所以有时候可以考虑使用一个封装了表中所有属性的类来表示表中的一条记录。
49.SQL语句的学习要点
1.在DML和DQL语句中,都任何field或者关键字或者表名,都可以随意大小写,oracle都可以识别。例如:SeleCt naMe,nO from t_StudEnT where No=23;
seLect Segment_Name from user_segmEnts where Segment_nAme='TEST1';
但是要注意对象的名称在oracle的一些user_segments表中保存为大写的!!
但是建议:关键字大写,其他语法元素都是(列名,表名等)小写。
2.查询所有列时,* 的效率性真没有写出所有列名的查询方法
3.oracle中是NUMBER,没有int.
4.DQL中,列名的别名有时候要使用双引号引起来:1.别名中有空格,2.别名如果要区分大小写
5.DQL语句目标列中的常量字符串必须要用单引号‘’引起来。
例如:SELECT ‘总数是:’,count(*) from user_segments;
6.使用 || 运算符将查询的目标列或目标表达式连接起来
SQL> select '总数是:'||count(*) from user_segments;
'总数是:'||COUNT(*)
------------------------------------------------
总数是:15
7.一直有个误区得端正:distinct修饰的不是就近的一个目标列,而是整个查询结果记录!!使用distinct是指结果集中记录不重复(每一条记录都不完全相同);
8. ORDER BY 语句默认按照升序对记录进行排序。但要多列排序时,就在order by字句中分别针对字段设置排序方式:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
select blocks,extents,initial_extent from user_segments order by blocks,extents;默认先blocks升序的前提下,extents升序。
9. 全局临时表:不同用户之间不可见,同一用户的不同session之间可见但数据独立;
10. 全局临时表 默认是on commit delete rows;就是基于transaction的。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29900383/viewspace-1461696/ ,如需转载,请注明出处,否则将追究法律责任。