天天看點

SQL 基礎複習SQL 基礎複習

可能有遺漏的部分,隻是找了一下常用的、基礎的吧!(都是老師指導有方!)

一、簡單查詢

1、查詢所有資料,查詢部分列資料,列别名    SELECT * FROM Stutb    SELECT Column1 as 'ID','Topic'=Column2,Column3 FORM  Stutb

2、查詢不重複的資料,    SELECT DISTINCT SID,Column2 FROM Stutb

3、查詢前n行資料    SELECT TOP n PERCENT Column1,Column2 FROM Stutb

4、過濾行 (AND/OR/NOT)(NOT BETWEEN AND/BETWEEN ...AND...)          

(LIKE'%'/'_'/'[0-9]')

(IS NULL/IS NOT NULL)

(IN(Values1,Values2,Values3))

 運算符:比較運算符、邏輯運算符、範圍運算符、清單運算符、模式比對符、空值判斷符   

SELECT Column1,Column2 FROM Stutb WHERE ...

 5、排序   

SELECT Column1,Column2,Column3 FROM Stutb

ORDER BY Column1 asc/desc,Column2 asc/desc

 二、函數

 1、字元串函數:substring(expression,start,length)、  str(float_expression,[length,[decimal]])

 2、日期函數:getdate()、dateadd(datepart,number,date)、   Datediff(datepart,date1,date2)、       Year(date)、Month(date)、Day(date)

 3、數學函數:round(numeric_exp,length)

 4、轉換函數:convert(datatype [(length)],expression[,style])

5、次序函數:row_number()、Rank()、dense_rank()//排名      

6、Isnull函數:isnull(Column1,Values1)

7、集合函數:min(Column1),max,sum,avg,count     

三、分組    

分組過濾    

SELECT SID,Name,COUNT(*) FROM Stutb WHERE...     GROUP BY SID,Name     HAVING...

四、連接配接

1、内連接配接  

 SELECT  A.Column1,B.Column2 FROM Stutb a    [INNER] JOIN Coursetb b ON A.SID=B.SID

2、外連接配接:左外連接配接、右外連接配接、全外連接配接   

SELECT A.Column1,B.Column2 FROM Stutb a  left|right|full    [OUTER] JOIN Coursetb b on a.sid=b.sid

五、子查詢   

 [not] in  //多值    

 [not] exists   //是否存在     比較運算符引出的子查詢 //單值(>、<、=)      

  SELECT Column1,Column2 FROM Stutb     WHERE SID IN(SELECT SID FROM Coursetb)

 SELECT Column1,Column2 FROM Stutb     WHERE EXISTS(SELECT SID FROM Coursetb)

六、建庫建表 

1、建庫  CREATE DATABASE StuDB (*.mdf/*.ldf)   /DROPDATABASE StuDB

2、建表  CREATE TABLE StuTB                   /DROPTABLE StuTB       

( Column1 ColumnType (size) null/not null Primary Key check(),   

  Column2 ColumnType null/not null Unique ,           

  Column3 ColumnType null/not null Default 10,

  Column4 ColumnType Foreign Key ID References CourseTb (CID)        

 )                  

 ALTER TABLE Stutb          Add         

 ALTER TABLE Stutb          Alter Column         

 ALTER TABLE Stutb          Drop  Column      

3、操作表資料   

 INSERT [INTO] StuTB (Column1,Column2,Column3) VALUES(Values1,Values2, Values3)   

 注意:自動增長列不應在清單中   

 UPDATE StuTB Set Column1=Values1,Column2=Values2 WHERE SID=id   

 DELETE FROM StuTB WHERE SID=id

七、資料完整性

constraint 

references

1、Primary key 主鍵

2、Foreign key 外鍵  REFERENCES  表名(列名)

3、Unique 唯一限制

4、Check  檢查限制

5、Default 預設值限制

八、視圖   

 CREATE VIEW View_Name    AS    SELECT * FROM Stutb  

九、索引(簇索引/非簇索引)

CREATE INDEX Index_Name    ON Stutb (Column1,Column2)(為非簇索引,主鍵為簇索引)

十、存儲過程   

 CREATE PROC GetInfor   

@SID char(4),   

@SName char(20),   

@SAge int output   

 AS    SELECT * FROM Stutb       //return 數值(傳回值)

 DECLARE @Age int       

 EXEC GetInfor @sid,@sname,output @sage    

十一、事務

四個特性:

1. 原子性(Atomicity)

2. 一緻性(Consitency)

3. 隔離性(Isolation)

4.永久性(Durability)

begin transation

commit transaction

rollback transaction

save transaction

十二、觸發器

create trigger trigger_name      

on {table | view}         

[with encryption]         

{ for | after | instead of}

{[insert][,][update][,][delete]}        

as

{            sql_statement          

本文轉自SanMaoSpace部落格園部落格,原文連結:http://www.cnblogs.com/SanMaoSpace/archive/2011/11/02/2233485.html,如需轉載請自行聯系原作者