sql语言教程

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL(Structured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL同时也是数据库脚本文件的扩展名。

基本语法

数据库的相关名称:数据库、表、字段、记录

SQL语言的最基本功能是增、删、查、改。

增:INSERT INTO 表名(字段1,字段2) V ALUES (值1,值2)

其中——值如果是字符串如:’名字’。如果是变量——字符串:’” & 变量& ”‘;

删:DELETE 表名从数据库中的删除表

DELETE FROM 表名WHERE 条件

查:SELECT *(或:字段1,字段2) FROM 表名WHERE 条件ORDER BY 字段ASC(或:DESC-降序) 改:UPDA TE 表名SET 字段=值WHERE 条件

几个子句:

WHERE子句可包括各种条件运算符:比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<

范围运算符(表达式值是否在指定的范围):BETWEEN…AND…或NOT BETWEEN…AND…

例:范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=30

列表运算符(判断表达式是否为列表中的指定项):IN (项1,项2……) 或NOT IN (项1,项2……)

例:列表运算符例:country IN ('Germany','China')

模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOT LIKE

模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime等类型查询。

可使用以下通配字符:

百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。

下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。

方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

例如:

限制以Publishing结尾,使用LIKE '%Publishing'

限制以A开头:LIKE '[A]%'

限制以A开头外:LIKE '[^A]%'

空值判断符(判断表达式是否为空):IS NULL、NOT IS NULL

例:空值判断符例WHERE age IS NULL

逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR。优先级为NOT、AND、OR

高级语法

1. case when条件表达式

SQL CASE 表达式是一种通用的条件表达式,类似于其它语言中的if/else 语句。

例子:

select CONCA T(case click when 0 then 'nan' end,case aid when 132 then 'yi' end) from dede_addoninfos(可以用函数)

2.UNION(联合查询)

[SQL 语句2] 假设我们有以下的两个表格,

Store_Information 表格store_name Sales Date

Los Angeles $1500 Jan-05-1999

San Diego $250 Jan-07-1999

Los Angeles $300 Jan-08-1999

Boston $700 Jan-08-1999

Internet Sales 表格Date Sales

Jan-07-1999 $250

Jan-10-1999 $535

Jan-11-1999 $320

Jan-12-1999 $750

而我们要找出来所有有营业额(sales) 的日子。要达到这个目的,我们用以下的SQL 语句:

SELECT Date FROM Store_Information

UNION

SELECT Date FROM Internet_Sales 结果:

Date

Jan-05-1999

Jan-07-1999

Jan-08-1999

Jan-10-1999

Jan-11-1999

Jan-12-1999

有一点值得注意的是,如果我们在任何一个SQL 语句(或是两句都一起) 用"SELECT DISTINCT Date" 的话,那我们会得到完全一样的结果。

SQL Union All

UNION ALL 这个指令的目的也是要将两个SQL 语句的结果合并在一起。UNION ALL 和UNION 不同之处在于UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复。UNION ALL 的语法如下:[SQL 语句1]

UNION ALL

[SQL 语句2] 我们用和上一页同样的例子来显示出UNION ALL 和UNION 的不同。同样假设我们有以下两个表格:

Store_Information 表格store_name Sales Date

Los Angeles $1500 Jan-05-1999

San Diego $250 Jan-07-1999

Los Angeles $300 Jan-08-1999

Boston $700 Jan-08-1999

Internet Sales 表格Date Sales

Jan-07-1999 $250

Jan-10-1999 $535

Jan-11-1999 $320

Jan-12-1999 $750

而我们要找出有店面营业额以及网络营业额的日子。要达到这个目的,我们用以下的SQL语句:

SELECT Date FROM Store_Information

UNION ALL

SELECT Date FROM Internet_Sales 结果:

Date

Jan-05-1999

Jan-07-1999

Jan-08-1999

Jan-08-1999

Jan-07-1999

Jan-10-1999

Jan-11-1999

Jan-12-1999

表1

A B

a 1

b 0

c 3

相关文档
最新文档