2、SQL语句笔记

来源:互联网 发布:财富证券交易软件下载 编辑:程序博客网 时间:2024/06/06 13:57
一、连接查询的效率远高于子查询的效率,但子查询更容易理解,使用更灵活、方便。
(子查询不能包裹order by,子查询最多嵌套255层)
1.1内连接:select column_list from table_name1 [inner] join table_name2 on join_condition;笛卡尔积的条件子集。
1.2外连接:select column_list from table_name1 {left|right|full} [outer] join table_name2 on join_condition;
i、左:以左表为基础,显示与右表的连接结果,不符合连接条件的,左表数据存在,右表数据为空。结果数量与左表数量同。
ii、右:同理,以右表为基础。
iii、全:以左右表各为基础,去除符合条件的笛卡尔积重复项。
1.3自然连接:select column_list from table_name1 nutural join table_name2;以两表的相同名称列相等作为条件
1.4交叉连接:select column_list from table_name1 cross join table_name2;两表的笛卡尔积

1.5常用字符函数:
ASCII(String X):获取字符的ASCII值。
CHR(X):获取整数X对应的ASCII字符。 --结合这两个,我们可以对数据字典中的层级字母做自增的运算。
CONCAT(X,Y):连接两个字符串
INSTR(X,FIND_STRING[,START][,OCCURRENCE]):查找X字符串中FIND_STRING的位置。从START位置开始找,返回第OCCURRENCE个该字符的位置(函数支持混合调用instr('1234123','1',occurrence->2) 否则按顺序指定所有参数。)
SUBSTR(X,START[,LENGTH]):得到字符串X从start位置开始的length长度字符(不填则至末尾)。 --结合INSTR可以得到从某字符起的字符串。

1.6数学函数
1.7时间和日期函数
1.8转换函数
to_char(sysdate,'hh24-mi-ss')
to_date('2016-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')
1.9统计函数
avg,count,max,mix,sum,midian.


LENGTH(X):返回字符串长度
REPLACE(X,SEARCH_STRING,REPLACE_STRING):将X中的SEARCH替换为REPLACE。


二、多行子查询所用运算符有,in、 any 、all
(<any(),=any(),>any(),<all,>all)


三、批量插入数据。将select的结果集插入表中。
inset into table_name select column,column from table_name2 where ...
inset into table_name(...) values (...); 单记录插入。

四、更新数据
update table_name set ... where ...

五、删除数据
delete from table_name where ...

不产生回退信息的删除,即操作不可撤销:
truncate table table_name [drop storage|reuse storage] 【立即回收占用的空间(默认)|不回收占用的空间】

六、事务。
使用commit语句提交事务,
使用rollback语句回滚事务。

(执行过程中,可以使用savepoint xx设置保存点,再通过rollback to savepoint xx 来回滚到相应保存点)




其他:

select * from tree_table start with parent_id=0 connect by prior parent_id=id;     父子结构的表,树形查询,通过父节点遍历子节点。

select * from tree_table start with id=xxx connect by prior parent_id=id;子节点向根节点追溯。



0 0