【T-SQL命令结构说明】
1. SELECT:用于查询数据。
格式:SELECT 字段名 FROM 表名 WHERE 条件 ORDER BY 排序方式;
2. INSERT:插入新数据。
格式:INSERT INTO 表名 (字段1, 字段2) VALUES (值1, 值2);
3. UPDATE:更新已有数据。
格式:UPDATE 表名 SET 字段 = 新值 WHERE 条件;
4. DELETE:删除数据。
格式:DELETE FROM 表名 WHERE 条件;
5. CREATE:创建数据库对象,如表、视图、存储过程等。
6. ALTER:修改数据库对象结构。
7. DROP:删除数据库对象。
1. 查询数据 (SELECT)
SELECT * FROM [dbo].[人员信息];
说明:查询所有字段
SELECT 姓名, 基本工资 FROM [dbo].[人员信息];
说明:查询指定字段
SELECT * FROM [dbo].[人员信息] WHERE 基本工资 > 10000 AND 姓名 LIKE '章%';
说明:查找基本工资大于10000且姓章的员工
SELECT * FROM [dbo].[人员信息] ORDER BY 基本工资 DESC;
说明:按基本工资降序排序
SELECT DISTINCT 性别 FROM [dbo].[人员信息];
说明:查询所有性别类型(去重)
SELECT TOP 5 * FROM [dbo].[人员信息] ORDER BY 基本工资 DESC;
说明:查询工资最高的前5名员工
SELECT * FROM [dbo].[人员信息] WHERE 部门编号 IS NULL;
说明:查找未分配部门的员工
2. 插入数据 (INSERT)
INSERT INTO [dbo].[人员信息] (员工编号, 姓名, 性别, 基本工资)
VALUES (1009, '王五', '男', 7000);
说明:插入一条新员工信息
INSERT INTO [dbo].[部门] (部门编号, 部门名称)
VALUES (1, '人事部');
说明:插入一个新部门
3. 更新数据 (UPDATE)
UPDATE [dbo].[人员信息] SET 基本工资 = 6000 WHERE 性别 = '女';
说明:将女性员工基本工资设为6000
UPDATE [dbo].[人员信息] SET 姓名 = '张三', 基本工资 = 8000 WHERE 员工编号 = 1001;
说明:修改指定编号员工的信息
4. 删除数据 (DELETE)
DELETE FROM [dbo].[人员信息] WHERE 姓名 = '李四';
说明:删除姓名为李四的员工记录
5. 聚合与分组 (GROUP BY)
SELECT 性别, AVG(基本工资) AS 平均工资
FROM [dbo].[人员信息]
GROUP BY 性别;
说明:按性别分组统计平均工资
SELECT COUNT(*) AS 总人数 FROM [dbo].[人员信息];
说明:统计员工总数
SELECT 部门编号, MAX(基本工资) AS 最高工资
FROM [dbo].[人员信息]
GROUP BY 部门编号;
说明:每个部门的最高工资
6. 表连接 (JOIN)
SELECT a.姓名, b.部门名称
FROM [dbo].[人员信息] a
JOIN [dbo].[部门] b ON a.部门编号 = b.部门编号;
说明:内连接:查员工及其所在部门
SELECT a.姓名, b.部门名称
FROM [dbo].[人员信息] a
LEFT JOIN [dbo].[部门] b ON a.部门编号 = b.部门编号;
说明:左连接:查所有员工,即使没有部门
SELECT a.姓名, b.部门名称
FROM [dbo].[人员信息] a
RIGHT JOIN [dbo].[部门] b ON a.部门编号 = b.部门编号;
说明:右连接:查所有部门及其员工
7. 子查询 (Subquery)
SELECT * FROM [dbo].[人员信息]
WHERE 基本工资 > (
SELECT AVG(基本工资) FROM [dbo].[人员信息]
);
说明:查工资高于平均值的员工
SELECT 姓名 FROM [dbo].[人员信息]
WHERE 部门编号 IN (
SELECT 部门编号 FROM [dbo].[部门] WHERE 部门名称 = '技术部'
);
说明:查属于技术部的员工
8. 视图 (VIEW)
CREATE VIEW [dbo].[高薪员工] AS
SELECT 姓名, 基本工资 FROM [dbo].[人员信息]
WHERE 基本工资 > 10000;
说明:创建视图:只包含高薪员工
SELECT * FROM [dbo].[高薪员工];
说明:查询视图
9. 索引 (INDEX)
CREATE INDEX idx_姓名 ON [dbo].[人员信息](姓名);
说明:为“姓名”字段创建索引
10. 事务 (TRANSACTION)
BEGIN TRANSACTION;
UPDATE [dbo].[人员信息] SET 基本工资 = 基本工资 + 500 WHERE 部门编号 = 1;
DELETE FROM [dbo].[人员信息] WHERE 姓名 IS NULL;
COMMIT TRANSACTION;
说明:执行多个操作时用事务确保原子性
11. 存储过程 (Stored Procedure)
CREATE PROCEDURE 提高工资
@部门编号 INT,
@涨幅 MONEY
AS
BEGIN
UPDATE [dbo].[人员信息]
SET 基本工资 = 基本工资 + @涨幅
WHERE 部门编号 = @部门编号;
END;
说明:定义一个用于加工资的存储过程
EXEC 提高工资 @部门编号 = 2, @涨幅 = 1000;
说明:调用存储过程
12. 触发器 (Trigger)
CREATE TRIGGER trg_记录删除
ON [dbo].[人员信息]
AFTER DELETE
AS
BEGIN
PRINT '有员工被删除';
END;
说明:定义删除触发器
13. 变量与条件判断
DECLARE @工资 MONEY;
SET @工资 = (SELECT MAX(基本工资) FROM [dbo].[人员信息]);
IF @工资 > 20000
PRINT '存在工资超过20000的员工';
说明:声明变量与简单条件判断