日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Transact SQL 常用语句以及函数

發(fā)布時(shí)間:2025/5/22 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Transact SQL 常用语句以及函数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Transact 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)建一個(gè)數(shù)據(jù)庫表?
      DROP?TABLE?--從數(shù)據(jù)庫中刪除表?
      ALTER?TABLE?--修改數(shù)據(jù)庫表結(jié)構(gòu)?
      CREATE?VIEW?--創(chuàng)建一個(gè)視圖?
      DROP?VIEW?--從數(shù)據(jù)庫中刪除視圖?
      CREATE?INDEX?--為數(shù)據(jù)庫表創(chuàng)建一個(gè)索引?
      DROP?INDEX?--從數(shù)據(jù)庫中刪除索引?
      CREATE?PROCEDURE?--創(chuàng)建一個(gè)存儲(chǔ)過程?
      DROP?PROCEDURE?--從數(shù)據(jù)庫中刪除存儲(chǔ)過程?
      CREATE?TRIGGER?--創(chuàng)建一個(gè)觸發(fā)器?
      DROP?TRIGGER?--從數(shù)據(jù)庫中刪除觸發(fā)器?
      CREATE?SCHEMA?--向數(shù)據(jù)庫添加一個(gè)新模式?
      DROP?SCHEMA?--從數(shù)據(jù)庫中刪除一個(gè)模式?
      CREATE?DOMAIN?--創(chuàng)建一個(gè)數(shù)據(jù)值域?
      ALTER?DOMAIN?--改變域定義?
      DROP?DOMAIN?--從數(shù)據(jù)庫中刪除一個(gè)域?

  
--數(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ù)訪問計(jì)劃?
      OPEN?--檢索查詢結(jié)果打開一個(gè)游標(biāo)?
      FETCH?--檢索一行查詢結(jié)果?
      CLOSE?--關(guān)閉游標(biāo)?
      PREPARE?--為動(dòng)態(tài)執(zhí)行準(zhǔn)備SQL?語句?
      EXECUTE?--動(dòng)態(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?小時(shí)2?分零3?秒后才執(zhí)行SELECT?語句?

  
waitfor?delay?’01:02:03’?
      
select?*?from?employee?

    
--例?等到晚上11?點(diǎn)零8?分后才執(zhí)行SELECT?語句?

    
waitfor?time?’23:08:00’?


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?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)?
    ?
---------?子查詢?
    ?---------?除非能確保內(nèi)層select只返回一個(gè)行的值?
    ?---------?否則應(yīng)在外層where子句中用一個(gè)in限定符?
    ?select?distinct?column_name?form?table_name?
  ?
---------?distinct指定檢索獨(dú)有的列值,不重復(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語句  ?

  ?
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?--------?修改數(shù)據(jù)庫表結(jié)構(gòu)  ?

  ?
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?--------?實(shí)現(xiàn)刪除列的方法(創(chuàng)建新表)?
  ?alter?table?table_name?drop?constraint?Stockname_default?
  ?
---------?刪除Stockname的default約束?




常用函數(shù)(
function)  ?

????轉(zhuǎn)換函數(shù)

????
convert(數(shù)據(jù)類型,值,格式)

  統(tǒng)計(jì)函數(shù)?

  
AVG?--求平均值?
  COUNT?--統(tǒng)計(jì)數(shù)目?
  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()函數(shù)返回表達(dá)式中所有數(shù)據(jù)的標(biāo)準(zhǔn)差?
  --STDEVP()?
  --STDEVP()函數(shù)返回總體標(biāo)準(zhǔn)差  ?

  
VAR()?

  
--VAR()函數(shù)返回表達(dá)式中所有值的統(tǒng)計(jì)變異數(shù)  ?

  
VARP()?

  
--VARP()函數(shù)返回總體變異數(shù)  ?

  算術(shù)函數(shù)  ?

  三角函數(shù)?

  
SIN(float_expression)?--返回以弧度表示的角的正弦?
  COS(float_expression)?--返回以弧度表示的角的余弦?
  TAN(float_expression)?--返回以弧度表示的角的正切?
  COT(float_expression)?--返回以弧度表示的角的余切?

  反三角函數(shù)?

  
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)?
  ?
------把弧度轉(zhuǎn)換為角度返回與表達(dá)式相同的數(shù)據(jù)類型可為?
  ?------INTEGER/MONEY/REAL/FLOAT?類型?
  RADIANS(numeric_expression)?
