Skip to content

SqlServer 常用命令速查

说明:整理 SqlServer 开发、运维高频 SQL 语句,涵盖数据库操作、表操作、增删改查、索引、用户权限、常用函数,全部可直接复制执行。

一、数据库基础操作

sql
-- 查看所有数据库
SELECT name FROM sys.databases;

-- 创建数据库
CREATE DATABASE 数据库名;

-- 使用指定数据库
USE 数据库名;

-- 删除数据库
DROP DATABASE 数据库名;

-- 查看当前数据库
SELECT DB_NAME() AS 当前数据库;

二、数据表基础操作

sql
-- 查看当前库所有表名
SELECT name FROM sys.tables;

-- 创建数据表(示例)
CREATE TABLE UserInfo(
    Id INT PRIMARY KEY IDENTITY(1,1),  -- 自增主键
    UserName NVARCHAR(50) NOT NULL,
    Password NVARCHAR(100),
    CreateTime DATETIME DEFAULT GETDATE()
);

-- 删除数据表
DROP TABLE 表名;

-- 清空表数据(不删除表结构)
TRUNCATE TABLE 表名;

-- 查看表结构
sp_help '表名';

三、核心增删改查(CRUD)

sql
-- 1. 新增数据
INSERT INTO 表名(字段1,字段2) VALUES('值1','值2');

-- 2. 查询数据
SELECT * FROM 表名; -- 查询所有数据
SELECT 字段1,字段2 FROM 表名 WHERE 条件; -- 条件查询
SELECT TOP 10 * FROM 表名; -- 查询前10条
SELECT DISTINCT 字段 FROM 表名; -- 去重查询

-- 3. 修改数据
UPDATE 表名 SET 字段1='新值' WHERE 条件;

-- 4. 删除数据
DELETE FROM 表名 WHERE 条件;

四、条件、排序、分页常用

sql
-- 条件查询常用
SELECT * FROM 表名 WHERE Id > 10 AND UserName LIKE '%张%';

-- 排序
SELECT * FROM 表名 ORDER BY Id ASC;  -- 升序
SELECT * FROM 表名 ORDER BY Id DESC; -- 降序

-- 分页查询(SqlServer 2012+)
SELECT * FROM 表名 ORDER BY Id OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY;

五、索引操作(优化查询)

sql
-- 创建普通索引
CREATE INDEX IX_表名_字段 ON 表名(字段);

-- 创建唯一索引
CREATE UNIQUE INDEX UIX_表名_字段 ON 表名(字段);

-- 查看表索引
sp_helpindex '表名';

-- 删除索引
DROP INDEX IX_表名_字段 ON 表名;

六、用户与权限(运维常用)

sql
-- 创建登录账号
CREATE LOGIN 登录名 WITH PASSWORD='密码';

-- 创建数据库用户
CREATE USER 用户名 FOR LOGIN 登录名;

-- 授予用户数据库所有权限
EXEC sp_addrolemember 'db_owner','用户名';

-- 删除用户
DROP USER 用户名;

-- 删除登录账号
DROP LOGIN 登录名;

七、常用函数

sql
-- 获取当前时间
SELECT GETDATE();

-- 字符串拼接
SELECT CONCAT('字段1','字段2');

-- 字符串长度
SELECT LEN('字符串');

-- 判空替换
SELECT ISNULL(字段,'默认值');

-- 时间格式化
SELECT CONVERT(VARCHAR(20),GETDATE(),120);

八、运维实用语句

sql
-- 查看数据库大小
EXEC sp_helpdb;

-- 查看表数据量
SELECT COUNT(*) FROM 表名;

-- 查看正在执行的SQL进程
sp_who2;

-- 收缩数据库日志
BACKUP LOG 数据库名 WITH NO_LOG;
DBCC SHRINKDATABASE(数据库名);

九、SqlServer 关键注意事项

  • DELETE 与 TRUNCATE 区别:DELETE 可带条件删除、可回滚;TRUNCATE 清空全表、速度快、不可回滚、不记录日志。

  • 更新/删除必加WHERE:生产执行 UPDATE、DELETE 语句必须携带条件,避免清空全表数据。

  • 索引合理使用:查询频繁字段建索引,频繁修改字段不建议建索引,避免影响写入性能。

  • 避免 SELECT *:生产环境指定所需字段,减少数据传输,提升查询效率。

  • 权限最小化原则:普通业务账号不授予 db_owner 最高权限,防止误操作删库删表。

最近更新