SQL92标准
轉(zhuǎn)載地址:https://blog.csdn.net/yrp_ssdut/article/details/38511229
————數(shù)據(jù)操作
select——從數(shù)據(jù)庫表中檢索數(shù)據(jù)行和列
按日期條件查詢時:select * from table where T < "12/8/2014"
insert——向數(shù)據(jù)庫表中添加新數(shù)據(jù)行
delete——從數(shù)據(jù)庫表中刪除數(shù)據(jù)行
update———更新數(shù)據(jù)庫表中的數(shù)據(jù)
?
————數(shù)據(jù)定義
create table ——創(chuàng)建一個數(shù)據(jù)庫表
drop table ——從數(shù)據(jù)庫中刪除表
alter table ——修改數(shù)據(jù)庫表結(jié)構(gòu)
?
create view ——創(chuàng)建一個視圖
drop view ——從數(shù)據(jù)庫中刪除視圖
?
create index ——為數(shù)據(jù)庫表創(chuàng)建一個索引
drop index ——從數(shù)據(jù)庫表中刪除索引
?
create procedure ——創(chuàng)建一個存儲過程
drop procedure ——從數(shù)據(jù)庫中刪除存儲過程
?
create trigger ——創(chuàng)建一個觸發(fā)器
drop trigger ——從數(shù)據(jù)庫中刪除觸發(fā)器
?
create schema ——向數(shù)據(jù)庫中添加一個新模式
drop schema ———從數(shù)據(jù)庫中刪除一個模式
?
create domain ——創(chuàng)建一個數(shù)據(jù)值域
alter domin ——改變域定義
drop domin ——從數(shù)據(jù)庫中刪除一個域
?
————數(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ù)訪問計劃
open ——檢索查詢結(jié)果打開一個游標(biāo)
fetch ——檢索一行查詢結(jié)果
close ——關(guān)閉游標(biāo)
prepare ——為動態(tài)執(zhí)行準(zhǔn)備SQL語句
execute ——動態(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'--打印字符串
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
while @y<3
begin?
select @c = 100*@x+@y
print @c
select @y=@y+1
end
select @x=@x+1
select @y=1
end
?
————Waitfor
waitfor delay '01:02:03' ? ?--等待1小時2分零3秒后才執(zhí)行select語句
select * from employee
?
waitfor time '23:08:00' --等到晚上11點零8分后才執(zhí)行select語句
select * from employee
?
—————Select
select * from stock_information where stockid=str(nid)
stockname = 'str_name'
stockname like '% find this %'
stockname like '[a-zA-Z]%' ?--[]指定值得范圍
stockname like '[^F-M]' ? --^排除指定范圍
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)
--子查詢除非能確保內(nèi)層select只返回一個行的值,否則應(yīng)在外層where子句中用一個in限定符
?
select distinct column_name from table_name ?--distinct指定檢索獨有的列值,不重復(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表示
select stockname from table1 union[all] --union合并查詢結(jié)果集,all保留重復(fù)行
?
————Insert
insert into table_name(Stock_name,stock_number) value("xxx","xxxx")
value(select Stockname,Stocknumber from Stock_table2)
?
————Update
update table_name set Stockname = "xxx"?
where Stokid =3
Stockname=default
Stockname=null
Stocknumber = Stockname +4
?
————Delete
delete from table_name where Stockid=3
truncate table_name ----刪除表中所有行,依然保持表的完整性
drop table table_name ----完全刪除表
?
————alter
alter table database.owner.table_name add column_name char(2) null...
sp_help table_name--顯示表已有特征?
?
————常用函數(shù)
————統(tǒng)計函數(shù)
avg --求平均值
count --統(tǒng)計數(shù)目
max --求最大值
min --求最小值
sum --求和--avg
?
--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)計變異數(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_expression2的以弧度表示的角
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 間的隨機浮點數(shù)
?
————字符串函數(shù)
ASCII() --函數(shù)返回字符表達(dá)式最左端字符的ASCII 碼值
CHAR() --函數(shù)用于將ASCII 碼轉(zhuǎn)換為字符
--如果沒有輸入0 ~ 255 之間的ASCII 碼值CHAR 函數(shù)會返回一個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ù)返回字符串中某個指定的子串出現(xiàn)的開始位置
SOUNDEX() --函數(shù)返回一個四位字符碼
--SOUNDEX函數(shù)可用來查找聲音相似的字符串但SOUNDEX函數(shù)對數(shù)字和漢字均只返回0 值
DIFFERENCE() --函數(shù)返回由SOUNDEX 函數(shù)返回的兩個字符表達(dá)式的值的差異
--0 兩個SOUNDEX 函數(shù)返回值的第一個字符不同
--1 兩個SOUNDEX 函數(shù)返回值的第一個字符相同
--2 兩個SOUNDEX 函數(shù)返回值的第一二個字符相同
--3 兩個SOUNDEX 函數(shù)返回值的第一二三個字符相同
--4 兩個SOUNDEX 函數(shù)返回值完全相同
QUOTENAME() --函數(shù)返回被特定字符括起來的字符串
REPLICATE() --函數(shù)返回一個重復(fù)character_expression 指定次數(shù)的字符串
REVERSE() --函數(shù)將指定的字符串的字符排列順序顛倒
REPLACE() --函數(shù)返回被替換了指定子串的字符串
?
select quotename('abc','{') quotename('abc')
運行結(jié)果如下:
----------------------------------------------
{abc} ?[abc]
?
select replicate('abc',3) replicate('abc',-2)
運行結(jié)果如下:
—----------------------------------------------
abcabcabc ?NULL
?
select replace('abc123g','123','def')
運行結(jié)果如下:
-----------------------------------------------
abcdefg
?
————數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
cast()函數(shù)語法如下:
cast() (<expression> as <data_type>[length])
CONVERT() 函數(shù)語法如下:
CONVERT() (<data_ type>[ length ], <expression> [, style])
?
select cast(100+99 as char) convert(varchar(12), getdate())
運行結(jié)果如下:
————————----------------------------------------------————————————————
199 Jan 15 2000
?
————日期函數(shù)
DAY() --函數(shù)返回date_expression 中的日期值
MONTH() --函數(shù)返回date_expression 中的月份值
YEAR() --函數(shù)返回date_expression 中的年份值
DATEADD(<datepart> ,<number> ,<date>)
--函數(shù)返回指定日期date 加上指定的額外日期間隔number 產(chǎn)生的新日期
DATEDIFF(<datepart> ,<number> ,<date>)
--函數(shù)返回兩個指定日期在datepart 方面的不同之處
DATENAME(<datepart> , <date>) --函數(shù)以字符串的形式返回日期的指定部分
DATEPART(<datepart> , <date>) --函數(shù)以整數(shù)值的形式返回日期的指定部分
GETDATE() --函數(shù)以DATETIME 的缺省格式返回系統(tǒng)當(dāng)前的日期和時間
?
————系統(tǒng)函數(shù)
APP_NAME() --函數(shù)返回當(dāng)前執(zhí)行的應(yīng)用程序的名稱
COALESCE() --函數(shù)返回眾多表達(dá)式中第一個非NULL 表達(dá)式的值
COL_LENGTH(<'table_name'>, <'column_name'>) --函數(shù)返回表中指定字段的長度值
COL_NAME(<table_id>, <column_id>) --函數(shù)返回表中指定字段的名稱即列名
DATALENGTH() --函數(shù)返回數(shù)據(jù)表達(dá)式的數(shù)據(jù)的實際長度
DB_ID(['database_name']) --函數(shù)返回數(shù)據(jù)庫的編號
DB_NAME(database_id) --函數(shù)返回數(shù)據(jù)庫的名稱
HOST_ID() --函數(shù)返回服務(wù)器端計算機的名稱
HOST_NAME() --函數(shù)返回服務(wù)器端計算機的名稱
?
————IDENTITY(<data_type>[, seed increment]) [AS column_name])
--IDENTITY() 函數(shù)只在SELECT INTO 語句中使用,用于插入一個identity column列到新表中
?
/*select identity(int, 1, 1) as column_name
into newtable
from oldtable*/
ISDATE() --函數(shù)判斷所給定的表達(dá)式是否為合理日期
ISNULL(<check_expression>, <replacement_value>) --函數(shù)將表達(dá)式中的NULL 值用指定值替換
ISNUMERIC() --函數(shù)判斷所給定的表達(dá)式是否為合理的數(shù)值
NEWID() --函數(shù)返回一個UNIQUEIDENTIFIER 類型的數(shù)值
NULLIF(<expression1>, <expression2>)
--NULLIF 函數(shù)在expression1 與expression2 相等時返回NULL 值若不相等時則返回expression1 的值sql中的保留字
總結(jié)
- 上一篇: Java课程设计-基于Swing的文本编
- 下一篇: openmp 互斥锁 mysql_Ope