oracleI基础入门(12)--SQL 语法
摘要:SQL 语法Select SELECT "栏位" FROM "表格名"Distinct SELECT DISTINCT "栏位" FROM "表格名"Where SELECT "栏位" FROM "表格名" WHERE "condition"And/OrSELECT "栏位" FROM "表格名" WHERE "简单条件" {[AND|OR] "简单条件"}+InSELECT
阅读全文
posted @
2012-06-12 10:49
Crazy-H
阅读(225)
推荐(0)
oracleI基础入门附(2)--算总合百分比,算累积总合百分比
摘要:算总合百分比要用 SQL 算出总合百分比,我们需要用到算排名和累积总计的概念,以及运用子查询的做法。在这里,我们把子查询放在外部查询的 SELECT 子句中。让我们来看以下的例子:Total_Sales 表格Name SalesJohn 10Jennifer 15Stella20Sophia 40Greg50Jeff 20要算出总合百分比,我们键入:SELECT a1.Name, a1.Sales, a1.Sales/(SELECT SUM(Sales) FROM Total_Sales) Pct_To_TotalFROM Total_Sales a1, Total_Sales a2WHERE
阅读全文
posted @
2012-06-12 10:45
Crazy-H
阅读(1326)
推荐(0)
oracleI基础入门附(1)--算中位数,算累积总计
摘要:算中位数要算出中位数,我们必须要能够达成以下几个目标:将资料依序排出,并找出每一行资料的排名。找出『中间』的排名为何。举例来说,如果总共有 9 笔资料,那中间排名就是 5 (有 4 笔资料比第 5 笔资料大,有 4 笔资料比第 5 笔资料小)。找出中间排名资料的值。来看看以下的例子。假设我们有以下的表格:Total_Sales 表格Name SalesJohn 10Jennifer 15Stella 20Sophia 40Greg 50Jeff 20要找出中位数,我们就键入:SELECT Sales Median FROM(SELECT a1.Name, a1.Sales, COUNT(a1.
阅读全文
posted @
2012-06-12 10:39
Crazy-H
阅读(811)
推荐(0)
oracleI基础入门(11)--case
摘要:CASECASE 是 SQL 用来做为 if-then-else 之类逻辑的关键字。 CASE 的语法如下:SELECT CASE ("栏位名") WHEN "条件1" THEN "结果1" WHEN "条件2" THEN "结果2"...[ELSE "结果N"]ENDFROM "表格名""条件" 可以是一个数值或是公式。 ELSE 子句则并不是必须的。在我们的 Store_Information 中Store_Information
阅读全文
posted @
2012-06-12 10:36
Crazy-H
阅读(231)
推荐(0)
oracleI基础入门(10)--EXISTS
摘要:EXISTS在上一页中,我们用 IN 来连接内查询和外查询。另外有数个方式,例如 >, <, 及 =,都可以用来连接内查询和外查询。 EXISTS 也是其中一种方式。基本上, EXISTS 是用来测试内查询有没有产生任何结果。如果有的话,系统就会执行外查询中的 SQL。若是没有的话,那整个 SQL 语句就不会产生任何结果。EXISTS 的语法是:SELECT "栏位1"FROM "表格1"WHERE EXISTS(SELECT *FROM "表格2" WHERE [条件])在内查询中,我们并不一定要用 * 来选出所有的栏位
阅读全文
posted @
2012-06-12 10:32
Crazy-H
阅读(160)
推荐(0)
oracleI基础入门(9)--table--子查询
摘要:子查询我们可以在一个 SQL 语句中放入另一个 SQL 语句。当我们在 WHERE 子句或 HAVING子句中插入另一个 SQL 语句时,我们就有一个子查询 (subquery) 的架构。 子查询的作用是什么呢?第一,它可以被用来连接表格。另外,有的时候子查询是唯一能够连接两个表格的方式。子查询的语法如下:SELECT "栏位1" FROM "表格" WHERE "栏位2" in (SELECT "栏位1" FROM "表格" WHERE [条件])例如 "LIKE"。绿色的
阅读全文
posted @
2012-06-12 10:26
Crazy-H
阅读(235)
推荐(0)
oracleI基础入门(8)--table--MINUS
摘要:MINUSMINUS 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL语句所产生的结果内,那这笔资料就被抛弃。MINUS 的语法如下:[SQL 语句 1] MINUS [SQL 语句 2]我们继续使用一样的例子:Store_Information 表格store_name Sales DateLos Angeles$1500 Jan-05-1999San Diego $250 Jan-07-19
阅读全文
posted @
2012-06-12 10:22
Crazy-H
阅读(220)
推荐(0)
oracleI基础入门(8)--table--INTERSECT
摘要:INTERSECT和 UNION 指令类似, INTERSECT 也是对两个 SQL 语句所产生的结果做处理的。不同的地方是, UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选出),而 INTERSECT 则比较像 AND (这个值要存在于第一句和第二句才会被选出)。UNION 是并集,而 INTERSECT 是交集。INTERSECT 的语法如下:[SQL 语句 1] INTERSECT [SQL 语句 2]假设我们有以下的两个表格,Store_Information 表格store_name Sales DateLos Angeles $1500 Jan-05
阅读全文
posted @
2012-06-12 10:17
Crazy-H
阅读(165)
推荐(0)
oracleI基础入门(8)--table--UNION ALL
摘要:UNION ALLUNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起。 UNION ALL 和UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复。UNION ALL 的语法如下:[SQL 语句 1] UNION ALL [SQL 语句 2]我们用和上一页同样的例子来显示出 UNION ALL 和 UNION 的不同。同样假设我们有以下两个表格,Store_Information 表格store_name Sales DateLos Angeles $1500 Jan-05-1999San Diego$250 Jan-07
阅读全文
posted @
2012-06-11 17:16
Crazy-H
阅读(155)
推荐(0)
oracleI基础入门(8)--table--union
摘要:UNIONUNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。UNION 的语法如下:[SQL 语句 1] UNION [SQL 语句 2]假设我们有以下的两个表格,Store_Information 表格store_name Sales DateLos Angeles $1500 Jan-05-1999San Diego $250 Jan-07-1999Los Angeles $300 Jan-08-1999Bo
阅读全文
posted @
2012-06-11 17:05
Crazy-H
阅读(191)
推荐(0)
oracleI基础入门(8)--table--Delete
摘要:DELETE FROM在某些情况下,我们会需要直接由数据库中去除一些资料。这可以藉由 DELETE FROM 指令来达成。它的语法是:DELETE FROM "表格名" WHERE {条件}以下我们用个实例说明。假设我们有以下这个表格:Store_Information 表格store_name Sales DateLos Angeles $1500 Jan-05-1999San Diego$250 Jan-07-1999Los Angeles$300 Jan-08-1999Boston $700Jan-08-1999而我们需要将有关 Los Angeles 的资料全部去除
阅读全文
posted @
2012-06-11 17:00
Crazy-H
阅读(222)
推荐(0)
oracleI基础入门(8)--table--update
摘要:UPDATE我们有时候可能会需要修改表格中的资料。在这个时候,我们就需要用到 UPDATE 指令。这个指令的语法是:UPDATE "表格名"SET "栏位1" = [新值] WHERE {条件}最容易了解这个语法的方式是透过一个例子。假设我们有以下的表格:Store_Information 表格store_name Sales DateLos Angeles $1500 Jan-05-1999San Diego $250 Jan-07-1999Los Angeles $300 Jan-08-1999Boston $700 Jan-08-1999我们发现说
阅读全文
posted @
2012-06-11 15:32
Crazy-H
阅读(216)
推荐(0)
oracleI基础入门(8)--table--insert
摘要:INSERT到目前为止,我们学到了将如何把资料由表格中取出。但是这些资料是如果进入这些表格的呢?这就是这一页 (INSERT INTO) 和下一页 (UPDATE) 要讨论的。基本上,我们有两种作法可以将资料输入表格中内。一种是一次输入一笔,另一种是一次输入好几笔。我们先来看一次输入一笔的方式。依照惯例,我们先介绍语法。一次输入一笔资料的语法如下:INSERT INTO "表格名" ("栏位1", "栏位2", ...)VALUES ("值1", "值2", ...)假设我们有一个架构如下的表格
阅读全文
posted @
2012-06-11 15:22
Crazy-H
阅读(251)
推荐(0)
oracleI基础入门(8)--table--索引
摘要:INDEX索引 (Index) 可以帮助我们从表格中快速地找到需要的资料。举例来说,假设我们要在一本园艺书中找如何种植青椒的讯息。若这本书没有索引的话,那我们是必须要从头开始读,直到我们找到有关种直青椒的地方为止。若这本书有索引的话,我们就可以先去索引找出种植青椒的信息是在哪一页,然后直接到那一页去阅读。很明显地,运用索引是一种有效且省时的方式。从数据库表格中寻找资料也是同样的原理。如果一个表格没有索引的话,数据库系统就需要将整个表格的资料读出 (这个过程叫做'table scan')。若有适当的索引存在,数据库系统就可以先由这个索引去找出需要的资料是在表格的什么地方,然后直接
阅读全文
posted @
2012-06-07 10:44
Crazy-H
阅读(221)
推荐(0)
oracleI基础入门(7)--table--视图
摘要:VIEW视观表 (Views) 可以被当作是虚拟表格。它跟表格的不同是,表格中有实际储存资料,而视观表是建立在表格之上的一个架构,它本身并不实际储存资料。只是一个虚拟表。建立一个视观表的语法如下:CREATE VIEW "VIEW_NAME" AS "SQL 语句"来看一个例子。假设我们有以下的表格:TABLE Customer(First_Name char(50),Last_Name char(50),Address char(50),City char(50),Country char(25),Birth_Date date);若要在这个表格上建立
阅读全文
posted @
2012-06-07 10:38
Crazy-H
阅读(224)
推荐(0)
oracleI基础入门(7)--table--创建表
摘要:CREATE TABLE表格是数据库中储存资料的基本架构。在绝大部份的情况下,数据库厂商不可能知道您需要如何储存您的资料,所以通常您会需要自己在数据库中建立表格。虽然许多数据库工具可以让您在不需用到 SQL 的情况下建立表格,不过由于表格是一个最基本的架构。在我们跳入 CREATE TABLE 的语法之前,我们最好先对表格这个东西有些多一点的了解。表格被分为栏位 (column) 及列位 (row)。每一列代表一笔资料,而每一栏代表一笔资料的一部份。举例来说,如果我们有一个记载顾客资料的表格,那栏位就有可能包括姓、名、地址、城市、国家、生日‧‧‧等等。当我们对表格下定义时,我们需要注明栏位的标
阅读全文
posted @
2012-06-06 11:30
Crazy-H
阅读(406)
推荐(0)
oracleI基础入门(6)--sql语句-trim
摘要:TRIMSQL 中的 TRIM 函数是用来移除掉一个字符串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的数据库中有不同的名称:MySQL: TRIM(), RTRIM(), LTRIM()Oracle: RTRIM(), LTRIM()各种 trim 函数的语法如下:TRIM([[位置] [要移除的字符串] FROM ] 字符串): [位置] 的可能值为 LEADING (起头),TRAILING (结尾), or BOTH (起头及结尾)。 这个函数将把 [要移除的字符串] 从字符串的起头、结尾,或是起头及结尾移除。如果我们没有列出 [要移除的字符串] 是什么的话,那空
阅读全文
posted @
2012-06-06 11:25
Crazy-H
阅读(1604)
推荐(0)
oracleI基础入门(6)--sql语句-Substring
摘要:SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的数据库中不完全一样:MySQL: SUBSTR(), SUBSTRING()Oracle: SUBSTR()最常用到的方式如下 (在这里我们用SUBSTR()为例):SUBSTR(str,pos): 由<str>中,选出所有从第<pos>位置开始的字符。请注意,这个语法不适用于SQL Server 上。SUBSTR(str,pos,len): 由<str>中的第<pos>位置开始,选出接下去的<len>个字符。假设我们有以下的表格:Geo
阅读全文
posted @
2012-06-04 16:24
Crazy-H
阅读(2743)
推荐(0)
oracleI基础入门(6)--sql语句-CONCATENATE
摘要:CONCATENATE有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种数据库都有提供方法来达到这个目的:MySQL: CONCAT()Oracle: CONCAT(), ||SQL Server: +CONCAT() 的语法如下:CONCAT(字符串1, 字符串2, 字符串3, ...): 将字符串1、字符串2、字符串3,等字符串连在一起。请注意,Oracle 的CONCAT()只允许两个参数;换言之,一次只能将两个字符串串连起来。不过,在Oracle 中,我们可以用'||'来一次串连多个字符串。假设我们有以下的表格:Geography 表格region_name
阅读全文
posted @
2012-06-04 11:41
Crazy-H
阅读(403)
推荐(0)
oracleI基础入门(6)--sql语句-left join
摘要:外部连接之前我们看到的左连接 (left join),又称内部连接 (inner join)。在这个情况下,要两个表格内都有同样的值,那一笔资料才会被选出。那如果我们想要列出一个表格中每一笔的资料,无论它的值在另一个表格中有没有出现,那该怎么办呢?在这个时候,我们就需要用到 SQLOUTER JOIN (外部连接) 的指令。外部连接的语法是依数据库的不同而有所不同的。举例来说,在 Oracle 上,我们会在WHERE 子句中要选出所有资料的那个表格之后加上一个 "(+)" 来代表说这个表格中的所有资料我们都要。假设我们有以下的两个表格:Store_Information 表
阅读全文
posted @
2012-06-04 11:25
Crazy-H
阅读(554)
推荐(0)