SQL 常用函数学习.docx

上传人:b****2 文档编号:18182041 上传时间:2023-04-24 格式:DOCX 页数:178 大小:3.94MB
下载 相关 举报
SQL 常用函数学习.docx_第1页
第1页 / 共178页
SQL 常用函数学习.docx_第2页
第2页 / 共178页
SQL 常用函数学习.docx_第3页
第3页 / 共178页
SQL 常用函数学习.docx_第4页
第4页 / 共178页
SQL 常用函数学习.docx_第5页
第5页 / 共178页
点击查看更多>>
下载资源
资源描述

SQL 常用函数学习.docx

《SQL 常用函数学习.docx》由会员分享,可在线阅读,更多相关《SQL 常用函数学习.docx(178页珍藏版)》请在冰豆网上搜索。

SQL 常用函数学习.docx

SQL常用函数学习

目录

SQL基础学习

(一)5

SQL基础学习

(二)SQL SELECT 语句6

SQL基础学习(三)SQL distinct8

SQL基础学习(四)select where9

SQL基础学习(五)and & or11

SQL基础学习(六):

order by13

SQL基础学习(七):

insert into15

SQL基础学习(八):

Update19

SQL基础学习(九):

DELETE20

SQL进阶学习

(一):

TOP22

SQL进阶学习

(二):

LIKE25

SQL进阶学习(三):

通配符26

SQL进阶学习(四):

IN30

SQL进阶学习(五):

BETWEEN31

SQL进阶学习(六):

Alias(别名)33

SQL进阶学习(七):

INNER JOIN35

SQL进阶学习(八):

LEFT JOIN38

SQL进阶学习(九):

RIGHT JOIN40

SQL进阶学习(十):

FULL JOIN42

SQL进阶学习(十一):

UNION44

SQL进阶学习(十二):

SELECT INTO46

SQL进阶学习(十三):

CREATE DATABASE50

SQL进阶学习(十四):

CREATE TABLE51

SQL进阶学习(十五):

NOT LULL     UNIQUE  PRIMARY KEY53

SQL进阶学习(十六):

PRIMARY KEY55

SQL进阶学习(十七):

CHECK58

SQL进阶学习(十八):

Default60

SQL进阶学习(十九):

CREATE INDEX62

SQL进阶学习(二十):

DROP62

SQL进阶学习(二十一):

ALTER TABLE63

SQL进阶学习(二十二):

 AUTO INCREMENT65

SQL进阶学习(二十三):

DATE67

SQL进阶学习(二十四):

NULL70

SQL进阶学习(二十五):

数据类型73

SQL进阶学习(二十六):

VIEW75

SQL函数学习

(一):

内建函数认识78

SQL函数学习

(二):

AVG函数79

SQL函数学习(三):

COUNT函数80

SQL函数学习(四):

FIRST()函数 LAST()函数81

SQL函数学习(五):

MAX()函数 MIN()函数82

SQL函数学习(六):

SUM()函数83

SQL函数学习(七):

GROUP BY84

SQL函数学习(八):

HAVING85

SQL函数学习(九):

UPPER() and LOWER()86

SQL函数学习(十):

SUBSTRING() 函数88

SQL函数学习(十一):

LEN() Rtrim() Ltrim() Upper() Lower()89

SQL函数学习(十二):

ROUND函数91

SQL函数学习(十三):

LEFT()and RIGHT()函数92

SQL函数学习(十四):

REPLACE93

SQL函数学习(十五):

CHARINDEX()and patindex()95

SQL函数学习(十六):

STUFF()函数98

SQL函数学习(十七):

STR()函数100

SQL函数学习(十八):

FLOOR()和CEILING()101

SQL函数学习(十九):

CAST()函数和CONVERT()函数104

SQL函数学习(二十):

常用数学函数105

SQL函数学习(二十一):

配置函数109

SQL自定义函数学习

(一):

创建标量函数110

SQL自定义函数学习

(二):

创建单语句表值型函数113

SQL自定义函数学习(三):

多语句表值型函数114

SQL自定义函数学习(四):

