菜鸟科技网

MSSQL命令大全有哪些常用命令?

在数据库管理中,MSSQL(Microsoft SQL Server)提供了丰富的命令和语法,用于数据操作、管理及维护,以下从基础到进阶,详细梳理常用命令及用法,涵盖数据查询、表管理、用户权限、事务处理等核心场景。

MSSQL命令大全有哪些常用命令?-图1
(图片来源网络,侵删)

基础数据查询与操作

数据查询是MSSQL最核心的功能,主要通过SELECT语句实现,基础语法包括:

  • 查询所有列SELECT * FROM 表名;
  • 查询指定列SELECT 列1, 列2 FROM 表名;
  • 条件查询SELECT * FROM 表名 WHERE 条件;(如WHERE 年龄 > 18
  • 排序SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;(升序/降序)
  • 聚合函数SELECT COUNT(*), AVG(成绩) FROM 表名;(统计数量、平均值等)
  • 分组SELECT 部门, COUNT(*) FROM 表名 GROUP BY 部门;

多表查询通过JOIN实现,如SELECT a.姓名, b.部门 FROM 员工表 a JOIN 部门表 b ON a.部门ID = b.ID;

表的管理命令

表是数据库的基本结构,MSSQL提供了完整的创建、修改、删除命令:

  • 创建表

    MSSQL命令大全有哪些常用命令?-图2
    (图片来源网络,侵删)
    CREATE TABLE 表名 (
        列名1 数据类型 PRIMARY KEY,
        列名2 数据类型 NOT NULL,
        列名3 数据类型 DEFAULT 默认值
    );

    常见数据类型包括INT(整数)、VARCHAR(n)(变长字符串)、DATETIME(日期时间)、BIT(布尔型)等。

  • 修改表结构

    • 添加列:ALTER TABLE 表名 ADD 列名 数据类型;
    • 修改列:ALTER TABLE 表名 ALTER COLUMN 列名 新数据类型;
    • 删除列:ALTER TABLE 表名 DROP COLUMN 列名;
  • 删除表DROP TABLE 表名;(注意:删除后数据无法恢复,需谨慎操作)

数据操作语言(DML)

DML用于操作表中的数据,主要包括插入、更新、删除:

MSSQL命令大全有哪些常用命令?-图3
(图片来源网络,侵删)
  • 插入数据

    • 单行插入:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);
    • 多行插入:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2), (值3, 值4);
  • 更新数据UPDATE 表名 SET 列名1 = 新值1 WHERE 条件;(建议添加WHERE条件,否则更新全表)

  • 删除数据DELETE FROM 表名 WHERE 条件;(不加WHERE则清空表数据)

事务处理

事务确保数据操作的原子性,要么全部成功,要么全部回滚,核心命令:

  • 开始事务BEGIN TRANSACTION;
  • 提交事务COMMIT TRANSACTION;(确认操作)
  • 回滚事务ROLLBACK TRANSACTION;(撤销操作)
    示例:
    BEGIN TRANSACTION;
    UPDATE 账户表 SET 余额 = 余额 - 100 WHERE ID = 1;
    UPDATE 账户表 SET 余额 = 余额 + 100 WHERE ID = 2;
    COMMIT TRANSACTION;

用户与权限管理

MSSQL支持多用户操作,需通过权限管理保障数据安全:

  • 创建用户CREATE LOGIN 用户名 WITH PASSWORD = '密码';
  • 创建数据库用户CREATE USER 用户名 FOR LOGIN 用户名;
  • 授权GRANT SELECT, INSERT ON 表名 TO 用户名;(授予查询、插入权限)
  • 撤销权限REVOKE DELETE ON 表名 FROM 用户名;(撤销删除权限)
  • 删除用户DROP USER 用户名;

常用系统函数与存储过程

  • 系统函数

    • 字符串处理:LEN(列名)(长度)、SUBSTRING(列名, 起始位置, 长度)(截取)
    • 日期处理:GETDATE()(当前时间)、DATEADD(日, 1, 日期)(日期加减)
    • 类型转换:CAST(列名 AS 数据类型)CONVERT(数据类型, 列名)
  • 存储过程
    创建存储过程可封装复杂逻辑:

    CREATE PROCEDURE 存储过程名
        @参数1 数据类型,
        @参数2 数据类型 = 默认值
    AS
    BEGIN
        SELECT * FROM 表名 WHERE 列名 = @参数1;
    END

    调用存储过程:EXEC 存储过程名 @参数1 = 值, @参数2 = 值;

维护与优化命令

  • 备份数据库BACKUP DATABASE 数据库名 TO DISK = '备份路径.bak';
  • 恢复数据库RESTORE DATABASE 数据库名 FROM DISK = '备份路径.bak';
  • 查看索引EXEC SP_HELPINDEX '表名';
  • 重建索引ALTER INDEX 索引名 ON 表名 REBUILD;

相关问答FAQs

Q1:如何查询MSSQL数据库中所有表的信息?
A:可通过查询系统表sys.tables或使用系统存储过程SP_TABLES实现,示例:

  • SELECT * FROM sys.tables;(返回当前数据库所有表名及相关信息)
  • EXEC SP_TABLES;(返回所有表、视图等对象列表)

Q2:MSSQL中如何批量导入CSV文件数据到表?
A:使用BULK INSERT命令,需确保CSV文件格式与表结构匹配,示例:

BULK INSERT 表名
FROM 'C:\数据文件.csv'
WITH (
    FIELDTERMINATOR = ',',  -- 字段分隔符
    ROWTERMINATOR = '\n',   -- 行分隔符
    FIRSTROW = 2            -- 从第2行开始导入(跳过标题行)
);
分享:
扫描分享到社交APP
上一篇
下一篇