oracle


SQL语句

<h1>select 语句</h1> <p>select语句的作用:选择,投影,连接</p> <p>*<em>语法: SELECT [DISTINCt] {</em>,column [alias] …… } FROM table;** [] 括起来的可选 {} 括起来的必选 关键字大写</p> <p>oracle优化器的规划成本很高,所以调优思路是尽量让sql语句的执行计划能够被共享,sql语句的执行计划能够被共享的要求是两条sql语句要一模一样。</p> <p><strong>缺省对齐方式:</strong> 左部对齐:日期、字符 右部对齐:数字格式数据</p> <p>*<em> 表达式的优先级:</em> / + - ** </p> <ul> <li>乘除的优先级大于加减的</li> <li>同级从左到右</li> <li>非同级的想要优先用()括起来</li> </ul> <p><strong> 并置运算符 || </strong> 可以将一些列连接起来显示,也可以将一些列和一些字符串连接起来 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=15b3fd513bcc455004e4e5ac95a46d49&amp;amp;file=file.png" alt="" /></p> <p>&quot;&quot;与‘’使用时机:&quot;&quot;在起别名的时候使用,其他都用‘’</p> <p><strong>去重:distinct </strong> <strong>from dual 空表</strong></p> <h1>where 和 order by</h1> <p>缺省的日期值格式:DD-MON-YY 比较操作符: \&gt; 大于 \&gt;= 大于等于 &lt; 小于 &lt;= 小于等于 &lt;&gt; 不等于</p> <p>BETWEEN …… AND …… IN 包含 NOT IN 不包含 LIKE 通配符</p> <ul> <li>% 代表0个或多个字符</li> <li><em> 代表一个字符 escape '\' 声明转义字符 eg:SELECT * FROM emp WHERE ename LIKE '%_%' escape '\'; \将'</em>'转义成一个普通字符 is NULL 空值、is not NULL 非空值</li> </ul> <p>逻辑操作符:AND、OR、NOT</p> <p>操作符的优先级:比较 &gt; NOT &gt; AND &gt; OR</p> <h2>ORDER BY 子句</h2> <ul> <li>ASC 升序,缺省</li> <li>DESC 降序 1.可以对多个列进行排序 2.可以从select中没有的列进行排序 3.distinct 是去重后自动排序的,所以不能再对他进行order by.</li> </ul> <h1>单行函数</h1> <p><strong>大小写转换函数</strong></p> <ul> <li>LOWER('SQL Course') 转换成小写</li> <li>UPPER('SQL Course') 转换成大写</li> <li>INITCAP('SQL Course') 首字母大写</li> </ul> <p><strong>字符操作函数</strong></p> <ul> <li>CONCAT('Good','String') ——》 GoodString 将两个字符串拼接成一个字符串,仅限于2个字符串</li> <li>SUBSTR('String',1,3) ——》Str 截取字符串,第一个数字是开始位置,第二个数字是结束位置</li> <li>LENGTH('String') ——》6 统计字符串的长度</li> <li>INSTR('String','r') ——》 统计某个字符(r)的位置</li> <li>LPAD(sal,10,'<em>') ——》</em>******5000 以指定字符(*)补齐字符串到指定长度(10),通常用于位数不够时进行补齐</li> <li>TRIM('S' FROM 'SSMITH') ——》MITH 在字符串中去掉某个字符(S),通常用于去掉字符串中的空格</li> </ul> <p><strong>数字函数</strong></p> <ul> <li>ROUND:对指定的值进行四舍五入,ROUND(45.923,2) ——》45.92 ROUND(45.923,0) ——》46 ROUND(45.923,-1) ——》50 注意:0表示小数点左边第一个,-1是小数点左边第二位</li> <li>TRUNC:对指定的值进行取整,TRUNC(45.923,2) ——》45.92 TRUNC(45.923) ——》45 TRUNC(45.923,-1) ——》40 注意:0表示小数点右边,可以不用写明,-1是小数点左边第一位</li> <li>MOD:返回除法计算后的余数,通常用于计算某个数能否被另一个数整除,MOD(sal,comm) sal被comm整除后的余数</li> </ul> <p><strong>使用日期</strong> 缺省格式:DD-MON-YY SYSDATE 返回当前系统的时间,返回日期和时间的函数 DUAL 是一个显示SYSDATE的虚拟表</p> <p>日期的计算</p> <ul> <li>为一个日期值增加或者减少一个数字 eg: 计算员工入职的周数:select ename,(sysdate-hiredate)/7 week from emp;</li> <li>计算出两个日期之间相隔的天数 &gt;MONTHS_BETWEEN:两个日期之间的月数 ADD_MONTHS:为一个日期增加月数 NEXT_DAY:一个日期的下一个指定日子 NEXT_DAY('01-SEP-95','FRIDAY') ——》'08-SEP-95' 95年9月1日的下一个星期五 LAST_DAY:某个月份的最后一天 ROUND:对日期进行四舍五入计算 ROUND('25-JUL-95','MONTH')——》 01-AUG-95 对95年6月25日的月进行四舍五入 TRUNC: 对日期进行取整计算,跟ROUND的用户一样</li> <li>要为日期值增加小时数,可以将小时数除以24后加上</li> </ul> <p><strong>转换函数</strong> 数据类型转换:</p> <ul> <li>隐式数据类型转换:自动转换,不用函数 &gt;如下类型字符可自动转换 varchar2 or char -&gt; number varchar2 or char -&gt; date number -&gt; varchar2 date -&gt; varchar2 注意:隐式转换不会用到索引,所以出于性能考虑,在select的时候不要用到隐式转换 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=a89d36dca6bba1255c65ed749f79f7f7&amp;amp;file=file.png" alt="" /> <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=64297d0782ac377c5b3aebee97bef484&amp;amp;file=file.png" alt="" /></li> <li>显式数据类型转换 &gt;number -&gt; character:to_char character ——&gt; number:to_number character ——&gt; date:to_date date ——&gt; character:to_char</li> </ul> <p>to_date(date,'fmt') <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=d9c178888af993bd3d7e5a205dcfb63c&amp;amp;file=file.png" alt="" /> to_date('2021-10-1','yyyy-mm-dd') 日期中时间的格式:HH24:MI:SS</p> <p>to_char(number,'fmt') &gt;9:表示数字 0:强制显示一个0 $:在一个浮点值前面显示一个$符号 L:使用浮点类型的本地货币符号 .:显式一个小数点 ,:千位的指示符 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=b05027b4c845c7885b0c09a5e9fb1768&amp;amp;file=file.png" alt="" /> 注意:如果显示的位数不够,他会输出一长串#号,所以数字的长度应该要够长</p> <p>NVL(expr1,expr2):空值处理函数,如果expr1为空,则返回expr2,否则返回expr1 用NVL处理的时候,()内的两个字符类型必须要一致</p> <p>DECODE 函数 类似于 CASE or IF-THEN-ELSE语句 (oracle独有的函数,case的功能更全面) <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=51734521510930b522f7b737a110978e&amp;amp;file=file.png" alt="" /></p>

页面列表

ITEM_HTML