ASP.NET-第六天-数据库知识

第六天

练习:

 

 

索引:

聚集索引和非聚集索引;索引就是为了快速查找

为了更好的在索引中增加数据,有了“填充因子”;在创建表的时候就已经为填充因子,分配了空间的大小;

 

创建索引:(不唯一的,非聚集索引)

对于经常用到的列创建索引,增加整体性能;

删除索引:  drop index 表名。索引名

select * from tt5

--创建一个非聚集唯一索引

create unique nonclustered index IX_TT5_userid on tt5(userid)

--创建一个聚集非唯一索引

create clustered index IX_TT5_username on tt5(username)

--创建一个聚集唯一索引

create unique clustered index IX_TT5_userage on tt5(userage)

 

在一个表中,只能创建一个聚集索引

 

子查询

把一个查询结果放到另一个查询中使用,就是子查询;

独立子查询,子查询的内容可以独立运行;

 

子查询,多个条件: 不在用等号,而是用的in

 

等同于  相关子查询:

Select * from Tblstudent

 

如果查询到结果,exists 返回true,如果没有查询到结果,则返回false

 

 

对查询的数据进行分页

分页前首先排序,如果不排序,则每次取出来的数据顺序都是不固定的,所以要排序

1.查询第一页的数据

 

2.18页的数据

 

 

新的分页查询方法: 使用 了系统提供的方法

 

 

表的连接

tblstudent表中没有班级名称,但是有班级编号,这是就要来接tblclass中的班级编号找到班级名称;使用inner join 后面就要使用oninner join是内连接

后面的现在也可以使用where,但是最好不要

 

笛卡尔积(连接两个表中的所有行,然后在进行筛选)

 

 

外连接

左外连接

显示left join 左边的表中的所有数据,如果对应的在右边的表中有匹配的数据,则显示该数据,否则显示null

 

null的数据都改成“缺考”

 

视图的查询中,每一列都要有别名;

创建视图:Create view 试图名 as 查询内容

更改表中的内容,视图中的内容跟着改变; 最好不要对视图中的查询进行排序操作;如果有需要,则在排序的order by 前面加上top 

局部变量  先声明再赋值;

Declare @变量  类型

为变量赋值可以使用set 还可以使用select

       

Setselect的区别:

1.语法不同:

 

 

2.如果查询的结果不止一个值,使用set,就会报错

 

通过select,只返回最后的一个值;

 

变量在使用之前要赋值,否则就是null,如果是null的话,与任何数据类型运算都是null

 

全局变量

@@Error 如果上一条sql语句执行出错了,那么变量中就会有一个对应的错误号,如果没有出错,则变量中始终未0

 

If- else

使用Begin  end 来代替VS中的{}

 

事务:

sql语句作为一个整体一起向系统提交,要么都执行、要么都不执行 

开始事务:BEGIN TRANSACTION

事务提交:COMMIT TRANSACTION

事务回滚:ROLLBACK TRANSACTION

 

判断某条语句执行是否出错:

全局变量@@ERROR

@@ERROR只能判断当前一条T-SQL语句执行是否有错,为了判断事务中所有T-SQL语句是否有错,我们需要对错误进行累计;

  例:SET @errorSum=@errorSum+@@error

 

事务的ACID特性:

事务是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须有四个属性,称为原子性、一致性、隔离性和持久性 (ACID) 属性,只有这样才能成为一个事务

posted @ 2012-12-18 18:57  云那边  阅读(172)  评论(0编辑  收藏  举报