【正文】
icosoft和Minisoft的站點也將被匹配。用這兩個函數(shù),你可以去掉無用的空格,從而解決這個問題。要看一看一個表的索引在數(shù)據(jù)庫中所占的空間大小,你可以使用系統(tǒng)存儲過程sp_spaceused,對象名指定為被索引的表名。 聚簇索引非常象目錄表,目錄表的順序與實際的頁碼順序是一致的。你也可以對一個表同時建立聚簇索引和非聚簇索引。當你希望同時對不止一個字段進行查詢時,你應(yīng)該建立一個對多個字段的索引。在oracle中直接用索引名(drop index mycolumn_index)即可。INSERT 語句的完整句法如下:INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT VALUES | Values_list | select_statement}如果一個表有多個字段,通過把字段名和字段值用逗號隔開,你可以向所有的字段中插入數(shù)據(jù)。這是因為變量identity總是保存最后一次插入標識字段的值。對所有被選中的記錄,字段first_column的值被置為’Updated!’。例如,下面的語句創(chuàng)建了一個名為newtable的新表,該表包含表mytable的所有數(shù)據(jù):SELECT * INTO newtable FROM mytable你也可以指定只有特定的字段被用來創(chuàng)建這個新表。創(chuàng)建好該表后,你就可以結(jié)合使用UPDATE語句和SELECT 語句,把原來表中的所有數(shù)據(jù)拷貝到新表中。要作到這一點,你需要把INSERT 語句與SELECT 語句結(jié)合起來,象這樣:INSERT mytable (first_colun,second_column)SELECT another_first,another_secondFROM anothertableWHERE another_first=’Copy Me!’’Copy Me!’的記錄才被拷貝。也就是說,這意味著TRUNCATE TABLE 要比DELETE快得多。你會收到錯誤信息:The column in table mytable may not be null.■ 最后,如果該字段是一個標識字段,那么它會自動產(chǎn)生一個新值。在一個復(fù)合索引中,你最多可以對16個字段進行索引。這是個非聚簇索引,也是個非唯一索引。 你可以對多個字段建立一個復(fù)合索引,甚至是復(fù)合的聚簇索引。如果你想取出在一定時間段內(nèi)的登錄信息,你應(yīng)該對這個表的DATETIME型字段建立聚簇索引。每個頁都把記錄分成更小的分割,直至到達葉級頁。因此沒有理由對需要頻繁查詢的表增加索引。函數(shù)LTRIM()去除應(yīng)該字符串前面的所有空格;函數(shù)RTRIM()去除一個字符串尾部的所有空格。如果該函數(shù)返回4,表示發(fā)音非常相近;如果該函數(shù)返回0,說明這兩個字符串的發(fā)音相差很大。例如,用下面的這個查詢,你可以取出那些首字母在C到F之間,或者以字母Y開頭的站點:SELECT site_name FROM site_directory WHERE site_name LIKE ‘[CFY]%’在這個例子中,名字為Collegescape和Yahoo的站點會被選取,而名字為Magicw3的站點則不會被選取。當然,如果一個站點的描述中包含I am trading cardboard boxes online ,該站點的名字也被返回。第二個變量指定了要進行轉(zhuǎn)換的字段?,F(xiàn)在假設(shè)你只想取出對你的站點投了1或者10的訪問者的名字。字段purchase_amount的數(shù)據(jù)類型也許是MONEY型,但你也可以對其它數(shù)值型字段使用函數(shù)SUM()。函數(shù)COUNT()在很多不同情況下是有用的。函數(shù)COUNT()也許是最有用的集合函數(shù)。Where name Like %影%要對表中的任何類型的數(shù)據(jù)進行統(tǒng)計,都需要使用集合函數(shù)。關(guān)鍵字DISTINCT 決定了只有互不相同的值才被計算。你把投票結(jié)果保存在名為vote的INT型字段中。你將學習如何從表中取出數(shù)據(jù),其某個字段的值處在一定的范圍,你還將學習如何把字段值從一種類型轉(zhuǎn)換成另一種類型,如何操作字符串和日期時間數(shù)據(jù)。SQL Sever足夠強大,可以在需要的時候把大部分數(shù)值從一種類型轉(zhuǎn)換為另一種類型。要取出正確的站點列表,你也許試圖使用這樣的查詢:SELECT site_name FROM site_directory WHERE site_desc=’trading card’這個查詢可以工作。要得到第一頁的站點列表,你可以使用如下的SQL語句:SELECT site_name FROM site_directory WHERE site_name LIKE ‘[AM]%’在這個例子中使用了表達式[AM],只取出那些首字母在A到M之間的站點。如果你想匹配方括號,應(yīng)把它們也括在方括號中。你還可以發(fā)現(xiàn)Microsoft和Macrosoft的音標碼完全相同。 修改表字段類型:alter table test modify(name varchar(38))。 首先,把書翻到大概一半的地方,如果要找的頁碼比半本書處的頁碼小,就書翻到四分之一處,否則,就把書翻到四分之三的地方。 通常情況下,你使用的是聚簇索引,但是你應(yīng)該對兩種類型索引的優(yōu)缺點都有所理解。 非聚簇索引需要大量的硬盤空間和內(nèi)存。假設(shè)你用一個表來保存你的網(wǎng)點的用戶密碼,你當然不希望兩個用戶有相同的密碼。你應(yīng)該盡量避免在一個表中出現(xiàn)重復(fù)記錄,但是,如果已經(jīng)出現(xiàn)了,你可以使用這種方法。要了解更多的信息,請參考Microsoft SQL Sever 的文檔。你可以給DELETE 語句提供WHERE 子句。如果你不提供WHERE子句,表中的所有記錄都將被更新。例如,如果你向一個表中添加了一個字段,沒有容易的辦法來去除它。但是,使用本節(jié)中講述的SQL語句,你可以繞過這兩個問題。例如,如果你想把表titles中的所有書的價格加倍,你可以使用如下的UPDATE 語句:你也可以同時更新多個字段。例如,下面的這個DELETE語句只刪除字段first_column的值等于’Delete Me’的記錄:DELETE mytable WHERE first_column=’Deltet Me’DELETE 語句的完整句法如下: DELETE [FROM] {table_name|view_name} [WHERE clause]在SQL SELECT 語句中可以使用的任何條件都可以在DELECT 語句的WHERE子句 中使用。在這種情況下,有下面的四種可能:■ 如果該字段有一個缺省值,該值會被使用。對聚簇索引和非聚簇索引都可以使用這個關(guān)鍵字。 為了給一個表建立索引,啟動任務(wù)欄SQL Sever程序組中的ISQL/w程序。每當你改變了一個建立了非聚簇索引的表中的數(shù)據(jù)時,必須同時更新索引。通常你要對一個表按照標識字段建立聚簇索引。這是找到書頁的非常有效的一種方法。你可以一頁一頁地逐頁搜索,但這會花很多時間。該函數(shù)忽略任何元音字母(包括y),除非一個元音字母是一個字符串的第一個字母。函數(shù)SOUNDEX()給一個字符串分配一個音標碼,函數(shù)DIFFERENCE()按照發(fā)音比較兩個字符串。要得到第二頁中顯示的站點,應(yīng)使用這個語句:SELECT site_name FROM site_directory WHERE site_name LIKE ‘[NZ]%’在這個例子中,括號中的表達式代表任何處在N到Z之間的單個字符。例如,一個描述為We have the greatest collection of trading cards in the world!的站點不會被返回。SQL Sever會為你完成這項工作。通過匹配一定范圍的值來取出數(shù)據(jù)假設(shè)你有一個表用來保存對你的站點進行民意調(diào)查的結(jié)果。函數(shù)AVG()只能對數(shù)值型字段使用。一般來說,這正是你所希望的。你可以統(tǒng)計記錄數(shù)目,平均值,最小值,最大值,或者求和。Like [CK]% 返回以C或者K開始的任意字符串Like br% 返回以Br開始的任意字符串[^] 不在指定范圍內(nèi)的任意單個字符通配符 描述這個例子是返回含“影”的任意字符串。要作到這一點,你可以在SELECT語句中,在集合函數(shù)后面緊跟一個字段名,如下例所示:SELECT AVG(vote) ‘the_average’ FROM opinion在這個例子中,vote的平均值被命名為 the_average。這個語句計算表中所有記錄所數(shù)目,包括有空值的記錄。假設(shè)有一個名為orders的表用來記錄所有訪問者的定購信息。你使用下面的SELECT 語句也可以得到同樣的結(jié)果:SELECT username FROM opinion WHERE vote BETWEEN 7 AND 10這個SELECT 語句與上一個語句是等價的。你需要使用函數(shù)CONVERT(),如下例所示:SELECT CONVERT(CHAR(8),price)+’US Dollars’ FROM orders函數(shù)CONVERT()帶有兩個變量。下面的語句使用通配符和關(guān)鍵字LIKE重寫了上面的查詢,以返回所有正確站點的名字:SELECT SITE_name FROM site_directory WHERE site_desc LIKE ‘%trading cark%’ 在這個例子中,所有其描述中包含表達式trading card的站點都被返回。任何一個其名字以這些字符中的任一個開頭的站點都將被返回??紤]如下的語句:SELECT site_name FROM si