SQL 常用函数学习.docx
- 文档编号:18182041
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:178
- 大小:3.94MB
SQL 常用函数学习.docx
《SQL 常用函数学习.docx》由会员分享,可在线阅读,更多相关《SQL 常用函数学习.docx(178页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 常用函数学习 常用 函数 学习