Transact SQL 常用语句以及函数
生活随笔
收集整理的這篇文章主要介紹了
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?的值?
========================================================================
--數(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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】Photoshop网站设计:Des
- 下一篇: linux cmake编译源码,linu