ImageVerifierCode 换一换
格式:DOCX , 页数:40 ,大小:1.16MB ,
资源ID:19919561      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19919561.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SQL语句教程采用Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SQL语句教程采用Word格式文档下载.docx

1、 表格处理: SQL 如何被用来处理数据库中的表格。 进阶 SQL: 介绍 SQL 进阶概念,以及如何用 SQL 来执行一些较复杂的运算。 SQL 语法: 这一页列出所有在这个教材中被提到的 SQL 语法。对于每一个指令,我们将会先列出及解释这个指令的语法,然后用一个例子来让读者了解这 个指令是如何被运用的。当您读完了这个网站的所有教材后,您将对 SQL 的语法会有一个 大致上的了解。另外,您将能够正确地运用 SQL 来由数据库中获取信息。笔者本身的经验 是,虽然要对 SQL 有很透彻的了解并不是一朝一夕可以完成的,可是要对 SQL 有个基本 的了解并不难。希望在看完这个网站后,您也会有同样的

2、想法。修改表名:altertabletestrenametest1;-修改表名添加表列:addcolumnnamevarchar(10);-添加表列删除表列:dropname;-删除表列修改表列类型:modifyaddresschar(10)-修改表列类型 或 alterchangechar(40)是用来做什么的呢?一个最常用的方式是将资料从数据库中的表格内选出。从这一句回答 中,我们马上可以看到两个关键字: 从 (FROM) 数据库中的表格内选出 (SELECT)。(表 格是一个数据库内的结构,它的目的是储存资料。在表格处理这一部分中,我们会提到如何 使用 SQL 来设定表格。) 我们由这里

3、可以看到最基本的 SQL 架构:SELECT 栏位名 FROM 表格名我们用以下的例子来看看实际上是怎么用的。假设我们有以下这个表格:store_nameSalesDateLos Angeles$1500Jan-05-1999San Diego$250Jan-07-1999$300Jan-08-1999Boston$700更改上表中的第1列的列名:address1varchar(30)-修改表列名更改列名后如下:若要选出所有的店名 (store_Name),我们就打入:SELECT store_name FROM Store_Information结果:我们一次可以读取好几个栏位,也可以同时由

4、好几个表格中选资料。SELECT 指令让我们能够读取表格中一个或数个栏位的所有资料。这将把所有的资料都抓 出,无论资料值有无重复。在资料处理中,我们会经常碰到需要找出表格内的不同资料值的 情况。换句话说,我们需要知道这个表格/栏位内有哪些不同的值,而每个值出现的次数并 不重要。这要如何达成呢?在 SQL 中,这是很容易做到的。我们只要在 SELECT 后加上 一个 DISTINCT 就可以了。DISTINCT 的语法如下:SELECT DISTINCT FROM 举例来说,若要在以下的表格,Store_Information,找出所有不同的店名时,Store_Information 表格我们就

5、键入,SELECT DISTINCT store_name FROM Store_Information我们并不一定每一次都要将表格内的资料都完全抓出。在许多时候,我们会需要选择性地抓 资料。就我们的例子来说,我们可能只要抓出营业额超过 $1,000 的资料。要做到这一点, 我们就需要用到 WHERE 这个指令。这个指令的语法如下:WHERE 条件若我们要由以下的表格抓出营业额超过 $1,000 的资料,SELECT store_nameFROM Store_InformationWHERE Sales 1000store_name Los AngelesAND OR在上一页中,我们看到 WH

6、ERE 指令可以被用来由表格中有条件地选取资料。 这个条件 可能是简单的 (像上一页的例子),也可能是复杂的。复杂条件是由二或多个简单条件透过 AND 或是 OR 的连接而成。一个 SQL 语句中可以有无限多个简单条件的存在。复杂条件的语法如下: WHERE 简单条件AND|OR + 代表之内的情况会发生一或多次。在这里的意思就是 AND 加简单条件及 OR 加简 单条件的情况可以发生一或多次。另外,我们可以用 () 来代表条件的先后次序。举例来说,我们若要在 Store_Information 表格中选出所有 Sales 高于 $1,000 或是 Sales在 $500 及 $275 之间的

7、资料的话,San FranciscoOR (Sales 275)store_name Los Angeles San FranciscoINSELECT * FROM store_information WHERE store_name IN (Los Angeles ,San Diego)执行结果如下:SELECT * FROM store_information WHERE store_name = OR store_name = BetweenSELECT * FROM store_information WHERE datet BETWEEN 2015-07-06 AND 2015-0

