SQL Server(六)——索引、视图和SQL编程

1.索引

添加索引,设计界面,在任何一列前右键--索引/键--点击进入添加某一列为索引

2.视图

视图就是我们查询出来的虚拟表

创建视图:create view 视图名

as

SQL查询语句,分组,排序,in 等都不能写

视图的用法: select * from 视图名

3.SQL编程

(1)定义变量:declare @变量名 数据类型

例:declare @a int

(2)变量赋值:set @变量名 = 值

例:set @a=10

set @a = 10  --赋值,不打印

select @a;  --打印在结果集中

print @a;   --打印在消息框中

-----------------------------------------------------

例1、查汽车表中名称含有宝马两个字的

declare @name varchar(20) 

set @name=‘宝马‘ 

select * from car where Name like ‘%‘+@name+‘%‘

例2、查汽车表中所有汽车的平均值并输出

declare @price decimal(10,4) 

select @price = AVG(Price) from Car 

print ‘所有汽车的平均价格为:‘+cast(@price as varchar(20))

-----------------------------------------------------

(3)if ... else 的用法,if后面没有小括号,花括号用begin end 替代

if 判断条件

begin

要执行的语句

end

else

begin

要执行的语句

end

例:

declare @a int 

declare @b int 

declare @c int

set @a =10; 

set @b =5;

if @a>@b 

begin  

set @c = @a + @b; 

end 

else 

begin  

set @c = @a - @b; 

end 

print @c 

-----------------------------------------------------

(4)C#里的Switch case 变形到数据库里用法

declare @ccname varchar(20) 

set @ccname = ‘宝马‘ 

select * from Car where Name like

case --switch...case的开头 

when @ccname=‘宝马‘ then ‘%宝马%‘ 

when @ccname=‘奥迪‘ then ‘%奥迪%‘ else ‘%‘ 

end --switch...case的结尾

-----------------------------------------------------

(5)循环: 注意循环四要素

declare @str varchar(20) 

set @str = ‘你好‘ 

declare @i int 

set @i = 1

while @i<=10 

begin  

print @str + cast (@i as varchar(20))  

set @i = @i + 1 

end

whie(条件) {  循环体 }

-----------------------------------------------------

注意:语句结束之后不要写分号或逗号例

时间: 2024-10-16 09:22:40

SQL Server(六)——索引、视图和SQL编程的相关文章

[转]SQL SERVER整理索引碎片测试

SQL SERVER整理索引碎片测试 SQL SERVER整理索引的方法也就这么几种,而且老是自作聪明的加入智能判断很不爽,还是比DBMS_ADVISOR差远了: 1SQL SERVER 2000/2005 查询 2000use DB_Namedeclare @table_id intset @table_id=object_id('Table_Name')dbcc showcontig(@table_id) 2005SELECT index_id,index_type_desc,avg_fra

SQL Server - 聚集索引 &lt;第六篇&gt;

聚集索引的叶子页存储的就是表的数据.因此,表行物理上按照聚集索引列排序,因为表数据只能有一种物理顺序,所以一个表只能有一个聚集索引. 当我们创建主键约束时,如果不存在聚集索引并且该索引没有被明确指定为非聚集索引,SQL Server会自动将其创建为唯一的聚集索引,这并不是说主键列就一定是聚集索引,这只是默认行为而已. 示例,建表时通过指定主键为非聚集索引使主键列不为聚集列: CREATE TABLE MyTableKeyExample { Column1 int IDENTITY PRIMARY

细说Sql Server中的视图(上)转载

原文:细说Sql Server中的视图(上)http://www.cnblogs.com/xbf321/archive/2009/06/16/view_in_sqlserver.html 1,什么是视图? 2,为什么要用视图: 3,视图中的ORDER BY; 4,刷新视图: 5,更新视图: 6,视图选项: 7,索引视图: 细说Sql Server中的视图(下)   应大家要求已在“细说Sql Server中的视图(上)”中添加“为什么要用视图”一小节. 1.什么是视图 视图是由一个查询所定义的虚

细说Sql Server中的视图(下)转载

原文:细说Sql Server中的视图(下)http://www.cnblogs.com/xbf321/archive/2009/06/19/view_two_in_sqlserver.html 1,什么是视图? 2,为什么要用视图: 3,视图中的ORDER BY; 4,刷新视图: 5,更新视图: 6,视图选项: 7,索引视图: 细说Sql Server中的视图(上)    应大家要求已在“细说Sql Server中的视图(上)”中添加“为什么要用视图”一小节.  5.更新视图 视图是一个虚拟表

SQL Server查看索引重建、重组索引进度

原文:SQL Server查看索引重建.重组索引进度 相信很多SQL Server DBA或开发人员在重建或重组大表索引时,都会相当郁闷,不知道索引重建的进度,这个对于DBA完全是一个黑盒子,对于系统负载非常大的系统或维护窗口较短的系统,你会遇到一些挑战.例如,你创建索引的时候,很多会话被阻塞,你只能取消创建索引的任务.查看这些索引维护操作的进度.预估时间对于我们有较大的意义,需要根据这个做一些决策.下面我们来看看看看如何获取CREATE INDEX.ALTER INDEX REBUILD.AL

SQL Server获取索引创建时间&amp;重建时间&amp;重组时间

原文:SQL Server获取索引创建时间&重建时间&重组时间 之前写过一篇博客"SQL Server中是否可以准确获取最后一次索引重建的时间?",里面主要讲述了三个问题:我们能否找到索引的创建时间?最后一次索引重建(Index Rebuild)的时间? 最后一次索引重组(INDEX REORGANIZE)的时间呢?,当时得出的结论,答案是我们无法准确的找到索引的创建时间.最后一次索引重组时间,最后一次索引重建的时间.但是最近看到一篇博客"SQL Server

公司内部培训SQL Server传统索引结构PPT分享

公司内部培训SQL Server传统索引结构PPT分享 下载地址 http://files.cnblogs.com/files/lyhabc/SQLServer%E4%BC%A0%E7%BB%9F%E7%B4%A2%E5%BC%95%E7%BB%93%E6%9E%84.ppt PPT有不对的地方,多多拍砖o(∩_∩)o

SQL Server 的索引结构实例

目前SQL Server 的索引结构如下: 这个是聚集索引的存放形式: 非聚集索引的方式如下: 它们是以B+树的数据结构存放的. 相信大家都看过类似的图,但是没有直观的认识,下面举一个实际的例子来说明图的结构. USE Test --1.创建表,指定主键(会自动创建聚集索引) CREATE TABLE Person ( Id int NOT NULL IDENTITY, Name varchar(10) NOT NULL, Sex varchar(2) NOT NULL, CONSTRAINT

(转)SQL Server创建索引

什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音.笔画.偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词).同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度.? SQL Server中的数据也是按页( 4KB )存放? 索引:是SQL Server编排数据的内部方法.它为

sql server 2008 索引

微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(nonclustered index,也称非聚类索引.非簇集索引) 我们举例来说明一下聚集索引和非聚集索引的区别: 我们的汉语字典的正文本身就是一个聚集索引.比如,我们要查“吃”字,就会很自然地翻开字典的前几页,因为“吃”的拼音是“chi”,而按 照拼音排序汉字的字典是以英文字母“c”开头并以“z”结尾的,那么“吃”字就自然地排在字典的前部.如果您翻完了所有以“c”开头的部分