From 01453e5b76c2c0c38f19f720a1d42d8d3b32d25c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E8=B6=85?= <9828390+wu-chao24@user.noreply.gitee.com> Date: Wed, 14 Sep 2022 04:45:27 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 吴超 <9828390+wu-chao24@user.noreply.gitee.com> --- ...45\350\257\242\344\275\234\344\270\232.md" | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 "30\345\220\264\350\266\205/\344\275\234\344\270\232/9.7\345\255\220\346\237\245\350\257\242\344\275\234\344\270\232.md" diff --git "a/30\345\220\264\350\266\205/\344\275\234\344\270\232/9.7\345\255\220\346\237\245\350\257\242\344\275\234\344\270\232.md" "b/30\345\220\264\350\266\205/\344\275\234\344\270\232/9.7\345\255\220\346\237\245\350\257\242\344\275\234\344\270\232.md" new file mode 100644 index 0000000..6834ae9 --- /dev/null +++ "b/30\345\220\264\350\266\205/\344\275\234\344\270\232/9.7\345\255\220\346\237\245\350\257\242\344\275\234\344\270\232.md" @@ -0,0 +1,65 @@ +-1.关羽的银行卡号为"6225547858741263",查询出余额比关羽多的银行卡信息,显示卡号,身份证,姓名,余额。 + +``` +select CardNo,AccountCode,RealName,CardMoney from BankCard c join AccountInfo a on c.AccountId=a.AccountId +where CardMoney >(select CardMoney from BankCard where CardNo='6225547858741263') +``` + +--2.从所有账户信息中查询出余额最高的交易明细(存钱取钱信息)。 + +``` +select *from CardExchange c + join BankCard b on c.CardNo=b.CardNo +where CardMoney = (select max(CardMoney) + from BankCard) +``` + +--3. 查询有取款记录的银行卡及账户信息,显示卡号,身份证,姓名,余额。 + +``` +select CardNo,AccountCode,RealName,CardMoney +from AccountInfo a + join BankCard b on a.AccountId=b.AccountId +where CardNo in (select CardNo + from CardExchange + where MoneyOutBank >0) +``` + +--4. 查询出没有存款记录的银行卡及账户信息,显示卡号,身份证,姓名,余额。 + +``` +select CardNo,AccountCode,RealName,CardMoney +from AccountInfo a +join BankCard b on a.AccountId=b.AccountId +where CardNo not in (select CardNo + from CardExchange + where MoneyInBank >0) +``` + +--5. 关羽的银行卡号为"6225547858741263",查询当天是否有收到转账。 + +``` +if exists +(select * from CardTransfer +where CardNoIn = '6225547858741263' and convert(vaechar(22),gedate()) = convert(vaechar(22), TransferTime)) + +``` + +--6. 查询出交易次数(存款取款操作)最多的银行卡账户信息,显示:卡号,身份证,姓名,余额,交易数。 + +``` +select CardNo 卡号,AccountCode 身份证,RealName 姓名,CardMoney 余额,(select top 1 count(*) from CardExchange group by CardNo) 交易次数 +from BankCard b +inner join AccountInfo a on b.AccountId=a.AccountId +``` + +--7. 查询出没有转账交易记录的银行卡账户信息,显示卡号,身份证,姓名,余额。 + +``` +select CardNo 卡号, AccountCode 身份证, RealName 姓名, CardMoney 余额 +from BankCard b +inner join AccountInfo a on b.AccountId=a.AccountId +where CardNo not in (select CardNoOut + from CardTransfer) and CardNo not in (select CardNoIn + from CardTransfer) +``` \ No newline at end of file -- Gitee From 51d0107aee954480fb0e54ecd0f9a4fc83e00b58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E8=B6=85?= <9828390+wu-chao24@user.noreply.gitee.com> Date: Wed, 14 Sep 2022 04:45:54 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 吴超 <9828390+wu-chao24@user.noreply.gitee.com> --- ...45\350\257\242\347\254\224\350\256\260.md" | 51 +++++++++++++++++++ ...45\350\257\242\347\254\224\350\256\260.md" | 37 ++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 "30\345\220\264\350\266\205/\347\254\224\350\256\260/9.7\345\255\220\346\237\245\350\257\242\347\254\224\350\256\260.md" create mode 100644 "30\345\220\264\350\266\205/\347\254\224\350\256\260/9.8exists\345\255\220\346\237\245\350\257\242\347\254\224\350\256\260.md" diff --git "a/30\345\220\264\350\266\205/\347\254\224\350\256\260/9.7\345\255\220\346\237\245\350\257\242\347\254\224\350\256\260.md" "b/30\345\220\264\350\266\205/\347\254\224\350\256\260/9.7\345\255\220\346\237\245\350\257\242\347\254\224\350\256\260.md" new file mode 100644 index 0000000..bcf5417 --- /dev/null +++ "b/30\345\220\264\350\266\205/\347\254\224\350\256\260/9.7\345\255\220\346\237\245\350\257\242\347\254\224\350\256\260.md" @@ -0,0 +1,51 @@ +#### 批处理语句 + +go语句特点: + +1. 等待go语句前的代码执行完成后,再执行go后面的代码。 +2. 批处理语句的结束标志。 + 下面的@num变量作用域为全局 + + ``` + declare @num int + set @num = 0 + ``` + + 下面的@num变量的作用域是局部,只在两个go之间可以使用,最后一行代码会报错 + + ``` + go + declare @num int + set @num = 0 + go + set @num = 1 + ``` + + + + +#### 子查询 + +子查询也称为内部查询或内部选择,而包含子查询的语句也称为外部查询或外部选择。 + +1、in关键字 + +使用多行比较符 in 时,主查询会与子查询中的每一个值进行比较,如果与其中的任意一个值相同,则返回。not in 与 in 的含义恰好相反 + +2、all关键字(全部) + +all 关键字位于多行比较运算符之后,通过 all 关键字将一个表达式或列的值与子查询所返回的一列值中的每一行进行比较,只要有一次比较的结果为 false,则 all 测试返回 false,主查询不执行;否则返回 true,执行主查询 + +all 含义: + +当 all 时,表示大于最大值 + +3. any|some(差不多) 关键字子查询(有就好) + +1,any|some关键字 + + any 与 some 的查询功能相同 + +any 或 some 用于子查询之前,通过 any|some 比较运算符,将一个表达式或列的值与子查询所返回的一列值中的每一行进行比较,只要有一次比较的结果为 true,则 any 或 some 测试返回 true,主查询执行;否则结果为false,主查询不执行 \ No newline at end of file diff --git "a/30\345\220\264\350\266\205/\347\254\224\350\256\260/9.8exists\345\255\220\346\237\245\350\257\242\347\254\224\350\256\260.md" "b/30\345\220\264\350\266\205/\347\254\224\350\256\260/9.8exists\345\255\220\346\237\245\350\257\242\347\254\224\350\256\260.md" new file mode 100644 index 0000000..ab69e2e --- /dev/null +++ "b/30\345\220\264\350\266\205/\347\254\224\350\256\260/9.8exists\345\255\220\346\237\245\350\257\242\347\254\224\350\256\260.md" @@ -0,0 +1,37 @@ +### 1. exists子查询 + +用于检查子查询是否至少会返回一行数据,返回值为true或false + +not exists 的作用与exists正好相反。如果子查询没有返回行,则满足了not exists 中的 where子句。 + +exists后括号里的查询语句也可以看成是某个条件 + +关键字EXISTS构造子查询时,当子查询的结果集不为空时,则EXISTS返回的结果为TRUE,外层查询语句进行查询;当子查询的结果集为空时,则EXISTS返回的结果为FALSE,外层查询语句不进行查询。 + +``` +if exists(select stu_num from tb_record where stu_num in (select stu_num from tb_student where name='黄弘') and return_time is null) + print '有' +else + print '没有' +``` + +### 2.排序函数 + +1、排序函数 over + +其中asc表示升序排列(默认值),desc 表示降序,在处理select语句时,order by 子句是处理的子句,因此可以在order by 子句中引用select 句子中定义的列别名 + +排序函数 : OVER( [分组子句] 排序子句[DESC][ASC] ) + +排序子句 :ORDER BY 排序列,排序列… + +2、ROW_NUMBER(),RANK(),DENSE_RANK() 的区别 + +ROW_NUMBER()函数生成的排序根据排序子句给出递增连续的序号 + +RANK()函数生成的排序根据排序子句给出递增的序号,但是存在并列并且跳空 + +DENSE_RANK() 函数生成的排序根据排序子句给出递增的序号,但是存在并列不跳空 + +###### + -- Gitee