PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
michelle-lai529
Regular Member
 

加入日期: Jun 2010
文章: 86
引用:
作者pm17g101
想再度請教各位專家一題:

下了底下指令之後,得資料表如table1,
USE horsedb;
SELECT * FROM judge

可是當我再下底下的Where條件句,就只能得到null的結果如table2。
WHERE Suburb='Sydney'

這麼簡單的東西卻作不出來,實在很沮喪,不曉得原因何在,
懇請大家指導,感謝!!

光用"眼睛"看,應該會有Sydney那筆才對,不該一筆都沒有,先改用suburb like '%Sydney%' 來看看是不是有什麼看不到的符號(如空白)在前後面。
這種錯誤很常發生在輸入端沒過濾掉字串前後的空白上。
     
      

此文章於 2017-12-16 10:46 PM 被 michelle-lai529 編輯.
舊 2017-12-16, 10:43 PM #11
回應時引用此文章
michelle-lai529離線中  
pm17g101
Amateur Member
 

加入日期: Oct 2017
文章: 36
引用:
作者michelle-lai529
光用"眼睛"看,應該會有Sydney那筆才對,不該一筆都沒有,先改用suburb like '%Sydney%' 來看看是不是有什麼看不到的符號(如空白)在前後面。
這種錯誤很常發生在輸入端沒過濾掉字串前後的空白上。


感謝指導。如您所說,先用like之後Sydney果然就出現了

因為題目要Sydney或Melbourne,所以我改成

WHERE Suburb LIKE '%Sydney%' OR Suburb LIKE '%Melbourne%'

得下圖table3

依您所指出,自行UPDATE一次Sydney與Melbourne之後,再改成

WHERE Suburb='Sydney' OR Suburb='Melbourne'

就順利得table4,Null就不再出現了。

感激之餘,想再請教這題的WHERE OR句子有沒有辦法縮短?

謝謝!!!
 
上傳的圖像
文件類型: png table3.PNG (19.4 KB, 1次瀏覽)
文件類型: png table4.PNG (18.9 KB, 58次瀏覽)
舊 2017-12-17, 05:54 AM #12
回應時引用此文章
pm17g101離線中  
michelle-lai529
Regular Member
 

加入日期: Jun 2010
文章: 86
引用:
作者pm17g101
感謝指導。如您所說,先用like之後Sydney果然就出現了

因為題目要Sydney或Melbourne,所以我改成

WHERE Suburb LIKE '%Sydney%' OR Suburb LIKE '%Melbourne%'

得下圖table3

依您所指出,自行UPDATE一次Sydney與Melbourne之後,再改成

WHERE Suburb='Sydney' OR Suburb='Melbourne'

就順利得table4,Null就不再出現了。

感激之餘,想再請教這題的WHERE OR句子有沒有辦法縮短?

謝謝!!!

Suburb in ('Sydney','Melbome')
建議您弄懂這些語法的意義,語法包在程式裡,字數的多少從來就不是最重要的,寫法的效率、後續的可維護性跟可讀性才是最重要的
舊 2017-12-17, 07:42 AM #13
回應時引用此文章
michelle-lai529離線中  
pm17g101
Amateur Member
 

加入日期: Oct 2017
文章: 36
引用:
作者michelle-lai529
Suburb in ('Sydney','Melbome')
建議您弄懂這些語法的意義,語法包在程式裡,字數的多少從來就不是最重要的,寫法的效率、後續的可維護性跟可讀性才是最重要的


獲益良多,非常感謝!!
如果您是講師,請您pm給我,我很願意在適當時機用一個月年假回台聽您上課。
不曉得能不能請您建議SQL相關書籍?

此文章於 2017-12-17 08:05 AM 被 pm17g101 編輯.
舊 2017-12-17, 07:57 AM #14
回應時引用此文章
pm17g101離線中  
michelle-lai529
Regular Member
 

加入日期: Jun 2010
文章: 86
引用:
作者pm17g101
獲益良多,非常感謝!!
如果您是講師,請您pm給我,我很願意在適當時機用一個月年假回台聽您上課。
不曉得能不能請您建議SQL相關書籍?

我是程式設計師,這些幾乎是每天在用的。
Sql語法說真的並不多,幾乎都在觀念上,由幾條單一的語法組合去解複雜的資料篩選問題;所以說真的,並沒有那一本書就可以讓你打通關。

這本你可以看看基礎入門語法,可是後續的觀念還是得看自己。
你可以用自己工作上需要的資料當範本,想想這些問題要怎麼解,例如有資料的可以篩選列表出來,那沒有資料的呢,像是,我想從業績總表中一口氣列出幾個年度沒有業績的月份。自己想一想這要怎麼解,像這類的問題絕對比你應付這些作業來的有用。

