T-SQL 常用操作语法笔记

【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的员工';

说明:声明变量与简单条件判断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值