数据库原理<SQL sever 2014>(1)

数据库原理

投影运算

SELECT

使用:

SELECT 查询目标 正常查询

SELECT DISTINCT 查询目标 消重查询

SELECT * 泛查询

SELECT 查询目标 AS 别名 or SELECT 查询目标 别名 查询并赋予别名

SELECT 函数表达式or函数 查询计算表达式

对应投影运算,指定查询结果中所需要的属性或表达式


FROM

使用:

FROM 关系列表

对应笛卡尔积,给出查询所涉及的表,表可以是基本表、视图或查询表


WHERE

使用:

WHERE 选择运算(包括连接运算所转化的选择运算)

对应选择运算(包括连接运算所转化的选择运算),指定查询结果元组所需要满足的选择条件

WHERE 常用的选择运算
比较运算

>, >= , <, <=, =, <> (或!=或者≠)

使用:

WHERE <目标> 比较运算符 <值> 比较目标与值

WHERE 函数表达式(值) 比较运算符 函数表达式(值) 函数表达式的比较运算


范围查询

[NOT] BETWEEN <值1> AND <值2>

使用:

BETWEEN <值> AND <值2> 用于查询属性值在某一个范围内的元组

NOT BETWEEN <值1> AND <值2> 用于查询属性值不在某一个范围内的元组


集合查询

[NOT] IN <集合>

使用:

<目标> IN ('值1','值2') 用于查询属性值在某个集合内的元组

<目标> NOT IN ('值1','值2') 用于查询属性值不在某个集合内的元组

注意:

IN 后面是集合,可以是具体的集合,也可以是查询出来的元组集合


空值查询

IS [NOT] null

使用:

<目标> IS NULL 用于查询属性值为空值

<目标> IS NOT NULL 用于查询属性值不为空值

注意:

IS 不能用"="代替


字符匹配查询

[NOT] LIKE <匹配字符串>

使用:

[NOT] LIKE <匹配字符串> 用于字符匹配查询

[NOT] LIKE <匹配字符串> ESCAPE '<转义字符>'

例子:

LINKE '08\_' ESCAPE '\'     /*用于查询带有08_的值,通配符可以是任意的*/

注意:

1. 匹配字符串必须用一对引号括起来

2. 在中文SQL-Server中,如果匹配字符串为汉字,则一个下划线代表一个汉字;如果是西文,则一个下划线代表一个字符。

3. 如果匹配字符串中不含有%和_,则LIKE与比较运算符“=”的查询结果一样

4. 如果查询字串中本身要包含%和_,必须使用“ESCAPE<换码字符>"短语,对通配符进行转义处理。

如果在LIKE前没有NOT,则查询指定的属性列值与<匹配字符串>相匹配的元组;

如果在LIKE前有NOT,则查询指定的属性列值不与<匹配字符串>相匹配的元组。

<匹配字符串>可以是一个具体的字符串,也可以包括通配符%和_

%表示任意长度的字符串(任意字符)

ab%,表示所有以ab开头的任意长度的字符串;

zhang%ab,表示以zhang开头,以ab结束,中间可以是任意个字符的字符串。

符号_(下划线)表示任意一个字符(一个字符)

ab_,表示所有以 ab开头的3个字符的字符串,其中第3个字符为任意字符;

a__b表示所有以a开头,以b结束的4个字符的字符串,且第2、3个字符为任意字符。


逻辑查询

AND OR NOT

SQL提供AND、OR和NOT逻辑运算符分别实现逻辑与、逻辑或和逻辑非运算

使用:

WHERE <表达式> OR <表达式> OR ...

WHERE <表达式> AND <表达式> AND ...

NOT 参考上面 [NOT]


low()函数

将大写字母转换为小写字母


year()函数

提取日期中的年份


getdate()函数

获取当前系统日期


注意

SELECT 和 FROM 是必须的,其他是可选的

排序运算

ORDER BY

使用:

ORDER BY <表达式1> [ASC|DESC][, <表达式2> [ASC|DESC] ,... ]

<表达式1>, <表达式2>, 可以是属性、函数或表达式

默认为ASC排序

按降序排序,必须指明DESC选项

该运算含义是:

在查询结果中首先按<表达式1>的值进行排序

在<表达式1>值相等的情况下再按<表达式2>值排序

依此类推


month()

函数表示提取日期表达式的月份

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQL Server 索引是一种数据结构,可以加快 SQL Server 数据库查询速度,降低查询时需要扫描的数据量。索引本质上是一种有序的数据结构,存储了表中某个或某些列的值,并指向这些值在表中对应的行。在查询时,SQL Server 引擎会使用索引来定位表中符合查询条件的行,从而避免全表扫描,提高查询效率。 SQL Server 索引可以分为聚集索引和非聚集索引两种类型。聚集索引是按照索引键的顺序对表进行排序的,而且每个表只能有一个聚集索引。非聚集索引则是在索引中存储了被索引列的值以及一个指向存储这些值的行的指针。 SQL Server 索引的原理如下: 1. 创建索引:当创建索引时,SQL Server 引擎会扫描表中指定的列,将这些列的值存储到索引中。 2. 索引的存储结构:在 SQL Server 中,索引使用 B 树或 B+ 树的数据结构进行存储。这些树结构可以快速定位某个值所在的位置。 3. 查询时使用索引:当查询时,SQL Server 引擎会根据查询条件,在索引中进行查找。如果找到符合条件的值,就可以通过索引中存储的指针找到对应的行数据。 4. 维护索引:当表数据发生变化时,索引也需要相应地进行更新。例如,当插入一条新记录时,SQL Server 引擎会自动将这条记录添加到索引中。当更新或删除一条记录时,SQL Server 引擎会将索引中对应的记录进行更新或删除。 需要注意的是,虽然索引可以提高查询效率,但是过多的索引也会影响表的性能,因为每个索引都需要占用一定的存储空间,并且在表数据发生变化时,也需要相应地维护索引。因此,在创建索引时需要根据实际情况进行权衡和选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DDD-HHY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值