1.浮點型常用numeric,用法 numeric(m,n),m代表連上小數字總共有多少位(即這個浮點數的總位數),n代表小數點後的位數。如果省略n寫成numeric(m)可以表示整數。float也有一種用法,float(n),其中n是浮點數的精度。
2.isnull(列名,整數n)函式,他的作用是當該列為null時返回整數n。
3.identity(m,n),自增函式.
從m開始,每次自增1。
用個例子展示。
首先要插入一條資料
insert into test (testname,testpass) values('zhang','bin')
然後一直用下面這個,他可以使當前資料翻一倍。當資料更新時,我們不用管testid這一列,他會自增。
insert into test (testname,testpass) select testname,testpass from test
完整**為:
--identity(1,1),表示該testid欄位自增,從1,每次+1
create table test(
testid int primary key identity(1,1),
testname varchar(30),
testpass varchar(30))
insert into test (testname,testpass) values('zhang','bin')
insert into test (testname,testpass) select testname,testpass from test
結果如下:
我們可以用這種方法快速使資料庫的資料量變得非常大,用這種方法來測自己**的效率。
4.分頁查詢,當資料量過大時,用單頁查詢非常耗時,而用分頁就可以減輕電腦負擔。我們還用第3題的表,要求test表按照id排序,取出其中的第6-10條記錄。子查詢查詢的資料量越大,他相較於單頁查詢效率高的優勢就越能體現出來。
select top 5 * from test where testid not in
(select top 5 testid from test)
結果如下:
5.default約束,設定列的預設值。當某一列沒有插入值時,他會自動填充值,如果使用者插入了值,那麼他會優先按使用者插入的值。
create table mes(
mesid int primary key identity(1,1),
mescon varchar(50) not null,
mesdate datetime default getdate())
insert into mes (mescon) values('**** you!')
insert into mes (mescon,mesdate) values('you such a *****!','2010-10-01')
select * from mes
執行結果如下:
幾個SQL小知識
原文 幾個sql小知識 寫在前面的話 之前做的乙個專案,資料庫及系統整體構架設計完成之後,和弟兄們經過一段時間的編碼,系統如期上線,剛開始執行一切良好,後來隨著資料量的急劇膨脹,慢慢出現了很多莫名其妙的問題,經過除錯,修改了資料庫中幾個儲存過程的一些問題。有意思的是,有乙個儲存過程裡,為了實現乙個小...
推薦幾個SQL小知識
寫在前面的話 之前做的乙個專案,資料庫及系統整體構架設計完成之後,和弟兄們經過一段時間的編碼,系統如期上線,剛開始執行一切良好,後來隨著資料量的急劇膨脹,慢慢出現了很多莫名其妙的問題,經過除錯,修改了資料庫中幾個儲存過程的一些問題。有意思的是,有乙個儲存過程裡,為了實現乙個小的功能,寫了好多好多的 ...
sql 小知識點
1.group 用法 很多時候我們需要分組函式來統計資料,在此過程中因為業務問題可能會用到別名,此時sql可能會寫成如下樣子 select a.fee reserveas fee other,count 1 as count no from t expenses bill a group by a....