หน้า: 1 2 3 [4] 5 6 7 8 9 10 11 12
 
ผู้เขียน หัวข้อ: ภาษา SQL  (อ่าน 101993 ครั้ง)
0 สมาชิก และ 1 ขาจร กำลังดูหัวข้อนี้
รูปแบบ วิธี ดึงข้อมูล ก็อย่างที่เคยบอกไปแล้วนะครับ

select filed from table where เงื่อนไข  order by field asc , desc


รูปแบบหลักที่จำเป็นต้องมีคือ

select filed from table

เพราะเราต้อง บอกว่า เราต้องการข้อมูลอะไรบ้าง และก็ ข้อมูลที่ต้องการนั่น มาจากไหน

อยู่ดีๆ จะไปบอกเงื่อนไข หรือ ให้เรียงลำดับ เลย มันก็คงจะแปลกๆอยู่


สมมติว่า ถ้าเราต้องการข้อมูลทั้งหมด จาก table user ที่เห็น

ก็จะเขียนได้แบบนี้


select * from m_user

* ใช้ เวลาเราต้องการเรียกข้อมูลทั้งหมด แบบไม่เลือกว่าจะเอาฟิล์ดอะไรบ้างครับ

ทำแบบนี้ ข้อมูล ก็จะ ออกมาทั้งหมด แบบนี้




แต่ ถ้าเราต้องการแค่ ชื่อ กับ เบอร์โทร เราก็เขียนแบบนี้ครับ

select [name] , [tel] from m_user

บันทึกการเข้า

กาก
เงื่อนไข

ถ้าเราเรียก ชื่อ กับเบอร์โทรมาแล้ว

select [name] , [tel] from m_user

แล้วเราต้องการ เฉพาะ คนที่มีเบอร์โทร 7820

เราก็ใส่เงื่อนไข แบบนี้ครับ

select [name] , [tel] from m_user where tel = 7820

หรือ ต้องการ เฉพาะคนชื่อ cccc ก็แบบนี้ครับ

select [name] , [tel] from m_user where [name] = 'cccc'

ถ้าต้องการเฉพาะคนที่เกิดวันที่ 1/1/1981 ก็แบบนี้ครับ

select [name] , [tel] from m_user where birthdate= #1/1/2981#


ลองดูดีๆ นะครับ ข้อมูลประเภท text และ date เวลาใส่เงื่อนไข จะมี ' และ # มาด้วย


อันนี้สำคัญมากครับ อย่าลืมใส่


เวลาใส่เงื่อนไข เราใส่ and กับ or ได้ด้วยนะครับ แบบนี้


ถ้าไม่ใส่จะเน่าครับ

select [name] , [tel] from m_user where birthdate= #1/1/1981# and [name] = 'พิเชษฐ รุ่งเรืองพานิช'


จะหมายถึง ดึงข้อมูล ชื่อ เบอร์โทร ของคนที่เกิดวันที่  1/1/1981 และ ชื่อ 'พิเชษฐ รุ่งเรืองพานิช'

ครับ


เวลาดึงพวกวันที่ หรือ ตัวเลข เราสามารถ กำหนด เป็นช่วงได้ด้วยนะครับ

โดยการใช้ between

เช่น จะดึง คนที่เกิดในช่วงวันที่ 1/1/2000 ถึง 1/12/2000

ก็เขียนแบบนี้ครับ

select usernam where birthdate between #1/1/2000# and #1/12/2000#


ส่วนการค้นหา แบบตัวหนังสือ เราค้นเฉพาะบางส่วนของคำ ก็ได้ เช่น

หาคนที่ ชื่อ มีคำว่า เชษ ผสมอยู่ เราใช้คำสั่ง like ครับ

select usernam where [name] like '*เชษ*'

สังเกตุว่ามีเครื่องหมาย * นะครับ

* หมายถึง อะไรก็ได้ครับ

เช่นถ้า จะให้หา ชื่อที่ขึ้นต้นด้วยคำว่า พิ ก็ ใส่ว่า 'พิ*'

หรือ หาให้ลงท้ายด้วยคำว่า  กกก ก็ใส่ว่า '*กกก'






เดี๊ยวมาต่อครับ

