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

2022-03-20 14:13:19 字數 2263 閱讀 6422

--增--

/*增加列*/

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 '檢視名'

SQL SERVER 中常見的高可用方案

資料庫環境 sql server 2005 1 replication,我們常用的是transactional replication。可以支援單向和雙向的資料同步。工作在table level。由於基於transaction,內部使用了類似snapshot鏈出改變頁的方法 他的同步單位較小,在實踐...

Sql server儲存過程中常見游標迴圈用法

用游標,和while可以遍歷您的查詢中的每一條記錄並將要求的字段傳給變數進行相應的處理 declare a1varchar 10 a2 varchar 10 a3 intdeclare youcurname cursor forselect a1,a2,a3 from youtablename op...

Sql server儲存過程中常見游標迴圈用法

原文 sql server儲存過程中常見游標迴圈用法 用游標,和while可以遍歷您的查詢中的每一條記錄並將要求的字段傳給變數進行相應的處理 declare a1varchar 10 a2 varchar 10 a3 intdeclare youcurname cursor forselect a1...