我们在维护数据库数据的时候,通常会用到各种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. Linux中的用户管理-创建删除修改

    用户管理 一.用户分类 用户分为三类: 1.管理员 root root UID:0 #拥有最高权限 默认系统中就一个 UID即user ID 类似于身份号码,唯一的,不可重复 2.虚拟用户 作用:在运 ...

  2. Go获取文件路径,文件名,后缀

    import ( "fmt" "os" "path/filepath" "path" ) files := " ...

  3. linux bash shell 入门教程()

    Shell Script(bash)简介 众所皆知地,UNIX上以小工具著名,利用许多简单的小工具,来完成原本需要大量软体开发的工作,这一点特色,使得UNIX成为许多人心目中理想的系统平台. 在众多的 ...

  4. VScode之远程开发

    之前使用过PyCharm的远程开发,很好用,不过还是有几个局限性: 只能用于Python语言: 本地和服务器都需要有一份代码,这两份代码是完全同步的: 一.配置免密远程登录 1.首先检查本地是否有已生 ...

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

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

  6. 销讯通CRM客户关系管理系统的功能拆分

    随着技术的发展,CRM系统(客户关系管理)成为企业不可或缺的工具,本文从医药行业角度简要谈谈CRM系统的功能. 从业务的理解来说,从医药行业来说,CRM客户管理系统的有以下几部分功能: 01 客户的分 ...

  7. oracle中id自增长(转)

    首先,你要有一张表! CREATE TABLE example( ID Number(4) NOT NULL PRIMARY KEY, NAME VARCHAR(25), PHONE VARCHAR( ...

  8. 【SpringMVC】框架搭建

    pom.xml 注意,下面代码只是pom.xml中的dependencies部分 <dependencies> <!-- 萌狼蓝天 mllt.cc--> <!-- htt ...

  9. JavaScript设计模式与开发实践 PDF——带完整书签

    下载链接:JavaScript设计模式与开发实践 带完整书签:

  10. TIBCO Jaspersoft Studio-6.12.2连接mysql时显示时区问题

    TIBCO Jaspersoft Studio-6.12.2创建mysql型的Data Adapter, 在进行连接test时弹出显示时区问题,如下图所示: 解决办法: 在Data Adapter W ...