萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> sql server教程 >> 自己整理的Transact_SQL,也許對你有幫助

自己整理的Transact_SQL,也許對你有幫助


*******************Transact_SQL********************www.come on babyiTbulo.comaAOTt

--語 句                                功 能
--數據操作
SELECT      --從數據庫表中檢索數據行和列
INSERT      --向數據庫表添加新數據行
DELETE      --從數據庫表中刪除數據行
UPDATE      --更新數據庫表中的數據
--數據定義
CREATE TABLE    --創建一個數據庫表
DROP TABLE     --從數據庫中刪除表
ALTER TABLE     --修改數據庫表結構
CREATE VIEW     --創建一個視圖
DROP VIEW     --從數據庫中刪除視圖
CREATE INDEX    --為數據庫表創建一個索引
DROP INDEX     --從數據庫中刪除索引
CREATE PROCEDURE   --創建一個存儲過程
DROP PROCEDURE    --從數據庫中刪除存儲過程
CREATE TRIGGER    --創建一個觸發器
DROP TRIGGER    --從數據庫中刪除觸發器
CREATE SCHEMA    --向數據庫添加一個新模式
DROP SCHEMA     --從數據庫中刪除一個模式
CREATE DOMAIN    --創建一個數據值域
ALTER DOMAIN    --改變域定義
DROP DOMAIN     --從數據庫中刪除一個域
--數據控制
GRANT      --授予用戶訪問權限
DENY      --拒絕用戶訪問
REVOKE      --解除用戶訪問權限
--事務控制
COMMIT      --結束當前事務
ROLLBACK     --中止當前事務
SET TRANSACTION    --定義當前事務數據訪問特征
--程序化SQL
DECLARE      --為查詢設定游標
EXPLAN      --為查詢描述數據訪問計劃
OPEN      --檢索查詢結果打開一個游標
FETCH      --檢索一行查詢結果
CLOSE      --關閉游標
PREPARE      --為動態執行准備SQL 語句
EXECUTE      --動態地執行SQL 語句
DESCRIBE     --描述准備好的查詢www.come on babyiTbulo.comaAOTt

---局部變量
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'www.come on babyiTbulo.comaAOTt

---全局變量
---必須以@@開頭www.come on babyiTbulo.comaAOTt

--IF ELSE
declare @x int @y int @z int
select @x = 1 @y = 2 @z=3
if @x > @y
 print 'x > y' --打印字符串'x > y'
else if @y > @z
 print 'y > z'
else print 'z > y'www.come on babyiTbulo.comaAOTt

--CASE
use pangu
update employee
set e_wage =
 case
  when job_level = ’1’ then e_wage*1.08
  when job_level = ’2’ then e_wage*1.07
  when job_level = ’3’ then e_wage*1.06
  else e_wage*1.05
 endwww.come on babyiTbulo.comaAOTt

--WHILE CONTINUE BREAK
declare @x int @y int @c int
select @x = 1 @y=1
while @x < 3
 begin
  print @x --打印變量x 的值
  while @y < 3
   begin
    select @c = 100*@x + @y
    print @c --打印變量c 的值
    select @y = @y + 1
   end
  select @x = @x + 1
  select @y = 1
 endwww.come on babyiTbulo.comaAOTt

--WAITFOR
--例 等待1 小時2 分零3 秒後才執行SELECT 語句
waitfor delay ’01:02:03’
select * from employee
--例 等到晚上11 點零8 分後才執行SELECT 語句
waitfor time ’23:08:00’
select * from employeewww.come on babyiTbulo.comaAOTt

 www.come on babyiTbulo.comaAOTt

***SELECT***www.come on babyiTbulo.comaAOTt

   select *(列名) from table_name(表名) where column_name operator value
   ex:(宿主)
  select * from stock_information where stockid   = str(nid)
     stockname = 'str_name'
     stockname like '% find this %'
     stockname like '[a-zA-Z]%' --------- ([]指定值的范圍)
     stockname like '[^F-M]%'   --------- (^排除指定范圍)
     --------- 只能在使用like關鍵字的where子句中使用通配符)
     or stockpath = 'stock_path'
     or stocknumber < 1000
     and stockindex = 24
     not stocksex = 'man'
     stocknumber between 20 and 100
     stocknumber in(10,20,30)
     order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
     order by 1,2 --------- by列號
     stockname = (select stockname from stock_information  where stockid  = 4)
     --------- 子查詢
     --------- 除非能確保內層select只返回一個行的值,
     --------- 否則應在外層where子句中用一個in限定符
  select distinct column_name form table_name --------- distinct指定檢索獨有的列值,不重復
  select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
  select stockname , "stocknumber" = count(*) from table_name group by stockname
                                      --------- group by 將表按行分組,指定列中有相同的值
          having count(*) = 2  ---------  having選定指定的組
       
  select *
  from table1, table2                 
  where table1.id *= table2.id -------- 左外部連接,table1中有的而table2中沒有得以null表示
     table1.id =* table2.id -------- 右外部連接 www.come on babyiTbulo.comaAOTt

  select stockname from table1
  union [all]  -----  union合並查詢結果集,all-保留重復行
  select stockname from table2www.come on babyiTbulo.comaAOTt

***insert***www.come on babyiTbulo.comaAOTt

  insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
              value (select Stockname , Stocknumber from Stock_table2)---value為select語句www.come on babyiTbulo.comaAOTt

***update***www.come on babyiTbulo.comaAOTt

  update table_name set Stockname = "xxx" [where Stockid = 3]
         Stockname = default
         Stockname = null
         Stocknumber = Stocknam

copyright © 萬盛學電腦網 all rights reserved