ปล. เขียนแบบด้นสดๆ ใครเจออะไรผิด บอกด้วยครับ ขอบคุณครับ  (เหงื่อแตกพลั่ก)
« แก้ไขครั้งสุดท้าย: 14 ก.ย. 2011, 09:34 น. โดย หนอนน้อย ร้อยแรงม้า » บันทึกการเข้า

กาก
(+2) แล้วรออ่านต่อครับ


ป.ล.ไอ้เชษนี่ ใครนะ เกย์แอบ
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
ต่อครับ เรื่อง เวลาดึงมา แล้วให้มันเรียงลำดับ

อันนี้ง่ายๆครับ


เอา Order By มา ต่อไว้หลังสุด ตามด้วย ชื่อฟิล์ดที่ต้องการเรียงลำดับ จากนั้น บอกด้วยว่า จะให้เรียง จากมากไปน้อย หรือน้อยไปมาก โดยการใส่ asc (น้อยไปมาก) หรือ Desc (มากไปน้อย)


เช่น จะเรียงว่า ใครเกิดคนแรกสุด ก็


select [name] from M_user order by birthdate asc

ใคร เกิดหลังสุด ก็

select [name] from M_user order by birthdate desc


ถ้าจะเรียงหลายอย่าง ให้ใช้ , คั่นครับ

เช่น

ให้เรียงก่อนว่า ใครเกิดก่อน เกิดหลัง จากนั้น ให้เรียงชื่อ ตามตัวอักษร ก็

select [name] from M_user order by birthdate asc , name asc


อ่อ

ถ้าเราจะเรียงจากน้อยไปมาก ไม่ต้องใส่ asc ก็ได้นะครับ

มันจะเรียงน้อยไปมากให้อัตโนมัติอยู่แล้ว

select [name] from M_user order by birthdate  , name





วันนี้ขอสั้นๆนะ งานยุ่ง พรุ่งนี้ ต่อ เรื่อง เรียกข้อมูลแบบจับกลุ่ม (Group By) เรียกข้อมูลแบบ มากสุด(max) เรียกข้อมูลน้อยสุด(min) และอีกมากมายต่อครับ


เดี๊ยวผมทำตัวดาต้าเบสให้ตัวหนึง แล้ว เอามาลองทำตามกันดีกว่านะครับ

เอา access97 ละกัน โปรแกรมสามัญประจำบ้าน
บันทึกการเข้า

กาก


สงสัยครับ สงสัย

เอกำลังทำโปรแกรมที่เอาไปรันที่ไหนก็ได้ (เฉพาะในวินโดวส์  ฮี่ๆ )

โดยกะว่าจะใช้ฐานข้อมุล access นะครับ (เพราะคิดว่าคงเอาไปรันที่ไหนก็ได้)

อยากรู้ว่า ถ้าเอาไปรันในเครื่องที่ไม่มี Access เนี้ยจะรันได้มั้ยครับ

เขียนโดย VB.NET นะครับ โดยที่โปรแกรมเอจะมี ไฟล์ .mdb อยุ่ในตัวเลยนะครับ

หรือว่ามีวิธีไหนเด็ดดวงๆ ก็บอกมาได้เลยนะครับ  นะนะ
บันทึกการเข้า

เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย
ตอบ ไม่ได้ครับต้องลง access ด้วย เคยลองมาแล้ว ไอ้มืดหมี
บันทึกการเข้า

vb6 ทำได้นะครับ
ใช้ object oledb เอา
บันทึกการเข้า

vb6 ทำได้นะครับ
ใช้ object oledb เอา

vb.net ก็มี oledb นินา  งง
บันทึกการเข้า

เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย

select [name] , [tel] from m_user



ขอเสริม
ตรง field name ไม่จำเป็นต้องใส่ [...] ยกเว้นแต่ field name นั้นมีช่องว่างระหว่างชื่อ เช่น field name ชื่อ first name เราจะเขียนเป็น [first name] แต่ถ้าตั้งเป็น FirstName ก็ไม่ต้องใส่ครับ
note: เพื่อกันงง คนที่ติดตามข้ามของผมไปก่อนได้เลยครับ เดี๋ยวจะไม่ต่อเนื่อง
บันทึกการเข้า

