SQL入门教程(26) Create Index

索引(Index)
可以帮助我们从表格中快速地找到需要的资料。举例来说,假设我们要在一本园艺书中找如何种植青椒的讯息。若这本书没有索引的话,那我们是必须要从头开始
读,直到我们找到有关种直青椒的地方为止。若这本书有索引的话,我们就可以先去索引找出种植青椒的资讯是在哪一页,然后直接到那一页去阅读。很明显地,运
用索引是一种有效且省时的方式。
从资料库表格中寻找资料也是同样的原理。如果一个表格没有索引的话,资料库系统就需要将整个表格的资料读出(这个过程叫做’table
scan’)。若有适当的索引存在,资料库系统就可以先由这个索引去找出需要的资料是在表格的什么地方,然后直接去那些地方抓资料。这样子速度就快多了。
因此,在表格上建立索引是一件有利于系统效率的事。一个索引可以涵盖一或多个栏位。建立索引的语法如下:

SQL入门教程(25) Create View

视观表 (Views) 可以被当作是虚拟表格。它跟表格的不同是,表格中有实际储存资料,而视观表是建立在表格之上的一个架构,它本身并不实际储存资料。
建立一个视观表的语法如下:
CREATE VIEW “VIEW_NAME” AS “SQL 语句”
“SQL  语句”  可以是任何一个我们在这个教材中有提到的 SQL。
来看一个例子。

SQL入门教程(24) Create Table

表格是数据库中储存资料的基本架构。在绝大部份的情况下,数据库厂商不可能知道您需要如何储存您的资料,所以通常您会需要自己在数据库中建立表格。虽然许
多数据库工具可以让您在不需用到SQL 的情况下建立表格,不过由于表格是一个最基本的架构,我们决定包括 CREATE TABLE
的语法在这个网站中。

SQL入门教程(23) TRIM

SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的资料库中有不同的名称:
MySQL: TRIM(), RTRIM(), LTRIM()  
Oracle: RTRIM(), LTRIM()  
SQL Server: RTRIM(), LTRIM()
各种trim 函数的语法如下:

SQL入门教程(22) Substring

SQL 中的  substring  函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样:
MySQL: SUBSTR(), SUBSTRING()   
Oracle: SUBSTR()   
SQL Server: SUBSTRING()   
最常用到的方式如下 ( 在这里我们用SUBSTR()为例):
SUBSTR(str,pos):  由中,选出所有从第位置开始的字元。请注意,这个语法不适用于SQL Server 上。
SUBSTR(str,pos,len) :  由中的第位置开始,选出接下去的个字元。

SQL入门教程(21) Concatenate

有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:
MySQL: CONCAT()   
Oracle: CONCAT(), ||   
SQL Server: +   
CONCAT()  的语法如下:
CONCAT(字串1, 字串2, 字串3, …): 将字串1 、字串2 、字串3 ,等字串连在一起。请注意,Oracle
的CONCAT()只允许两个参数;换言之,一次只能将两个字串串连起来。不过,在Oracle 中,我们可以用’||’来一次串连多个字串。

SQL入门教程(20) MINUS

MINUS 指令是运用在两个SQL 语句上。它先找出第一个SQL 语句所产生的结果,然后看这些结果有没有在第二个SQL
语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个SQL 语句所产生的结果并没有存在于第一个SQL
语句所产生的结果内,那这笔资料就被抛弃。
MINUS 的语法如下:

SQL入门教程(19) INTERSECT

和UNION 指令类似,INTERSECT 也是对两个SQL 语句所产生的结果做处理的。不同的地方是,UNION基本上是一个OR
(如果这个值存在于第一句或是第二句,它就会被选出),而INTERSECT 则比较像AND( 这个值要存在于第一句和第二句才会被选出)。
UNION 是联集,而INTERSECT 是交集。
INTERSECT 的语法如下:

SQL入门教程(17) UNION

UNION 指令的目的是将两个 SQL  语句的结果合并起来。从这个角度来看, UNION  跟 JOIN 
有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION  的一个限制是两个 SQL 
语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION 这个指令时,我们只会看到不同的资料值 ( 类似 SELECT
DISTINCT) 。
UNION 的语法如下: