程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 常用 SQL 語句大全

常用 SQL 語句大全

編輯:.NET實例教程

語 句 功 能
--數據操作

  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’

$False$

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()***

  ----統計函數----

  ***G --求平均值

  COUNT --統計數目

  MAX --求最大值

  MIN --求最小值

  SUM --求和  --***G 

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()函數返回總體變異數

  ----算術函數----

  SIN(float_expression) --返回以弧度表示的角的正弦

  COS(float_expression) --返回以弧度表示的角的余弦

  TAN(float_expression) --返回以弧度表示的角的正切

  COT(float_expression) --返回以弧度表示的角的余切

 


  ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角

  ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角

  ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角

  ATAN2(float_expression1,float_expression2)

  --返回正切是float_expression1 /float_expres-sion2的以弧度表示的角

  DEGREES(numeric_expression)

  --把弧度轉換為角度返回與表達式相同的數據類型可為

  --INTEGER/MONEY/REAL/FLOAT 類型

  RADIANS(numeric_expression) --把角度轉換為弧度返回與表達式相同的數據類型可為

  --INTEGER/MONEY/REAL/FLOAT 類型

  EXP(float_expression) --返回表達式的指數值

  LOG(float_expression) --返回表達式的自然對數值

  LOG10(float_expression)--返回表達式的以10 為底的對數值

  SQRT(float_expression) --返回表達式的平方根

  

  CEILING(numeric_expression) --返回>=表達式的最小整數返回的數據類型與表達式相同可為

  --INTEGER/MONEY/REAL/FLOAT 類型

  FLOOR(numeric_expression) --返回<=表達式的最小整數返回的數據類型與表達式相同可為

  --INTEGER/MONEY/REAL/FLOAT 類型

  ROUND(numeric_expression) --返回以integer_expression 為精度的四捨五入值返回的數據

  --類型與表達式相同可為INTEGER/MONEY/REAL/FLOAT 類型

  ABS(numeric_expression) --返回表達式的絕對值返回的數據類型與表達式相同可為

  --INTEGER/MONEY/REAL/FLOAT 類型

  SIGN(numeric_expression) --測試參數的正負號返回0 零值1 正數或-1 負數返回的數據類型

  --與表達式相同可為INTEGER/MONEY/REAL/FLOAT 類型

  PI() --返回值為π 即3.1415926535897936

  RAND([integer_expression]) --用任選的[integer_expression]做種子值得出0-1 間的隨機浮點數

----字符串函數----
  ASCII() --函數返回字符表達式最左端字符的ASCII 碼值

  CHAR() --函數用於將ASCII 碼轉換為字符

  --如果沒有輸入0 ~ 255 之間的ASCII 碼值CHAR 函數會返回一個NULL 值

  LOWER() --函數把字符串全部轉換為小寫

  UPPER() --函數把字符串全部轉換為大寫

  STR() --函數把數值型數據轉換為字符型數據

  LTRIM() --函數把字符串頭部的空格去掉

  RTRIM() --函數把字符串尾部的空格去掉

  LEFT(),RIGHT(),SUBSTRING() --函數返回部分字符串

  CHARINDEX(),PATINDEX() --函數返回字符串中某個指定的子串出現的開始位置

  SOUNDEX() --函數返回一個四位字符碼

  --SOUNDEX函數可用來查找聲音相似的字符串但SOUNDEX函數對數字和漢字均只返回0 值

  DIFFERENCE() --函數返回由SOUNDEX 函數返回的兩個字符表達式的值的差異

  --0 兩個SOUNDEX 函數返回值的第一個字符不同

  --1 兩個SOUNDEX 函數返回值的第一個字符相同

  --2 兩個SOUNDEX 函數返回值的第一二個字符相同

  --3 兩個SOUNDEX 函數返回值的第一二三個字符相同

  --4 兩個SOUNDEX 函數返回值完全相同

 

 QUOTENAME() --函數返回被特定字符括起來的字符串 