修改和删除和管理117

SQL补充学习

(一):

CROSS JOIN119

SQL补充学习

(二):

自身连接121

SQL补充学习(三):

INTERSECT语句和EXCEPT语句122

SQL补充学习(四):

在select语句中使用子查询124

SQL补充学习(五):

在from语句中使用子语句125

SQL补充学习(六):

在where语句中使用子查询126

SQL补充学习(七):

IN语句的子查询127

SQL补充学习(八):

在多表查询中使用子查询128

SQL补充学习(九):

使用EXISTS语句的子查询129

SQL补充学习(十):

ANY运算符和ALL运算符的子查询130

SQL补充学习(十一):

Having语句的子查询132

SQL补充学习(十二):

嵌套子查询133

SQL补充学习(十三):

CASE语句交叉表查询 CASE135

SQL补充学习(十四):

插入多条数据信息137

SQL补充学习(十五):

select和select into语句插入数据138

SQL补充学习(十六):

使用子查询插入数据信息141

SQL补充学习(十七):

使用SQL删除数据142

SQL补充学习(十七):

使用SQL修改数据145

SQL补充学习(十八):

SQL server中的事务148

SQL补充学习(二十):

使用SQL维护数据库和数据库表151

SQL经验分享

(一):

找出某列中重复值154

SQL经验分享

(二)取得数据库中所有的表名、字段名以及字段属于哪个表157

SQL经验分享(三):

获取用户信息161

SQL流程控制语句学习

(一):

变量及控制语句种类162

SQL流程控制语句学习

(二):

begin…end   if…else case164

SQL流程控制语句学习(三):

while break continue168

SQL流程控制语句学习(四):

goto    waitfor170

SQL数据库常用的语句总结171

SQL server经验分享:

SQLSERVER 被标记为“可疑”的数据库处理方法176

SQL2005TXT导入的长度问题177

SQL2005查询中增加序号列178

 

SQL基础学习

(一)

 1 .SQL语法

 

  1.1数据库表

  一个数据库通常包含一个或多个表。

每个表由一个名字标识,即表名。

表包含带有数据的记录(行),第一行即每一列的首部一般为字段名,即每一列的内容概述。

如上,该表表名为:

dbo.gdbz,有6条记录,有国电标准文号、万方数据标准号、版本性质、中文名称4个字段。

  1.2SQL语句

 在数据库上执行的大部分工作都由SQL语句完成,SQL语句对大小写不敏感。

 分号是在数据库系统中分隔每条SQL语句的标准方法,有的程序需要严格遵守,但是因为我使用的是SQlServer2005,所以不必要。

 

1.3SQLDML和DDL

SQL分为两个部分:

数据操作语言(DML)和数据定义语言(DDL)。

SQL(结构化查询语言)是用于执行查询的语法。

但是SQL语言也包含用于更新、插入和删除记录的语法。

查询和更新指令构成了SQL的DML部分,如下:

 SELECT-从数据库表中获取数据

 UPDATE-更新数据库表中的数据

 DELETE-从数据库表中删除数据

 INSERTINTO-向数据库表中插入数据

 

SQL的数据定义语言(DDL)部分使我们有能力创建或删除表格。

我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL中最重要的DDL语句:

 

CREATEDATABASE-创建新数据库

ALTERDATABASE-修改数据库

CREATETABLE-创建新表

ALTERTABLE-变更(改变)数据库表

DROPTABLE-删除表

CREATEINDEX-创建索引(搜索键)

DROPINDEX-删除索引

SQL基础学习

(二)SQL SELECT 语句

2.SQLSELECT语句

 2.1 SQLSELECT语法

 

(1)SELECT列名称FROM表名称 (注:

查询出表中某列)

 

(2)SELECT*FROM表名称     (注:

查询出表中所有列,*表示所有)

2.2SQLSELECT实例(用的SQLServer)

 要求:

如需获取名为"国电标准文号"和"中文名称"的列的内容。

语句如下:

   SELECT[国电标准文号],[中文名称]

   FROM[mydata].[dbo].[gzbz]

