T-SQL基础

T-SQL的组成

  1. 数据定义语言(DDL,Data Definition Language)

  2. 数据操纵语言(DML,Data Manipulation Language)

  3. 数据控制语言(DCL,Data Control Language)

T-SQL基础运算符

比较运算符

核心作用主要用作用快速的条件查询

运算符作用
=判断相等
>大于
<小于
>=大于等于
<=小于等于
!= <>不等于
!

逻辑运算符

运算符作用
ALL如果一个比较集中全部都是TRUE,则值为TRUE
ANY如果一个比较集中任何一个为TRUE,则值为TRUE
AND如果两个布尔表达式均为TRUE,则值为TRUE
OR如果任何一个布尔表达式是TRUE,则值为TRUE
BETWEEN如果操作数是在某个范围内(可取上下限),则值为TRUE
LIKE(模糊查询)如果操作数匹配某个模式的话,则值为TRUE
IN如果操作数与一个表达式列表中的某个相等的话,则值为TRUE
NOT对任何其他布尔运算符的值取反
SOME如果一个比较集中的某些为TRUE的话,则值为TRUE
EXISTS如果子查询包含任何行,则值为TRUE

SQL 通配符

在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。可以理解为和C#中学习过的正则的元字符类似

通配符描述
%替代一个或多个字符
_仅替代一个字符
[a,b,d],[a-d]字符列中的任何单一字符
[ ^a,b,c] 或者 [!b]不在字符列中的任何单一字符

 

SELECT查询语句

对查询结果的字段重新命名

SELECT 字段1名 AS '重命名1',字段2名 AS '重命名2',.... FROM 表名
SELECT StuID AS '学号',SubID AS '科目ID',Score AS '分数' FROM Score

多表连接查询-内联接

内联接查询可以为将数据库中多张表通过其内部关系进行查询,得到一张新的有用的"表",这个新表是内联接查询的结果并不存在

注意:多张表要保证表与表之间的字段有某种特殊意义的联系

SELECT Sname AS '姓名',SubName AS '科目',Score AS '分数' FROM Score JOIN Student ON Score.StuID=Student.SID JOIN Subject ON Score.SubID=Subject.SubID

按排列顺序查询

排序查询肯定是先排序再查询

将查询结果按照某个指定字段以升序(例如:数字按照从小到大)、降序这两种方式进行重新排列显示。

SELECT <字段> FROM 表名 [WHERE条件] ORDER BY <指定列名> ASC/ DESC,<指定列名> ASC/ DESC

升序:使用关键字ASC,如果在查询语句中ORDER BY排序之后未声明任何关键字则默认是升序

降序:使用关键字DESC

SELECT Sname AS '姓名',SubName AS '科目',Score AS '分数' FROM Score JOIN Student ON Score.StuID=Student.SID JOIN Subject ON Score.SubID=Subject.SubID WHERE SubName='C#'ORDER BY Score DESC

注意:排序查询语句中的升序或降序不是仅有一个字段

TOP查询指定行

使用TOP可以从结果中查询出指定的前多少行

SELECT TOP(数量) <列名> FROM 表名

从表中查询前多少行,由括号中的数量决定

SELECT TOP(3) Sname AS '姓名',SubName AS '科目',Score AS '分数' FROM Score JOIN Student ON Score.StuID=Student.SID JOIN Subject ON Score.SubID=Subject.SubID WHERE SubName='C#'

T-SQL分页查询

分页查询的必要

  1. 针对于目标数据量庞大的查询结果,为了能够快速查询

  2. 分页查询有助于应用程序对数据的一个显示

如何T-SQL进行分页查询

使用NOT IN分页

SELECT TOP(5) * FROM StudentInfo WHERE StuID NOT IN(SELECT TOP(5)StuID FROM StudentInfo ORDER BY StuID) ORDER BY StuID 
SELECT TOP(每页的数据量) * FROM 表名 WHERE 标识列 NOT IN(SELECT TOP(已经过去的页数)标识列 FROM 表名 ORDER BY 标识列) ORDER BY 标识列 

使用IN进行分页

SELECT TOP(5) * FROM StudentInfo WHERE StuID IN
(SELECT TOP(5) StuID FROM StudentInfo WHERE StuID IN
(SELECT TOP(10) StuID FROM StudentInfo ORDER BY StuID)ORDER BY StuID DESC)ORDER BY StuID ASC
SELECT * FROM 表名 WHERE 标识列 IN (SELECT TOP(每页的数据) 标识列 FROM 表名 WHERE 标识列 IN (SELECT TOP(当前页在内的总数据) 标识列 FROM 表名 ORDER BY 标识列)ORDER BY 标识列 DESC)ORDER BY 标识列 ASC

注意:

1.在子连接查询中如果有多个排序查询,务必要注意子查询语句如果要使 用ORDER BY则必须要使用TOP关键字

2. 使用IN语句进行分页前提是必须要计算好最后一页的数据

T-SQL内置函数-聚合函数

SUM函数

返回表达式中所有值的和

SELECT SUM(Score) FROM Score WHERE SubID=1

AVG函数

计算选择字段的平均值

SELECT AVG(Score) FROM Score WHERE SubID=1

MIN函数

返回表达式的最小值

SELECT MIN(Score) FROM Score WHERE SubID=1

MAX函数

返回表达式的最大值

SELECT MAX(Score) FROM Score WHERE SubID=1

COUNT函数

返回组中项目的数量,如果用COUNT统计一列的数量如果该列有NULL值则不计算这列,因此一般使用COUNT函数统计某张表中的实体数量使用*查询

SELECT COUNT(*) FROM Student

DISTINCT函数

返回一个集合,并从指定集合中删除重复的元组

SELECT DISTINCT(StuID) FROM Score
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值