视图 索引 存储过程

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

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

掌握:
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
原文地址:https://www.cnblogs.com/languang/p/4547174.html