执行结果:

要求:

从表中选取所有的列,用下面语句:

SELECT *   FROM[mydata].[dbo].[gzbz]

执行结果:

SQL基础学习(三)SQL Distinct

3.SQLDistinct

在表中可能会出现重复值,如果您想查询结果中只出现不同的值,就可以用distinct。

3.1SQLDistinct语句

SELECTDISTINCT列名称FROM表名称

3.2SQLDistinct实例

因为我们样例数据中不存在重复数据,为了演示效果,我们输入一行重复值。

如下:

要求:

取出“国电标准文号”列

语句如下:

SELECT[国电标准文号]FROM[mydata].[dbo].[gzbz]

执行结果:

要求:

只取出不同项

语句如下:

SELECTdistinct[国电标准文号]FROM[mydata].[dbo].[gzbz]

执行结果:

对比结果发现,重复项GB25082-2010被去掉。

SQL基础学习(四)select where

4.selectwhere

 如果想要加限制条件从表中取出数据,可以在select后加where

4.1selectwhere语法

  SELECT列名称FROM表名称WHERE列运算符值

注意:

SQL使用单引号来环绕文本值(大部分数据库系统也接受双引号)。

如果是数值,不要使用引号。

 

4.2where语句中主要的运算符

补:

部分支持操作符不等于可以写为“!

=”“!

=”不是符合ANSI标准的SQL,不可以移植。

4.3selectwhere实例

样例数据:

要求:

从dbo.gdbz表中取出中文名称为:

火灾自动报警系统性能评价的标准的国电标准文号

语句如下:

SELECT[国电标准文号]FROM[mydata].[dbo].[gzbz]

where中文名称='火灾自动报警系统性能评价' (''半角单引号环绕文本值)

执行结果:

特别提醒:

找东西最佳的方法是直接找到它,而不是先排除其他所有东西。

将否定的where条件改写为肯定条件将提高性能。

SQL基础学习(五)and & or

5.and&or

WHERE子语句中把两个或多个条件结合起来。

如果要求第一个条件和第二个条件都成立,用and

如果要求第一个条件和第二个条件中只要有一个成立即可,用or

5.1and&or实例

 为了使演示效果更加明显,我们在样例数据中增加一些数据项,增后如下:

5.1.1and实例:

要求:

取出中文名称为:

建筑材料不燃性试验方法,版本性质为:

T的标准

语句如下:

SELECT*

 FROM[mydata].[dbo].[gzbz]

where版本性质='T'and中文名称='建筑材料不燃性试验方法'(半角单引号)

执行结果:

5.1.2or实例:

要求:

取出中文名称为:

建筑材料不燃性试验方法或交流无间隙金属氧化物避雷器的标准

语句如下:

SELECT*

 FROM[mydata].[dbo].[gzbz]

where 中文名称='建筑材料不燃性试验方法'or中文名称='交流无间隙金属氧化物避雷器'(半角单引号)

执行结果:

5.1.2and&or结合实例:

要求:

取出中文名称为:

建筑材料不燃性试验方法或交流无间隙金属氧化物避雷器,但是版本性质必须为:

T的标准

语句如下:

SELECT*

 FROM[mydata].[dbo].[gzbz]

where (中文名称='建筑材料不燃性试验方法'or中文名称='交流无间隙金属氧化物避雷器')

and版本性质='T' (括号和单引号都是半角)

执行结果:

 注释:

andornot的优先级:

and最高,or次之,not最低。

SQL基础学习(六):

order by

6.orderby

如果想让输出结果按顺序排列,则可以用orderby语句

 6.1orderby语法

SELECT 字段(列名)FROM表名ORDERBY 字段(列名)DESE/ASC

6.2orderby语法说明

ORDERBY语句用于根据指定的列对结果集进行排序。

 

ORDERBY语句默认按照升序(ASC)对记录进行排序。

如果您希望按照降序对记录进行排序,可以使用DESC关键字。

6.3orderby实例

为了使演示效果更加明显,我们将样例数据增加序号列和所占空间列,如图:

