ภาษา SQL

เริ่มโพสต์โดย เทอร์โบบูสเตอร์, 05 ก.ค. 2006, 14:53 น.

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

กาก

เทอร์โบบูสเตอร์

#46
เงื่อนไข

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

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 '*เชษ*'

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

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

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

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






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

ปล. เขียนแบบด้นสดๆ ใครเจออะไรผิด บอกด้วยครับ ขอบคุณครับ  :44:
กาก

iannnnn

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


ป.ล.ไอ้เชษนี่ ใครนะ :26:

เทอร์โบบูสเตอร์

ต่อครับ เรื่อง เวลาดึงมา แล้วให้มันเรียงลำดับ

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


เอา 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 ละกัน โปรแกรมสามัญประจำบ้าน
กาก

ยุนเอ



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

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

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

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

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

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

อู๋

ตอบ ไม่ได้ครับต้องลง access ด้วย เคยลองมาแล้ว :31:

icez

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

ยุนเอ

อ้างคำพูดจาก: icez เมื่อ 11 ม.ค. 2007, 18:47 น.
vb6 ทำได้นะครับ
ใช้ object oledb เอา

vb.net ก็มี oledb นินา  :09:
เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย

ลุงซัน

อ้างคำพูดจาก: ถลอก เมื่อ 08 ม.ค. 2007, 16:07 น.

select [name] , [tel] from m_user



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

ลุงซัน

อ้างคำพูดจาก: ถลอก เมื่อ 08 ม.ค. 2007, 16:13 น.

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 (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

ลุงซัน

อ้างคำพูดจาก: ^-FakE-^ เมื่อ 11 ม.ค. 2007, 12:14 น.

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

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

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

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

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

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


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

ยุนเอ

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


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

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

ลุงซัน

อ้างคำพูดจาก: ^-FakE-^ เมื่อ 12 ม.ค. 2007, 01:11 น.

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

แต่ vs2005 กับ 2003 ต่างกันเยอะเหมือนกันนะนี้ หาtools ไม่ค่อยเจอเลย เปลี่ยนชื่อซะงั้น  :08:
รอ 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 (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

Soris0ri



ยังไม่ไปถึงไหนเลย  :05:

มาสอนสิคะ  :05:
Las Noches Rubicundior

นายโอ้เอ้

ถลอกเอาแต่เล่นเกม  :47:
Today you , Tomorrow me.

SMF 2.1.7 © 2026, Simple Machines