select quotename(''abc'', ''{'') quotename(''abc'')


  運行結果如下

  ----------------------------------{

  {abc} [abc]*/

  REPLICATE() --函數返回一個重復character_expression 指定次數的字符串

  以下是引用片段: 

select replicate(''abc'', 3) replicate( ''abc'', -2)


  運行結果如下

  ----------- -----------

  abcabcabc NULL*/

  REVERSE() --函數將指定的字符串的字符排列順序顛倒

  REPLACE() --函數返回被替換了指定子串的字符串

  

  SPACE() --函數返回一個有指定長度的空白字符串

  STUFF() --函數用另一子串替換字符串指定位置長度的子串

 

----數據類型轉換函數----
  CAST() 函數語法如下 

CAST() ( AS [ length ])


  CONVERT() 函數語法如下 

CONVERT() ([ length ], [, style])
 

select cast(100+99 as char) convert(varchar(12), getdate())


  運行結果如下

  ------------------------------ ------------

  199 Jan 15 2000

  ----日期函數----

  DAY() --函數返回date_expression 中的日期值

  MONTH() --函數返回date_expression 中的月份值

  YEAR() --函數返回date_expression 中的年份值

  DATEADD( , ,)

  --函數返回指定日期date 加上指定的額外日期間隔number 產生的新日期

  DATEDIFF( , ,)

  --函數返回兩個指定日期在datepart 方面的不同之處

  DATENAME( , ) --函數以字符串的形式返回日期的指定部分

  DATEPART( , ) --函數以整數值的形式返回日期的指定部分

  GETDATE() --函數以DATETIME 的缺省格式返回系統當前的日期和時間

 

----系統函數----
  APP_NAME() --函數返回當前執行的應用程序的名稱

  COALESCE() --函數返回眾多表達式中第一個非NULL 表達式的值


  COL_LENGTH(<''table_name''>, <''column_name''>) --函數返回表中指定字段的長度值

  COL_NAME(, ) --函數返回表中指定字段的名稱即列名

  DATALENGTH() --函數返回數據表達式的數據的實際長度

  DB_ID([''database_name'']) --函數返回數據庫的編號

  DB_NAME(database_id) --函數返回數據庫的名稱

  HOST_ID() --函數返回服務器端計算機的名稱

  HOST_NAME() --函數返回服務器端計算機的名稱

  IDENTITY([, seed increment]) [AS column_name])

  --IDENTITY() 函數只在SELECT INTO 語句中使用用於插入一個identity column列到新表中 


  ISDATE() --函數判斷所給定的表達式是否為合理日期

  ISNULL(, ) --函數將表達式中的NULL 值用指定值替換

  ISNUMERIC() --函數判斷所給定的表達式是否為合理的數值

  NEWID() --函數返回一個UNIQUEIDENTIFIER 類型的數值

  NULLIF(, )

  --NULLIF 函數在expression1 與expression2 相等時返回NULL 值若不相等時則返回expression1 的值

 

sql中的保留字
  action add aggregate all

  alter after and as

  asc avg avg_row_length auto_increment

  between bigint bit binary

  blob bool both by

  cascade case char character

  change check checksum column

  columns comment constraint create

  cross current_date current_time current_timestamp

  data database databases date

  datetime day day_hour day_minute

  day_second dayofmonth dayofweek dayofyear

  dec decimal default delayed

  delay_key_write delete desc describe

  distinct distinctrow double drop

  end else escape escaped

  enclosed enum explain exists

  fIElds file first float

  float4 float8 flush foreign

  from for full function

  global grant grants group

  having heap high_priority hour

  hour_minute hour_second hosts identifIEd

  ignore in index infile

  inner insert insert_id int

  integer interval int1 int2

  int3 int4 int8 into

  if is isam join

  key keys kill last_insert_id

  leading left length like

  lines limit load local

  lock logs long longblob

  longtext low_priority max max_rows

  match mediumblob mediumtext mediumint

  middleint min_rows minute minute_second

  modify month monthname myisam

 

natural numeric no not
  null on optimize option

  optionally or order outer

  outfile pack_keys partial passWord

  precision primary procedure process

  processlist privileges read real

  references reload regexp rename

  replace restrict returns revoke

  rlike row rows second

  select set show shutdown

  smallint soname sql_big_tables sql_big_selects

  sql_low_priority_updates sql_log_off sql_log_update sql_select_limit

  sql_small_result sql_big_result sql_warnings straight_join

  starting status string table

  tables temporary terminated text

  then time timestamp tinyblob

  tinytext tinyint trailing to

  type use using unique

  unlock unsigned update usage

  values varchar variables varying

  varbinary with write when

  where year year_month zerofill 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved