设为首页 加入收藏

TOP

常用SQL语句收藏<二)
2015-11-21 01:57:36 来源: 作者: 【 】 浏览:0
Tags:常用 SQL 语句 收藏 <

创建下表

?

create table dbo.class_bak
(
Name  nvarchar(25) NOT NULL DEFAULT 'abc' primary key,
studentnumber int DEFAULT 0
);
insert into .class_bak (studentnumber) values(23)  :则插入的值col1的默认值就是abc.
复制一个表的结构到一个新表.
select * into class_bak from class where 1=2  :复制一个表为另一个表,如果不导数据,就将条件置为1=2即可.
显示某表的建表语句:
ORACLE: desc table_name
INFORMIX: dbschmea 
SQLSERVER:

修改:

?

?

Alter table class_bak add  monitor varchar(10)  ;:增加一列
Alter table class_bak alter COLUMN montior nvarchar(10) :修改一列
Alter table class_bak drop COLUMN monitor ;:删除一列
删除表: Drop table class_bak

?

创建索引

?

?

用于在查询数据时,加快查询速度,
create  UNIQUE  index idx1_class on class(class) 在字段class上创建唯一索引,即插入时,该字段不允许重复.名称为idx_class
insert into class (class,teacher) values('gaoer','lisi'); 此插入语句执行第二次将会失败.
删除索引: drop index idx1_class on class
索引的重新生成,重新组织:当一个表经过多次修改,插入,删除后,需要重建索引,以便以后可提高查询效率.但重建的过程是较为消耗资源的.在SCP等业务繁忙的机器上,一定要选择合适的时间段才能重建索引.
ALTER INDEX idx_class on class REBUILD
重新生成索引将会删除并重新创建索引。这将根据指定的或现有的填充因子设置压缩页来删除碎片、回收磁盘空间,然后对连续页中的索引行重新排序。 
ALTER INDEX idx_class on class REORGANIZE 
使用最少系统资源重新组织索引。 

?

索引技巧和调优: —查询语句中,对于字符串型的字段,一定要用单引号括起来,对于整型不要用引号,对于日期型的字段,目前暂无定论,是否会对性能有影响.可进一步跟踪. —尽量不要用in子句,那样的话无法使用索引,导致查询效率低下,可以改用UNION来连接多个查询.这样可以提高效率. —多个查询条件,应该将过滤多的带索引的字段的条件放在前面. —查询条件中尽量用等号,不要用大于,小于等,那样可能会用不上索引. —在全部查询出所有结果时,要求带上条件1=1,可以避免使用索引,提高效率.

创建存储过程

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
CREATE PROCEDURE [dbo].[get_avage_age] 
	-- Add the parameters for the stored procedure here
	@class_name nchar(10),
	@CheckDate [datetime]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	select avg(age) from student where class=@class_name and born<@CheckDate
    -- Insert statements for procedure here	
END

执行:
USE [gaotest]
GO

DECLARE	@return_value int

EXEC	@return_value = [dbo].[get_avage_age]
		@class_name = 'gaosan',
		@CheckDate = '2009-01-01'

SELECT	'Return Value' = @return_value
GO
删除存储过程:
Drop procedure get_avage_age;
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQL-Oracle游标 下一篇详解NoSQL数据库使用实例

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: