SQL学习(复习)笔记1——Query(查询)

IF EXISTS(SELECT * FROM sysobjects WHERE name = 'Test_Query' AND schema_name(uid) = 'A')
	DROP PROCEDURE A.Test_Query;
GO

添加至存储过程的开头,即——你需要开始写一个名叫“A.Test_Query”的存储过程。

SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
GO

然后是衔接存储过程名字与内容的一段SQL语句。

这三句是SQL-92的设置语句,使SQL语句遵从SQL-92规则。

当以上内容中的 “SET QUOTED_IDENTIFIER” 为 "ON" 的属性时,标识符可以由双引号分隔,而文字则必须由单引号分隔。
当 “SET QUOTED_IDENTIFIER” 为 “OFF” 的属性时,标识符不可加引号。

标识符用于标识各种变量。

SET ANSI_NULLS ON表示当对“等于(=)”或“不等于(<>)”的空值(NULL)进行判断时,遵从 SQL-92 规则。
SQL-92规则中,在对“等于(=)”或“不等于(<>)”的空值(null)进行比较时,取值为false。

CREATE PROCEDURE A.Test_Query
	@OwnerGUID	VARCHAR(100),	
	@BeginTime	VARCHAR(21),
	@EndTime	VARCHAR(21)
WITH ENCRYPTION
AS
	SET NOCOUNT ON

CREATE PROCEDURE A.Test_Query表示你要创建一个角A.Test_Query的存储过程。

下面三个以“@”开头的是个人创建的变量,一般由外部传入。

WITH ENCRYPTION

AS

        SET NOCOUNT ON

用于对存储过程的加密

SELECT A.Name,
MAX(B.Name) AS BName,
COUNT(*) AS X,
SUM(CASE A.Grade WHEN NULL 0 ELSE 1 END) AS Y

SELECT你所需要SQL输出的数据,比如A表的Name

MAX是返回指定列的最大值。

COUNT是获取你的行列计数,COUNT(*)是指所有行列的计数,"()"中用于添加条件。

SUM是求和,CASE等同于“C#”中的“Switch”语句,即多种选择。

本文中的代码CASEA表的Grade属性进行筛选,当Grade属性为NULL时,CASE语句输出"0"而其他情况输出“1”。

CASE “列名”         WHEN “条件”         THEN“输出”         ELSE“此外”         END“结束”

再通过SUM()对CASE语句输出的数值进行总数相加计算。

FROM A.AStudent AS A INNER JOIN
        B.BStudent AS B ON A.TeacherGUID = B.TercherGUID

FROM即数据的来源,以上代码使用了“INNER JOIN”(内联)的方法进行链接表格,AS用于将表格名称简化或者将数据名称进行简化。

在内联等链接中,需要添加ON及ON之后的条件,如上代码中的A表的TeacherGUIDB表的TeacherGUID属性一致的内容进行选出。

WHERE A.CreateDate > @BeginTime AND A.CreateDate < @EndTime

WHERE及挑选数据之后进行筛选的条件,上述代码中选择将FROM中获取数据以A表的CreateDate属性大于@BeginTime并且A表的CreateDate属性小于@EndTime的部分进行筛选。

GROUP BY A.CreateTime

GROUP BY用于对数据进行排序,本文使用A表的CreateTime属性对获取的数据进行排序。

RETURN @@ROWCOUNT
		
GO

RETURN @@ROWCOUNT用于返回上一语句执行后所收到的影响的行数,一般用于统计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值