读书时sql语句的整理

   很久都没有用sql语句了,有了hibernate,弄得连个sql的完整语句都不会写了,重新复习,新的工作使用了大量的sql语句进行编程,没有办法,得学啊!再烂也得重新温习一下。数据库用ms sql,有需要下载的朋友,直接还原数据库就可以了。

 


use book
--查看会员号不是M17的其他会员的资料
select * from 会员 where 会员号<>'M17'
--查看会员号为M17的会员在2003-12-08的借书记录
select * from 记录 where 借书日期='2003-12-08' and 会员号='M17'
--查看会员姓名中第二个字母是a和c,第三个字母是从d到h的会员资料
select * from 会员 where 姓名 like '_[a,c][d-h]%'
--查看会员身份证不为空的会员资料
select * from 会员 where 身份证 is not null
--看以”Y”字母开头并且,书名长度为5个字符的书有哪些?
select * from 书籍 where 书名 like 'Y%' and len(rtrim(书名))=5
--查看作者为谭浩强的书籍的编号、书名、单价,并且根据单价排序,价格贵的排前面
select 编号,作者,书名,单价 from 书籍 where 作者='谭浩强' order by 单价 desc
--查看编号为B152的书打8.5折后价格为多少?
select 单价*0.85 as 打折后 from 书籍 where 编号='B152'
--把所有借书记录的借书时间和还书时间加1年
select * from 记录
select  dateadd(year,1,借书日期) as 借书时间 from 记录
select  dateadd(year,1,还书日期) as 还书时间 from 记录
--查看会员是否有提交身份证号
select 姓名,'有' as 是否有证 from 会员 where 身份证 is not null union select 姓名,'没有' as 是否有证 from 会员 where 身份证 is null
--根据罚款金额从大到小排序查看会员被罚款情况
 select * from 会员 where 会员.会员号 in(select top 100 percent 会员号 from 罚单 order by 罚单.罚款金额 desc )
--把所有会员号从M打头改成A打头
select*, replace (会员号,'M','A')as 新会员号 from 会员 

--根据会员的身份证号获得证件类型,如果是15位为旧身份证号,18位为新身份证号,null为无身份证号
select * ,'旧证' as 证件类型 from 会员 where len(身份证)=15 union
select * ,'新证' as 证件类型 from 会员 where len(身份证)=18 union
select * ,'无证' as 证件类型 from 会员 where 身份证 is null
--查找罚款金额位居前三的所有罚款记录
select * from 罚单 where 罚款金额 in(
select top 3 罚款金额 from 罚单 group by 罚款金额 order by 罚款金额 desc)
--查找罚款金额位居第三的所有罚款记录
select * from 罚单 where 罚款金额=( select top 1 罚款金额 from (select top 3 罚款金额 from 罚单 group by 罚款金额 order by 罚款金额 desc)as 新罚款金额 order by 罚款金额 )
--或者
select* from 罚单 where 罚款金额=
(select top 1  罚款金额 from
(select   distinct top 3  罚款金额 from 罚单 order by  罚款金额 desc)
as 新罚款金额 order by 新罚款金额.罚款金额 )
select * from 会员
--分页
--top20表示查询到的总数,top 10表示每页显示几条记录
select top 10 b.* from (select top 20 会员号 from 会员 order by 会员号 desc) a,罚单 b where b.会员号 = a.会员号 order by a.会员号
GO
USE pubs
--内联
select * from authors as a,publishers as b where a.city=b.city
SELECT *
FROM authors AS a INNER JOIN publishers AS p
   ON a.city = p.city
ORDER BY a.au_lname DESC
--左外联
SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors a LEFT OUTER JOIN publishers p
   ON a.city = p.city
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值