SQL語句大全 --語 句 功 能 --數(shù)據(jù)操作 SELECT --從數(shù)據(jù)庫表中檢索數(shù)據(jù)行和列 INSERT --向數(shù)據(jù)庫表添加新數(shù)據(jù)行 DELETE --從數(shù)據(jù)庫表中刪除數(shù)據(jù)行 UPDATE --更新數(shù)據(jù)庫表中的數(shù)據(jù) --數(shù)據(jù)定義 CREATE TABLE --創(chuàng)建一個數(shù)據(jù)庫表 DROP TABLE --從數(shù)據(jù)庫中刪除表 ALTER TABLE --修改數(shù)據(jù)庫表結(jié)構(gòu) CREATE VIEW --創(chuàng)建一個視圖 DROP VIEW --從數(shù)據(jù)庫中刪除視圖 CREATE INDEX --為數(shù)據(jù)庫表創(chuàng)建一個索引 DROP INDEX --從數(shù)據(jù)庫中刪除索引 CREATE PROCEDURE --創(chuàng)建一個存儲過程 DROP PROCEDURE --從數(shù)據(jù)庫中刪除存儲過程 CREATE TRIGGER --創(chuàng)建一個觸發(fā)器 DROP TRIGGER --從數(shù)據(jù)庫中刪除觸發(fā)器 CREATE SCHEMA --向數(shù)據(jù)庫添加一個新模式 DROP SCHEMA --從數(shù)據(jù)庫中刪除一個模式 CREATE DOMAIN --創(chuàng)建一個數(shù)據(jù)值域 ALTER DOMAIN --改變域定義 DROP DOMAIN --從數(shù)據(jù)庫中刪除一個域 --數(shù)據(jù)控制 GRANT --授予用戶訪問權(quán)限 DENY --拒絕用戶訪問 REVOKE --解除用戶訪問權(quán)限 --事務(wù)控制 COMMIT --結(jié)束當(dāng)前事務(wù) ROLLBACK --中止當(dāng)前事務(wù) SET TRANSACTION --定義當(dāng)前事務(wù)數(shù)據(jù)訪問特征 --程序化SQL DECLARE --為查詢設(shè)定游標(biāo) EXPLAN --為查詢描述數(shù)據(jù)訪問計劃 OPEN --檢索查詢結(jié)果打開一個游標(biāo) FETCH --檢索一行查詢結(jié)果 CLOSE --關(guān)閉游標(biāo) PREPARE --為動態(tài)執(zhí)行準(zhǔn)備SQL 語句 EXECUTE --動態(tài)地執(zhí)行SQL 語句 DESCRIBE --描述準(zhǔn)備好的查詢 ---局部變量 declare @id char(10) --set @id = '10010001' select @id = '10010001' ---全局變量 ---必須以@@開頭
--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'
--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 end
--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 end
--WAITFOR --例 等待1 小時2 分零3 秒后才執(zhí)行SELECT 語句 waitfor delay '01:02:03' select * from employee --例 等到晚上11 點零8 分后才執(zhí)行SELECT 語句 waitfor time '23:08:00' select * from employee
***SELECT***
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關(guān)鍵字的where子句中使用通配符) or stockpath = 'stock_path' or stocknumber 1000 and stockindex = 24 not stock*** = '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) --------- 子查詢 --------- 除非能確保內(nèi)層select只返回一個行的值, --------- 否則應(yīng)在外層where子句中用一個in限定符 select distinct column_name form table_name --------- distinct指定檢索獨有的列值,不重復(fù) 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 -------- 右外部連接
select stockname from table1 union [all] ----- union合并查詢結(jié)果集,all-保留重復(fù)行 select stockname from table2
***insert***
insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx") value (select Stockname , Stocknumber from Stock_table2)---value為select語句