我们在维护数据库数据的时候,通常会用到各种SQL语句对数据进行操作或者维护,如:查看某个数据库中有哪些用户数据表、每个数据表中总共有多少条数据……

SqlServer官方地址:https://learn.microsoft.com/zh-cn/sql

1、整理说明

我们在维护数据库数据的时候,通常会用到各种SQL语句对数据进行操作或者维护,如:查看某个数据库中有哪些用户数据表、每个数据表中总共有多少条数据……

因此,为了方便查阅,整理了如下相关语句。


2、数据库相关

  • 查看数据文件占用情况

    --查看数据文件占用情况
    DBCC showfilestats;

  • 查看日志文件占用情况

    --查看日志文件占用情况
    DBCC SQLPERF(LOGSPACE);

  • 查询某数据库的文件的占用情况

    --查询某数据库的文件的占用情况
    SELECT a.name [文件名称],
    CAST(a.[size] * 1.0 / 128 AS DECIMAL(12, 1)) AS [文件设置大小(MB)],
    CAST(FILEPROPERTY(s.name, 'SpaceUsed') / (8 * 16.0) AS DECIMAL(12, 1)) AS [文件所占空间(MB)],
    CAST((FILEPROPERTY(s.name, 'SpaceUsed') / (8 * 16.0)) / (s.size / (8 * 16.0)) * 100.0 AS DECIMAL(12, 1)) AS [所占空间率%],
    CASE
    WHEN a.growth = 0 THEN
    '文件大小固定,不会增长'
    ELSE
    '文件将自动增长'
    END [增长模式],
    CASE
    WHEN a.growth > 0
    AND a.is_percent_growth = 0 THEN
    '增量为固定大小'
    WHEN a.growth > 0
    AND a.is_percent_growth = 1 THEN
    '增量将用整数百分比表示'
    ELSE
    '文件大小固定,不会增长'
    END AS [增量模式],
    CASE
    WHEN a.growth > 0
    AND a.is_percent_growth = 0 THEN
    CAST(CAST(a.growth * 1.0 / 128 AS DECIMAL(12, 0)) AS VARCHAR) + 'MB'
    WHEN a.growth > 0
    AND a.is_percent_growth = 1 THEN
    CAST(CAST(a.growth AS DECIMAL(12, 0)) AS VARCHAR) + '%'
    ELSE
    '文件大小固定,不会增长'
    END AS [增长值(%或MB)],
    a.physical_name AS [文件所在目录],
    a.type_desc AS [文件类型]
    FROM sys.database_files a
    INNER JOIN sys.sysfiles s
    ON a.[file_id] = s.fileid
    LEFT JOIN sys.dm_db_file_space_usage b
    ON a.[file_id] = b.[file_id]
    ORDER BY a.type;

3、数据表相关

  • 查询某数据库中的所有用户数据表

    --查询某数据库中的所有用户数据表
    SELECT name 表名称,object_id 表Id,create_date 创建时间,modify_date 修改时间 FROM sys.objects
    WHERE type='U'
    ORDER BY name;

  • 查询出某数据库中每个用户数据表数据总条数

    --查询出某数据库中每个用户数据表数据总条数
    SELECT a.name 表名称,b.rows 数量 FROM sys.objects a
    LEFT JOIN sys.partitions b ON a.object_id=b.object_id
    WHERE a.type='U'
    ORDER BY a.name;

  • 查询出某数据库中所有用户数据表数据总条数

    --查询出某数据库中所有用户数据表数据总条数
    SELECT SUM(b.rows) 总数量 FROM sys.objects a
    LEFT JOIN sys.partitions b ON a.object_id=b.object_id
    WHERE a.type='U';


4、数据查询相关

4.1、分页查询

  1. 使用ROW_NUMBER进行分页

在低版本(SqlServer 2005+)的SqlServer中,我们通常使用ROW_NUMBER方式对数据进行分页查询,使用方式如下所示:

--使用ROW_NUMBER方式对数据进行分页查询
SELECT *
FROM
(
SELECT *,
ROW_NUMBER() OVER (ORDER BY [CreateTime] DESC) AS RowIndex--生成序号新列RowIndex(按照CreateTime字段进行降序排列)
FROM
(
SELECT *
FROM Tb
WHERE [CreateTime] <= '2023-12-01 23:59:59.999'
) temp
) T
WHERE RowIndex
BETWEEN 1 AND 20;--查询第1页,每页20条
--BETWEEN 21 AND 40;--查询第2页,每页20条
--BETWEEN 41 AND 60;--查询第3页,每页20条

2.使用OFFSET方式

在SqlServer 2012+版本中,提供了新的分页数据查询方式OFFSET,使用方式如下所示:

--使用OFFSET方式对数据进行分页查询
SELECT *
FROM
(
SELECT *
FROM Tb
WHERE [CreateTime] <= '2023-12-01 23:59:59.999'
) temp
ORDER BY [CreateTime] DESC
OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY;--查询第1页,每页20条
--OFFSET 20 ROWS FETCH NEXT 20 ROWS ONLY;--查询第2页,每页20条
--OFFSET 60 ROWS FETCH NEXT 20 ROWS ONLY;--查询第3页,每页20条

