Oracle学习笔记(2)
2016-03-24 15:05
381 查看
<pre name="code" class="sql">查询
--1.伪列的使用rowid、rownum select ROWNUM, ROWID from table; --2.列运算 select col*2 form table; --3.别名 select col as name_1 ,col name_2 ,col as "name 3" from table; --默认情况下,Oracle会去掉别名中的空格,并使用大写格式将别名显示出来,如果希望使用空格并保持文本的大小写格式,就必须使用双引号将别名文本引起来;在别名之前也可以加as关键字; --4.连接合并 select col1||'+字符'||col2 now_col from table; --5.去处重复数据 select DISTINCT t.col from table t ORDER BY t.col; --6.比较运算符:SOME等同于any,应该使用any代替some;= 、<> or != 、< 、>、<=、>=、ANY(包含于)、SOME(包含于)、ALL(全部); --7.操作符:【NOT】LIKE(模糊查询) ; 【NOT】IN(存在与); 【NOT】BETWEEN AND(之间,配合AND使用) ;IS 【NOT】NULL(是否为空),IS 【NOT】NAN;IS 【NOT】INFINITE; -- IS NaN 和 IS INFINIT,不要用 PL/SQL Developer 作此实验,可以用 SQL*Plus -- 这两个东西怎样用? 其实就和 IS NULL 一样。 NULL 用于在数据库 -- 的所有数据类型的列中存储“不知道”,然后用 IS NULL 来判断。 -- 现在 NaN 和 'INF','-INF' 用于在 BINARY_DOUBL/BINARY_FLOAT 浮点类型 -- 的列中存储“不是数字”和“无限数字”,然后用 IS NaN 和 IS INFINIT 来判断。 select * from table like '%\%%' escape '\'; --ESCAPE '\':escape后面的字符告诉数据库如何区分要搜索的字符与通配符,在此范围中使用反斜杠(\);第一个%是通配符,第二个%是实际搜索的字符,第三个%是通配符;这个子句可以查出向:10%这样的字符串; --SQL 通配符 在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。 --通配符 描述 --% 替代一个或多个字符 --_ 仅替代一个字符 --[charlist] 字符列中的任何单一字符 --[^charlist]或者[!charlist] 不在字符列中的任何单一字 --8.逻辑操作符:and 、or 、not; AND的优先级大于OR;比较操作符的优先级大于AND; --9.ORDER BY 排序 默认升序排列 desc指定降序;asc 指定升序; --10.group by 分组 --11.Top子句:TOP 子句用于规定要返回的记录的数目。对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。注释:并非所有的数据库系统都支持 TOP 子句。 --oracle: SELECT * FROM Persons WHERE ROWNUM <= 5; --mySQL: SELECT * FROM Persons LIMIT 5; --sqlServer: SELECT TOP number|percent column_name(s) FROM table_name; --现在,我们希望从上面的 "Persons" 表中选取 50% 的记录。我们可以使用下面的 SELECT 语句: SELECT TOP 50 PERCENT * FROM Persons;
</pre><pre name="code" class="sql"><span style="font-family: Verdana, Arial, 宋体; line-height: 18px; background-color: rgb(249, 249, 249);">--有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。</span>
<span style="font-family: Verdana, Arial, 宋体; line-height: 18px; background-color: rgb(249, 249, 249);"></span><pre style="margin-top: 10px; margin-bottom: 0px; padding: 10px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas, 'Courier New', Courier, monospace; width: 685px; background: rgb(245, 245, 245);">SELECT t1.ID,t2.ID FROM t1 <code style="margin: 0px; padding: 0px; border: 0px; font-family: Consolas, 'Courier New', Courier, monospace; color: rgb(0, 0, 221);">INNER JOIN t2</code> ON t1.Id = t2.Id
除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。
下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。
JOIN: 如果表中有至少一个匹配,则返回行(Inner join)
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
相关文章推荐
- 零基础准备ocp第一天
- oracle性能优化(一)
- 关于win10X64 连接oracle
- oracle ceil和floor函数
- php 连接oracle
- [转] Oracle数据库备份与恢复 - 增量备份
- Oracle删除用户及表空间
- oracle 相关
- Oracle数据库备份异机恢复(exp/imp)故障案例
- oracle 修改表空间文件路径方法
- oracle操作
- 如何查看oracle trace 文件
- Oracle Nvl函数的正确用法
- oracle11g静默安装20140623
- oracle实现递归查询
- ORACLE的几个函数
- Oracle to_char()函数的使用细则
- 查看Oracle最耗性能SQL以及查看锁表进程SQL语句1和杀掉锁表进程
- Oracle中group by子句中cube的使用
- oracle 基础 创建表空间并分配用户权限