此文章於 2017-12-17 09:51 AM 被 michelle-lai529 編輯.
舊 2017-12-17, 09:50 AM #15
回應時引用此文章
michelle-lai529離線中  
bigdatasmallapp
Regular Member
 

加入日期: Oct 2017
文章: 64
引用:
作者pm17g101
獲益良多,非常感謝!!
如果您是講師,請您pm給我,我很願意在適當時機用一個月年假回台聽您上課。
不曉得能不能請您建議SQL相關書籍?

你一開始的問題:找不到 Sydney,問題並非在於 SQL 查詢,而是資料庫內部資料正確性的問題

因為你要使用 LIKE 關鍵字或者直接指定特定字串(使用「=」或 IN 關鍵字),需要看情況,不是以後你要做類似的查詢,都要使用 LIKE

這是由於你使用 LIKE 字,要讓資料庫系統耗費 CPU 時間比對資料,再者如果你的資料庫剛好有好幾列的資料,查詢欄位中都含有你所查詢的片段字串,資料庫會把這些資料全部回傳

因此你的問題在於資料庫內部資料正確性

如果你的「Sydney」本來前後不該有空白,請使用 UPDATE 修正該欄位,如果的確就是要有空白,那查詢 WHERE 段也只需要改為 Suburb='Sydney '(假設你的空白是在
y 的右邊)

(一般來說不會有空白,這個問題可能是因為當初新增資料的方式,是直接在 EXCEL 表格複製貼上到 Workbench)

此文章於 2017-12-17 09:54 AM 被 bigdatasmallapp 編輯.
舊 2017-12-17, 09:51 AM #16
回應時引用此文章
bigdatasmallapp離線中  
pm17g101
Amateur Member
 

加入日期: Oct 2017
文章: 36
引用:
作者bigdatasmallapp
你一開始的問題:找不到 Sydney,問題並非在於 SQL 查詢,而是資料庫內部資料正確性的問題

因為你要使用 LIKE 關鍵字或者直接指定特定字串(使用「=」或 IN 關鍵字),需要看情況,不是以後你要做類似的查詢,都要使用 LIKE

這是由於你使用 LIKE 字,要讓資料庫系統耗費 CPU 時間比對資料,再者如果你的資料庫剛好有好幾列的資料,查詢欄位中都含有你所查詢的片段字串,資料庫會把這些資料全部回傳

因此你的問題在於資料庫內部資料正確性

如果你的「Sydney」本來前後不該有空白,請使用 UPDATE 修正該欄位,如果的確就是要有空白,那查詢 WHERE 段也只需要改為 Suburb='Sydney '(假設你的空白是在
y 的右邊)

(一般來說不會有空白,這個問題可能是因為當初新增資料的方式,是直接在 EXCEL 表格複製貼上到 Workbench)


您說得沒錯。我覺得是這個課程的缺陷。這個課程讓初學者一開始就自行建立資料庫,並且匯入資料,並且用該資料庫來進行查詢,再以此進行評分考核。

這過程其實對初學者會造成很大的挫折感,如果一開始是給初學者sample資料庫,先考核其查詢能力,再來建資料庫這樣比較不那麼痛苦。

各位剛開始學SQL也是先自建資料庫嗎?

再次感謝各位專家的寶貴意見!!
舊 2017-12-17, 01:08 PM #17
回應時引用此文章
pm17g101離線中  
bigdatasmallapp
Regular Member
 

加入日期: Oct 2017
文章: 64
引用:
作者pm17g101
您說得沒錯。我覺得是這個課程的缺陷。這個課程讓初學者一開始就自行建立資料庫,並且匯入資料,並且用該資料庫來進行查詢,再以此進行評分考核。

這過程其實對初學者會造成很大的挫折感,如果一開始是給初學者sample資料庫,先考核其查詢能力,再來建資料庫這樣比較不那麼痛苦。

各位剛開始學SQL也是先自建資料庫嗎?

再次感謝各位專家的寶貴意見!!

在我看來先讓你有資料庫概念比較重要,至於先學建資料庫,還是先學如何查詢都是一樣的

資料庫也不過就是一大堆表格的集合,SQL 只是幫助你去操作這些表格,查詢是操作、新增刪除修改也是操作

你這課程只是少了一個諮詢對象而已,因為你的問題說穿了只是小問題,但知道就是知道,不知道的人就會花很多時間

此文章於 2017-12-17 01:15 PM 被 bigdatasmallapp 編輯.
舊 2017-12-17, 01:12 PM #18
回應時引用此文章
bigdatasmallapp離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是04:59 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。