要求:

取出表中序号、国电标准号和中文名称3列,按序号倒序排

语句如下:

select序号,国电标准文号,中文名称from[mydata].[dbo].[gdbz]

orderby序号DESC (逗号用半角)

执行结果:

 要求:

取出表中的序号、中文名称、版本性质、全文所占空间,按版本性质字母先后排,字母顺序相同的按所在空间从大到小排。

语句如下:

SELECT序号,版本性质,中文名称,[全文所占空间(MB)]

 FROM[mydata].[dbo].[gdbz]

orderby版本性质ASC,[全文所占空间(MB)]DESC          (逗号用半角)

说明:

其他字段因为没有标点符号、括号、空格等,可以不用“[]”括起来,也可以括。

但是有这些容易导致程序识别错误的,就需要加“[]”区分出来。

执行结果:

上面语法也可以写成:

SELECT序号,版本性质,中文名称,[全文所占空间(MB)]

 FROM[mydata].[dbo].[gdbz]

orderby 2ASC,4DESC 

6.4补充

orderby也可以按照表达式排序

例子:

selectlastname+','+firstname

fromdbo.name

orderbylastname+','+firstname

该语句将姓名连成一列,中间用逗号区分,并按姓名排序

SQL基础学习(七):

insert into

7.insertinto

如果我们想向表格中插入数据,就需要用到insertinto语句了

7.1insertinto语法

INSERTINTO  表名   VALUES(值1,值2,....)                                (注:

插入一行数据)

INSERTINTO 表名(列名,列名,...)VALUES(值1,值2,....) (注:

向某几列插入数据)

注意:

(1)值1,值2……文本值要用半角单引号,数值不用。

其他逗号也用半角逗号。

      

(2)如果列名有括号、逗号等容易引起读取错误的,列名用“[]”括住。

7.1insertinto实例

样例数据

插入一新的行要求如下:

             序号:

12

             国电标准文号:

GB25105.2-2010 

             万方数据标准号:

NULL

             版本性质:

Z

             中文名称:

工业通信网络现场总线规范类型10:

PROFINETIO规范第2部分:

应用层协议规范

              全文所占空间:

89

语句如下:

