它是很困難的。因此,為安全起見,你應該預測一下,一個字段所需要存儲的數值最大有可能是多大,然後選擇適當的數據類型。
NUMERIC
為了能對字段所存放的數據有更多的控製,你可以使用NUMERIC型數據來同時表示一個數的整數部分和小數部分。NUMERIC型數據使你能表示非常大的數——比INT型數據要大得多。一個NUMERIC型字段可以存儲從-1038到1038範圍內的數。NUMERIC型數據還使你能表示有小數部分的數。例如,你可以在NUMERIC型字段中存儲小數3.14。
當定義一個NUMERIC型字段時,你需要同時指定整數部分的大小和小數部分的大小。如:NUMERIC(23,0)
一個NUMERIC型數據的整數部分最大隻能有28位,小數部分的位數必須小於或等於整數部分的位數,小數部分可以是零。
MONEYVSSMALLMONEY
你可以使用INT型或NUMERIC型數據來存儲錢數。但是,專門有另外兩種數據類型用於此目的。如果你希望你的網點能掙很多錢,你可以使用MONEY型數據。如果你的野心不大,你可以使用SMALLMONEY型數據。MONEY型數據可以存儲從-922,337,203,685,477.5808到922,337,203,685,477.5807的錢數。如果你需要存儲比這還大的金額,你可以使用NUMERIC型數據。
SMALLMONEY型數據隻能存儲從-214,748.3648到214,748.3647的錢數。同樣,如果可以的話,你應該用SMALLMONEY型來代替MONEY型數據,以節省空間。
邏輯型
BIT
如果你使用複選框(CHECKBOX)從網頁中搜集信息,你可以把此信息存儲在BIT型字段中。BIT型字段隻能取兩個值:0或1。
日期型
DATETIMEVSSMALLDATETIME(SqlServer)
一個DATETIME型的字段可以存儲的日期範圍是從1753年1月1日第一毫秒到9999年12月31日最後一毫秒。如果你不需要覆蓋這麼大範圍的日期和時間,你可以使用SMALLDATETIME型數據。它與DATETIME型數據同樣使用,隻不過它能表示的日期和時間範圍比DATETIME型數據小,而且不如DATETIME型數據精確。一個SMALLDATETIME型的字段能夠存儲從1900年1月1日到2079年6月6日的日期,它隻能精確到秒。DATETIME型的字段用8個字節存儲日期時間值,而SMALLDATETIME型的字段隻使用4個字節存儲精確到1分鐘的日期時間。
DATETIME型字段在你輸入日期和時間之前並不包含實際的數據,認識這一點是重要的。
安全問題
由於SQL指令在部份進階使用時,語法會依照特定條件來變換,而且若是表格中的字段過多時,許多開發人員都會習慣以字串組立的方式建立SQL指令,而且又使用係統管理員級的帳戶連到數據庫,因此讓黑客有機會利用SQL的組立方式進行攻擊,像是在指令中添加部份刺探性或破壞性的指令(例如DROPTABLE、DROPDATABASE或是DELETE*FROMmyTable等具破壞性的指令),讓數據庫的資料或實體服務器被破壞,導致服務中斷或是係統癱瘓等後果,此種攻擊手法稱為SQL注入(SQLInjection)。目前實務上較有效的防禦方法,就是全麵改用參數化查詢,或是檢查輸入數據,過濾掉可能的危險指令或數據來防範。
SQL查詢語句精華使用簡要
簡單的Transact-SQL查詢隻包括選擇列表、FROM子句和WHERE子句。它們分別說明所查詢列、查詢的表或視圖、以及搜索條件等。
例如,下麵的語句查詢testtable表中姓名為“張三”的nickname字段和email字段。
SELECTnickname,email
FROMtesttable
WHEREname='張三'
(一)選擇列表
選擇列表(select_list)指出所查詢列,它可以是一組列名列表、星號、表達式、變量(包括局部變量和全局變量)等構成。
1、選擇所有列
例如,下麵語句顯示testtable表中所有列的數據:
SQL
SELECT*
請到𝐨𝐨𝐩.𝐭𝐰查看完整章節
SQLFROMtesttable
2、選擇部分列並指定它們的顯示次序
查詢結果集合中數據的排列順序與選擇列表中所指定的列名排列順序相同。
例如:
SELECTnickname,email
FROMtesttable
題標列改更、3
:為式格義定。題標列定指新重可,中表列擇選在
)revreSlqS(名列=題標列
題標列名列
:題標列示顯字漢用使句語列下,如例,符界定號引用使應,時式格符識標的準標是不題標列的定指果如
liame=件郵子電,emankcin=稱昵TCELES
elbattsetMORF
行複重除刪、4
。行一留保隻中合集果結的回返TCELES在行據數的複重有所於對,時項選TCNITSID用使。LLA為認默,行據數的複重中其除刪或行有所的件條合符中表示顯來項選TCNITSID或LLA用使中句語TCELES
數行的回返製限、5
。幾之分百的數行總於等數行的回返定指,數分百一示表是n明說,時TNECREPnPOT而,行n回返明說nPOT,)revreSlqS(數行據數的回返製限項選]TNECREP[nPOT用使
:如例
*2POTTCELES
elbattsetMORF
*TNECREP02POTTCELES
elbattsetMORF
句子MORF)二(
RF