5154

Good Luck To You!

如何编写有效的 SQL Server 2012 查询语句?

SELECT * FROM 表名 WHERE 条件;

SQL Server 2012 查询语句

一、简介

SQL Server 2012 是微软公司开发的关系型数据库管理系统(RDBMS),广泛应用于企业的数据存储和管理,其强大的数据查询功能主要通过结构化查询语言(SQL)实现,其中最常用的操作之一就是SELECT查询语句,本文将详细介绍SQL Server 2012中常用的查询语句及其用法,包括基本查询、条件查询、聚合函数、连接操作和子查询等。

二、基本查询

简单查询

1.1 选择所有列

USE practice;
GO
SELECT * FROM T;

此语句从表T中检索所有列的数据。

1.2 选择指定列

USE practice;
GO
SELECT 店铺名称, 商品名称 FROM T;

此语句从表T中检索“店铺名称”和“商品名称”两列的数据。

1.3 为列设置别名

USE practice;
GO
SELECT 店铺名称 AS Shop_Name, 商品名称 AS Goods_Name FROM T;

此语句为结果集中的列设置别名,使输出更具可读性。

1.4 使用表达式计算新列

USE practice;
GO
SELECT 店铺名称 + ' ' + 菜系 AS 店铺属性 FROM T;

此语句通过字符串连接生成新的列。

1.5 使用算术运算符生成新列

USE practice;
GO
SELECT 价格 / 原价 AS 折扣 FROM T;

此语句通过算术运算生成新的列。

去重查询

USE practice;
GO
SELECT DISTINCT 菜系 FROM T;

此语句返回表T中不同的菜系。

限制查询行数

3.1 查询前10行数据

USE practice;
GO
SELECT TOP 10 * FROM T;

此语句返回表T中的前10行数据。

3.2 查询前20%行数据

USE practice;
GO
SELECT TOP 20 PERCENT * FROM T;

此语句返回表T中前20%的数据。

三、条件查询

如何编写有效的 SQL Server 2012 查询语句?

使用比较运算符

1.1 查询菜系为火锅的所有数据

USE practice;
GO
SELECT * FROM T WHERE 菜系 = '火锅';

此语句返回菜系为火锅的所有记录。

1.2 查询价格大于等于100的所有数据

USE practice;
GO
SELECT * FROM T WHERE 价格 >= 100;

此语句返回价格大于或等于100的所有记录。

1.3 查询菜系非火锅的所有数据

USE practice;
GO
SELECT * FROM T WHERE 菜系 != '火锅';

此语句返回菜系不为火锅的所有记录。

使用逻辑运算符

2.1 查询菜系为火锅且价格大于100的所有数据

USE practice;
GO
SELECT * FROM T WHERE 菜系 = '火锅' AND 价格 >= 100;

此语句返回菜系为火锅且价格大于或等于100的所有记录。

2.2 查询菜系为火锅或甜品饮品的所有数据

USE practice;
GO
SELECT * FROM T WHERE 菜系 = '火锅' OR 菜系 = '甜点饮品';

此语句返回菜系为火锅或甜品饮品的所有记录。

2.3 查询菜系不为火锅的所有数据

USE practice;
GO
SELECT * FROM T WHERE NOT 菜系 = '火锅';

此语句返回菜系不为火锅的所有记录。

使用LIKE运算符

3.1 查询所有连锁店(即名称里带有中文括号)

USE practice;
GO
SELECT 店铺名称 FROM T WHERE 店铺名称 LIKE '%(%';

此语句返回店铺名称中包含左括号的所有记录。

如何编写有效的 SQL Server 2012 查询语句?

3.2 查询所有川菜店

USE practice;
GO
SELECT 店铺名称 + ' ' + 菜系 AS 川菜店 FROM T WHERE 菜系 LIKE '川_';

此语句返回菜系以“川”开头的所有记录。

3.3 查询所有非连锁店(即店铺名称不以右括号结尾)

USE practice;
GO
SELECT 店铺名称 FROM T WHERE 店铺名称 NOT LIKE '%[)]';

此语句返回店铺名称不以右括号结尾的所有记录。

4. 使用BETWEEN...AND...运算符

4.1 查询所有价格在100到200之间的商品名称及对应价格

USE practice;
GO
SELECT 商品名称, 价格 FROM T WHERE 价格 BETWEEN 100 AND 200;

此语句返回价格在100到200之间的所有商品记录。

4.2 查询所有价格不在100到200之间的商品名称及对应价格

USE practice;
GO
SELECT 商品名称, 价格 FROM T WHERE 价格 NOT BETWEEN 100 AND 200;

此语句返回价格不在100到200之间的所有商品记录。

使用IN运算符

5.1 查询所有菜系在('火锅','烧烤烤肉','小吃快餐')中的店铺的名称及所属菜系

USE practice;
GO
SELECT 店铺名称, 菜系 FROM T WHERE 菜系 IN ('火锅', '烧烤烤肉', '小吃快餐');

此语句返回菜系在指定集合中的所有记录。

四、聚合函数与分组查询

使用聚合函数进行数据统计

1.1 统计每个菜系的平均价格

USE practice;
GO
SELECT 菜系, AVG(价格) AS AvgPrice FROM T GROUP BY 菜系;

此语句按菜系分组并计算每组的平均价格。

如何编写有效的 SQL Server 2012 查询语句?

1.2 统计每个菜系的店铺数量

USE practice;
GO
SELECT 菜系, COUNT(*) AS ShopCount FROM T GROUP BY 菜系;

此语句按菜系分组并计算每组的店铺数量。

HAVING子句过滤聚合结果

2.1 查询总价(qty*unitprice)大于10000的订单,并按总价排序

USE TSQL2012;
GO
SELECT orderid, SUM(qty * unitprice) AS TotalValue FROM Sales.OrderDetails GROUP BY orderid HAVING SUM(qty * unitprice) > 10000 ORDER BY TotalValue DESC;

此语句按订单ID分组,计算每个订单的总价,并筛选出总价大于10000的订单。

五、连接查询与子查询

使用JOIN进行多表连接查询

1.1 根据相关字段进行内连接查询员工及其部门信息

USE TSQL2012;
GO
SELECT e.FirstName, e.LastName, d.DepartmentName FROM HumanResources.Employees e INNER JOIN HumanResources.Departments d ON e.DepartmentID = d.DepartmentID;

此语句将Employees表和Departments表根据DepartmentID字段进行内连接,返回员工及其部门信息。

使用子查询进行嵌套查询

2.1 根据子查询条件筛选数据

USE TSQL2012;
GO
SELECT column1, column2 FROM table_name WHERE column_name IN (SELECT column_name FROM another_table);

此语句通过子查询筛选满足条件的主查询记录,从另一个表中获取特定列的值,并在主查询中使用这些值进行过滤。

六、事务处理及高级应用

事务处理确保数据一致性

1.1 开始事务处理并提交更改

BEGIN TRANSACTION; 开始事务处理
执行一系列SQL语句...
COMMIT; 提交事务,保存更改到数据库

此语句块用于启动事务处理,确保多个SQL操作要么全部成功,要么全部失败,从而保证数据的一致性和完整性,如果在事务过程中发生错误,可以使用ROLLBACK撤销所有未提交的更改。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年8月    »
123
45678910
11121314151617
18192021222324
25262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.