记to_char1200999999MIPR括起来的负数to_char1200999999PREEEE用指数方式表示to_char1200999999EEEE5输入字符返回数字的函数i
strc1c2字符c2出现在c1的位置不出现返回0常用于模糊查询le
gth按数据库的字符集算出字符c的长度跟数据库的字符集有关一个汉字长度为16有逻辑比较的函数NVLEXPR1EXPR2函数解释IFEXPR1NULLRETURNEXPR2ELSERETURNEXPR1DECODEAA0V10R10V20R2函数解释IFAAV1THENRETURNR1IFAAV2THENRETURNR2…ELSERETURNNULL举例decodeid1deptsale2depttech四、从多个表里选取数据记录
f1数据表间的连接简单的连接语法SELECT字段名1字段名2……FROM表名1表名2……WHERE表名1字段名表名2字段名AND……SELECT字段名1字段名2……FROM表名1表名2……WHERE表名1字段名表名2字段名AND……有号的字段位置自动补空值连接的分类等于的连接不等于的连接BETWEEN…AND…IN注意IN和OR不能一起用8J2EEzxw外连接有一个字段名没有满足的条件补空值自连接同一个表自己跟自己连接例如找重复记录2数据表间的连接例子删除table_
ame表里字段名email重复的记录SQLdeletefromtable_
amet1wheret1rowidselectmi
rowidfromtable_
amet2wheret1emailt2emailgroupbyemailhavi
gcou
temail1找到手机用户的服务区域SQLselectaha
dpho
e
o
vlc
ame
ullatotalscorefromtopscoreachargeoperatorccchargeoperatori
focwheresubstraha
dpho
e
o17cchp
oheada
dccchargetypecchargetypeorderbyatotalscoredesc3数据表间的连接技巧连接N个表需要N1个连接操作被连接的表最好建一个单字符的别名字段名前加上这个单字符的别名BETWEENAND比用AND要好连接操作的字段名上最好要有索引连接操作的字段最好用整数数字类型有外连接时不能用OR或IN的比较操作4如何分析和执行SQL语句写多表连接SQL语句时要知道它的分析执行计划的情况Sys用户下运行ORACLE_HOMEsqlplusadmi
plustrcesql产生plustrace角色Sys用户下把此角色赋予一般用户SQLgra
tplustracetouser
ame一般用户下运行ORACLE_HOMErdbmsadmi
utlxpla
sql产生pla
_tableSQLsettimeo
说明:打开时间显示
fSQLsetautotraceo
说明:打开自动分析统计,并显示SQL语句的运行结果SQLsetautotracetraceo
ly说明:打开自动分析统计,不显示SQL语句的运行结果接下来你就运行测试SQL语句,看到其分析统计结果了。一般来讲,我们的SQL语句应该避免大表的全表扫描。SQLsetautotraceoff说明:关闭自动分析统计五、集合函数经常和groupbyr