zoukankan      html  css  js  c++  java
  • 视图 索引 存储过程

    视图——相对应的是表
    查询结果。
    表——真正存储数据的地方。
    视图——不存数据,展示查询的结果。

    视图就是为了查询数据方便。一般不要试图向视图中插入数据,容易出错。
    视图可以由一个表生成,也可以由多个表生成,还可以由表各视图生成新的视图。

    掌握:
    1.视图是个什么东西?
    2.会建视图,会查视图
    3.知道视图的主要功能是查询,不是增删除改。

    索引:为了提高查询效率。
    簇索引,非簇索引

    1.数据的默认存储次序跟簇索引的次序一样的。一个表中只有能有一个簇索引。
    2.非簇索引是单独放置的,查询的时候,先查非族索引,再跟据非簇索引查询内容。,一个表可以有多个非簇索引。

    要记住的:
    1.索引是什么东西。
    2.索引分类及效率。原理。
    3.索引提升查询效率,但会影响增删改的效率。
    4.如何建索引、删索引。

    存储过程
    SQL编程:
    数据类型:列的类型
    变量定义:declare 变量名 类型名
    变量名:以@开头。
    赋值和取值:
    赋值:set/select 变量=值
    取值:变量名
    例:
    declare @a varchar(50) --定义变量
    set @a = 'hello world' --给变量赋值
    --select @a = 'hello world'
    print @a --取值输出

    运算符:算术、关系、逻辑、其它
    算术:+ - * / % 没有++ --
    关系:> < >= <= = <> !=
    逻辑:and or not
    其它:between...and... exists like is 没有?:,也没有%= += -=....

    条件分支:
    if 表达式
    begin
    end
    else
    begin
    end

    循环:略

    存储过程的创建:
    create procedure 存储过程名
    形参名 形参类型,
    形参名 形参类型,
    ....
    形参名 形参类型
    as
    函数体

    go


    存储过程的调用:
    存储过程名 实参1,实参2,...,实参n

    例子:往Info中送入数据,如果主键已存在,则执行修改操作;否则执行插入操作

    CREATE PROCEDURE TESTINFO
        @code varchar(50),
        @name varchar(50),
        @sex bit,
        @nation varchar(50),
        @birthday datetime
    AS
    --先根据@code查一下info表中记录的个数
    declare @c int
    select @c=COUNT(*) from Info where Code=@code
    --如果记录个数大于0
    if @c > 0
    begin
    --执行修改操作
        update Info set Name=@name,Sex=@sex,Nation=@nation,Birthday=@birthday where Code=@code
    end
    --否则
    else
    begin
    --执行插入操作
        insert into Info (Code,Name,Sex,Nation,Birthday) values(@code,@name,@sex,@nation,@birthday)
    end
    GO
    
    
    select * from info

    做一个存储过程,输入水果代号,人员用户名,购买数量,把库存和账户扣掉相应的值。

    select * from fruit
    select * from login
    create proc BUYFRUIT @uid varchar(
    50), --用户名 @id varchar(50), --水果代号 @count int --购买数量 as --一、扣库存 update fruit set numbers=numbers-@count where ids=@id --二、扣钱 declare @cost decimal(8,2) --花费 --1.查出单价 declare @p decimal(8,2) --单价 select @p=price from fruit where Ids=@id --2.计算花费 set @cost = cast(@count as decimal) *@p --3.修改账户余额 update login set account=account-@cost where username=@uid go BUYFRUIT 'lisi','k005',5
  • 相关阅读:
    VSCode中按ESLint规则格式化Javascript代码
    VSCode设置资源管理器字体大小
    Windows下利用安装压缩包安装MySQL
    Windows部署Apache 2.4.46及PHP 8.0.3
    npm设置国内镜像
    IDEA运行Tomcat输出信息乱码
    深入理解jvm虚拟机读书笔记-Java内存区域与内存溢出异常
    Navicat Premium
    mysql安装
    ElasticSearch 基础
  • 原文地址:https://www.cnblogs.com/languang/p/4547174.html
Copyright © 2011-2022 走看看