1. 程式人生 > >SQL server中常見的增,刪,改,查的操作

SQL server中常見的增,刪,改,查的操作

--增--
/*增加列*/
alter table 表名
add  列名 varchar(20) check(你的約束條件);

如:在學生情況表中增加一個Email列,要求檢查輸入的是否為Email;
alter table 學生情況表
add  Email varchar(20) check(Email like ('%@ %.com'));

/*增加唯一約束*/
alter table 表名
add  constraint 約束名 unique(列名)

如:對學生情況表增加約束條件,要求姓名唯一
alter table 學生情況表
add  constraint un_name unique(姓名) 

/*增加check約束*/
alter table 表名
add check(你的約束)

如:對課程表增加約束,要求學分取值範圍為1-4
alter table 學生課程表
add check(學分 between 1 and 4)

/*增加主鍵*/
這個地方要注意,你必須需要確保你設定的列不能有空值,在設定之前還先執行以下語句
(如果該列已經設定成not null了,請忽略)
alter table 表名
alter column 列名 資料型別 not null
//再執行
alter table 表名
add constraint 你自己定義的主健名 primary key (列名)

/*增加外來鍵*/
設定成外來鍵的列在主表和從表中的資料型別要一樣,從表中的資料要是在主表中的
alter table 從表名 add constraint 你自己定義的外健名 foreign key(要設定的列)
references 主表名 (要設定的列)

/*增加某一行資料*/
insert into  (表名)(列名1,列名2)
values
('00051','李明')



--刪--
/*資料庫中常用的刪除通常有兩種方式,一種是delete,一種是drop,前者不會改變結構,刪除的是內容,而drop會改變成結構,相當於清理了它的物理空間*/

如:刪除某列(刪除的不能是主健列)
alter table 學生情況表(表名)
drop column 性別(列名)


/*刪除約束*/
alter table 學生課程表
drop constraint CK__學生課程表__學分__117F9D94(約束名)


/*刪除某個表*/
drop table Student//整個表的定義,結構都沒得了

而

delete from student //刪除這個表中的內容

/*刪除檢視*/
drop view s_dept01(檢視名)



--改--
/*將teacher表學號為00001的score加一,使用update時記得指定條件,不然改的就是整個表的了/
update teacher(表名)
set score=score+1 
where sno='00001'

/**修改表名,將grade表修改成sc*/
EXEC sp_rename 'grade','SC'; 

/*修改列名**/
EXEC sp_rename ‘[原有列名]’, ‘[新列名]'  , 'COLUMN';

此外,還有改列的資料型別,這種情況比較複雜,為了避免文章篇幅長,寫在另一篇文章中

--查--

/*查個某個表*/
select* from (表名)

如果指定是表上的某些列
select 列名1,列名2  等等 from  (表名)

需要滿足哪些條件加上where
select 列名1,列名2  等等 from  (表名) 【where  (需要滿足哪些條件)】


/*查約束*/
select * from sysobjects where parent_obj in(select id from sysobjects where name='表名')

或者

exec sp_helpconstraint @objname='表名'

/*查某個表上的索引*/
exec sp_helpindex (表名)

/*查檢視*/
exec sp_helptext '檢視名'