------把角度轉(zhuǎn)換為弧度返回與表達(dá)式相同的數(shù)據(jù)類型可為?

  ?
------INTEGER/MONEY/REAL/FLOAT?類型?
  EXP(float_expression)?--返回表達(dá)式的指數(shù)值?
  LOG(float_expression)?--返回表達(dá)式的自然對數(shù)值?
  LOG10(float_expression)--返回表達(dá)式的以10?為底的對數(shù)值?
  SQRT(float_expression)?--返回表達(dá)式的平方根?

  取近似值函數(shù)?

  
CEILING(numeric_expression)?
-------返回>=表達(dá)式的最小整數(shù)返回的數(shù)據(jù)類型與表達(dá)式相同可為?
  ?-------INTEGER/MONEY/REAL/FLOAT?類型?
  FLOOR(numeric_expression)?
-------返回<=表達(dá)式的最小整數(shù)返回的數(shù)據(jù)類型與表達(dá)式相同可為?
  ?-------INTEGER/MONEY/REAL/FLOAT?類型?
  ROUND(numeric_expression)?
-------返回以integer_expression?為精度的四舍五入值返回的數(shù)據(jù)?
  ?-------類型與表達(dá)式相同可為INTEGER/MONEY/REAL/FLOAT?類型?
  ABS(numeric_expression)?
-------返回表達(dá)式的絕對值返回的數(shù)據(jù)類型與表達(dá)式相同可為?
  ?-------INTEGER/MONEY/REAL/FLOAT?類型?
  SIGN(numeric_expression)?
-------測試參數(shù)的正負(fù)號返回0?零值1?正數(shù)或-1?負(fù)數(shù)返回的數(shù)據(jù)類型?
  ?-------與表達(dá)式相同可為INTEGER/MONEY/REAL/FLOAT?類型?
  PI()?-------返回值為π?即3.1415926535897936?
  RAND([integer_expression])?
-------用任選的[integer_expression]做種子值得出0-1?間的隨機(jī)浮點(diǎn)數(shù)


字符串函數(shù)?

  
ASCII()?------函數(shù)返回字符表達(dá)式最左端字符的ASCII?碼值?
  CHAR()?------函數(shù)用于將ASCII?碼轉(zhuǎn)換為字符?
  ?------如果沒有輸入0?~?255?之間的ASCII?碼值CHAR?函數(shù)會(huì)返回一個(gè)NULL?值?
  LOWER()?------函數(shù)把字符串全部轉(zhuǎn)換為小寫?
  UPPER()?------函數(shù)把字符串全部轉(zhuǎn)換為大寫?
  STR()?------函數(shù)把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)?
  LTRIM()?------函數(shù)把字符串頭部的空格去掉?
  RTRIM()?------函數(shù)把字符串尾部的空格去掉?
  LEFT(),RIGHT(),SUBSTRING()?--函數(shù)返回部分字符串?
  CHARINDEX(),PATINDEX()?--函數(shù)返回字符串中某個(gè)指定的子串出現(xiàn)的開始位置?
  SOUNDEX()?------函數(shù)返回一個(gè)四位字符碼?
  ?------SOUNDEX函數(shù)可用來查找聲音相似的字符串但SOUNDEX函數(shù)對數(shù)字和漢字均只返回0?值?
  DIFFERENCE()?------函數(shù)返回由SOUNDEX?函數(shù)返回的兩個(gè)字符表達(dá)式的值的差異?
  ?------0?兩個(gè)SOUNDEX?函數(shù)返回值的第一個(gè)字符不同?
  ?------1?兩個(gè)SOUNDEX?函數(shù)返回值的第一個(gè)字符相同?
  ?------2?兩個(gè)SOUNDEX?函數(shù)返回值的第一二個(gè)字符相同?
  ?------3?兩個(gè)SOUNDEX?函數(shù)返回值的第一二三個(gè)字符相同?
  ?------4?兩個(gè)SOUNDEX?函數(shù)返回值完全相同同?
  QUOTENAME()?------函數(shù)返回被特定字符括起來的字符串?

  
/**//*select?quotename('abc',?'{')?quotename('abc')?
  運(yùn)行結(jié)果如下?

  {?
  {abc}?[abc]
*/
?
  