8、7-10SELECT * FROM store_information WHERE sales BETWEEN 400 AND 2000LIKELIKE是另一个在WHERE子句中会用到的指令。基本上,LIKE能让我们依据一个模式(pattern)来找出我们要的资料.相对来说,在运用IN的时候,我们完全地知道我们需要的条件;在运用BETWEN的时候,我们则是列出一个范围。LIKE的语法如下:SELECT “栏位名“ FROM “表格名” WHERE “栏位名” LIKE 模式模式经常包括野卡(wildcard)。SELECT * FROM store_information WHERE stor

9、e_name LIKE %AN%ORDER BY到目前为止,我们已经学到如何藉由SELECT及WHERE这两个指令将资料由表格中抓出。不过我们尚未提到这些资料要如何排练。这其实是一个很重要的问题。事实上,我们经常需要能够将抓出的资料做一个有联系的显示。这可能是由小往大(ascending)或是由大往小(descending)。在这种情况下,我们就可以运用ORDER BY这个指令来达到我们的目的.ORDER BY语法如下:SELECT “栏位名” FROM “表格名” WHERE “条件” ORDER BY “栏位名” ASC ,DESCSELECT store_name,sales,datet

10、 FROM store_information ORDER BY sales DESCSELECT store_name,sales,datet FROM store_information ORDER BY 3 DESC既然数据可中有许多资料都是以数字的型态存在,一个很重要的用途就是对这些数字做一些运算,例如将它们总会起来,或是找出它们的平均值。SQL提供了一些函数如下:AVG(平均)COUNT(计数)MAX(最大值)MIN(最小值)SUM(总合)运用函数的语法是:SELECT “函数名”(“栏位名”) FROM “表格名”例如:SELECT COUNT(sales) FROM store_

11、informationSELECT SUM(sales) FROM store_informationSELECT MAX(sales) FROM store_informationSELECT MIN(sales) FROM store_informationSELECT AVG(sales) FROM store_informationCOUNT在上一页有提到,COUNT是函数之一。由于它的使用广泛,我们在这里特别提出来讨论。基本上,COUNT让我们能够数出表格中有多少笔资料被选出来。它的语法是:SELECT COUNT(“栏位名”) FROM “表格名”SELECT COUNT(stor

12、e_name) FROM store_information WHERE store_name IS NOT NULLGROUP BY 我们现在回到函数上。记得我们用SUM这个指令来计算出所有的sales(营业额)吧!如果我们的需求变成是要算出每一间店(store_name)的营业额,那么怎么算呢?这个情况下,我们要做到两件事:第一,我们对于store_name及sales这两个栏位都要选出。第二我们需要确认所有的sales都要依照各个store_name来分开算。这个语法为:SELECT “栏位1”,SUM(“栏位2”) FROM “表格名” GROUP BY “栏位1”SELECT sto

13、re_name,SUM(sales) FROM store_information GROUP BY store_nameHAVING那我们如何对函数产生的值来设定条件呢?举例来说,我们可能只需要知道哪些店的营业额有超过1500。在这个情况下,我们不能使用WHERE的指令。那要怎么办呢?很幸运地,SQL有提供一个HAVING的指令,而我们就可以用这个指令来达到这个目标。HAVING子句通常是在一个SQL句子的最后,一个含有HAVING子句的SQL并不一定要包含GROUP BY子句。HAVING子句的语法如下:SELECT “栏位1” ,SUM(“栏位2”) FROM “表格名” GROUP B

14、Y “栏位1” HAVING(函数条件)SELECT store_name,SUM(sales) FROM store_information GROUP BY store_name HAVING SUM(sales)1500ALIAS接下来,我们讨论alias(别名)在SQL上的用处。最常用到的别名有两种:栏位别名及表格别名。简单地来说,栏位别名的目的是为了让SQL产生的结果易读。在之前的例子中,每当我们有营业额总合时,栏位名都是SUM(sales)。虽然在这个情况下没有什么问题,可是如果这个栏位不是一个简单的总合,而是一个复杂的计算,那栏位名就没有这么易懂了。若我们用栏位别名的话,就可以确

15、认结果中的栏位名是简单易懂的。第二种别名是表格别名。要给一个表格取一个别名,只要在FROM子句中的表格名后空一格,然后再列出要用的表格别名就可以了。这在我们要用SQL由数个不同的表格中获取资料时是很方便的。这一点我们在之后谈到连接(join)时会看到.我们先来看一下栏位别名合表格别名的语法:SELECT “表格别名” “栏位1” “栏位别名” FROM “表格名” “表格别名”SELECT A1.store_name store,SUM(A1.sales)Total sales FROM store_information A1 GROUP BY A1.store_nameSELECT A1.

