SQL Server操作实例
创建数据库
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操作实例的更多相关文章
- SQL Server的实例恢复解析
同Oracle一样,SQL Server在非一致性关闭的时候也会进行实例恢复(Instance Recovery),本文根据stack overflow的文章介绍一些SQL Server实例恢复的知识 ...
- SQL Server 多实例下的复制
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建步骤(Procedure) 注意事项(Attention) 二.背景(Contexts) ...
- sql server操作2:查询数据库语句大全【转】
注:以下操作均建立在上篇文章sql Server操作1的数据基础之上 一.实验目的 熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询 二.实验内容和要求 使用SQL查询分析器查询数据,练 ...
- 当SQL Server的实例位于集群的特定节点时,数据库无法远程访问
搭建好了一个集群环境,发现当SQL Server的实例位于集群的其中一个节点时,数据库无法远程访问,报如下错误.但在另一个 节点时,数据库访问正常. 标题: 连接到服务器 -------------- ...
- Step7:SQL Server 多实例下的复制
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建步骤(Procedure) 注意事项(Attention) 二.背景(Contexts) ...
- sql server 操作xml例子
sql server 操作xml例子 /* sql xml 入门: --by jinjazz --http://blog.csdn.net/jinjazz 1.xml: 能认识元素.属性和值 2.xp ...
- SQL Server数据库实例名与服务器名不一致的解决办法
SQL Server数据库实例名与服务器名不一致的解决办法 --EXEC sp_addlinkedserver -- @server = 'PSHGQ' --GO --select * from ...
- SQL Server 命名实例更改端口进行发布订阅
原文:SQL Server 命名实例更改端口进行发布订阅 两台数据库服务器,都没有加入域,都安装多实例,端口也不一样了.现在使用命名实例进行复制,折腾了好久,才发现解决方法. 服务器A:myserve ...
- 【故障公告】阿里云 RDS SQL Server 数据库实例 CPU 100% 引发全站故障
非常抱歉,今天 8:48 开始,我们使用的阿里云 RDS SQL Server 数据库实例突然出现 CPU 100% 问题,引发全站故障,由此给您带来麻烦,请您谅解. 发现故障后立即进行主备切换,和 ...
随机推荐
- Chapter3 (字符串,向量,数组) --C++Prime笔记
1.using用法:using namespace ::name;注意事项:一般不在头文件使用using否则很容易导致运用命名空间不对错误. 2.string的方法: ①getline(输入流,str ...
- 【Asp.net入门06】第一个ASP.NET 应用程序-案例说明
创建简单的应用程序 本章的剩余部分将探讨一些用于创建简单的数据输入应用程序的基本ASP.NET功能.在这一节中,我们将加快进度——目标是演示ASP.NET的用法,因此将略过有关后台运行机制的详细说明. ...
- MyEclipse和Eclipse中jsp、html格式化自动排版问题
一.myeclipse的漂亮排版设置 步骤: 在左侧快捷 “搜索” 框里面输入 html . 点击选中左侧HTML Source . line - width 是设置当前行里面有多少字符时,就换行.这 ...
- debian旧日笔记
18:45 2007-10-7 序 图形界面较好的Linux操作系统有三个主要的发行版本:RedHat, Debian, SuSE.自RedHat9后,RedHat以Fedora为名发行新的版本.仍然 ...
- td自动换行
自动换行方法: 1.在<td>中设置样式style为word-wrap:break-word;word-break:break-all; (一般情况只需要设置word-break:brea ...
- UVA1386 【Cellular Automaton】题解
题面:UVA1386 Cellular Automaton 矩阵乘法+快速幂解法: 这是一个比较裸的有点复杂需要优化的矩乘快速幂,所以推荐大家先做一下下列洛谷题目练练手: (会了,差不多就是多倍经验题 ...
- 最小生成树 kuangbin专题最后一个题
题目链接:https://cn.vjudge.net/contest/66965#problem/N 注释:这道题需要用krustra,用prim的话可能会超时.并且在计算距离的时候要尽量减少步骤,具 ...
- ubuntu安装Android Studio开发环境
1.下载 https://developer.android.com/studio/ 2.解压文件,将文件夹copy到/opt/ 3.进入/opt/android-studio/bin,运行./stu ...
- 引发类型为“System.OutOfMemoryException”的异常
在运维工作中,经常能接到客户的反馈这个:引发类型为“System.OutOfMemoryException”的异常.客户反馈物理内存都还有富余,怎么报内存不足的错误呢! 什么时候会引发System.O ...
- 【多视图几何】TUM 课程 第1章 数学基础:线性代数
在 YouTube 上找到了慕尼黑工业大学(Technische Universitaet München)计算机视觉组 Daniel Cremers 教授的 Multiple View Geomet ...