创建数据库

create database accountInfo/*创建账户信息数据库*/

创建数据表

 /*定义主码、外码、和人数、余额的取值范围。*/
/*创建储蓄所表*/
create table bank(
bank_ID int primary key identity(10001,1),/*从10001开始,每次增加1*/
bank_name nvarchar(20), /*储蓄所名称,*/
bank_address nvarchar(40),
bank_peopleNum int check(bank_peopleNum between 1 and 30),
bank_city nvarchar(10)
) /*创建账户表*/
/*帐户(编号,姓名,余额,建立日期,储蓄所编号)*/
create table account(
account_id int primary key identity(1,1),
account_name nvarchar(15),
account_balance int check(account_balance>= 0 ),
account_found_date char(8),
bank_ID int foreign key references bank(bank_id)
) /*创建借贷表*/
/*借贷(帐户,借贷类型,金额,日期)*/
create table borrow(
borrow_id int primary key identity(1,1),
account_ID int foreign key references account(account_ID),
type_borrow nvarchar(10),
money_sum int check(money_sum>=0),
date_borrow char(8)
)

插入数据

 --插入bank数据
insert into bank values('长春南湖路','朝阳区',10,'长春市')
insert into bank values('西安大路','朝阳区',13,'长春市')
insert into bank values('幸福二路','南关区',11,'长春市')
insert into bank values('幸福三路','南关区',12,'长春市')
insert into bank values('桃林街','城关区',18,'灵宝市') --插入account数据
insert into account values('赵大',10000,20170510,10001)
insert into account values('钱二',5000,20160120,10001)
insert into account values('张三',50000,20161120,10001)
insert into account values('李四',50000,20161120,10005)
insert into account values('孙五',500000,20161110,10005) --插入borrow数据
insert into borrow values(1,'短期',1000,20170516)
insert into borrow values(2,'长期',3000,20170416)
insert into borrow values(3,'长期',200000,20170510)

连接查询

--内连接
select account_name,account_balance,bank_name
from account , bank
where account.bank_ID=bank.bank_id and bank_name='长春南湖路' --左外连接
select bank.bank_ID,count(account_id)'账户个数',sum(account_balance)'余额总数'
from bank left outer join account on(bank.bank_ID=account.bank_ID)
group by bank.bank_ID

嵌套查询

select account_name,account_balance
from account
where bank_ID in(select bank_ID from bank where bank_name='长春南湖路')
select account_name
from account
where account_balance>(select MAX(account_balance)
from account where account_name='长春南湖路')
select*
from account as A,Bank as B
where A.bank_ID=B.bank_ID and B.bank_city in
(select bank_city
from bank
group by bank_city
having count(bank_ID)=(select min(Nm)
from(select bank_city,count(bank_ID)
from bank
group by bank_city
)as _bank(Cy,Nm)
)
);
select account_id from account
where account_id not in
(select id from( select account_ID from borrow
group by account_ID ) as v(id)--,Nm))

组合查询

select account_id
from account except (select account_ID from borrow )

创建及使用视图

 create view view1 as
select account.bank_ID,
sum(account_balance)'balanceSum'
from bank,account
where bank.bank_ID=account.bank_ID
group by account.bank_ID select v1.bank_ID vid
from(select max(v.balanceSum)as balanceSum from view1 v)
su,view1 v1
where v1.balanceSum=su.balanceSum

存储过程

--根据上面基本表的信息定义一个存储过程,完成下面功能:
--入口参数:储蓄所编号
--1 显示储蓄所信息
--2 如果没有帐户,删除该储蓄所记录
--3 如果帐户余额总额低于100万元,开一个新帐户
alter PROCEDURE pr_bank(@bank_id int)
as
BEGIN
select *from bank
where bank_ID = @bank_id
if (select count(*) from account where bank_id=@bank_id)=0
delete from bank where bank_ID=@bank_id
if (select sum(account_balance) from account where bank_id=@bank_id group by bank_id)<1000000
insert into account(bank_id) values(@bank_id)
END exec pr_bank 10005

作者:耑新新,发布于  博客园

转载请注明出处,欢迎邮件交流:zhuanxinxin@aliyun.com