INSERTINTO[mydata].[dbo].[gdbz]  

    VALUES (12,'GB25105.2-2010',NULL,'Z','工业通信网络现场总线规范类型10:

PROFINETIO规范第2部分:

应用层协议规范',89) 

注意:

12 null 89都不需要加单引号,加了单引号就会把他们当做文字符号处理。

 

执行结果:

 

为什么插入的行会到第一行的位置了?

这个问题留给大家吧。

呵呵。

给另外一个例子,也许大家会明白:

样例数据:

insertinto语句如下:

INSERTINTO[mydata].[dbo].[Table_1]

   VALUES

      ('花花','育才','北京')

执行结果:

在指定列插入数据,要求如下:

             国电标准文号列插入:

GB25030-2010

             中文名称插入:

建筑物清洗维护质量要求

语句:

INSERTINTO[mydata].[dbo].[gdbz](国电标准文号,中文名称)

values('GB25030-2010','建筑物清洗维护质量要求')

同样,新插入的也在第一行。

在另外一个样例,上面的dbo.table1

语句如下:

INSERTINTO[mydata].[dbo].[Table_1] ([name],[school])

   VALUES ('虫虫','明天')

执行结果:

注:

当插入完成后,要刷新,重新打开,方能看到插入后的结果。

插入整行记录,提供的值的书目和顺序要跟实际字段对应,数据类型类型也要匹配

SQL基础学习(八):

Update

8.Update

如果要修改表中的数据,可以用Updata语句实现。

 

8.1Update语法

UPDATE 表名称 SET  列名称=新值WHERE 列名称 条件

8.1Update实例

还是用样例数据如下:

要求:

将序号为11的标准万方数据标准号修改为国电标准文号,版本性质为T,全文所占空间不变。

UPDATA语句如下:

UPDATE[mydata].[dbo].[gdbz]

  SET  万方数据标准号=[国电标准文号],版本性质='T'

 WHERE序号=11

执行结果:

注:

当更新完成后,要刷新表格,重新打开,方能看到更新后结果。

辨析:

SET  万方数据标准号=[国电标准文号]

     SET  万方数据标准号='国电标准文号'

第一个国电标准文号表示的是列名,就是将国电标准文号列的值赋予万方数据标准号;而第二个则是将'国电标准文号'这几个字作为值赋给万方数据标准号列。

SQL基础学习(九):

DELETE

9.DELETE

DELETE主要用来删除表中的行

9.1DELETE语句

DELETEFROM表名称WHERE列名称=值

注:

值如果不是数字,要用半角单引号括起来。

9.2DELETE实例

样例数据如下:

要求:

删除刚刚插入的三行

语句如下:

DELETEFROM[mydata].[dbo].[gdbz]

     WHERE国电标准文号='GB25105.2-2010'or国电标准文号='GB25030-2010'

执行结果:

注:

当删除完成后,要刷新表格,重新打开,方能看到删改后结果。

SQL进阶学习

(一):

TOP

1.TOP

 如果想要结果集只显示规定数量和规定比例的前多少名,就需要用到top语句了。

一些数据库系统并不支持top系统。

 

1.1SQLserver中top语法

SELECTTOP数字/百分比列名FROM表名

注:

数字直接用阿拉伯数字。

比如前10名,就直接用top10;

  百分比不能用%或其他数学表示法,直接用PERCENT,比如前30%,就用top30percent

 

1.2SQLserver中top实例

样例数据如下:

要求:

取出前3条数据

语句如下:

selecttop3*from[mydata].[dbo].[gdbz]

要求:

取出前50%的数据

语句如下:

selecttop50PERCENT*from[mydata].[dbo].[gdbz]

执行结果:

1.3top和withties选项

对top来说,withties至关重要,它使得查询结果可以包含多个这样的行。

就是最后一列如果出现多个值,多个值都会包含在内。

语法:

SELECTtop3*

 FROM[mydata].[dbo].[Table_1]

orderbyscoredesc

执行结果:

如果用语法:

 

1.4补充:

MySQL和Oracle没有top语句,直接用select实现

 

MYSQL语句

SELECT列名FROM表名LIMIT数字

Oracle语句

SELECT列名FROM表名

WHEREROWNUM<=数字

这两个在SQL中是无法实现的。

各个数据库的SQL语言虽然大致相同,但是还是有很多细节的差别。

SQL进阶学习

(二):

LIKE

2.like

 在运算符章节,我们知道like是个运算符,意义是探索某种模式,用在where字语句中。

 

2.1like语句

select列名from表名

where列名like模式

2.1like实例

样例数据如下:

要求:

从表中取出万方数据标准号中以GB/T开头的数据项

like语句如下:

select *from[mydata].[dbo].[gdbz]

WHERE万方数据标准号like'GB/T%'

注:

%是通配符,缺少的部分用%通配。

执行结果:

要求:

取出国电标准文号是2000结尾的

like语句如下:

select *from[mydata].[dbo].[gdbz]

WHERE国电标准文号like'00'

执行结果:

要求:

取出中文名称中带有“无间隙金属氧化”几个字的标准

like语句如下:

select *from[mydata].[dbo].[gdbz]

WHERE中文名称like'%无间隙金属氧化%'

执行结果:

 SQL进阶学习(三):

通配符

3.通配符

 在上一次学习like时,我们已经使用过通配符%。

SQL通配符可以替代一个或多个字符。

 通配符必须和like一起使用

 

 3.1常用的通配符主要有以下:

 

 

 3.2通配符使用实例

 %通配符在上一次学习中已经尝试,此次主要学习剩下的几个。

样例数据如下:

 _通配符实例:

要求:

取出中文名称中第一个字符后面是800的标准项。

这个就涉及到_通配符和%通配符的联合使用了。

语句如下:

select *from[mydata].[dbo].[gdbz]

WHERE中文名称like'_800%'

执行结果:

辨析:

selec

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

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

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