zoukankan      html  css  js  c++  java
  • SQL Server操作实例

    创建数据库

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

    创建数据表

     1 /*定义主码、外码、和人数、余额的取值范围。*/
     2 /*创建储蓄所表*/
     3 create table bank(
     4     bank_ID int primary key identity(10001,1),/*从10001开始,每次增加1*/
     5     bank_name nvarchar(20),    /*储蓄所名称,*/
     6     bank_address nvarchar(40),
     7     bank_peopleNum int check(bank_peopleNum between 1 and 30),
     8     bank_city nvarchar(10)
     9 )
    10 
    11 /*创建账户表*/
    12 /*帐户(编号,姓名,余额,建立日期,储蓄所编号)*/
    13 create table account(
    14     account_id int primary key identity(1,1),
    15     account_name nvarchar(15),
    16     account_balance int check(account_balance>= 0 ),
    17     account_found_date char(8),
    18     bank_ID int foreign key references bank(bank_id)
    19 )
    20 
    21 /*创建借贷表*/
    22 /*借贷(帐户,借贷类型,金额,日期)*/
    23 create table borrow(
    24     borrow_id int primary key identity(1,1),
    25     account_ID int foreign key references account(account_ID),
    26     type_borrow nvarchar(10),
    27     money_sum int check(money_sum>=0),
    28     date_borrow char(8)
    29 )

    插入数据

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

    创建及使用视图

     1 create view view1 as
     2 select account.bank_ID,
     3 sum(account_balance)'balanceSum'
     4 from bank,account
     5 where bank.bank_ID=account.bank_ID
     6 group by account.bank_ID
     7 
     8 select v1.bank_ID vid
     9 from(select max(v.balanceSum)as balanceSum from view1 v)
    10 su,view1 v1
    11 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

  • 相关阅读:
    redis--迁库操作
    python-又来练习题--输出一个字符串中最长的子字符串及其长度
    python-接口开发flask模块(三)开发登陆接口
    python-接口开发flask模块(二)全局host配置
    python-接口开发flask模块(一)工具类准备
    Celery定时任务|计划任务
    Celery多任务结构
    Celery
    正向代理与反向代理
    drf 视图源码详解
  • 原文地址:https://www.cnblogs.com/Arthurian/p/7146651.html
Copyright © 2011-2022 走看看