SQL – 2.SQLServer的管理 + 3.SQL基礎1 + 4.SQL基礎2

來源:互聯網
上載者:User

SQLServer的管理

  • 常用欄位類型:bit(可選值0、1)、datetime、int、varchar、nvarchar(可能含有中文用nvarchar)
  • varchar、nvarchar 和char(n)的區別: char(n)不足長度n的部分用空格填充。Var:Variable,可變的。

 

 

 


SQL語句入門

  • SQL語句中字串用單引號
  • SQL語句是大小寫不敏感的。
  • 建立表、刪除表不僅可以手工完成,還可以執行SQL陳述式完成,在自動化部署、資料匯入中用的很多,

CREATE TABLE 表名稱

(

列名稱1 資料類型,

列名稱2 資料類型,

列名稱3 資料類型,

....

)

CREATE TABLE T_Person(Id int NOT NULL,Name nvarchar(50),Age int NULL)

Drop table T_Person1

  • 簡單的Insert語句。INSERT INTO T_Person(Id,Name,Age) VALUES(1,'Jim',20)
  • (*) SQL主要分DDL(資料定義語言 (Data Definition Language))和DML(資料操作語言)兩類。Create TableDrop TableAlter Table等屬於DDLSelectInsertUpdateDelete等屬於DML

 

 


主鍵選擇-自動標識和GUID

SQLServer中兩種常用的主鍵資料類型:int(或bigint)+識別欄位(又稱自動成長欄位);uniqueidentifier(又稱GuidUUID

SQLServer中產生GUID的函數newid(),.Net中產生Guid的方法:Guid.NewGuid(),返回是Guid類型。

   

 

 

 

 

 

 


資料更新(UPDATE 表名稱 SET 列名稱)

  • 更新一個列:UPDATE T_Person Set Age=30
  • 更新多個列: UPDATE T_Person Set Age=30,Name=‘tom’
  • 更新一部分資料: UPDATE T_Person Set Age=30 where Name=‘tom’,用where語句表示只更新Name是’tom’的行,注意SQL中等於判斷用單個=,而不是==。
  • Where中還可以使用複雜的邏輯判斷UPDATE T_Person Set Age=30 where Name=‘tom’ or Age<25,or相當於C#中的||(或者)
  • update Person1 set NickName=N'二十歲' where (Age>20 and Age<30) or(Age=80)
  • Where中可以使用的其他邏輯運算子:or、and、not、<、
    >、>=、<=、!=(或<>)等

 

 


資料刪除(DELETE FROM 表名稱 WHERE 列名稱 = 值)

  • 刪除表中全部資料:DELETE FROM T_Person
  • Delete只是刪除資料,表還在,和Drop Table不同。
  • Delete 也可以帶where子句來刪除一部分資料:
    DELETE FROM T_Person WHERE FAge > 20 

 

 


資料檢索(select)

  • 簡單的資料檢索 :SELECT * FROM T_Employee
  • 還可以檢索不與任何錶關聯的資料:select 1+1;select newid();select getdate();

 

 


資料匯總(彙總函式的使用)

  • SQL彙總函式:MAX(最大值)、MIN(最小值)、AVG(平均值)、SUM (和)、COUNT(數量)
  • 大於25歲的員工的最高工資 :SELECT MAX(FSalary) FROM T_Employee WHERE FAge>25
  • 最低工資和最高工資:SELECT MIN(FSalary),MAX(FSalary) FROM  T_Employee

 

 


資料排序(order by)

  • ORDER BY子句位於SELECT語句的末尾,它允許指定按照一個列或者多個列進行排序,還可以指定排序方式是升序(從小到大排列,ASC)還是降序(從大到小排列,DESC)。
  • 按照年齡升序排序所有員工資訊的列表:
    SELECT * FROM  T_Employee ORDER BY FAge ASC
  • 按照年齡從大到小排序,如果年齡相同則按照工資從大到小排序 :
    SELECT * FROM  T_Employee ORDER BY FAge DESC,FSalary DESC
  • ORDER BY子句要放到WHERE子句之後 :SELECT * FROM T_Employee WHERE FAge>23 ORDER BY FAge DESC,FSalary DESC

 

 


萬用字元過濾

  • 萬用字元過濾使用LIKE 。單字元匹配的萬用字元為半形底線“_”,它匹配單個出現的字元。以任一字元開頭,剩餘部分為“erry” :
    SELECT * FROM T_Employee WHERE FName LIKE '_erry'
  • 多字元匹配的萬用字元為半形百分比符號“%”,它匹配任意次數(零或多個)出現的任一字元。 “k%”匹配以“k”開頭、任意長度的字串。檢索姓名中包含字母“n”的員工資訊 :
    SELECT * FROM T_Employee WHERE FName LIKE '%n%'

 

 


空值處理

  • 資料庫中,一個列如果沒有指定值,那麼值就為null,這個null和C#中的null,資料庫中的null表示“不知道”,而不是表示沒有。因此select null+1結果是null,因為“不知道”加1的結果還是“不知道”。
  • SELECT * FROM T_Employee WHERE FNAME=null ; 
    SELECT * FROM T_Employee WHERE FNAME!=null ;
    都沒有任何返回結果,因為資料庫也“不知道”。
  • SQL中使用is nullis not null來進行空值判斷:
    SELECT * FROM T_Employee WHERE FNAME is null ;
    SELECT * FROM T_Employee WHERE FNAME is not null ;

 

 


多值匹配

  • SELECT FAge,FNumber,FName FROM T_Employee WHERE FAge IN (23,25,28)
  • 範圍值:SELECT * FROM T_Employee WHERE FAGE>=23 AND FAGE <=27 ;
    SELECT * FROM T_Employee WHERE FAGE BETWEEN 23 AND 27 ;
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.