视图 索引 存储过程

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

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

掌握:
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
时间: 2024-08-10 02:11:47

视图 索引 存储过程的相关文章

查询SQLServer2005中某个数据库中的表结构、索引、视图、存储过程、触发器以及自定义函数

查询SQLServer2005中某个数据库中的表结构.索引.视图.存储过程.触发器以及自定义函数 2013-03-11 09:05:06|  分类: SQL SERVER|举报|字号 订阅 (1)查询SQLServer2005中某个数据库中的表结构 SELECT TOP 100 PERCENT --a.id,CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名,CASE WHEN a.colorder = 1 THEN isnull(f.v

视图 触发器 存储过程 函数 流程过程 索引 慢查询

视图 触发器 存储过程 函数 流程过程 索引 慢查询 视图 触发器 事务 存储过程 内置函数 流程控制 索引 视图 1.什么是视图 ? 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 ? 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何用视图 create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id; 强调

Mysql----浅入浅出之视图、存储过程、触发器

一.视图 VIEW 视图是虚拟的表,本身不存储任何数据.只有运行时,才包含动态检索出来的数据. eg:SELECT sid, name, sex, s_num FROM  student, school WHERE sid = 2 AND student.sid = scholl.sid ; 这个简单的查询涉及到两个表.所以任何需要这个数据的人都必须熟悉两个表以及之间的关系.想检索其他学生信息,就必须修改WHERE子句.如果可以把整个查询包装成一个虚拟表studentinfo,那么就可以这样得到

MySQL视图、存储过程与存储引擎

MySQL视图.存储过程与存储引擎 一.前言 ? 前面的文章已经介绍了MySQL的索引与事务以及MySQL的备份与恢复的相关的内容,本文将对MySQL视图及存储过程以及存储引擎进行讲述. 二.MySQL视图 2.1问题引出--视图的概念 ? 我们在使用SQL语句进行多表查询的时候的命令是非常冗长而麻烦的,如果说这样的操作还非常多的使用的情况下就会加大工作人员的工作量,毕竟不能保证如此长的代码不会写错,并且多次进行如此复杂的查询也会造成服务器资源占用比变大的问题,那么我们有什么好的办法解决这样的问

84. 从视图索引说Notes数据库(下)

作用和代价上文介绍了关系型数据库里的索引.Notes数据库里的索引隐藏在视图概念里(本文的讨论只针对Notes的视图索引,不包含全文索引.).开发人员创建的视图仅仅是存放在数据库里的一条设计文档,数据库引擎会依据它创建和更新索引.关系型数据库里的索引是从记录中抽取的数据排序而组成的数据结构(主要是B树),Notes视图的索引还包括未排序的列.计算值.分类.总计等等数据(数据结构仍然是B树,如果运气足够好的话,你会遇到Notes报出B-tree structure is invalid的错误).用

八、mysql视图、存储过程、函数以及时间调度器

1.create or replace view emp_view as select * from t4 ;给t4表创建一个名为emp_view的视图 2.drop view emp_view 删除视图 ======================================= 1.创建一个存储过程(查询所有数据) create procedure p1 () READS SQL DATA BEGIN select * from t4; END 2.创建一个存储过程(查询传参数据) cre

视图 索引

在视图上创建索引需要三个条件:一.视图必须绑定到架构.要做到这点,在 CREATE VIEW 语句中,必须加上 WITH SCHEMABINDING,如果是使用企业管理器,则在设计界面的空白处点击右键,属性,选中“绑定到架构”.二.索引必须是唯一索引.要做到这点,在 CREATE INDEX 中必须指定 UNIQUE.三.索引必须是聚集索引.要做到这点,在 CREATE INDEX 中必须指定 CLUSTERED.例:CREATE VIEW viewFoo WITH SCHEMABINDINGA

T-SQL应用,视图、存储过程、触发器、游标、临时表等

sqlserver常用操作: 视图.存储过程.触发器.函数 --*********************批处理********************* --[在一个批处理中存有一个语法错误,则所有的语句都无法通过编译] USE flowershopdb SELECT * FROM tb_category SELECT * FROM tb_detailed SELECT * FROM tb_product SELECT * FROM tb_shopping SELECT * FROM tb_u

创建视图索引

创建视图索引需要注意哪些事项 1.创建索引时提示该视图未绑定到架构(创建视图时加上schemabinding关键字则不能*号存在索引中) 解决方法:在创建视图的时候加上schemabinding 例句:CREATE VIEW [dbo].[viewTable] with schemabinding AS select ID from ..... 2.加上schemabinding建立索引的时候又提示必须先创建唯一聚集索引 解决方法: 在创建视图时加上UNIQUE  CLUSTERED 例句: C