freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

wifaaasql語(yǔ)句教程(編輯修改稿)

2024-09-01 18:36 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 是這個(gè) SQL 句含蓋好幾個(gè)不同的表格時(shí)。 接下來(lái)我們看第三行,就是 WHERE 子句。這是我們闡述連接條件的地方。在這里,我們要確認(rèn) Geography 表格中 store_name 欄位的值與 Store_Information 表格中 store_name 欄位的值是相等的。這個(gè) WHERE 子句是一個(gè)連接的靈魂人物,因?yàn)樗慕巧谴_定兩個(gè)表格之間的連接是正確的。如果 WHERE 子句是錯(cuò)誤的,我們就極可能得到一個(gè)笛卡兒連接 (Cartesian join)。笛卡兒連接會(huì)造成我們得到所有兩個(gè)表格每?jī)尚兄g所有可能的組合。在這個(gè)例子中,笛卡兒連接會(huì)讓我們得到 4 x 4 = 16 行的結(jié)果。 外部鏈接之前我們看到的左連接 (left join),又稱內(nèi)部連接 (inner join)。在這個(gè)情況下,要兩個(gè)表格內(nèi)都有同樣的值,那一筆資料才會(huì)被選出。那如果我們想要列出一個(gè)表格中每一筆的資料,無(wú)論它的值在另一個(gè)表格中有沒(méi)有出現(xiàn),那該怎么辦呢?在這個(gè)時(shí)候,我們就需要用到 SQL OUTER JOIN (外部連接) 的指令。 外部連接的語(yǔ)法是依數(shù)據(jù)庫(kù)的不同而有所不同的。舉例來(lái)說(shuō),在 Oracle 上,我們會(huì)在 WHERE 子句中要選出所有資料的那個(gè)表格之后加上一個(gè) (+) 來(lái)代表說(shuō)這個(gè)表格中的所有資料我們都要。 假設(shè)我們有以下的兩個(gè)表格: Store_Information 表格store_name Sales Date Los Angeles $1500 Jan051999 San Diego $250 Jan071999 Los Angeles $300 Jan081999 Boston $700 Jan081999 Geography 表格 region_name store_name East Boston East New York West Los Angeles West San Diego 我們需要知道每一間店的營(yíng)業(yè)額。如果我們用一個(gè)普通的連接,我們將會(huì)漏失掉 39。New York39。這個(gè)店,因?yàn)樗⒉淮嬖谟?Store_Information 這個(gè)表格。所以,在這個(gè)情況下,我們需要用外部連接來(lái)串聯(lián)這兩個(gè)表格: SELECT , SUM() SALES FROM Georgraphy A1, Store_Information A2 WHERE = (+) GROUP BY 我們?cè)谶@里是使用了 Oracle 的外部連接語(yǔ)法。 結(jié)果: store_name SALES Boston $700 New York Los Angeles $1800 San Diego $250 請(qǐng)注意: 當(dāng)?shù)诙€(gè)表格沒(méi)有相對(duì)的資料時(shí), SQL 會(huì)傳回 NULL 值。在這一個(gè)例子中, 39。New York39。 并不存在于 Store_Information 表格,所以它的 SALES 欄位是 NULL. CONCATENATE有的時(shí)候,我們有需要將由不同欄位獲得的資料串連在一起。每一種數(shù)據(jù)庫(kù)都有提供方法來(lái)達(dá)到這個(gè)目的: MySQL: CONCAT() Oracle: CONCAT(), || SQL Server: + CONCAT() 的語(yǔ)法如下: CONCAT(字符串1, 字符串2, 字符串3, ...): 將字符串字符串字符串3,等字符串連在一起。請(qǐng)注意,Oracle的CONCAT()只允許兩個(gè)參數(shù);換言之,一次只能將兩個(gè)字符串串連起來(lái)。不過(guò),在Oracle中,我們可以用39。||39。來(lái)一次串連多個(gè)字符串。 來(lái)看一個(gè)例子。假設(shè)我們有以下的表格: Geography 表格 region_namestore_nameEastBostonEastNew YorkWestLos AngelesWestSan Diego例子1: MySQL/Oracle: SELECT CONCAT(region_name,store_name) FROM Geography WHERE store_name = 39。Boston39。 結(jié)果: 39。EastBoston39。 例子2: Oracle: SELECT region_name || 39。 39。 || store_name FROM Geography WHERE store_name = 39。Boston39。 結(jié)果: 39。East Boston39。 例子3: SQL Server: SELECT region_name + 39。 39。 + store_name FROM Geography WHERE store_name = 39。Boston39。 結(jié)果: 39。East Boston39。 SUBSTRINGSQL 中的 substring 函數(shù)是用來(lái)抓出一個(gè)欄位資料中的其中一部分。這個(gè)函數(shù)的名稱在不同的數(shù)據(jù)庫(kù)中不完全一樣: MySQL: SUBSTR(), SUBSTRING() Oracle: SUBSTR() SQL Server: SUBSTRING() 最常用到的方式如下 (在這里我們用SUBSTR()為例): SUBSTR(str,pos): 由str中,選出所有從第pos位置開始的字符。請(qǐng)注意,這個(gè)語(yǔ)法不適用于SQL Server上。 SUBSTR(str,pos,len): 由str中的第pos位置開始,選出接下去的len個(gè)字符。 假設(shè)我們有以下的表格: Geography 表格 region_namestore_nameEastBostonEastNew YorkWestLos AngelesWestSan Diego例1: SELECT SUBSTR(store_name, 3) FROM Geography WHERE store_name = 39。Los Angeles39。 結(jié)果: 39。s Angeles39。 例2: SELECT SUBSTR(store_name,2,4) FROM Geography WHERE store_name = 39。San Diego39。 結(jié)果: 39。an D39。 TRIMSQL 中的 TRIM 函數(shù)是用來(lái)移除掉一個(gè)字符串中的字頭或字尾。最常見(jiàn)的用途是移除字首或字尾的空白。這個(gè)函數(shù)在不同的數(shù)據(jù)庫(kù)中有不同的名稱: MySQL: TRIM(), RTRIM(), LTRIM() Oracle: RTRIM(), LTRIM() SQL Server: RTRIM(), LTRIM() 各種 trim 函數(shù)的語(yǔ)法如下: TRIM([[位置] [要移除的字符串] FROM ] 字符串): [位置] 的可能值為 LEADING (起頭), TRAILING (結(jié)尾), or BOTH (起頭及結(jié)尾)。 這個(gè)函數(shù)將把 [要移除的字符串] 從字符串的起頭、結(jié)尾,或是起頭及結(jié)尾移除。如果我們沒(méi)有列出 [要移除的字符串] 是什么的話,那空白就會(huì)被移除。 LTRIM(字符串): 將所有字符串起頭的空白移除。 RTRIM(字符串): 將所有字符串結(jié)尾的空白移除。 例 1: SELECT TRIM(39。 Sample 39。)。 結(jié)果: 39。Sample39。 例 2: SELECT LTRIM(39。 Sample 39。)。 結(jié)果: 39。Sample 39。 例 3: SELECT RTRIM(39。 Sample 39。)。 結(jié)果: 39。 Sample39。 表格處理CREATE TABLE表格是數(shù)據(jù)庫(kù)中儲(chǔ)存資料的基本架構(gòu)。在絕大部份的情況下,數(shù)據(jù)庫(kù)廠商不可能知道您需要如何儲(chǔ)存您的資料,所以通常您會(huì)需要自己在數(shù)據(jù)庫(kù)中建立表格。雖然許多數(shù)據(jù)庫(kù)工具可以讓您在不需用到 SQL 的情況下建立表格,不過(guò)由于表格是一個(gè)最基本的架構(gòu),我們決定包括 CREATE TABLE 的語(yǔ)法在這個(gè)網(wǎng)站中。 在我們跳入 CREATE TABLE 的語(yǔ)法之前,我們最好先對(duì)表格這個(gè)東西有些多一點(diǎn)的了解。表格被分為欄位 (column) 及列位 (row)。每一列代表一筆資料,而每一欄代表一筆資料的一部份。舉例來(lái)說(shuō),如果我們有一個(gè)記載顧客資料的表格,那欄位就有可能包括姓、名、地址、城市、國(guó)家、生日???等等。當(dāng)我們對(duì)表格下定義時(shí),我們需要注明欄位的標(biāo)題,以及那個(gè)欄位的資料種類。 那,資料種類是什么呢?資料可能是以許多不同的形式存在的。它可能是一個(gè)整數(shù) (例如 1),、一個(gè)實(shí)數(shù) (例如 )、一個(gè)字符串 (例如 39。sql39。)、一個(gè)日期/時(shí)間 (例如 39。2000JAN25 03:22:2239。)、或甚至是以二進(jìn)法 (binary) 的狀態(tài)存在。當(dāng)我們?cè)趯?duì)一個(gè)表格下定義時(shí),我們需要對(duì)每一個(gè)欄位的資料種類下定義。 (例如 39。姓39。 這個(gè)欄位的資料種類是 char(50)──代表這是一個(gè) 50 個(gè)字符的字符串)。我們需要注意的一點(diǎn)是不同的數(shù)據(jù)庫(kù)有不同的資料種類,所以在對(duì)表格做出定義之前最好先參考一下數(shù)據(jù)庫(kù)本身的說(shuō)明。 CREATE TABLE 的語(yǔ)法是: CREATE TABLE 表格名(欄位 1 欄位 1 資料種類,欄位 2 欄位 2 資料種類,... ) 若我們要建立我們上面提過(guò)的顧客表格,我們就鍵入以下的 SQL: CREATE TABLE customer(First_Name char(50),Last_Name char(50),Address char(50),City char(50),Country char(25),Birth_Date date) CONSTRAINT我們可以限制哪一些資料可以存入表格中。這些限制可以在表格初創(chuàng)時(shí)藉由 CREATE TABLE 語(yǔ)句來(lái)指定,或是之后藉由 ALTER TABLE 語(yǔ)句來(lái)指定。 常見(jiàn)的限制有以下幾種: NOT NULL UNIQUE CHECK 主鍵 (Primary Key) 外來(lái)鍵 (Foreign Key) 以下對(duì)這幾種限制分別做個(gè)介紹: NOT NULL 在沒(méi)有做出任何限制的情況下,一個(gè)欄位是允許有 NULL 值得。如果我們不允許一個(gè)欄位含有 NULL 值,我們就需要對(duì)那個(gè)欄位做出 NOT NULL 的指定。 舉例來(lái)說(shuō),在以下的語(yǔ)句中, CREATE TABLE Customer (SID integer NOT NULL, Last_Name varchar (30) NOT NULL, First_Name varchar(30))。 SID 和 Last_Name 這兩個(gè)欄位是不允許有 NULL 值,而 First_Name 這個(gè)欄位是可以有 NULL 值得。 UNIQUE UNIQUE 限制是保證一個(gè)欄位中的所有資料都是有不一樣的值。 舉例來(lái)說(shuō),在以下的語(yǔ)句中, CREATE TABLE Customer (SID integer Unique, Last_Name varchar (30), First_Name varchar(30))。 SID 欄位不能有重復(fù)值存在,而 Last_Name 及 First_Name 這兩個(gè)欄位則是允許有重復(fù)值存在。 請(qǐng)注意,一個(gè)被指定為主鍵的欄位也一定會(huì)含有 UNIQUE 的特性。相對(duì)來(lái)說(shuō),一個(gè) UNIQUE 的欄位并不一定會(huì)是一個(gè)主鍵。 CHECK CHECK 限制是保證一個(gè)欄位中的所有資料都是符合某些條件。 舉例來(lái)說(shuō),在以下的語(yǔ)句中, CREATE TABLE Customer (SID integer CHECK (SID 0), Last_Name varchar (30), First_Name varchar(30))。 SID 攔只能包含大于 0 的整數(shù)。 請(qǐng)注意,CHECK 限制目前尚未被執(zhí)行于 MySQL 數(shù)據(jù)庫(kù)上。 主鍵 and 外來(lái)鍵 將于下兩頁(yè)中討論。 主鍵主鍵 (Primary Key) 中的每一筆資料都是表格中的唯一值。換言之,它是用來(lái)獨(dú)一無(wú)二地確認(rèn)一個(gè)表格中的每一行資料。主鍵可以是原本資料內(nèi)的一個(gè)欄位,或是一個(gè)人造欄位 (與原本資料沒(méi)有關(guān)系的欄位)。主鍵可以包含一或多個(gè)欄位。當(dāng)主鍵包含多個(gè)欄位時(shí),稱為組合鍵 (Composite Key)。 主鍵可以在建置新表格時(shí)設(shè)定 (運(yùn)用 CREATE TABLE 語(yǔ)句),或是以改變現(xiàn)有的表格架構(gòu)方式設(shè)定 (運(yùn)用 ALTER TABLE)。 以下舉幾個(gè)在建置新表格時(shí)設(shè)定主鍵的方式: MySQL: CREATE TABLE Customer (SID integer, Last_Name varchar(30), First_Name varchar(30), PRIMARY KEY (SID))。 Oracle: CREATE TABLE Customer (SID integer PRIMARY KEY, Last_Name varchar(30), First_Name
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1