SQL的链接、视图、事物、储存过程…
2014-08-22 10:06
344 查看
【SQL】
1、内置函数——>帮助文档
2、链接:
--内链接,查询所有产品,并显示产品名称。
select product.*,classify.Name as 产品类别名称 from product
inner join classify on classify.Number=product.CategoryNumber;
select product.*,classify.Name as 产品类别名称 from product
, classify where classify.Number=product.CategoryNumber;
--左外链接(取左表中全部内容,右表若不符合,用null填充)
select product.*,classify.Name as 产品类别名称 from product
left join classify on classify.Number=product.CategoryNumber;
--右外链接(取右表中全部内容,左表若不符合,用null填充)
select product.*,classify.Name as 产品类别名称 from product
right join classify on classify.Number=product.CategoryNumber;
--查询编号为1的产品,所属的类别名称.
select product.Number as 编号,classify.Name as 产品类别名称 from product
inner join classify on classify.Number=product.CategoryNumber where product.Number=1;
--子查询
select name from classify where Number=(select CategoryNumber from product where Number=1);
--查询编号为/2/4的产品,所属的类别名称.
select name from classify where Number in (select CategoryNumber from product where Number=1 or Number=2 or Number=4);
3、视图
--视图,不是真正的表,是一个虚拟的表,存储一句SQL语句;
--好处:简化操作;提升安全性.
create view myview
as
select * from EMP;
select ename from myview;
drop view myview
4、事物
--事物,一致性(所有语句要成功都成功,要失败都失败),持久性(一旦commit或者rollback都是持久的),
--原子性(事物中所有语句都是整体,不可再分割),隔离性(当事物执行后,其中所有语句将不再受外界干扰)
begin tran
--开始事物
select * from EMP;
update EMP set sal=sal+1000 where empno=7369
rollback
--回滚事物
commit
--正式生效
5、存储过程:一组已经预编译好的SQL语句
--创建存储过程
--执行存储过程
create proc myproc
exec myproc;
as
select * from EMP;
--------------------------------------------------------------------------------------
--创建存储过程
create proc myproc
as
begin tran
update EMP set sal=sal+1000
if @@ERROR=0 --全局变量,sql-server自动管理。
begin
rollback
end
else
begin
commit
end
--执行存储过程
exec myproc;
select * from EMP;
----------------------------------------------------------------------------------------
--带参数存储过程
alter proc myproc
@myempno int
as
select * from EMP where empno=@myempno
--执行存储过程
exec myproc 7499;
6、索引:优点:提高查询效率。缺点:占据一定的数据空间,增删改效率减慢。
聚集索引:主键索引,创建主键后,会自动创建聚集索引。因此用where查询尽量使用主键,提高查询效率。
非聚集索引: 唯一索引:
创建索引:create index
7、触发器:create trigger 优点:联动 缺点:自动执行无法观察。
1、内置函数——>帮助文档
2、链接:
--内链接,查询所有产品,并显示产品名称。
select product.*,classify.Name as 产品类别名称 from product
inner join classify on classify.Number=product.CategoryNumber;
select product.*,classify.Name as 产品类别名称 from product
, classify where classify.Number=product.CategoryNumber;
--左外链接(取左表中全部内容,右表若不符合,用null填充)
select product.*,classify.Name as 产品类别名称 from product
left join classify on classify.Number=product.CategoryNumber;
--右外链接(取右表中全部内容,左表若不符合,用null填充)
select product.*,classify.Name as 产品类别名称 from product
right join classify on classify.Number=product.CategoryNumber;
--查询编号为1的产品,所属的类别名称.
select product.Number as 编号,classify.Name as 产品类别名称 from product
inner join classify on classify.Number=product.CategoryNumber where product.Number=1;
--子查询
select name from classify where Number=(select CategoryNumber from product where Number=1);
--查询编号为/2/4的产品,所属的类别名称.
select name from classify where Number in (select CategoryNumber from product where Number=1 or Number=2 or Number=4);
3、视图
--视图,不是真正的表,是一个虚拟的表,存储一句SQL语句;
--好处:简化操作;提升安全性.
create view myview
as
select * from EMP;
select ename from myview;
drop view myview
4、事物
--事物,一致性(所有语句要成功都成功,要失败都失败),持久性(一旦commit或者rollback都是持久的),
--原子性(事物中所有语句都是整体,不可再分割),隔离性(当事物执行后,其中所有语句将不再受外界干扰)
begin tran
--开始事物
select * from EMP;
update EMP set sal=sal+1000 where empno=7369
rollback
--回滚事物
commit
--正式生效
5、存储过程:一组已经预编译好的SQL语句
--创建存储过程
--执行存储过程
create proc myproc
exec myproc;
as
select * from EMP;
--------------------------------------------------------------------------------------
--创建存储过程
create proc myproc
as
begin tran
update EMP set sal=sal+1000
if @@ERROR=0 --全局变量,sql-server自动管理。
begin
rollback
end
else
begin
commit
end
--执行存储过程
exec myproc;
select * from EMP;
----------------------------------------------------------------------------------------
--带参数存储过程
alter proc myproc
@myempno int
as
select * from EMP where empno=@myempno
--执行存储过程
exec myproc 7499;
6、索引:优点:提高查询效率。缺点:占据一定的数据空间,增删改效率减慢。
聚集索引:主键索引,创建主键后,会自动创建聚集索引。因此用where查询尽量使用主键,提高查询效率。
非聚集索引: 唯一索引:
创建索引:create index
7、触发器:create trigger 优点:联动 缺点:自动执行无法观察。
相关文章推荐
- SQL必知必会(五) 使用视图、使用储存过程、管理事务处理、使用游标、高级SQL特性
- Sql语句导出数据库表结构及查询表视图储存过程名
- SQL7.0储存过程调试
- Microsoft SQL Server 7.0储存过程调试指南
- SQL获取所有数据库名、表名、储存过程以及参数列表
- SQL获取所有数据库名、表名、储存过程以及参数列表
- sql查询表结构,过程,视图,主键,外键,约束
- 一个不错的SQL储存过程分页,储存过程+Repeater,如果只是浏览数据的话,快就一个字
- [转koumi]一个高效率SQL储存过程分页,执行效率测试通过500万以上的数据
- SQL获取所有数据库名、表名、储存过程以及参数列表
- WF中的跟踪服务(1):Sql跟踪数据库表,视图,存储过程等相关说明
- ORACLE动态sql在存储过程中出现表或视图不存在的解决方法
- sql常用系统储存过程 - addlogin
- Sqlserver检测存储过程、视图、sql是否正确
- 一个不错的SQL储存过程分页,储存过程+Repeater,如果只是浏览数据的话,快就一个字
- SQL获取所有数据库名、表名、储存过程以及参数列表
- 自定义分页控件用于DataGrid(使用SQL储存过程)
- SQL 存储过程和视图有什么关系?
- db2 在储存过程中如何实现纯动态查询sql?
- SQL获取所有数据库名、表名、储存过程以及参数列表