SQL之简明教程
sql简明教程
poetliu
这个作者很懒,什么都没留下…
展开
-
linux之SQL语句简明教程---UPDATE DELETE FROM
我们有时候可能会需要修改表格中的资料。在这个时候,我们就需要用到 UPDATE 指令。这个指令的语法是:UPDATE "表格名"SET "栏位1" = [新值]WHERE "条件";最容易了解这个语法的方式是透过一个例子。假设我们有以下的表格:Store_Information 表格Store_NameSalesTxn_DateL原创 2014-12-15 19:37:39 · 954 阅读 · 0 评论 -
linux之SQL语句简明教程---INSERT INTO
到目前为止,我们学到了将如何把资料由表格中取出。但是这些资料是如果进入这些表格的呢? 这就是这一页 (INSERT INTO) 和下一页 (UPDATE) 要讨论的。基本上,我们有两种作法可以将资料输入表格中内。一种是一次输入一笔,另一种是一次输入好几笔。我们先来看一次输入一笔的方式。依照惯例,我们先介绍语法。一次输入一笔资料的语法如下:INSERT INTO "表格名"原创 2014-12-15 19:32:35 · 836 阅读 · 0 评论 -
linux之SQL语句简明教程---DROP TRUNCATE
有时候我们会决定我们需要从数据库中清除一个表格。事实上,如果我们不能这样做的话,那将会是一个很大的问题,因为数据库管理师 (Database Administrator -- DBA) 势必无法对数据库做有效率的管理。还好,SQL 有提供一个 DROP TABLE 的语法来让我们清除表格。 DROP TABLE 的语法是:DROP TABLE "表格名";我们如果要清除在SQL C原创 2014-12-15 19:29:33 · 722 阅读 · 0 评论 -
linux之SQL语句简明教程---主键,外来键
主键 (Primary Key) 中的每一笔资料都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行资料。主键可以是原本资料内的一个栏位,或是一个人造栏位 (与原本资料没有关系的栏位)。主键可以包含一或多个栏位。当主键包含多个栏位时,称为组合键 (Composite Key)。主键可以在建置新表格时设定 (运用 CREATE TABLE 语句),或是以改变现有的表格架构方式设定原创 2014-12-15 19:17:34 · 774 阅读 · 0 评论 -
linux之SQL语句简明教程---ALTER TABLE
在表格被建立在资料库中后,我们常常会发现,这个表格的结构需要有所改变。常见的改变如下:加一个栏位删去一个栏位改变栏位名称改变栏位的资料种类以上列出的改变并不是所有可能的改变。ALTER TABLE 也可以被用来作其他的改变,例如改变主键定义。ALTER TABLE 的语法如下:ALTER TABLE "table_name"[改变方式];[改变方式] 的详细写法原创 2014-12-15 19:09:04 · 734 阅读 · 0 评论 -
linux之SQL语句简明教程---CREATE INDEX
索引 (Index) 可以帮助我们从表格中快速地找到需要的资料。举例来说,假设我们要在一本园艺书中找如何种植青椒的讯息。若这本书没有索引的话,那我们是必须要从头开始读,直到我们找到有关种直青椒的地方为止。若这本书有索引的话,我们就可以先去索引找出种植青椒的资讯是在哪一页,然后直接到那一页去阅读。很明显地,运用索引是一种有效且省时的方式。从资料库表格中寻找资料也是同样的原理。如果一个表格没有索引原创 2014-12-15 19:05:09 · 649 阅读 · 0 评论 -
linux之SQL语句简明教程---CREATE VIEW
视观表 (View) 可以被当作是虚拟表格。它跟表格的不同是,表格中有实际储存资料,而视观表是建立在表格之上的一个架构,它本身并不实际储存资料。建立一个视观表的语法如下:CREATE VIEW "VIEW_NAME" AS "SQL 语句";"SQL 语句" 可以是任何一个我们在这个教材中有提到的 SQL。来看一个例子。假设我们有以下的表格:Customer 表格原创 2014-12-15 18:56:46 · 760 阅读 · 0 评论 -
linux之SQL语句简明教程---CREATE TABLE
表格是数据库中储存资料的基本架构。在绝大部份的情况下,数据库厂商不可能知道您需要如何储存您的资料,所以通常您会需要自己在数据库中建立表格。虽然许多数据库工具可以让您在不需用到 SQL 的情况下建立表格,不过由于表格是一个最基本的架构,我们决定包括 CREATE TABLE的语法在这个网站中。在我们跳入 CREATE TABLE 的语法之前,我们最好先对表格这个东西有些多一点的了解。表格被分为栏原创 2014-12-15 18:52:15 · 1002 阅读 · 0 评论 -
linux之SQL语句简明教程---TRIM
SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的资料库中有不同的名称:MySQL: TRIM( ), RTRIM( ), LTRIM( )Oracle: RTRIM( ), LTRIM( )SQL Server: RTRIM( ), LTRIM( )各种 trim 函数的语法如下:TRIM ( [ [位置] [要移原创 2014-12-15 18:49:27 · 621 阅读 · 0 评论 -
linux之SQL语句简明教程---SUBSTRING
SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样:MySQL: SUBSTR( ), SUBSTRING( )Oracle: SUBSTR( )SQL Server: SUBSTRING( )最常用到的方式如下 (在这里我们用 SUBSTR( ) 为例):SUBSTR (str, pos)由 中,选出原创 2014-12-15 18:44:20 · 623 阅读 · 0 评论 -
linux之SQL语句简明教程---CONCATENATE
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:MySQL: CONCAT( )Oracle: CONCAT( ), ||SQL Server: +CONCAT( ) 的语法如下:CONCAT (字串1, 字串2, 字串3, ...)将字串1、字串2、字串3,等字串连在一起。请注意,Oracle 的 CONCAT( ) 只允原创 2014-12-15 17:42:25 · 536 阅读 · 0 评论 -
linux之SQL语句简明教程---UNION ALL
UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起。 UNION ALL 和UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复。UNION ALL 的语法如下:[SQL 语句 1]UNION ALL[SQL 语句 2];我们用和上一页同样的例子来显示出 UNION ALL 和 UNION 的不同。同样原创 2014-12-15 17:40:01 · 792 阅读 · 0 评论 -
linux之SQL语句简明教程---UNION
UNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION 这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。UNION 的语法如下:[SQL 语句原创 2014-12-15 17:31:03 · 697 阅读 · 0 评论 -
linux之SQL语句简明教程---Subquery
我们可以在一个 SQL 语句中放入另一个 SQL 语句。当我们在 WHERE 子句或 HAVING 子句中插入另一个 SQL 语句时,我们就有一个 subquery 的架构。 Subquery 的作用是什么呢?第一,它可以被用来连接表格。另外,有的时候 subquery 是唯一能够连接两个表格的方式。Subquery 的语法如下:SELECT "栏位1" FROM "表格"原创 2014-12-15 17:24:31 · 694 阅读 · 0 评论 -
linux之SQL语句简明教程---外部连接
之前我们看到的左连接 (left join),又称内部连接 (inner join)。在这个情况下,要两个表格内都有同样的值,那一笔资料才会被选出。那如果我们想要列出一个表格中每一笔的资料,无论它的值在另一个表格中有没有出现,那该怎么办呢?在这个时候,我们就需要用到 SQL OUTER JOIN(外部连接) 的指令。外部连接的语法是依数据库的不同而有所不同的。举例来说,在 Oracle 上,我原创 2014-12-15 17:07:26 · 558 阅读 · 0 评论 -
linux之SQL语句简明教程---表格连接
现在我们介绍连接 (Join) 的概念。要了解连接,我们需要用到许多我们之前已介绍过的指令。我们先假设我们有以下的两个表格,Store_Information 表格Store_NameSalesTxn_DateLos Angeles150005-Jan-1999San Diego25007-Jan-1999Los原创 2014-12-15 17:04:02 · 634 阅读 · 0 评论 -
linux之SQL语句简明教程---Alias
接下来,我们讨论 alias (别名) 在 SQL 上的用处。最常用到的别名有两种: 栏位别名及表格别名。简单地来说,栏位别名的目的是为了让 SQL 产生的结果易读。在之前的例子中,每当我们有营业额总合时,栏位名都是 SUM(Sales)。 虽然在这个情况下没有什么问题,可是如果这个栏位不是一个简单的总合,而是一个复杂的计算,那栏位名就没有这么易懂了。若我们用栏位别名的话,就可以确认结果中的栏原创 2014-12-15 16:43:22 · 636 阅读 · 0 评论 -
linux之SQL语句简明教程---HAVING
那我们如何对函数产生的值来设定条件呢?举例来说,我们可能只需要知道哪些店的营业额有超过 $1,500。在这个情况下,我们不能使用 WHERE 的指令。那要怎么办呢?很幸运地,SQL 有提供一个 HAVING 的指令,而我们就可以用这个指令来达到这个目标。 HAVING 子句通常是在一个 SQL 句子的最后。一个含有 HAVING 子句的 SQL 并不一定要包含 GROUP BY 子句。HA原创 2014-12-15 16:39:10 · 781 阅读 · 0 评论 -
linux之SQL语句简明教程---GROUP BY
我们现在回到函数上。记得我们用 SUM 这个指令来算出所有的 Sales (营业额)吧!如果我们的需求变成是要算出每一间店 (Store_Name) 的营业额 (Sales),那怎么办呢?在这个情况下,我们要做到两件事:第一,我们对于 Store_Name 及 Sales 这两个栏位都要选出。第二,我们需要确认所有的 Sales 都要依照各个 Store_Name 来分开算。这个语法为:原创 2014-12-15 16:34:25 · 758 阅读 · 0 评论 -
linux之SQL语句简明教程---COUNT
在上一页有提到,COUNT 是函数之一。由于它的使用广泛,我们在这里特别提出来讨论。基本上,COUNT 让我们能够数出在表格中有多少笔资料被选出来。它的语法是:SELECT COUNT("栏位名") FROM "表格名";举例来说,若我们要找出我们的示范表格中有几笔 store_name 栏不是空白的资料时,Store_Information 表格Sto原创 2014-12-15 16:29:52 · 695 阅读 · 0 评论 -
linux之SQL语句简明教程---函数
既然数据库中有许多资料都是已数字的型态存在,一个很重要的用途就是要能够对这些数字做一些运算,例如将它们总合起来,或是找出它们的平均值。SQL 有提供一些这一类的函数。它们是:AVG (平均)COUNT (计数)MAX (最大值)MIN (最小值)SUM (总合)运用函数的语法是:SELECT "函数名"("栏位名") FROM "表格名";举例来说,若我们要由我原创 2014-12-15 16:26:59 · 660 阅读 · 0 评论 -
linux之SQL语句简明教程---ORDER BY
到目前为止,我们已学到如何藉由 SELECT 及WHERE 这两个指令将资料由表格中抓出。不过我们尚未提到这些资料要如何排列。这其实是一个很重要的问题。事实上,我们经常需要能够将抓出的资料做一个有系统的显示。这可能是由小往大 (ascending) 或是由大往小 (descending)。在这种情况下,我们就可以运用 ORDER BY这个指令来达到我们的目的。ORDER BY 的语法如下:原创 2014-12-15 16:22:14 · 700 阅读 · 0 评论 -
linux之SQL语句简明教程---LIKE
LIKE 是另一个在 WHERE 子句中会用到的指令。基本上,LIKE 能让我们依据一个套式 (pattern) 来找出我们要的资料。相对来说,在运用 IN 的时候,我们完全地知道我们需要的条件;在运用 BETWEEN 的时候,我们则是列出一个范围。 LIKE 的语法如下:SELECT "栏位名" FROM "表格名" WHERE "栏位名" LIKE {套式};{套式原创 2014-12-15 16:18:37 · 563 阅读 · 0 评论 -
linux之SQL语句简明教程---BETWEEN
IN 这个指令可以让我们依照一或数个不连续 (discrete) 的值的限制之内抓出数据库中的值,而BETWEEN 则是让我们可以运用一个范围 (range) 内抓出数据库中的值。BETWEEN 这个子句的语法如下:SELECT "栏位名" FROM " 表格名" WHERE "栏位名" BETWEEN '值一' AND '值二';这将选出栏位值包含在值一及值二之间的每原创 2014-12-15 16:15:09 · 914 阅读 · 0 评论 -
linux之SQL语句简明教程---IN
在 SQL 中,在两个情况下会用到 IN 这个指令;这一页将介绍其中之一 -- 与 WHERE 有关的那一个情况。在这个用法下,我们事先已知道至少一个我们需要的值,而我们将这些知道的值都放入IN 这个子句。 IN 指令的 语法为下:SELECT "栏位名" FROM "表格名" WHERE "栏位名" IN ('值一', '值二', ...);在括弧内可以有一或多个值,而不原创 2014-12-15 16:13:31 · 670 阅读 · 0 评论 -
linux之SQL语句简明教程---AND OR
在上一页中,我们看到 WHERE 指令可以被用来由表格中有条件地选取资料。 这个条件可能是简单的 (像上一页的例子),也可能是复杂的。复杂条件是由二或多个简单条件透过 AND 或是 OR的连接而成。一个 SQL 语句中可以有无限多个简单条件的存在。复杂条件的语法如下:SELECT "栏位名" FROM "表格名" WHERE "简单条件" {[AND|OR] "简单条件原创 2014-12-15 15:56:57 · 622 阅读 · 0 评论 -
linux之SQL语句简明教程---WHERE
我们并不一定每一次都要将表格内的资料都完全抓出。在许多时候,我们会需要选择性地抓资料。就我们的例子来说,我们可能只要抓出营业额超过 $1,000 的资料。要做到这一点,我们就需要用到 WHERE 这个指令。这个指令的语法如下:SELECT "栏位名" FROM "表格名" WHERE "条件";若我们要由以下的表格抓出营业额超过 $1,000 的资料,Store_I原创 2014-12-15 15:53:02 · 656 阅读 · 0 评论 -
linux之SQL语句简明教程---DISTINCT
SELECT 指令让我们能够读取表格中一个或数个栏位的所有资料。这将把所有的资料都抓出,无论资料值有无重复。在资料处理中,我们会经常碰到需要找出表格内的不同资料值的情况。换句话说,我们需要知道这个表格/栏位内有哪些不同的值,而每个值出现的次数并不重要。这要如何达成呢?在 SQL 中,这是很容易做到的。我们只要在 SELECT 后加上一个 DISTINCT 就可以了。DISTINCT 的语法如下:原创 2014-12-15 15:49:28 · 694 阅读 · 0 评论 -
linux之SQL语句简明教程---SELECT
SQL是用来做什么的呢?一个最常用的方式是将资料从数据库中的表格内选出。从这一句回答中,我们马上可以看到两个关键字: 从 (FROM) 数据库中的表格内 选出 (SELECT)。(表格是一个数据库内的结构,它的目的是储存资料。在 表格处理这一部分中,我们会提到如何使用 SQL 来设定表格。) 我们由这里可以看到最基本的 SQL 架构:SELECT "栏位名" FROM "表格名";原创 2014-12-15 15:44:13 · 732 阅读 · 0 评论 -
linux之SQL语句简明教程
本教程参考http://www.1keydata.com/cn/sql/目的是让初学者了解linux下Mysql的操作,但是我仍想侧重于SQL语句的讲解sql语句的学习将按照下图的流程:当然在这之前我们需要简单了解下linux下mysql的安装,以及基本操作.关于如何安装和使用linux下mysql请参考:http://blog.csdn.net/u0130原创 2014-12-15 14:01:37 · 755 阅读 · 0 评论