REPLICATE()?------函數(shù)返回一個(gè)重復(fù)character_expression?指定次數(shù)的字符串?
  /**//*select?replicate('abc',?3)?replicate(?'abc',?-2)?

  運(yùn)行結(jié)果如下?

  abcabcabc?NULL
*/
?
  
REVERSE()?------函數(shù)將指定的字符串的字符排列順序顛倒?
  REPLACE()?------函數(shù)返回被替換了指定子串的字符串?
  /**//*select?replace('abc123g',?'123',?'def')?

  運(yùn)行結(jié)果如下?
  ?
  abcdefg
*/
  ?

  
SPACE()?------函數(shù)返回一個(gè)有指定長度的空白字符串?
  STUFF()?------函數(shù)用另一子串替換字符串指定位置長度的子串  ?

  數(shù)據(jù)類型轉(zhuǎn)換函數(shù)?

  
CAST()?函數(shù)語法如下?
  
CAST()?(?AS?[?length?])?
  
CONVERT()?函數(shù)語法如下?
  
CONVERT()?([?length?],?[,?style])?
  
select?cast(100+99?as?char)?convert(varchar(12),?getdate())?

  運(yùn)行結(jié)果如下?
  
199?Jan?15?2000 ?

  日期函數(shù)?

  
DAY()?------函數(shù)返回date_expression?中的日期值?
  MONTH()?------函數(shù)返回date_expression?中的月份值?
  YEAR()?------函數(shù)返回date_expression?中的年份值?
  DATEADD(?,?,)?
  ?
-----函數(shù)返回指定日期date?加上指定的額外日期間隔number?產(chǎn)生的新日期?
  DATEDIFF(?,?,)?
  ?
-----函數(shù)返回兩個(gè)指定日期在datepart?方面的不同之處?

  
DATENAME(?,??------函數(shù)以字符串的形式返回日期的指定部分?
  DATEPART(?,??------函數(shù)以整數(shù)值的形式返回日期的指定部分?
  GETDATE()?------函數(shù)以DATETIME?的缺省格式返回系統(tǒng)當(dāng)前的日期和時(shí)間  ?

  系統(tǒng)函數(shù)?

  
APP_NAME()?------函數(shù)返回當(dāng)前執(zhí)行的應(yīng)用程序的名稱?
  COALESCE()?-----函數(shù)返回眾多表達(dá)式中第一個(gè)非NULL?表達(dá)式的值?
  COL_LENGTH(<'table_name'>,?<'column_name'>?----函數(shù)返回表中指定字段的長度值?
  COL_NAME(,??----函數(shù)返回表中指定字段的名稱即列名?
  DATALENGTH()?-----函數(shù)返回?cái)?shù)據(jù)表達(dá)式的數(shù)據(jù)的實(shí)際長度?
  DB_ID(['database_name'])?------函數(shù)返回?cái)?shù)據(jù)庫的編號?
  DB_NAME(database_id)?------函數(shù)返回?cái)?shù)據(jù)庫的名稱?
  HOST_ID()?-----函數(shù)返回服務(wù)器端計(jì)算機(jī)的名稱?
  HOST_NAME()?-----函數(shù)返回服務(wù)器端計(jì)算機(jī)的名稱?
  IDENTITY([,?seed?increment])?[AS?column_name])?
  ?
--IDENTITY()?函數(shù)只在SELECT?INTO?語句中使用用于插入一個(gè)identity?column列到新表中?
  /**//*select?identity(int,?1,?1)?as?column_name?
  ?into?newtable?
  ?from?oldtable
*/
?

  
ISDATE()?----函數(shù)判斷所給定的表達(dá)式是否為合理日期?
  ISNULL(,??--函數(shù)將表達(dá)式中的NULL?值用指定值替換?
  ISNUMERIC()?----函數(shù)判斷所給定的表達(dá)式是否為合理的數(shù)值?
  NEWID()?----函數(shù)返回一個(gè)UNIQUEIDENTIFIER?類型的數(shù)值?
  NULLIF(,??
  ?
----NULLIF?函數(shù)在expression1?與expression2?相等時(shí)返回NULL?值若不相等時(shí)則返回xpression1?的值?

轉(zhuǎn)載于:https://www.cnblogs.com/bluedy1229/archive/2007/06/26/796680.html

總結(jié)

以上是生活随笔為你收集整理的Transact SQL 常用语句以及函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。