http://www.ThaiBuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

select [name] , [tel] from m_user where birthdate= #1/1/2981#


ลองดูดีๆ นะครับ ข้อมูลประเภท text และ date เวลาใส่เงื่อนไข จะมี ' และ # มาด้วย


อันนี้สำคัญมากครับ อย่าลืมใส่


ขอเสริม เครื่องหมาย # นำหน้าข้อมูลประเภท DateTime ใช้ใน MS Access ในฐานข้อมูลอื่นจะใช้ '.....' เหมือน text field ธรรมดา แต่ DBMS จะรู้เองว่าต้องเก็บเป็น DateTime ตาม Field Type ของ Field นั้น
บันทึกการเข้า

http://www.ThaiBuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

สงสัยครับ สงสัย

เอกำลังทำโปรแกรมที่เอาไปรันที่ไหนก็ได้ (เฉพาะในวินโดวส์  ฮี่ๆ )

โดยกะว่าจะใช้ฐานข้อมุล access นะครับ (เพราะคิดว่าคงเอาไปรันที่ไหนก็ได้)

อยากรู้ว่า ถ้าเอาไปรันในเครื่องที่ไม่มี Access เนี้ยจะรันได้มั้ยครับ

เขียนโดย VB.NET นะครับ โดยที่โปรแกรมเอจะมี ไฟล์ .mdb อยุ่ในตัวเลยนะครับ

หรือว่ามีวิธีไหนเด็ดดวงๆ ก็บอกมาได้เลยนะครับ  นะนะ


ต้องลง OleDB JetEngine ครับ แค่นั้นก็ใช่ได้( download ที web Microsoft)
ถ้าง่ายก็อย่างที่คนที่บอกว่าลองมาแล้วไม่ได้ คือลงทั้งตัว(ถ้าไม่ใช้ Acess ก็ไม่แนะนำครับ)
ลองใช้ InstallShield ดูครับ มันจะเพิ่มตัว Database Driver(OLEDB Jet Database) ให้เองครับ
บันทึกการเข้า

http://www.ThaiBuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย
ต้องลง OleDB JetEngine ครับ แค่นั้นก็ใช่ได้( download ที web Microsoft)
ถ้าง่ายก็อย่างที่คนที่บอกว่าลองมาแล้วไม่ได้ คือลงทั้งตัว(ถ้าไม่ใช้ Acess ก็ไม่แนะนำครับ)
ลองใช้ InstallShield ดูครับ มันจะเพิ่มตัว Database Driver(OLEDB Jet Database) ให้เองครับ


 นะนะ ขอบคุณครับ จะเอาไปลอง

แต่ vs2005 กับ 2003 ต่างกันเยอะเหมือนกันนะนี้ หาtools ไม่ค่อยเจอเลย เปลี่ยนชื่อซะงั้น  ง่ะ
บันทึกการเข้า

เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย

 นะนะ ขอบคุณครับ จะเอาไปลอง

แต่ vs2005 กับ 2003 ต่างกันเยอะเหมือนกันนะนี้ หาtools ไม่ค่อยเจอเลย เปลี่ยนชื่อซะงั้น  ง่ะ
รอ 2007 คงงงเข้าไปใหญ่(ผมเดาจาก office 2007 หาอะไรก็ไม่ค่อยเจอ งงไปหมด)
ที่ promote กันใหญ่ก็ Language Integrated Query (LINQ) http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx
ออก Technical Preview แล้ว http://www.microsoft.com/downloads/details.aspx?familyid=1e902c21-340c-4d13-9f04-70eb5e3dceea&displaylang=en
บันทึกการเข้า

http://www.ThaiBuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย


ยังไม่ไปถึงไหนเลย  ฮือๆ~

มาสอนสิคะ  ฮือๆ~
บันทึกการเข้า

Las Noches Rubicundior
ถลอกเอาแต่เล่นเกม  น้องดำ
บันทึกการเข้า

Today you , Tomorrow me.
หน้า: 1 2 3 [4] 5 6 7 8 9 10 11 12
 
 
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines | Thai language by ThaiSMF Valid XHTML 1.0! Valid CSS!