.DQL 数据查询语言(核心) :select(查询)
· 条件查询 : where , distinct , 逻辑运算符
· 分组 :group by having
· 排序 :order by
· 常用函数等
· 子查询
· 多表关联 :左连接
在SQL server中常用5类的函数:字符串函数,日期函数,数学函数,系统函数,聚合函数。
字符串函数
--常用的字符串函数
- 1.charindex() -- 字符索引
- 2.len() -- 长度
- 3.upper() -- 大写
- 4.Ltrim() -- 左裁减
- 5.Rtrim() -- 右裁减
- 6.Left() -- 左
- 7.Right() -- 右
- 8.stuff() -- 删除并添加
- 9.replace() -- 查找并替换
/* charindex() 用来查询指定字符串在另一个字符串中的起始位置
Len :按长度来排序
例:
Select AchievementID,UserID,StTime
from [dbo].[PW_Achievement]
order by len( AchievementID ) asc
1.查询表单信息
(1)如何查询表的所有内容
SELECT * FROM 表名 (select * "*"号代表选择所有内容)
Select AchievementID,UserID,StTime from [dbo].[PW_Achievement]
AchievementID,UserID,StTime 是 [dbo].[PW_Achievement] 里的名称,查询AchievementID,UserID,StTime里的数据。
(2)如何查询指定表中的指定列
SELECT 字段1,字段2,字段…… FROM 表名 (逗号隔开)
(3)可以通过数字来作为载体。来查询数据。
AchievementID 是1 , UserID 是2 , StTime 是3 /
例:
Select AchievementID,UserID,StTime
from [dbo].[PW_Achievement]
order by 1,3
2.order by 排序
Order by (desc ,倒序排序 A~Z , 0~)desc
例:
Select AchievementID,UserID,StTime
from [dbo].[PW_Achievement]
order by AchievementID
Order by 字段 asc
asc是升序,从小到大排序显示;
desc是降序,从大到小显示。
例:
Select AchievementID,UserID,StTime
from [dbo].[PW_Achievement]
order by AchievementID asc
3.top
(1)Top 数字(查询行数)
Select AchievementID,UserID,StTime
from [dbo].[PW_Achievement]
order by AchievementID asc
查询前10行(top 10)。
(2)Top 数字 percent(查询百分百)
Select top 10 percent AchievementID,UserID,StTime
from [dbo].[PW_Achievement]
order by AchievementID asc
注:但百分百的数字有小数时,它会进一位。
如 12.5,12.2 。。。,这类的数值它会返回 13 条数据。
(3)Top 数字 WITH TIES(查询返回数值的前几行数据,并与倒数第一行匹配)
Select top 10 WITH TIES AchievementID,UserID,StTime
from [dbo].[PW_Achievement]
order by AchievementID asc
4.分页查询
SQL Server Offset Fetch子句
OFFSET和FETCH子句是ORDER BY子句的选项。它们用于限制查询返回的行数。必须将OFFSET和FETCH子句与ORDER BY子句一起使用
OFFSET和FETCH子句比实现TOP子句更适合实现查询分页解决方案
以下是OFFSET和FETCH子句的语法:
ORDER BY column_list [ASC DESC]
OFFSET offset_row_count (ROW ROWS}
FETH [FIRST I NEXT}fetch_row_count [ROW I ROWS]ONLY
sql
在上面语法中
,
·offset子句指定在开始从查询返回行之前要跳过的行数。offset_row_count可以是大于或等于零的常量,变量或参数。
·FETCH子句指定在处理OFFSET子句后要返回的行数。offset._row_count可以是大于或等于1的常量,变量或标量,
·OFFSET子句是必需的,而FETCH子句是可选的。此外,FIRST和NEXT是同义词,因此可以互换使用它们.
Select AchievementID,UserID,StTime
from [dbo].[PW_Achievement]
order by AchievementID asc
offset 0 rows
fetch next 10 rows only 第0行到第10行
offset 0 rows (在第几行开始)
fetch next 10 rows only (代表的是要查询的条数)
假设:num(第几页) size(每面行数)公式
Select AchievementID,UserID,StTime
from [dbo].[PW_Achievement]
order by AchievementID asc
offset (num - 1)* size rows
fetch next size rows only
本篇文章就到这里,感谢观看。