程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> 很全的SQL中文解釋代碼第1/2頁

很全的SQL中文解釋代碼第1/2頁

編輯:更多數據庫知識
SQL語句大全                    
                  --語 句 功 能
                  --數據操作
                  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 --描述准備好的查詢 
                  ---局部變量
                  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 秒後才執行SELECT 語句
                  waitfor delay '01:02:03'
                  select * from employee
                  --例 等到晚上11 點零8 分後才執行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關鍵字的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)
                  --------- 子查詢
                  --------- 除非能確保內層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 -------- 右外部連接

                  select stockname from table1
                  union [all] ----- union合並查詢結果集,all-保留重復行
                  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語句

                  ***update***

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

                  ***delete***

                  delete from table_name where Stockid = 3
                  truncate table_name ----------- 刪除表中所有行,仍保持表的完整性
                  drop table table_name --------------- 完全刪除表

                  ***alter table*** --- 修改數據庫表結構

                  alter table database.owner.table_name add column_name char(2) 
                  null .....
                  sp_help table_name ---- 顯示表已有特征
                  create table table_name (name char(20), age smallint, lname 
                  varchar(30))
                  insert into table_name select ......... ----- 實現刪除列的方法(創建新表)
                  alter table table_name drop constraint Stockname_default ---- 
                  刪除Stockname的default約束

                  ***function(/*常用函數*/)***

                  ----統計函數----
                  AVG --求平均值
                  COUNT --統計數目
                  MAX --求最大值
                  MIN --求最小值
                  SUM --求和

                  --AVG
                  use pangu
                  select avg(e_wage) as dept_avgWage
                  from employee
                  group by dept_id

                  --MAX
                  --求工資最高的員工姓名
                  use pangu
                  select e_name
                  from employee
                  where e_wage =
                  (select max(e_wage)
                  from employee)

                  --STDEV()
                  --STDEV()函數返回表達式中所有數據的標准差

                  --STDEVP()
                  --STDEVP()函數返回總體標准差

                  --VAR()
                  --VAR()函數返回表達式中所有值的統計變異數

                  --VARP()
                  --VARP()函數返回總體變異數 
  當前1/2頁 12下一頁閱讀全文
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved