1. 程式人生 > >T_SQL與子查詢的一些用法

T_SQL與子查詢的一些用法

 

  • T_SQL
    1. 定義變數:(區域性變數)
      1. Declare @變數名 資料型別
    2. 系統變數:(全域性變數)
      1. 以@@變數名  開始
    3. 賦值
      1. Set @變數名 = ‘我是值’
      2. Select @變數名 = ‘我是值’
    4. 獲取值
      1. Select @變數名
    5. 變數的作用域:
      1. 在結束符go之前裡面,就是go~go之間

 

  • T_SQL條件判斷語句
    1. If……else……語句
      1. 語法:
        • If(條件)

Begin

SQL語句

End

 

例如:

If exists (select * from sys.databases where name = ‘資料庫名’)

Begin

Drop database ‘資料庫名’

End

 

  1. 資料型別的轉換
    1. 關鍵字:convert
    2. 語法:convert(int,’列名’,style), 第一個引數是資料型別,第二個引數是要轉換的列名,第三個引數是規定時間、日期輸出的格式;
  2. while迴圈:
    1. While(條件)

Begin

sql語句

End

例如:

Declare @i int

Set @i = 5

While(@i<10)

Begin

Print @i

Set @i = @i + 1

End

 

  1. case……when……then……語句
    1. 語法:

Select *,case 列名 when 0 then ‘男’

When 1 then ‘女’

End

From student

這樣寫的話是在表後面新增一列,如果是想查詢出來的資料只有‘男’與‘女’

需要這樣寫

Select name,age,address,case 列名 when 0 then ‘男’

When 1 then ‘女’

End

From student

就是將0與1的那一列沒有查詢出來,用case語句代替了

注意:不要忘記end,如果條件中存在中文,最好是用if……else……;這裡只是查詢出來的資料,表的本質是沒有變的

  1. 函式isnull()用於處理空值
    1. 第一個引數就是列名,第二個引數是將該列中的空值替換成的字元

例如:

      •  

Select * from where isnull(name,’’) = zz;

      •  

Select 8 from where name = ‘zz’

 

第一種寫法比第二種寫法好些,第一種寫法可以將null轉換成空字串在判斷,為什麼只有自己去用來才能夠體會

  1. 子查詢:將查詢出來的結果當作其他查詢語句的條件
    1. 標量值:當只有條件只有只有一個值時,用where進行篩選時,可以用”=”進行判斷
    2. In與not in :就是當條件有多個值時就用這個

例如;

Select * from student  where stuno in (1,2,3,4)

查詢學生學號為1,2,3,4的學生資訊

    1. Exists 與 not exists
      • 使用場景,子查詢結果結果較大時與有索引時

例如:

Select * from student as stu  where  exists  (select * from class as cla where  stu.stuid = cla.classid)

查詢學生ID與班級裡學生ID相同的學生資訊

 

 

  • 檢視
    1. 建立檢視

Create view  檢視名

As

SQL語句

Go

檢視名以V_開頭

作用:提高程式碼的重用率

 

當檢視建立好後就可以將該檢視當作物理表來用