总结:上述两种分页数据查询方式,在相同的条件下,OFFSET方式的效率会提升1倍+,条件允许的情况下,推荐使用OFFSET方式!!!


持续更新中……

SqlServer中常用的一些操作语句的更多相关文章

  1. Oracle手边常用命令及操作语句

    Oracle手边常用命令及操作语句 作者:白宁超 时间:2016年3月4日11:24:08 摘要:日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规操作. ...

  2. 【转】python 历险记(四)— python 中常用的 json 操作

    [转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...

  3. LoadRunner中常用的字符串操作函数

    LoadRunner中常用的字符串操作函数有:                strcpy(destination_string, source_string);               strc ...

  4. 收集一些工作中常用的经典SQL语句

    作为一枚程序员来说和数据库打交道是不可避免的,现收集一下工作中常用的SQL语句,希望能给大家带来一些帮助,当然不全面,欢迎补充! 1.执行插入语句,获取自动生成的递增的ID值 INSERT INTO ...

  5. python 历险记(四)— python 中常用的 json 操作

    目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编码和解码? 常用的 json 操作有哪些? json 操作需要什么库? 如何 ...

  6. 工作中常用的QTP操作Excel函数

    前言 本文只是对工作中常用的EOM相关函数的整理,并不是要写个大而全的操作手册,如果想对EOM有更多的了解可以参考QTP的帮助文档或查看QTP安装目录\CodeSamplesPlus\UsingExc ...

  7. 3、PHP中常用的数据库操作函数解析

    mysql_connect  连接数据库 mysql_select_db 选择需要操作的数据库 mysql_query 执行数据库操作语句 mysql_fetch_array 以数组的形式返回每行查询 ...

  8. sqlserver中查询表字段的sql语句

    sqlserver中的表信息字段信息这些东西也是放到系统表中的,以下sql语句用于查询某表的字段信息. select t1.id object_id,t1.name object_name,t2.va ...

  9. 工作中常用的Git操作

    粘贴自:微信公众号:程序员共成长 分支操作: git branch 创建分支 git branch -b 创建并切换到新建的分支上 git checkout 切换分支 git branch 查看分支列 ...

  10. python中常用的时间操作

    python中常用的时间模块有time和datetime,以下是这两个模块中常用的方法: #先引入模块 import timefrom datetime import datetiem, timezo ...

随机推荐

  1. 导航管理工具之OneNav

    github:https://github.com/helloxz/onenav 解决痛点:经常使用的链接,时常被问起, 还要翻找之前的很老的记录,反反复复比较浪费平常的开发时间, 如果可以把这些常用 ...

  2. 关于被static修饰还可序列化的问题

    今天为了验证一下被static修饰的变量到底可不可以序列化,出现了以下的情况: 然后找到一条评论,豁然开朗 把序列化的内容注释掉,直接从序列化文件读取对象,就发现没有获取到

  3. 基于 MongoTemplate 实现MongoDB的复杂查询

    MongoDB是典型的非关系型数据库,但是它的功能越来越复杂,很多项目中,我们为了快速拓展,甚至直接使用Mongo 来替代传统DB做数据持久化.虽然MongoDB在支持具体业务时没有问题,但是由于它是 ...

  4. 阿里云最新npm地址

    npm config set registry https://registry.npmmirror.com -g

  5. docker-compose的nginx更换完ssl证书不起作用的完美解决方法

    ​以Harbor为例,ssl证书更新后,docker-compose启动不起作用. 问题出在一句很重要的命令:./prepare 步骤:(Harbor样例) 1. cd /data/ssl 换ssl证 ...

  6. uniapp开发鸿蒙,是前端新出路吗?

    相信不少前端从业者一听uniapp支持开发鸿蒙Next后非常振奋.猫林老师作为7年前端er也是非常激动,第一时间体验了下.在这里也给大家分享一下我的看法 对于前端开发者而言,几乎无需增加额外的学习成本 ...

  7. PHP 简易的BASE64加密

    有这样一个有趣的公式:x<100;  (x*53*17)%100 = x;这个公司的原理:53*17=901,x*901,的数后2位数还是x:任何符合 a * b = 100 * n +1 的值 ...

  8. 在.NET Core中使用异步多线程高效率的处理大量数据的最佳实践

    目录 一.引言 二.假设场景 三.解决方案 四.示例代码 一.引言 处理大量数据是一个常见的需求,传统的同步处理方式往往效率低下,尤其是在数据量非常大的情况下.本篇将介绍一种高效的多线程异步处理大数据 ...

  9. 【前端】【探究】HTML - input类型为file时如何实现自定义文本以更好的美化

    想到英语四级考了两次都没过,我觉得要多使用英文,所以本文使用英文书写. 本文讲述了遇到的问题,解决的思路,并讲述了解决方案,也许对你会有帮助. 目录 Problem description Solut ...

  10. Qt音视频开发31-qmedia内核qt5/qt6播放视频

    一.前言 在qt5中的多媒体框架明显比qt4丰富了很多,使用也极其友好,提供的api接口非常简单明了,不需要像qt4中那样还需要绑定和创建路径之类的.同样也还是依赖本地解码器,qt6中的多媒体框架据说 ...