视图——相对应的是表
查询结果。
表——真正存储数据的地方。
视图——不存数据,展示查询的结果。
视图就是为了查询数据方便。一般不要试图向视图中插入数据,容易出错。
视图可以由一个表生成,也可以由多个表生成,还可以由表各视图生成新的视图。
掌握:
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 [email protected],[email protected],[email protected],[email protected] 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 fruitselect * from login create proc BUYFRUIT @uid varchar(50), --用户名 @id varchar(50), --水果代号 @count int --购买数量 as --一、扣库存 update fruit set [email protected] 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 [email protected] where username=@uid go BUYFRUIT ‘lisi‘,‘k005‘,5