主题
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 最高权限,防止误操作删库删表。