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()函數返回總體變異數
----算術函數----
/***三角函數***/
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()?--函數返回被替換了指定子串的字符串
/*select?replace('abc123g',?'123',?'def')
運行結果如下
-----------?-----------
abcdefg*/
SPACE()?--函數返回一個有指定長度的空白字符串
STUFF()?--函數用另一子串替換字符串指定位置長度的子串
----數據類型轉換函數----
CAST()?函數語法如下
CAST()?(<expression>?AS?<data_?type>[?length?])
CONVERT()?函數語法如下
CONVERT()?(<data_?type>[?length?],?<expression>?[,?style])
select?cast(100+99?as?char)?convert(varchar(12),?getdate())
轉載于:https://www.cnblogs.com/longcheng2012/archive/2012/11/13/2768343.html
總結
以上是生活随笔為你收集整理的SQL语句大全(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bash 的环境配置文件
- 下一篇: 巧妙喝水打败多种疾病(节选)