SQL Server操作实例的更多相关文章

  1. SQL Server的实例恢复解析

    同Oracle一样,SQL Server在非一致性关闭的时候也会进行实例恢复(Instance Recovery),本文根据stack overflow的文章介绍一些SQL Server实例恢复的知识 ...

  2. SQL Server 多实例下的复制

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建步骤(Procedure) 注意事项(Attention) 二.背景(Contexts) ...

  3. sql server操作2:查询数据库语句大全【转】

    注:以下操作均建立在上篇文章sql Server操作1的数据基础之上 一.实验目的 熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询 二.实验内容和要求 使用SQL查询分析器查询数据,练 ...

  4. 当SQL Server的实例位于集群的特定节点时,数据库无法远程访问

    搭建好了一个集群环境,发现当SQL Server的实例位于集群的其中一个节点时,数据库无法远程访问,报如下错误.但在另一个 节点时,数据库访问正常. 标题: 连接到服务器 -------------- ...

  5. Step7:SQL Server 多实例下的复制

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建步骤(Procedure) 注意事项(Attention) 二.背景(Contexts) ...

  6. sql server 操作xml例子

    sql server 操作xml例子 /* sql xml 入门: --by jinjazz --http://blog.csdn.net/jinjazz 1.xml: 能认识元素.属性和值 2.xp ...

  7. SQL Server数据库实例名与服务器名不一致的解决办法

    SQL Server数据库实例名与服务器名不一致的解决办法 --EXEC sp_addlinkedserver --   @server = 'PSHGQ' --GO --select * from  ...

  8. SQL Server 命名实例更改端口进行发布订阅

    原文:SQL Server 命名实例更改端口进行发布订阅 两台数据库服务器,都没有加入域,都安装多实例,端口也不一样了.现在使用命名实例进行复制,折腾了好久,才发现解决方法. 服务器A:myserve ...

  9. 【故障公告】阿里云 RDS SQL Server 数据库实例 CPU 100% 引发全站故障

    非常抱歉,今天 8:48 开始,我们使用的阿里云 RDS SQL Server 数据库实例突然出现 CPU 100%  问题,引发全站故障,由此给您带来麻烦,请您谅解. 发现故障后立即进行主备切换,和 ...

随机推荐

  1. Python常见初级错误

    一.常见错误(编辑器:Geany) 1.错误原因:或因不兼容中文注释 2.错误原因:vehicles变量前面有多余的空格 3.错误原因:没有正确的缩进(indent)

  2. extract_by_one 根据二维数组中某字段来提取数组信息,查看有无重复信息

    public function tt(){ $param = array( array ( 'hykno' => '2222222-CB', 'tcdk_fid' => '458B6D70 ...

  3. Python 不定参数函数

    1. 元组形式 def test1(*args): print('################test1################') print(type(args)) print(arg ...

  4. Machine Learning Trick of the Day (1): Replica Trick

    Machine Learning Trick of the Day (1): Replica Trick 'Tricks' of all sorts are used throughout machi ...

  5. 四、Kafka 核心源码剖析

    一.Kafka消费者源码介绍 1.分区消费模式源码介绍 分区消费模式直接由客户端(任何高级语言编写)使用Kafka提供的协议向服务器发送RPC请求获取数据,服务器接受到客户端的RPC请求后,将数据构造 ...

  6. 从咖啡馆的经营看 Web 应用的扩展

    我经营着一家咖啡馆.经营成本同所用的资源成正比. 我的咖啡馆店面大概有一百平方英尺(约九平方米),雇佣了一个咖啡师,一台咖啡机. 营业能力: 每次能够服务一个顾客,用三分钟泡制一杯咖啡,算下来服务一个 ...

  7. ASP.NET根据IP获取省市地址

    1.在网站的跟路径下面添加 QQWry.dat 文件,这个文件是IP数据库文件 2.添加以下一个类 IPScanner     C# 代码   复制 public class IPScanner { ...

  8. 20155322 2016-2017-2 《Java程序设计》第5周学习总结

    20155322 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 本周的学习任务是课本第八第九章: 第八章主要是讲异常处理.这里要理解Java的错误以对象的方 ...

  9. HDU 1010 Tempter of the Bone (广搜+减枝)

    题目链接 Problem Description The doggie found a bone in an ancient maze, which fascinated him a lot. How ...

  10. flask跨域请求三行代码搞定

    flask跨域请求三行代码就可以搞定.但是请注意几点: 第一:只能返回json格式数据,比如list.ndarray等都不可以 第二:返回的对象必须是是字符串.元组.响应实例或WSGI可调用. pyt ...