16、region_name ,SUM(A2.sales) sales FROM geography A1,store_information A2 WHERE A1.store_name = A2.store_nameGROUP BY A1.region_name删掉上面SQL语句中的salesSELECT A1.region_name ,SUM(A2.sales) FROM geography A1,store_information A2 SELECT A1.region_name region ,SUM(A2.sales) sales FROM geography A1,store_info

17、rmation A2 没有别名的情况:SELECT geography.region_name, SUM(store_information.sales) FROM geography,store_information WHERE geography.store_name = store_information.store_nameGROUP BY geography.region_name有时候,我们有需要将由不同栏位获得的资料串联在一起,每种数据库都有提供方法来达到这个目的:MySQL:CONCAT()Oracle:CONCAT(),|SQL Server: +CONCAT()的语法如下

18、:CONCAT(字符串1,字符串2,字符串3,.):将字符串1、字符串2、字符串3,等字符串连在一起。请注意,Oracle的CONCATO()只允许两个参数;换言之,一次只能将两个字符串串连起来。不过,在Oracle中,我们可以用|来一次串连多个字符串。 表 geographyregion_nameStore_nameEastNew YorkWest表 store_informationsalesdatat2015-07-052502015-07-073002015-07-08700MySQL/OracleSELECT CONCAT(region_name,store_name)FROM ge

19、ography WHERE store_name = Boston;SQL中的substring函数是用来抓住一个栏位资料中的其中一部分。这个函数的名称在不同的数据库中不完全一样:SUBSTR( ),SUBSTRING( )SUBSTR( )SUBSTRING( )最常用到的方式如下(我们用SUBSTR( )为例):SUBSTR(str,pos):由中,选出所有从第位置开始的字符。请注意,这个语法不适用于 SQL Server上。SUBSTR(str,pos,len):中的第位置开始,选出接下去的格字符。假设我们有以下的表格:例1: SELECT SUBSTR(store_name,3) FR

20、OM geography WHERE store_name = 例2:SELECT SUBSTR(store_name,2,4) FROM geography WHERE store_name = SQL中的TRIM函数是用来移除掉一个字符串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的数据库中有不同的名称:TRIM(),RTRIM(),LTRIM()RTRIM(),LTRIM()各种trim函数的语法如下:TRIM(位置 要移除的字符串 FROM 字符串): 位置 的可能值为 LEADING (起头),TRAILING (结尾), or BOTH (起头及结尾)。 这个

21、函数将把 要移除的字符串 从字符串的起头、结尾,或是起头及结尾移除。如果我们没有列出 要移除的字符串 是什么的话,那空白就会被移除。LTRIM(字符串): 将所有字符串起头的空白移除。RTRIM(字符串): 将所有字符串结尾的空白移除。例 1:SELECT TRIM( Sample );Sample例 2:SELECT LTRIM(Sample 例 3:SELECT RTRIM( Sample表格是数据库中储存资料的基本架构。在绝大部份的情况下,数据库厂商不可能知道您需要如何储存您的资料,所以通常您会需要自己在数据库中建立表格。虽然许多数据库工具可以让您在不需用到 SQL 的情况下建立表格,不

22、过由于表格是一个最基本的架构,我们决定包括 CREATE TABLE 的语法在这个网站中。在我们跳入 CREATE TABLE 的语法之前,我们最好先对表格这个东西有些多一点的了解。表格被分为栏位 (column) 及列位 (row)。每一列代表一笔资料,而每一栏代表一笔资料的一部份。举例来说,如果我们有一个记载顾客资料的表格,那栏位就有可能包括姓、名、地址、城市、国家、生日等等。当我们对表格下定义时,我们需要注明栏位的标题,以及那个栏位的资料种类。那,资料种类是什么呢?资料可能是以许多不同的形式存在的。它可能是一个整数 (例如1),、一个实数 (例如 0.55)、一个字符串 (例如 sql)

23、、一个日期/时间 (例如 2000-JAN-2503:22:22)、或甚至是以二进法 (binary) 的状态存在。当我们在对一个表格下定义时,我们需要对每一个栏位的资料种类下定义。 (例如 姓 这个栏位的资料种类是 char(50)代表这是一个 50 个字符的字符串)。我们需要注意的一点是不同的数据库有不同的资料种类,所以在对表格做出定义之前最好先参考一下数据库本身的说明。CREATE TABLE 的语法是:CREATE TABLE (栏位 1 栏位 1 资料种类,栏位 2栏位 2 资料种类. )若我们要建立我们上面提过的顾客表格,我们就键入以下的 SQL:CREATE TABLE customer(First_Name char(50),Last_Name char(50),Address char

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1