四, 简单子查询
1. 子查询:语法: select ...from 表where 字段> (子查询)
2.select * from room where roomid >(select roomid from room where state='入住')
(注:子查询和比较运算符使用,必须保证子查询的返回值不能多余一个)
(注:表连接可以使用子查询替换,但有的子查询不一定能用表连接替换)
4 . in 和 not in子查询 (可以查询多条记录)
select roomid from room where roomid in (select roomid from room where roomid<10)
(说明:in 是在这个范围内,not in 不在这个范围内)
5.exists 和 not exists (表示是否存在,表示检测性的语句
if exists(子查询)
语句(begin end)
ese
Begin
语句
end
五 事物,索引和视图
1.sql Server 的数据也是按页存放的,每页一般容量为4kb
2.事物:1.作为单个逻辑工作单元执行的一系列操作!2.所有的命令作为一个整体一起向系统提交或撤销操作请求,3.是不可分割的逻辑工作单元。
3.事物的四个属性:1.原子性(Atomicity):事物是一个完整的操作,各个元素不可分割。 2.一致性(Consistency):当事务完成之后,数据必须处于一致状态。
3.隔离性(Isolation):对事物进行修改时,各个事物时彼此独立的。它不应以任何方式影响或依赖其它事物。
4.持久性(DuraBility):事物完成之后,他对于系统的影响是永久性的。
创建事物:
开始事物:Begin Transaction
提交事务:Commit Transaction
回滚事物:Rollback Transaction
事物分类:
显示事物:用Begin Transaction 明确指定事物的开始。
隐式事物:通过设置 set implicit_transactions on 语句 on 打开
Off 为关闭。
自动提交事物:是SQL Server 的默认模式,它将每条T-SQL语句视为一个事物,如果执行成功,则自动提交,如果错误,则自动返回。
索引:
索引:是sql server 编排数据的内部方法。为SQl Server提供一种方法来编排查询数据的路径。相当于汉语字典按拼音或笔画排序的目录。
索引页:数据库中存储索引的数据页,存放检索数据行的关键字页及该数据行的地址指针。
作用:通过使用索引,可以大大提高数据库的检索速度,改善数据库性能。
唯一索引:不允许两行具有相同的索引值。
主键索引:是唯一索引的特殊类型,要求主键中的每个值是唯一的。
聚集索引:一个表中只能有一个聚集索引,可以有多个非聚集索引,设置麽列为主键,则该列就默认为非聚集索引。
语法:
create nonclustered index IX_table_coloumns
on 表with(列)
with filfactor=30
2005版本的sql 需在(列)前加with 早于2005版本的则不需要。
按索引查询: select * from 表(索引名) where 条件
视图:
视图:查看数据库中一个或多个表的方法。
特点:对最终用户有好处:1.结果更容易理解,2.获得数据更容易。
对开发人员的好处:1.限制数据检索更容易。2.维护应用程序更方便。
创建视图:
create view view_name
as
select 语句
使用视图:
select * from view_Name where 条件 (order by ...)
六, 存储过程
语法:
create proc 存储过程名称
[ {@参数数据类型}[=默认值] [output](是否输出)
{@参数数据类型}[=默认值] [output](是否输出)
{@参数数据类型}[=默认值] [output](是否输出)
--一般情况下,先声明输出参数,然后再声明输入参数
]
as
SQL语句
执行存储过程:
exec 存储过程名称参数,参数,
如果有输出参数,则要声明变量接受输出参数,输出参数在哪就在哪接受,
declare @name nvarchar(50)
exec 存储过程名称 @name output
--存储过程返回值,
create proc ss
@count int=6
as
return @count
go
declare @count int
exec @count=ss
print str(@count)
处理错误信息:
raiserror ({自定义的错误信息},{与错误信息相关联的错误级别(0-18)},{错误状态~127的值})
1. 子查询:语法: select ...from 表where 字段> (子查询)
2.select * from room where roomid >(select roomid from room where state='入住')
(注:子查询和比较运算符使用,必须保证子查询的返回值不能多余一个)
(注:表连接可以使用子查询替换,但有的子查询不一定能用表连接替换)
4 . in 和 not in子查询 (可以查询多条记录)
select roomid from room where roomid in (select roomid from room where roomid<10)
(说明:in 是在这个范围内,not in 不在这个范围内)
5.exists 和 not exists (表示是否存在,表示检测性的语句
if exists(子查询)
语句(begin end)
ese
Begin
语句
end
五 事物,索引和视图
1.sql Server 的数据也是按页存放的,每页一般容量为4kb
2.事物:1.作为单个逻辑工作单元执行的一系列操作!2.所有的命令作为一个整体一起向系统提交或撤销操作请求,3.是不可分割的逻辑工作单元。
3.事物的四个属性:1.原子性(Atomicity):事物是一个完整的操作,各个元素不可分割。 2.一致性(Consistency):当事务完成之后,数据必须处于一致状态。
3.隔离性(Isolation):对事物进行修改时,各个事物时彼此独立的。它不应以任何方式影响或依赖其它事物。
4.持久性(DuraBility):事物完成之后,他对于系统的影响是永久性的。
创建事物:
开始事物:Begin Transaction
提交事务:Commit Transaction
回滚事物:Rollback Transaction
事物分类:
显示事物:用Begin Transaction 明确指定事物的开始。
隐式事物:通过设置 set implicit_transactions on 语句 on 打开
Off 为关闭。
自动提交事物:是SQL Server 的默认模式,它将每条T-SQL语句视为一个事物,如果执行成功,则自动提交,如果错误,则自动返回。
索引:
索引:是sql server 编排数据的内部方法。为SQl Server提供一种方法来编排查询数据的路径。相当于汉语字典按拼音或笔画排序的目录。
索引页:数据库中存储索引的数据页,存放检索数据行的关键字页及该数据行的地址指针。
作用:通过使用索引,可以大大提高数据库的检索速度,改善数据库性能。
唯一索引:不允许两行具有相同的索引值。
主键索引:是唯一索引的特殊类型,要求主键中的每个值是唯一的。
聚集索引:一个表中只能有一个聚集索引,可以有多个非聚集索引,设置麽列为主键,则该列就默认为非聚集索引。
语法:
create nonclustered index IX_table_coloumns
on 表with(列)
with filfactor=30
2005版本的sql 需在(列)前加with 早于2005版本的则不需要。
按索引查询: select * from 表(索引名) where 条件
视图:
视图:查看数据库中一个或多个表的方法。
特点:对最终用户有好处:1.结果更容易理解,2.获得数据更容易。
对开发人员的好处:1.限制数据检索更容易。2.维护应用程序更方便。
创建视图:
create view view_name
as
select 语句
使用视图:
select * from view_Name where 条件 (order by ...)
六, 存储过程
语法:
create proc 存储过程名称
[ {@参数数据类型}[=默认值] [output](是否输出)
{@参数数据类型}[=默认值] [output](是否输出)
{@参数数据类型}[=默认值] [output](是否输出)
--一般情况下,先声明输出参数,然后再声明输入参数
]
as
SQL语句
执行存储过程:
exec 存储过程名称参数,参数,
如果有输出参数,则要声明变量接受输出参数,输出参数在哪就在哪接受,
declare @name nvarchar(50)
exec 存储过程名称 @name output
--存储过程返回值,
create proc ss
@count int=6
as
return @count
go
declare @count int
exec @count=ss
print str(@count)
处理错误信息:
raiserror ({自定义的错误信息},{与错误信息相关联的错误级别(0-18)},{错误状态~127的值})