您的位置:首页 > 数据库 > Oracle

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: 只要其中一个表中存在匹配,就返回行


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: