SQL
guanhuazhan
这个作者很懒,什么都没留下…
展开
-
sql语句commit问题
DML修改表数据时,需要提交(insert、update、delete)当执行DML命令如果没有提交,将不会被其他会话看到。除非在DML命令之后执行了DDL命令或DCL命令,或用户退出会话,或终止实例,此时系统会自动发出commit命令,使未提交的DML命令提交。DDL会自动提交(create、alter …)当执行DDL语句时,在每一条语句前后,数据库都将提交当前的事务。如果用户使用insert命令将记录插入到数据库后,又执行了一条DDL语句(如create table),此时insert命令的数据原创 2020-12-31 10:39:57 · 4605 阅读 · 0 评论 -
为什么索引无法使用is null和is not null
一般来说,表的索引都会建立在非空字段。当查询时:在where 语句种筛选 idx is null 时,由于索引字段不为空,所以该条件失效,无法查询;在where 语句种筛选 idx is not null 时,由于索引字段本身不为空,所以该条件也失效,会造成全表扫描;对于使用LEFT JOIN和IS NULL来替换NOT IN,和使用LEFT JOIN和IS NULL来替换IN逻辑的情况下,纵使连接时使用的字段为各表的索引字段,依然可以对该索引字段进行IS NULL和IS NOT NULL的过滤。原创 2020-12-31 09:45:17 · 2907 阅读 · 0 评论 -
SQL常用函数记录
VALUE函数:语法:VALUE(EXPRESSION1,EXPRESSION2)VALUE函数用于返回一个非空的值,当其第一个参数非空,直接返回该参数的值,如果第一个参数为空,则返回第二个参数的值。示例:SELECT VALUE(ID,’’) FROM T1表示如果T1.ID为空,则返回空串,如果T1.ID不为空,则返回T1.ID。TRANSLATE函数:语法:translate(string,from_str,to_str)translate函数以字符为单位,对应字符一一替换。执行时,原创 2020-12-25 09:53:13 · 2561 阅读 · 0 评论