創建下表
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
使用最少系統資源重新組織索引。
創建存儲過程
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;