SqlServer中常用的一些操作语句
我们在维护数据库数据的时候,通常会用到各种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、分页查询
- 使用
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中常用的一些操作语句的更多相关文章
- Oracle手边常用命令及操作语句
Oracle手边常用命令及操作语句 作者:白宁超 时间:2016年3月4日11:24:08 摘要:日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规操作. ...
- 【转】python 历险记(四)— python 中常用的 json 操作
[转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...
- LoadRunner中常用的字符串操作函数
LoadRunner中常用的字符串操作函数有: strcpy(destination_string, source_string); strc ...
- 收集一些工作中常用的经典SQL语句
作为一枚程序员来说和数据库打交道是不可避免的,现收集一下工作中常用的SQL语句,希望能给大家带来一些帮助,当然不全面,欢迎补充! 1.执行插入语句,获取自动生成的递增的ID值 INSERT INTO ...
- python 历险记(四)— python 中常用的 json 操作
目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编码和解码? 常用的 json 操作有哪些? json 操作需要什么库? 如何 ...
- 工作中常用的QTP操作Excel函数
前言 本文只是对工作中常用的EOM相关函数的整理,并不是要写个大而全的操作手册,如果想对EOM有更多的了解可以参考QTP的帮助文档或查看QTP安装目录\CodeSamplesPlus\UsingExc ...
- 3、PHP中常用的数据库操作函数解析
mysql_connect 连接数据库 mysql_select_db 选择需要操作的数据库 mysql_query 执行数据库操作语句 mysql_fetch_array 以数组的形式返回每行查询 ...
- sqlserver中查询表字段的sql语句
sqlserver中的表信息字段信息这些东西也是放到系统表中的,以下sql语句用于查询某表的字段信息. select t1.id object_id,t1.name object_name,t2.va ...
- 工作中常用的Git操作
粘贴自:微信公众号:程序员共成长 分支操作: git branch 创建分支 git branch -b 创建并切换到新建的分支上 git checkout 切换分支 git branch 查看分支列 ...
- python中常用的时间操作
python中常用的时间模块有time和datetime,以下是这两个模块中常用的方法: #先引入模块 import timefrom datetime import datetiem, timezo ...
随机推荐
- Java Study For Seven Day( 面向对象三)
继承 class Person { String name; int age; } class Student extends Person { void study() { System.out.p ...
- word常规操作
为何写标 招标: A公司要买100台电脑 [需求] 投标: 电脑公司看到招标后,就会投标:自我介绍(公司,产品,售后) [自我介绍满足需求] 中标: A公司选择XX公司 [选择] 保密价格内容 不能透 ...
- linux web终端wetty食用方法
学校有些机房电脑性能贼垃但又不得不去那些机房上课 我也不想带电脑,于是弄台廉价的服务器 本来想拿个公网ip配frp连我电脑完事 想到vim是在终端中运行的编辑器 于是想弄个web终端然后就找到了wet ...
- Tableau 数值 以万显示
# Tableau 数字以万显示 0"."0,万
- 【XML】学习笔记第四章-schema
Schema 概述 作用 与DTD相比Schema的优势 基础命名空间: 模式 引用方法 通过xsi:noNamespaceSchemaLocation引入 通过xsi:shemaLocation引入 ...
- Linux查找某个大小范围内的文件
查找大小在某个范围内的文件使用-size参数,-size +n表示大于n单位的范围,-size –n表示小于n单位的范围.例如,查找大于100k且小于400k的文件: find . -type f - ...
- shell之变量默认值
{var:-default_value}当var 不存在,或者值为空时,返回default_value name不存在,返回了一个默认值,但是name并没有改变, 后续不可访问 $ set -u # ...
- 【Linux】ps -ef|grep -v grep|awk '{print $2}' 命令详解
前言 在Linux服务器中使用脚本时,经常见到ps -ef|grep xxx|grep -v grep|awk '{print $2}'这一句命令 前半部分的ps -ef|grep命令,相信经常接触L ...
- composer [ErrorException] Undefined index: process
执行了升级composer self-update导致了 降级处理 composer self-update --1 composer install
- 快速解决MySQL:Table xxx is marked as crashed and should be repaired五个办法
查看MySQL错误日志看到 Table xxx is marked as crashed and should be repaired 解决办法如下 第一种: 1.首先进入mysql命令台: mys ...