13 database by MySQL Unix by Vpc9h2p

VIEWS: 88 PAGES: 52

									                                ฐานข้อมูล MySQL Unix
     บทที่ 1 Introdution

     บทที่ 2 การติดตั้ง MySQL


     บทที่ 3

login เข้าสู้ MySQL
ขอความช่วยเหลือ
สร้าง File Database
แสดง File Database
ลบ File Database

     บทที่ 4 ชนิดของข้อมูล


     บทที่ 5

ติดต่อ file database
สร้าง Table
ดูโครงสร้าง Table
ดู Table
แก้ไข Table
ลบ Table

     บทที่ 6

Operator
เพิ่มข้อมูล
ค้นหาข้อมูล
เรี ยงข้อมูล
แก้ไขข้อมูล
ลบข้อมูล
Import และ Export ข้อมูล

     บทที่ 7

การกาหนดผูใช้้
           ้
การยกเลิกผูใช้

     อืน ๆ สรุ ปคาสัง
       ่            ่
                             ้
                ฐานข้ อมูลเบืองต้ น
                                          ก่ อ น จ ะ เ ข้ า สู่ MySQL                                   จ ะ ข อ ก ล่ า ว ถึ ง ฐ า น ข้ อ มู ล เ บื้ อ ง ต้ น ก่ อ น
ในชี วิ ต ประจ าวัน เราจะพบได้ว่ า มี ข ้อ มู ล ต่ า งๆมากมายรอบตัว เรา                     ทั้ง มี ค วามหมายและไม่ มี ค วามหมาย                     เช่ น ตื่ น เช้ า
                                                             เข้าห้องน้ า ต้องแปรงฟั น ยาสี ฟันก็มีมากมายหลายยี่ห้อ หลายราคา หลายขนาด
                                                             แต่ ย้ ี ห้ อ ขนาดและราคาที่ เ หมาะสมก็ คื อ ยาสี ฟั น ที่ เ ราใช้ แ ปรง  นั่ น เเอง
                                                             และเป็ นข้อมูลที่มีความหมายแก่เรา สบู่ แชมพู ผ้าเช็ดตัว ออกจากบ้าน ก็รถยนต์
                                                             รถประจาทาง ฯลฯ อาจไม่ตองมองไปไกล มองมาที่ตวเราเองเกี่ ยวกับข้อมูลของเรา
                                                                                           ้                         ั
                                                                                                          ่
                                                             เช่ น เราชื่ ออะไร เบอร์ โทรศัพท์อะไร อยูที่ไหน ทางานอะไร เงินเดื อนเท่าไร
                                                             อายุเ ท่า ไร หรื อ เพื่ อ นเราที่ ท างานอยู่ด้ว ยกัน ก็ ต้องมี ข ้อมู ล เหมื อ นกัน
                                                             ตลอดจนคนอื่นๆทัวโลก
                                                                            ่
                                                                                                 ข้ อ มู ล มา ก มา ยที่ ไ ด้ ก ล่ าว ไป ข้ า ง ต้ น
                                                             ลองนึ ก ดู ว่ า จะมี จ านวนมากมายขนาดไหนถึ ง ขนาดเป็ นแสนๆล้ า นๆข้ อ มู ล

และถ้ า ไม่ มี ก ารจั ด เก็ บ ให้ เ ป็ นระเบี ย บจะเกิ ด ความวุ่ น วายขนาดไหน                                  เช่ น
ประเทศไทยมีประชากรกว่า 60 ล้านคน ถ้าเราต้องการทราบว่ามีกี่คนที่มีสิทธิ ออกเสี ยงเลื อกตั้ง
                                      ั
จะทาอย่างไรในกรณี ที่ไม่ได้จดเก็บข้อมูล                         ้
                                                           ก็ตองออกเดิ นทางไปทัวประเทศไปทุกอาเภอ
                                                                                          ่
เ พื่ อ ข อ ข้ อ มู ล ที่ เ ร า ต้ อ ง ก า ร ว่ า มี ใ ค ร บ้ า ง ที่ มี อ า ยุ ถึ ง ห รื อ มี คุ ณ ส ม บั ติ ค ร บ
สามารถใช้สิทธิ ออกเสี ยงเลือกตั้งได้
                                            ดั ง นั้ น จึ ง จ า เ ป็ น ที่ จ ะ ต้ อ ง มี ก า ร จั ด เ ก็ บ ข้ อ มู ล
เ พื่ อ ค ว า ม ส ะ ด ว ก ส ะ บ า ย เ มื่ อ มี ก า ร เ รี ย ก ใ ช้                                            เ ช่ น
เ รี ย ก ดู ว่ า ป ร ะ ช า ก ร ป ร ะ เ ท ศ ไ ท ย ใ ค ร มี สิ ท ธิ อ อ ก เ สี ย ง เ ลื อ ก ตั้ ง ไ ด้ บ้ า ง
ก็ เ พี ย งแค่ เ ปิ ดส่ ว นจั ด เก็ บ ข้ อ มู ล (อาจเป็ นเครื่ องคอมพิ ว เตอร์ หรื อไม่ ก็ ไ ด้ )
                                                                 ้
เมื่อเปิ ดขึ้นมาแล้วค้นหาก็จะเจอข้อมูลโดยไม่อยาก โดยไม่ตองเดิ นทางไปทัวประเทศเพื่อค้นหาข้อมูล ส่ วนการจัดเก็บข้อมู ล
                                                                               ่
             ้ ั
อาจเป็ นตูบตรรายการ เครื่ องคอมพิวเตอร์ หรื อแล้วแต่ความเหมาะสม
                         ไม่ว่าจะจัดเก็บโดยตูบตรรายการหรื อจัดเก็บโดยคอมพิวเตอร์ จาเป็ นจะต้องมีรูปแบบในการจัดเก็บที่เหมาะสม
                                             ้ ั
ซึ่งรู ปแบบการจัดเก็บทั้งสองอย่างรวมทั้ง MySQL ด้วยไม่แตกต่างกันนัก โดยเราสามารถแบ่งได้ตามภาพข้างล่างดังนี้
                                     ั
               โดยรวมข้อมูลทั้งหมดที่จดเก็บเข้าพวกเดียวกันเราเรี ยกว่า Dabase file
                                                                                  ั
               จากนั้น ภายใน Database file ก็จะประกอบไปด้วย Tableต่างๆ ที่จดเก็บข้อมูล
             ภายใน Table ก็จะประกอบไปด้วย fied ซึ่งจะบ่งบอกลักษณะของข้อมูล
             จากนั้นก็เป็ น Record ซึ่งเป็ นส่ วนของข้อมูลที่ถูกจัดเข้าจาพวกด้วยกันตามลักษณะการแบ่งพวกของ field


                  MySQL                                      ั
                                เป็ นโปรแกรมฐานข้อมูลที่ใช้จดเก็บข้อมูลโปรแกรมหนึ่ ง
    ทางานในลักษณะ Client Server ทางานบนระบบ Telnet บน Linux
    Redhad           หรื อ Unix      System(ฟรี ) และบน Win32             (เสี ย ตัง ค์ )
    ทัวไปบนระบบเครื อข่าย Inter&Intranet
      ่                                           นั้น หมายความว่าเราสามารถเรี ยกใช้
                      ั่
    MySQL ได้ท วโลกกรณี เ ป็ น Internet และ ทัวบริ เ วณที่ เ ป็ น Intranet
                                                           ่
    และยังสามารถเรี ยกใช้บน Web Browser ได้กรณี ใช้              language เป็ น
    Interface ในการเชื่ อม language ที่ใช้เป็ น Interface เช่ น PHP Perl C
    C++ ฯ ชึ่งจะได้กล่าวในบทเรี ยนต่อไป ณ.ที่น้ ีจะขอกล่าวเฉพาะ MySQL บน Linux/Unix เท่านั้น
                                                   MySQL เป็ นโปรแกรมยอดฮิ ตอี ก ตัวหนึ่ งเนื่ องจากเป็ นของฟรี ว่า กัน ว่ า
                             Linux+PHP+MySQL แล้วจะเป็ น Engine ที่ สุดฮิ ต มี พ ลังที่ มหัศ จรรย์ที่สุ ด
                             และเป็ นที่ ยอมรั บของ Web site ต่างทัวโลก เพราะเนื่ องจากคุณภาพของมันแล้ว 3
                                                                          ่
                             ประสานรวมกันยังเป็ นของฟรี ท้งหมดอีกด้วย ซึ่งจะเป็ นตัวที่ช่วยลดต้นทุนของบริ ษทได้อย่างดีเยียม
                                                             ั                                             ั             ่
                                                    MySQL             เป็ นฐานข้อมูล เชิ ง สัมพันธ์ (Relational   Database
                                 Management                            System)                        RDBMS             คื อ
                                 ส า ม า ร ถ ท า ง า น กั บ ต า ร า ง ข้ อ มู ล ห ล า ย ต า ร า ง พ ร้ อ ม ๆ            กั น
    โดยสามารถแสดงความสัมพันธ์ของตารางเหล่านั้นด้วย field ที่ใช้ร่วมกัน ตามกฏที่กล่าวไว้ในหนังสื อ The Relation
    Model For Database Management Version 2 By Dr. Edgar F. Codd ข้อมูลเกี่ ยวกับ RDBMS
มีให้อ่านมากมายตามหนังสื อ Database ทัวไป ดังนั้นในส่ วนนี้ ผูเ้ ขียนขอข้ามไปก่อน ขอเจาะลึ กส่ วนของ การติดตั้งและใช้
                                             ่
MySQL ในตอนต่อไป
                                ้
            Tip ผูเ้ ขียนขอแนะผูที่สนใจเรี ยนในบทเรี ยน MySQL ถ้าต้องการศึกษาอย่างง่ายและเข้าใจ ขอให้ศึกษาบทเรี ยน
                                  ้                                    ่
Telnet และ Unix ก่อน ส่ วนผูที่มีความรู้เรื่ อง Telnet และ Unix ดีอยูแล้วก็สามารถเรี ยนได้เลย


           การติดตั้ง MySQL บน Linux Redhad
         สาหรับการติดตั้ง MySQL บน Linux Redhad นั้น เนื่ องจาก Linux Redhad ไม่ได้ติดตั้ง MySQL
                                  ั                                                                      ั
มาด้วยจึงจาเป็ นต้องติดตั้งใหม่ท้ งหมด ผูเ้ ขียนพยายามเขียน Step by Step เพื่อความเข้าใจง่าย สาหรับคนที่ยงไม่เคยติดตั้ง
                                                                                   ั
MySQL มาก่อน ในส่ วนนี้ ผูเ้ ขียนต้องขอขอบคุณน้อง สมคิด แห่ ง มทส. ที่ได้แนะนาวิธีดงกล่าวแก่ผเู้ ขียน
Step 1 - Download source code
        ให้ Download source code ตัว Apache MySQL และ PHP ได้ ดังนี้


Source code                  แหล่งที่ Download
apache_1.3.6.tar.gz http:// www.apache.org
mysql-3.22.22.tar.gz http://www.mysql.com
php-3.0.7.tar.gz             http://www.php.net
        สาหรับ Version ขอ MySQL PHP Apache นั้นแล้วแต่ความต้องการของท่านยิ่งใหม่ยิ่งดี จากนั้นให้
Download ไปไว้ที่ Directory /tmp
Step 2 - MySQL Installation


1. เข้าไปที่ Subdirectory /usr/local เพื่อคลาย file ที่ Down Load ลงใน Subdirectory นี้
(Subdirectory นี้ ส่วนใหญ่จะมีไว้ติดตั้ง Programe Application ต่างๆ)
#cd /usr/local
2. คลาย file ด้วยคาสัง tar
                     ่
#tar -zxvf /tmp/mysql-3.22.22.tar.gz
3. สร้าง link ที่ชื่อว่า mysql ซึ่งจะเรี ยก file mysql-3.22.22
#ln -sf mysql-3.22.22 mysql
4. Add user mysql แล้ว เปลี่ยนสิ ทธิ การใช้งาน MySQL (ที่สร้าง link ไว้) ให้เป็ นของ User mysql
และ root
#adduser mysql
#chown -R mysql:root mysql-3.22.22 mysql
5. Take User จาก user root เป็ น user mysql (โปรดสังเกตุเครื่ องหมาย # จะเปลี่ยนเป็ น $)
แล้วเข้าไปใน Subdirectory mysql แล้ว ใช้คาสัง configure
                                            ่
#su mysql
$cd mysql
$./configure
                                                                          ั
6. ใช้คาสั่ง Make เพื่อ compile source code ใน Linux ของคุณจะต้องมีตว complier ภาษา C
คือตัว gcc ถ้าคุณ Install Linux แบบ Server จะไม่มี complier ภาษา C มาให้ คุณจะต้อง Install
Linux แบบ Custom แล้วเลื อกว่าจะติดตั้ง complier ภาษา C ด้วย ควรที่จะติดตั้ง complier ภาษา C
    ้
ไว้ดวยทุกครั้งเนื่ องจาก source code ที่ down load มาเพื่อการติดตั้งบน linux ส่ วนใหญ่จะเป็ น
source code ภาษา C (ในช่วงนี้จะนานสักหน่อย)
$make
7. Take User จาก user mysql กลับเป็ น root อีกครั้ง จากนั้นใช้คาสั่ง Make เพื่อ compile
source code อีกครั้ง (ในช่วงนี้จะนานอีกเช่นกัน)
$su -> Enter root password
#make install
8. ใช้คาสัง mysql_install_db เพื่อติดตั้ง mysql install db
          ่
#scripts/mysql_install_db
9 เข้าไปใน Subdirectory /usr/local แล้ว เปลี่ยนสิ ทธิ การใช้ file var เป็ นของ user mysql และ
root
#cd /usr/local
#chown -R mysql:root var
Step 3 - Test MySQL


1.เข้าไปใน Subdirectory /usr/local/bin แล้วใช้คาสั่ง safe_mysqld& และ mysql เพื่อเรี ยก
mysql ให้ทางาน
#cd /usr/local/bin
#./safe_mysqld&
#./mysql
           ่
2. ทดสอบดูวามี Process ของ Mysql บนระบบหรื อไม่
# ps -ax | grep mysql
จะพบ Process ดังนี้
1435 ? S       0:00 sh ./safe_mysqld
1446 ?          SN        0:00 /usr/local/libexec/mysqld
--basedir=/usr/local --datadir=/usr/local/...
1448 ?          SN        0:00 /usr/local/libexec/mysqld
--basedir=/usr/local --datadir=/usr/local/...
1449 ?          SN        0:00 /usr/local/libexec/mysqld
--basedir=/usr/local --datadir=/usr/local/...
นั้นหมายความว่าตอนนี้ MySQL ได้ทางานแล้ว
3.จากนั้ นให้ใช้คาสัง status เพื่อแสดงสถานะของ โปรแกรม Mysql แล้ว exit เพื่อออกจากโปรแกรม
                    ่
mysql>status
mysql>exit
Step 4 - Load MySQL on boot - /etc/rc.d/rc3.d


1.เราจะต้องทาให้ Mysql load ขึ้นมาทางานทุกครั้งที่ boot ระบบ linux โดย เข้าไปที่ Subdirectory
/etc/rc.d/init.d
#cd /etc/rc.d/init.d
2. คัดลอก file mysql.server ใน Subdirectory /usr/local/mysql/support-files/
แล้วเปลี่ยนชื่อเป็ น mysql จากนั้นเปลี่ยนสถานะให้ file mysql ทางานทุกครั้งที่ boot เครื่ อง
#cp /usr/local/mysql/support-files/mysql.server mysql
#chmod +x mysql
#/sbin/chkconfig --del mysql
#/sbin/chkconfig --add mysql



           การ login เข้ าสู่ MySQL
        เมื่อได้ติดตั้ง MySQL ตลอดจน test แล้วว่า Programe ทางานจนมันใจแล้ว ทีน้ ี เราก็จะเข้าสู่ MySQL กันเสี ยที
                                                                       ่
การเข้าสู่ MySQL สามารถทาได้หลายทางทั้งทาง Client โดยการใช้ Telnet เข้ามา หรื อ เข้าทาง Consol โดย Login
เป็ น user ต่างๆ แต่ผเู ้ ขียนขอแนะให้ login เข้ามาทาง telnet จะดีกว่า
        ก่อนอื่นจะต้องทาการกาหนด mysqladmin เพื่อความปลอดภัยของระบบ โดย mysqladmin เท่านั้นที่สามารถเข้าสู่
MySQL ได้
                       ่ ั
        รู ปแบบคาสังมีดงนี้
     #/usr/local/bin/mysqladmin -u root password secret
    -u ตามด้ วยชื่ อ user         หมายถึงการกาหนดชื่ อ user
                                                                          ั
     password ตามด้ วย password หมายถึงการกาหนด password ให้กบ user ดังกล่าวข้างต้น
                                                     ั
      จะสังเกตได้ว่าช่ วงที่กาหนด password ให้กบ user นั้น เราจะเห็น password ตอน key ดังนั้น ตอนกาหนด
password จะต้องระมัดระวังด้วย
     ทีน้ ีเราก็มา login เข้า MySQL กันเสี ยที โดยมี
                    ่ ั
     รู ปแบบคาสังมีดงนี้
      #/usr/local/bin/mysql -u root password
      Enter password: ******** (ให้ ใส่ password ที่กาหนดลงไป)


#/usr/local/bin/mysql -u root password
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 459 to server version:
3.22.20a-log
Type 'help' for help.
mysql>
      เมื่อ login เข้ามาใน MySQL แล้ว จะมีเครื่ องหมายพร้อม ดังนี้ mysql>
      การออกจาก MySQL มีรูปแบบคาสังดังนี้
                                     ่
     mysql> QUIT


mysql> QUIT
Bye
                                                 ้
Tip นอกจากนี้ เรายังขอความช่วยเหลือจาก MySQL ได้ดวยคาสัง help ดังเช่นตัวอย่าง
                                                       ่


mysql> help
MySQL commands:
help (\h) Display this text
?     (\h) Synonym for `help'
clear (\c) Clear command
connect (\r)    Reconnect to the server. Optional arguments
are db and host
edit (\e) Edit command with $EDITOR
exit (\)     Exit mysql. Same as quit
go     (\g) Send command to mysql server
print (\p) print current command
quit (\q) Quit mysql
rehash (\#) Rebuild completion hash
status (\s) Get status information from the server
use    (\u) Use another database. Takes database name as
argument
Connection id: 6 (Can be used with mysqladmin kill)
mysql>
      ในรายละเอียดของ help คือ
       columm แรก เป็ นคาสัง่
       columm ที่สองเป็ น short key เราสามารถพิมพ์ short key ได้เลยซึ่ งมีผลเท่ากับคาสังเช่ นพิมพ์ \q มีค่าเท่ากับ
                                                                                       ่
quit
        columm ที่สามเป็ นคาอธิบาย


            การ Create database
      หลังจากที่เราได้ติดตั้ง MySQL บนระบบของเราแล้ว และได้ทดสอบการเข้าและออกโปรแกรมแล้วว่า Programe
สามารถทางานได้ปกติ ทีน้ ี เรามาสร้าง Database กันดี กว่า จากบท Introduction ได้กล่าวไปแล้วเกี่ ยวกับโครงสร้าง
database จะขออธิ บายอย่างคร่ าวๆ โดย แสดงเป็ นภาพพอสังเขบดังนี้




                 จะเห็ น ได้ว่ า โครงสร้ างของ Database ของ mysql ก็ จ ะไม่ ต่า งจากโครงสร้ าง database
ของโปรแกรมdatabase ตระกูลอื่น โดยเริ่ มจาก สร้าง file database ขึ้นมาก่อน แล้วจึง สร้ าง table โดย design
                                                                                                ้
ตามที่เราต้องการ (การ design จะขอกล่าวในบทต่อไป) จากนั้นก็จะได้ field ต่างๆ เมื่อแต่ละ field มีขอมูลก็จะถูกรวมเป็ น
record ต่อไป
         ดังนั้นเราจึงต้องสร้าง file database กันก่อน


         รู ปแบบคาสั่ง การสร้ าง file database
         CREATE DATABASE databasename
         คาอธิ บาย
         CREATE DATABASE
         เป็ นคาสังที่ใช้สร้าง file database
                  ่
         databasename
         เป็ นชื่อ file database ที่เรากาหนดขึ้น
         ตัวอย่าง
          mysql>CREATE DATABASE datatest;
          จากคาสังเราต้องการสร้าง file database ที่ชื่อว่า test
                 ่
            จากคาสั่งข้างต้นโปรดสังเกตเมื่อสิ้ น สุ ดค าสั่งจะต้องมี เครื่ องหมาย   ";"   ทุ กครั้ ง   ถ้าไม่ มีเ ครื่ องหมาย ";"
โปรแกรมจะตีความหมายว่ายังไม่รับคาสังจนกว่าจะพบเครื่ องหมายเรา ";"
                                   ่
      Tip ถ้าคุ ณพิมพ์ห รื อใช้ค าสั่งที่ ผิด โปรแกรมจะตรวจสอบและรายงานออกมาเอง เช่ น ผูเ้ ขี ยนพิมพ์คาสั่ง
CREATEDATABASE ผิดคือ ไม่เว้นวรรคระหว่าง CREATE กับ DATABASE โปรแกรมจะรายงานออกมาดังนี้


mysql> CREATEDATABASE datatest;
ERROR 1064: You have an error in your SQL syntax near
'CREATEDATABASE datatest'
at line 1
         ลองอีกครั้ง ถ้าสาเร็ จจะได้ผลดังนี้


mysql> CREATE DATABASE datatest;
Query OK, 1 row affected (0.02 sec)
mysql>
         ทีน้ ีเราก็สามาถสร้าง file database ได้แล้ว


           การแสดง file database
        ในตอนที่แล้วเราได้ทดลองสร้าง file datadbase และลบ file database ได้เรี ยบร้อยแล้ว ในตอนนี้ จะให้สร้ าง
                                                                                                 ้
file database ชื่อ "datatest" อีกที เพื่อจะได้ทาการติดต่อ file database และสร้าง table เพื่อใส่ ขอมูลต่อไป
         การติดต่อ file database มีรูปแบบการติดต่อดังนี้


       รู ปแบบคาสั่ง การแสดง file database
        SHOW DATABASES
        คาอธิ บาย
        SHOW DATABASES
        เป็ นคาสังที่ใช้แสดง database ทั้งหมดที่มี
                 ่
       ตัวอย่าง
       mysql>SHOW DATABASES;
       ให้แสดง database ทั้งหมดที่มีใน Programe MySQL นี้
                        ั
          ผลลัพท์ที่ได้ดงภาพข้างล่าง
                ่
      จะเห็นได้วาขณะนี้ มี file database อะไรบ้าง และรวมแล้วมีกี่ file บนเครื่ องของเรา


            การ ลบ file database
                                                                     ้                             ้
          เมื่อเราสามารถสร้างหรื อ create file database ได้แล้วเราก็ตอง สามารถลบ file database ได้ดวย
          การลบ file database มีรูปแบบคาสังดังนี้
                                          ่


        รู ปแบบคาสั่ง ลบ file database
         DROP DATABASE datatest
         คาอธิ บาย
         DROP DATABASE datatest
         DROP DATABASE เป็ นคาสังที่ลบ database
                                       ่
                                             ้
        datatest เป็ นชื่อ file database ที่ตองการลบ
        ตัวอย่าง
        mysql>DROP DATABASE datatest;
        ให้ลบ database ที่ชื่อ datatest
                        ั
          ผลลัพธ์ที่ได้ดงภาพข้างล่าง


mysql> DROP DATABASE datatest;
Query OK, 0 rows affected (0.00 sec)
       MySQL จะรายงานการลบออกมาว่าสามารถลบได้เรี ยบร้ อยแล้ว แต่ ถ้าลบไม่ได้จะมี systex error ขึ้นมาดังเช่ น
                                                                                                  ั
ภาพ eror ในบทการสร้าง file database สาหรับใน systex eror นั้น ถ้าสังเกตุให้ดี มันจะมีประโยชน์กบเรามาก
                                                                                       ้
เพราะว่ามันจะรายงานในสิ่ งที่ผิดพลาดออกมาให้เราดู เช่น ใช้คาสังผิด หรื อไม่พบ file ที่ตองการลบ ดังเช่นตัวอย่างข้างล่างผูเ้ ขียนลบ
                                                              ่
                        ั                                              ั
file database ไปแล้วแต่ยงคงใช้คาสังลบ file database ซ่า ก็จะได้ผลลัพธ์ดงนี้
                                  ่


mysql> DROP DATABASE datatest;
ERROR 1008: Can't drop database 'datatest'. Database doesn't
exist
mysql>
                                                        ู้                                   ้
   Tip สาหรับการลบ file database นั้น MySQL จะยอมให้ผที่เป็ นสร้าง file database เป็ นผูลบเท่านั้น เช่นถ้า
user nick เป็ นคนสร้ าง user jib จะไปลบไม่ได้ เป็ นเรื่ องของสิ ทธิ การใช้งาน ในเรื่ องนี้ จะขอกล่ าวต่อไปใน
                 ู้
บทการกาหนดสิ ทธิผใช้


            การ ลบ file database
                                                                     ้                             ้
          เมื่อเราสามารถสร้างหรื อ create file database ได้แล้วเราก็ตอง สามารถลบ file database ได้ดวย
          การลบ file database มีรูปแบบคาสังดังนี้
                                          ่


        รู ปแบบคาสั่ง ลบ file database
         DROP DATABASE datatest
         คาอธิ บาย
         DROP DATABASE datatest
         DROP DATABASE เป็ นคาสังที่ลบ database
                                       ่
                                             ้
        datatest เป็ นชื่อ file database ที่ตองการลบ
        ตัวอย่าง
        mysql>DROP DATABASE datatest;
        ให้ลบ database ที่ชื่อ datatest
                        ั
          ผลลัพธ์ที่ได้ดงภาพข้างล่าง


mysql> DROP DATABASE datatest;
Query OK, 0 rows affected (0.00 sec)
         MySQL จะรายงานการลบออกมาว่าสามารถลบได้เรี ยบร้ อยแล้ว แต่ ถ้าลบไม่ได้จะมี systex error ขึ้นมาดังเช่ น
ภาพ eror ในบทการสร้าง file database สาหรับใน systex eror นั้น ถ้าสังเกตุให้ดี มันจะมีประโยชน์กบเรามาก                  ั
                                                                                        ้
เพราะว่ามันจะรายงานในสิ่ งที่ผิดพลาดออกมาให้เราดู เช่น ใช้คาสังผิด หรื อไม่พบ file ที่ตองการลบ ดังเช่นตัวอย่างข้างล่างผูเ้ ขียนลบ
                                                              ่
                                ั
file database ไปแล้วแต่ยงคงใช้คาสังลบ file database ซ่า ก็จะได้ผลลัพธ์ดงนี้
                                       ่                                              ั


mysql> DROP DATABASE datatest;
ERROR 1008: Can't drop database 'datatest'. Database doesn't
exist
mysql>
                                                        ู้                                   ้
   Tip สาหรับการลบ file database นั้น MySQL จะยอมให้ผที่เป็ นสร้าง file database เป็ นผูลบเท่านั้น เช่นถ้า
user nick เป็ นคนสร้ าง user jib จะไปลบไม่ได้ เป็ นเรื่ องของสิ ทธิ การใช้งาน ในเรื่ องนี้ จะขอกล่ าวต่อไปใน
                 ู้
บทการกาหนดสิ ทธิผใช้


           ชนิดของข้ อมูล
ชนิดของข้อมูล(Data type) ได้แก่
Datatype            คาอธิบาย                                                   ตัวอย่าง
CHAR(M)             จ ะ เ อ า ไ ว้ เ ก็ บ ข้ อ มู ล ที่ เ ป็ น string(ส า ย อั ก ษ ร ) firstname CHAR(25);
                    โดยที่ขนาดของการเก็บมีความคงที่
VARCHAR(M) ข้ อ มู ล ที่ เ ป็ น string(ส า ย อั ก ษ ร ) firstname CHAR(25);
           โดยที่ขนาดของการเก็บมีความคงที่
INT(M)              INT เก็บค่าจานวนเต็ม มีค่าตั้งแต่ -2147483648 ถึง light_year INT;
Unsigned            +2147483647             แต่ ถ้ า ใส่    Unsigned electron                         INT
                    จะมีค่าได้ต้งแต่ 0 ถึง
                                ั                                     unsigned;
                    4294967295
FLOAT[(M,D)] ใช้เก็บเลขทศนิ ยม                                                 rainfall FLOAT(4,2);
             เลข 4 และ 2 บอกว่ า ตัวแปรนี้ เ ก็ บ ค่ าได้ 4              ตัว
             และเป็ นเลขทศนิยม 2 ตาแหน่ง
                    Note:
                    42.35 เก็บค่าได้ถูกต้อง
                    324.56 เก็บค่าเป็ น 324.5
                    2.2 เก็บค่าได้ถูกต้อง
                    34.524 ปัดเป็ น 34.52
DATE                เก็บข้อมูลในรู ป "YYYY-MM-DD"                              today DATE;
TEXT/BLOB ้้ เก็ บ ข้ อ มู ล ตั้ งแต่ 255-65535 ตั ว อั ก ษร comment BLOB;
          ข้อแตกต่างระหว่าง TEXT กับ BLOB คือ BLOB
          จะถือ cases sensitivity
SET                 เป็ นกลุ่มของข้อมูลที่ยอมให้เลื อกได้ 1 ค่าหรื อหลายๆ ค่า university
                    สามารถกาหนดได้ถึง 64 ค่า                                  SET("SUT", "MIT",
                    เราสามารถเลือกได้ เป็ น "", "SUT", "MIT" หรื อ "AIT", "KMITNB");
                    "MIT,KMITNB";
     การติดต่ อ file database
                 ในตอนที่ แ ล้วเราได้ทดลองสร้ าง file datadbase กัน แล้ว ที น้ ี เ รามาดู ก ัน ว่า file database
ที่เราได้สร้างนั้นเสร็ จสมบรู ณ์หรื อไม่ MySQL มีคาสั่งให้แสดง file database คือคาสั่ง SHOW DATABASES
                  ั
โดยมีรูปแบบการใช้ดงนี้


       รู ปแบบคาสั่ง การติดต่ อ file database
        USE database
        คาอธิ บาย
        USE
        เป็ นคาสังที่ใช้ติดต่อ file database
                 ่
        database
                                    ้
        เป็ นชื่อ file database ที่ตองการติดต่อ
       ตัวอย่าง
       mysql>USE datatest;
       ให้ติดต่อหรื อเชื่ อมต่อ file database ที่ชื่อ datatest
                          ั
         ผลลัพท์ที่ได้ดงภาพข้างล่าง
.


mysql> USE datatest;


Database changed


mysql>



         MySQL จะเห็นรายงานว่าขณะนี้ ติดต่อ file database ที่ชื่อ datatest เรี ยบร้อยแล้ว



            การ สร้ าง table
                                                                                     ่
          ก่อนที่เราจะสร้าง table เราจะต้องสร้าง file database เสี ยก่อน และในตอนที่ผานมาเราก็สร้ าง file database
ที่ชื่อ "datatest" ไว้แล้ว ให้เรานา file "datatest" มาใช้อีกครั้งโดย ใช้คาสัง USE database
                                                                             ่
             การสร้าง table จาเป็ นต้องทาความเข้าใจ ถึ ง Table Option เสี ยก่ อน เพราะว่า table ต้องมี Option
เป็ นส่วนประกอบของโครงสร้างดังนี้
Table option
Option                         Description
AUTO_INCREMENT The next auto increment value you want to
                               set for your table
                               (MyISAM)
AVG_ROW_LENGTH An approximation of the average row
               length for your table. You only
               need to set this for tables with variable
               size records.
CHECKSUM                     Set this to 1 if you want MySQL to
                             maintain a checksum for all rows
                             (makes the table a little slower to update
                             but makes it easier to nd
                             corrupted tables) (MyISAM)
COMMENT                      A 60 character comment for your table
MAX_ROWS                     Max number of rows you plan to store in
                             the table
MIN_ROWS                     Minimum number of rows you plan to store
                             in the table
PACK_KEYS                    Set this to 1 if you want to have smaller
                             index. This usually makes
                             updates slower and reads faster (MyISAM,
                             ISAM).
PASSWORD                     Encrypt the .frm le with a password. This
                             option doesn't do anything
                             in the standard MySQL version.
DELAY_KEY_WRITE Set this to 1 if want to delay key table
                updates until the table is closed
                (MyISAM).
ROW_FORMAT                   De nes how the rows should be stored (for
                             the future).
PRIMARY KEY                  Difference Record must not equals
NOT NULL                     Must have any thing in record not null
        การสร้าง table มีรูปแบบคาสังดังนี้
                                   ่


        รู ปแบบคาสั่งสร้ าง table
         CREATE TABLE data1 (field1, filed2, filed3, filedn)
หรื อ
        create_definition:
          col_name type [NOT NULL | NULL] [DEFAULT
default_value]
                   [AUTO_INCREMENT][PRIMARY KEY]
                   [reference_definition]
      or PRIMARY KEY (index_col_name,...)
      or KEY [index_name] (index_col_name,...)
      or INDEX [index_name] (index_col_name,...)
      or UNIQUE [INDEX] [index_name] (index_col_name,...)
      คาอธิ บาย
      CREATE TABLE data1
      CREATE TABLE เป็ นคาสังสร้าง table
                                    ่
                               ้
     data1 เป็ นชื่อ table ที่ตองการสร้าง
     field1 เป็ นชนิดของ column
     ตัวอย่าง
     mysql>CREATE TABLE phonebook(
     -> name VARCHAR(25),
     -> email VARCHAR(30),
     -> phone INT,
     -> ID INT NOT NULL AUTO_INCREMENT,
     -> PRIMARY KEY(ID));


     ให้สร้างตารางที่ชื่อว่า phone book โดยมีรายละเอียดดังตัวอย่างข้างต้น
                   ั
     ผลลัพธ์ที่ได้ดงภาพข้างล่าง



mysql> CREATE TABLE phonebook(


   -> name VARCHAR(25),


   -> email VARCHAR(30),


   -> phone INT,


   -> ID INT NOT NULL AUTO_INCREMENT,


   -> PRIMARY KEY(ID));
Query OK, 0 rows affected (0.00 sec)
mysql>
             Tip คุณสามารถกดปุ่ มลู กศรชี้ ข้ ึนได้ โดยโปรแกรมจะทวนคาสั่งจากคาสั่งสุ ดท้ายไปหาคาสั่งแรก ตามลาดับ
                                        ้
ซึ่ งจะสร้ างความสะดวกให้คุณ โดยไม่ตองพิมพ์คาสั่งซ้ าๆอีก     แต่สาหรั บผูเ้ ริ่ มต้นศึ กษาแล้ว ผูเ้ ขี ยนไม่แนะนาให้ใช้วิธีน้ ี
เนื่องจากจะไม่เป็ นการช่วยฝึ กทบทวนการใช้คาสังเลย...
                                              ่


            โครงสร้ าง table
          Table ทุก Table จาเป็ นต้องมีโครงสร้าง โครงสร้าง Table จะบ่งบอกถึ งลักษณะของการ Design และ
ยังช่วยให้การนาเข้าข้อมูลถูกชนิ ดตามที่ Design เอาไว้ ถ้าเรานาเข้าข้อมูล input ผิดแล้วก็จะส่ งผลกระทบต่อ Database
design
      มาถึ งตอนนี้ เราได้สร้าง Table ที่ชื่อว่า phonebook เรี ยบร้อยแล้ว ทีน้ ี เรามาดูรูปแบบโครงสร้ างของ Table
phonebook กัน โดยมีรูปแบบคาสังดังนี้
                                  ่


        รู ปแบบคาสั่งการขอดูโครงสร้ าง table
         DESC tablename
         คาอธิ บาย
         DESC tablename
         DESC เป็ นคาสังสร้างดูโครงสร้าง table
                       ่
                                        ้
         tablename เป็ นชื่อ table ที่ตองการดู
        ตัวอย่าง
        mysql>DESC phonebook;


        ขอดูโครงสร้างของตารางที่ชื่อว่า phonebook
                      ั
        ผลลัพธ์ที่ได้ดงภาพข้างล่าง


mysql> DESC phonebook;
+-------+-------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra         |
+-------+-------------+------+-----+---------+----------------+
| name | varchar(25) | YES | | NULL |                           |
| email | varchar(30) | YES | | NULL |                        |
| phone | int(11) | YES | | NULL |                          |
| ID | int(11) |          | PRI | 0     | auto_increment |
+-------+-------------+------+-----+---------+----------------+
4 rows in set (0.02 sec)
mysql>


           ขอดู table ใน file database
                                                       ั                                     ั
           หลังจากที่เราสร้าง table กันแล้วก็มาลองดูกน อย่างไรก็ดี ก่อนที่จะขอดู table ได้น้ น คุณจะต้องทาการติดต่อ
file database ที่มี table อยูในนั้นให้ได้ก่อน รู ปแบบคาสังการขอดู table เป็ นดังนี้
                               ่                         ่


       รู ปแบบคาสั่งการขอดู table ใน file database
        SHOW TABLES
        คาอธิ บาย
        SHOW TABLES
        SHOW เป็ นคาสังของดู
                      ่
                               ้
        TABLES เป็ น table ที่ตองการดูใน file database
       ตัวอย่าง
       mysql>SHOW TABLES;


                      ั
        ผลลัพธ์ที่ได้ดงภาพ


mysql> show tables;
+--------------------+
| Tables in datatest |
+--------------------+
| phonebook           |
+--------------------+
1 row in set (0.00 sec)
mysql>
        โปรแกรม จะรายงานว่า ภายใน file database ที่ชื่อว่า "datatest" มี table ชื่ อ "phonebook" จานวน
1 table
     Tip โครงสร้าง Table จะมีผลต่อกรณี การ Import และ Export ข้อมูล ดังนั้นในอนาคต ถ้าต้องการ Import และ
Export ข้อมูลจาเป็ นต้องคานึ งถึ งการออกแบบโครงสร้ างข้อมูลด้วย รายละเอี ยดจะขอกล่าวในบทเรื่ องการ Import และ
Export ข้อมูล...


           ขอดู table ใน file database
                                                       ั                                     ั
           หลังจากที่เราสร้าง table กันแล้วก็มาลองดูกน อย่างไรก็ดี ก่อนที่จะขอดู table ได้น้ น คุณจะต้องทาการติดต่อ
file database ที่มี table อยูในนั้นให้ได้ก่อน รู ปแบบคาสังการขอดู table เป็ นดังนี้
                               ่                         ่


       รู ปแบบคาสั่งการขอดู table ใน file database
        SHOW TABLES
        คาอธิ บาย
        SHOW TABLES
        SHOW เป็ นคาสังของดู
                      ่
                               ้
        TABLES เป็ น table ที่ตองการดูใน file database
       ตัวอย่าง
       mysql>SHOW TABLES;


                      ั
        ผลลัพธ์ที่ได้ดงภาพ


mysql> show tables;
+--------------------+
| Tables in datatest |
+--------------------+
| phonebook           |
+--------------------+
1 row in set (0.00 sec)
mysql>
        โปรแกรม จะรายงานว่า ภายใน file database ที่ชื่อว่า "datatest" มี table ชื่ อ "phonebook" จานวน
1 table
     Tip โครงสร้าง Table จะมีผลต่อกรณี การ Import และ Export ข้อมูล ดังนั้นในอนาคต ถ้าต้องการ Import และ
Export ข้อมูลจาเป็ นต้องคานึ งถึ งการออกแบบโครงสร้ างข้อมูลด้วย รายละเอี ยดจะขอกล่าวในบทเรื่ องการ Import และ
Export ข้อมูล...
           แก้ไข table
          เมื่อเราได้ออกแบบและสร้าง table ไปแล้ว ต่อมาภายหลังจากใช้ database ไประยะหนึ่ งพบว่าต้องการแก้ table
MySQL ได้เ ตรี ยมค าสั่งส าหรั บแก้ไขตารางไว้ใ ห้ แ ล้ว แต่ ก ารแก้ไขภายหลังจ าเป็ นต้องใช้ค วามระมัดระวังอย่า งมาก
เนื่องจากภายใน table นั้นได้มีการ add data ไว้เรี ยบร้อยแล้ว รู ปแบบของคาสังแก้ไขข้อมูลเป็ นดังนี้
                                                                           ่


       รู ปแบบคาสั่งการแก้ ไข table
       ALTER TABLE tableold RENAME tablenew;
      หรื อ
     ALTER TABLE table ADD fiednew DATATYPE;
      คาอธิ บาย
       ALTER TABLE tableold RENAMEt ablenew;
       ALTER TABLE เป็ นคาสังแก้ไข table
                                  ่
       tableold เป็ นชื่อของ table เดิม
       RENAME ให้แก้ไขเปลี่ยนชื่ อตาราง
       tablenew เป็ นชื่อของ table ใหม่ที่เราต้องการให้แก้ไข
       หรื อ
       ALTER TABLE table ADDfiednewDATATYPE;
       ALTER TABLE เป็ นคาสังแก้ไข table
                                      ่
                                    ้
       table เป็ นชื่อของ table ที่ตองการแก้ไข
       ADD ให้แก้ไขเปลี่ยนเพิ่ม field เข้าไปใหม่
       fiednew เป็ นชื่อของ field ใหม่ที่เราต้องการแก้ไขเพิ่มเติม
       DATATYPE เป็ นลักษณะของ fild ใหม่ที่เราต้องการให้เพิ่มเติมลงไป
      ตัวอย่าง
      ALTER TABLE tableold RENAMEtablenew;
      ALTER TABLE tableADDfiednewDATATYPE;


      ให้แก้ไขชื่อ table phonebook โดยเปลี่ยนชื่อเป็ น phonebooknew
                                         ่
      จากนั้นใช้คาสัง SHOW table ดูวา ได้แก้ไขสาเร็ จหรื อไม่
                      ่
      จากนั้นให้แก้กลับมาเป็ นชื่ อ phonebook เหมือนเดิม
                    ั
      ผลลัพธ์ที่ได้ดงภาพข้างล่าง


mysql> ALTER TABLE phonebook RENAME phonebooknew;
Query OK, 0 rows affected (0.00 sec)


mysql>
mysql> show tables;
+--------------------+
| Tables in datatest |
+--------------------+
| phonebooknew         |
+--------------------+
1 row in set (0.00 sec)


mysql>
mysql> ALTER TABLE phonebooknew RENAME phonebook;
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql> show tables;
+--------------------+
| Tables in datatest |
+--------------------+
| phonebook           |
+--------------------+
1 row in set (0.00 sec)


mysql>


           ลบ table
                    เมื่ อ สร้ า ง table ได้ก็ต้องลบได้เ ช่ น แต่ก่ อนลบจะต้องมัน ใจก่ อนว่ า จะลบ table
                                                                                 ่                           จริ ง ๆ
มิฉะนั้นแล้วข้อมูลของบริ ษทหรื อองค์กร ก็จะหายไปในทันที ทางที่ดีควร backup ไว้ก่อน รู ปแบบคาสังเป็ นดังนี้
                            ั                                                                 ่


       รู ปแบบคาสั่งการลบ table ใน file database
        DROP TABLE tablename
        คาอธิ บาย
        DROP TABLE tablename
        DROP TABLE เป็ นคาสังลบ table
                                 ่
                                      ้
        tablename เป็ นชื่อ table ที่ตองการลบ
       ตัวอย่าง
        DROP TABLE phonebook;


                                                                   ่
        ให้ลบ table phonebook จากนั้น ตรวจสอบว่า table phone ยังอยูหรื อไม่
                      ั
        ผลลัพธ์ที่ได้ดงภาพ


mysql>
mysql> DROP TABLE phonebook;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> SHOW TABLES;
Empty set (0.01 sec)
mysql>
                หลังจากลบ table phonebook แล้ว โปรแกรม จะรายงานว่า Query OK คือได้ทาการลบเสร็ จแล้ว
และเมื่อใช้คาสัง SHOW TABLE ก็ไม่พบ table ใดๆ (กรณี ที่มี table table เดียว)
                 ่
           Tip การแก้ Table ส่ วนใหญ่แล้วจะไม่ค่อยทากัน เนื่ องจากว่าถ้ามี ขอผิดพลาดเกิ ดขึ้ น อาจส่ งผลกระทบต่อ
                                                                                   ้
              ่
ข้อมูลที่มีอยูได้ ดังนั้นควร ออกแบบ table ให้คานึ งถึงอนาคตด้วย และในทุกครั้งที่มีการแก้ไข table ต้องทาการ backup
ข้อมูลทุกครั้ง


           ลบ table
                    เมื่ อ สร้ า ง table ได้ก็ต้องลบได้เ ช่ น แต่ก่ อนลบจะต้องมัน ใจก่ อนว่ า จะลบ table
                                                                                 ่                           จริ ง ๆ
มิฉะนั้นแล้วข้อมูลของบริ ษทหรื อองค์กร ก็จะหายไปในทันที ทางที่ดีควร backup ไว้ก่อน รู ปแบบคาสังเป็ นดังนี้
                            ั                                                                 ่


       รู ปแบบคาสั่งการลบ table ใน file database
        DROP TABLE tablename
        คาอธิ บาย
        DROP TABLE tablename
        DROP TABLE เป็ นคาสังลบ table
                                 ่
                                      ้
        tablename เป็ นชื่อ table ที่ตองการลบ
       ตัวอย่าง
        DROP TABLE phonebook;


                                                                   ่
        ให้ลบ table phonebook จากนั้น ตรวจสอบว่า table phone ยังอยูหรื อไม่
                      ั
        ผลลัพธ์ที่ได้ดงภาพ


mysql>
mysql> DROP TABLE phonebook;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> SHOW TABLES;
Empty set (0.01 sec)
mysql>
                หลังจากลบ table phonebook แล้ว โปรแกรม จะรายงานว่า Query OK คือได้ทาการลบเสร็ จแล้ว
และเมื่อใช้คาสัง SHOW TABLE ก็ไม่พบ table ใดๆ (กรณี ที่มี table table เดียว)
                 ่
           Tip การแก้ Table ส่ วนใหญ่แล้วจะไม่ค่อยทากัน เนื่ องจากว่าถ้ามี ขอผิดพลาดเกิ ดขึ้ น อาจส่ งผลกระทบต่อ
                                                                                   ้
              ่
ข้อมูลที่มีอยูได้ ดังนั้นควร ออกแบบ table ให้คานึ งถึงอนาคตด้วย และในทุกครั้งที่มีการแก้ไข table ต้องทาการ backup
ข้อมูลทุกครั้ง
             Operator
               การจัดการข้อมูลจาเป็ นต้องใช้ต ัว Operator           คงสงสัยว่าตัว Operator จะมาช่ วย อย่างไร
ลองนึ งดูว่าเวลาเราต้องการสื บค้นข้อมูลใดๆ คงไม่ตองการดูขอมูลที่มีความหมายน้อย เช่ นต้องการดู คนชื่ อ ภาสกร ถ้าเป็ น
                                                  ้      ้
ฐานข้อ มู ล ขนาดใหญ่ สั ก 1          ล้ า นคน โปรแกรมก็ จ ะค้น คนชื่ อ    ภาสกร ออกมาเต็ ม ไปหมดเป็ น 100         ชื่ อ
                                                                                   ่ั
ข้อมูลนี้ จึงถือได้ว่ามีความหมายน้อยมาก แต่ถามีการกาหนดลงไปด้วยว่า คนชื่ อภาสกร อยูจงหวัดกาญจนบุรี การศึกษาปริ ญญาโท
                                              ้
                                             ้
เงินเดือนมากกว่า 10000 บาท เราก็จะได้ขอมูลที่มีความหมายและตรงกับความต้องการมากขึ้น การกาหนดข้อสื บค้นต่างๆเหล่านี้
เราเรี ยกว่าเป็ น การกาหนดอย่างมีเงื่อนไข และสิ่ งที่ขาดไม่ได้ที่จะต้องนามาใช้ประกอบการกาหนดการสื บค้นอย่างมีเงือนไข นี้ ก็คือตัว
Operator นั้นเเอง
        ตัว Opertor สามารถแยกได้ 2 ประเภทดังนี้
     1.Relational operator
     2.Bulletin operator
Relational operator ได้แก่
Operator                                  ความหมาย
=                                         เท่ากับ
>                                         มากกว่า
<                                         น้อยกว่า
>=                                        มากกว่า หรื อเท่ากับ
<=                                        น้อยกว่า หรื อเท่ากับ
<>                                        ไม่เท่ากับ
Bulletin operator ได้แก่
Operator                                                ความหมาย
AND                                                     และ
OR                                                      หรื อ
NOT                                                     เป็ นเท็จ
                    ั
            การใช้ตว Operator ช่วยในการจัดการข้อมูล (เพิ่ม สื บค้น แก้ไข ลบ) อย่างมีประสิ ทธิ ภาพถูกต้องแม่นยาและรวดเร็ ว
                                            ่
จาเป็ นต้องกาหนดเงื่อนไขลงไปด้วย สมมุติวาเราต้องการสื บค้นคนชื่ อ ภาสกร การศึกษาปริ ญญาโท เงินเดือนมากกว่า 10000 บาท
                                                                  ้
จากสถานการณ์เงื่อนไขที่กาหนด ถ้าต้องการให้เป็ นจริ ง คือจะต้องมีขอมูลทุกเงื่อนไข จะขาดเงื่อนไขใดเงื่อนไขหนึ่ งไม่ได้
ตัว           Operrator             Bulletin     ที่ ใ ช้ ก็ คื อ AND         แต่ ถ้า เรายอมให้ เ งื่ อ นไขใดเงื่ อ นไขหนึ่ งเป็ นจริ ง
                                               ั
ไม่จาเป็ นต้องเป็ นจริ งทุกเงื่อนไข เราต้องใช้ตว Operrator Bulletin "OR" ผูเ้ ขี ยนพยายามทาให้เห็ นภาพมากขึ้ น
โดยสรุ ปเป็ นตารางดังนี้


ความต้ องการข้ อมูล สถานการณ์              การใช้ Operator                         ผลลัพธ์                              ่
                                                                                                                     เงือนไข
ต้องการข้อมูลครบ สื        บ      ค้     น สื บค้น ชื่อนายภาสกร                    นายภาสกร                          ต้องเป็ นจริ ง
                    ชื่อนายภาสกร              ่ั
                                           อยูจงหวัดกาญจนบุรี                         ่ั
                                                                                   อยูจงหวัดกาญจนบุรี                ทั้งสองอย่าง
                              ่ั
                         อยูจงหวัดกาญจนบุรี AND                                       เงินเดือนมากกว่า 10000
                         เ งิ น เ ดื อ น ม า ก ก ว่ า (เงินเดือน > 10000)
                         10000
        ้
    ไม่ตองครบก็ได้       สื บค้น ชื่ อนายภาสกร สื                 บ       ค้    น น า ย ภ า ส ก ร ต้องเป็ นจริ ง
                         อยู่จ ัง หวัด กาญจนบุ รี ชื่อนายภาสกร อยูจงหวัดกาญจนบุรี อาจจะอยูจงหวัดกาญจนบุรีก็ได้ อย่างใดอย่างหนึ่ ง
                                                                      ่ั                   ่ั
                         เ งิ น เ ดื อ น ม า ก ก ว่ า OR                          เงินเดือนอาจจะมากกว่า10000
                         10000                        (เงินเดือน > 10000)         ก็ได้
       ่
    เงือนไขการใช้ Bulletin operator
                                                      ้
                การใช้ Operator จัดการข้อมูลให้ได้ขอมูลที่ถูกต้องและประสิ ทธิ ภาพ จาเป็ นต้องทาความเข้าใจตรรกเสี ยก่อน
    การอธิบายหลักการตรรก logic เป็ นเชิงพรรณายากที่จะบรรยายได้ ผูเ้ ขียนจึงขออธิ บายในรู ปตารางดังนี้


    Operator เงือนไข                    ตัวอย่าง                            ผลลัพธ์
    AND              T AND T            (1=1) AND (2=2)                     T
                     F AND T            (1>1) AND (2=2)                     F
                     T AND F            (1=1) AND (2<2)                     F
                     F AND F            (1<>1) AND (2<>2)                   F
    OR               T OR T             (1=1) OR       (2=2)                T
                     T OR F             (1=1) OR       (2<>2)               T
                     F OR T             (1>1) OR       (2=2)                T
                     F OR F             (1>1) OR       (2>2>                F
    NOT              T                  1=1                                 F
                     F                  2<>2                                T
                F = เท็จ
                T = จริง
                Operator นอกจากจะเป็ นตัวช่วยในการสื บค้นข้อมูลแล้ว ยังนามาช่วยในการแก้ไขและลบข้อมูลได้อีกด้วย การนาตัว
    Operator ไปช่วยในงานจัดการข้อมูลต่างๆ จะขอกล่าวในตอนต่อไป
              Tip การใช้ตว Opertor ให้มีประสิ ทธิ ภาพนั้นผูเ้ รี ยนจาเป็ นต้องเข้าใจเกี่ ยวกับเรื่ องตรรก หรื อ Logic ให้ดีก่อน
                              ั
    ถ้าเข้าใจดีแล้วก็จะใช้ได้อย่างมีประสิ ทธิ ภาพ



                       ่
                 การเพิมข้ อมูล
                  จากตอนที่ ผ่า นมาเราสามารถสร้ า ง File Database                     และ Table      ตลอดจนแก้ไขและลบได้แ ล้ว
    มาตอนนี้เราจะเริ่ มนาข้อมูลเข้าสู่ Table กัน โดยมีวิธีการอย่างคร่ าวๆ ดังนี้
              สร้าง file database 1 file ชื่อว่า datatest
              สร้าง table ชื่อว่า phone book
               เพิ่มข้อมูลตามลาดับ
                                            ั
               รู ปแบบคาสังการเพิ่มข้อมูลมีดงต่อไปนี้
                          ่


              รู ปแบบคาสั่งการเพิ่มข้ อมูลลงใน table
              INTER INTO tablename (field1,field2,fieldn) VALUES
    ('field1', 'field2', 'field2');
            คาอธิ บาย
               INTER INTO tablename ('field1', 'field2', 'fieldn');
               INTER INTO เป็ นคาสังเพิ่มข้อมูลเข้าสู่ table
                                        ่
                                               ้
               tablename เป็ นชื่อ table ที่ตองการเพิ่มข้อมูล
                                                            ้
               (field1,field2,fieldn) เป็ นชื่อ field ที่ตองการเพิ่มข้อมูล
               VALUES กลุ่มของข้อมูลที่ตองการเพิ่ม
                                           ้
                                                                              ้
               ('field1', 'field2', 'fieldn') เป็ นข้อมูลของแต่ละ field ที่ตองการเพิ่ม
                                                      ้
               field 1 เป็ น field ที่ 1 ของข้อมูลที่ตองการเพิ่ม (จากที่ได้ออกแบบ Table ไว้)
                                                        ้
               field 2 เป็ น field ที่ 2 ของข้อมูลที่ตองการเพิ่ม
                                                          ้
               field n เป็ น field ที่ n ของข้อมูลที่ตองการเพิ่ม
              ตัวอย่าง
         mysql>INTER INTO phonebook                                 (name,email,phone)
    VALUES
        mysql>('ภาสกร เรื องรอง',
              mysql>'ccpasskn@hotmail.com'
              mysql>223102, NULL);


     วิธีการทาโดยละเอียด
               1. สร้าง table ชื่อว่า phonebook โดยมีโครงสร้างตารางเป็ น 4 field ดังนี้
                  1. field ที่ 1 ชื่อว่า name Data type = VARCHAR(25)
                  2. field ที่ 2 ชื่อว่า email Data type = VARCHAR(30)
                  3. field ที่ 3 ชื่อว่า phone Data type = INT
                  4. field ที่ 4 ชื่อว่า ID Table option = INT NOT NULL AUTO_INCREMENT
                                                                                     ้      ้
                                                                        (เป็ นแบบไม่ตองใส่ ขอมูลโปรแกรมจะเพิ่มให้เองอัต
    โนมัติ)
                                                                           =PRIMARY KEY
                                                                            (เป็ นข้อมูลที่ไม่มีการซ้ ากับข้อมูลอื่น)
    วิธีการทา ดังภาพข้างล่าง


    mysql> CREATE TABLE phonebook(
  -> name VARCHAR(25),
  -> email VARCHAR(30),
  -> phone INT,
  -> ID INT NOT NULL AUTO_INCREMENT,
  -> PRIMARY KEY(ID));
Query OK, 0 rows affected (0.01 sec)


mysql>
           2. เพิ่มข้อมูลลงใน Table phonebook โดยมีรูปแบบการเพิ่มดังนี้
                         INTER INTO phonebook VALUE                                 ('passkorn roungrong',
'ccpasskorn@hotmail.com', 223102,'NULL');
วิธีการทา ดังภาพข้างล่าง


mysql> INSERT                  INTO      phonebook          (name,email,phone)
VALUES (
  -> 'passkorn',
  -> 'ccpasskn@hotmail.com'
  -> '223102',NULL);
Query OK, 1 row affected (0.02 sec)
             3.ให้เพิ่มข้อมูลลงใน Table phonebook อีกดังต่อไปนี้
parinya,parinya@thai.com,612069
somchai,somchai@stjohn.com,9387059
somjai,somjai@putamonton.gov.th,4410330
sangtong,sang@hotmail.com,356777
                                      ้
             แล้วเราจะมาทาการเรี ยกดูขอมูลกันในตอนต่อไป
             Tip ลองสังเกตุให้ดีจะเห็ นว่าในคาสั่ง INSERT INTO หรื อคาสั่งอื่นๆที่ยาวมาก ถ้าเรา Key ข้อมูลโดยไม่
Enter ขึ้นบรรทัดใหม่เลย บรรทัดที่ Key จะยาวมากจนล้นและดูยาก MySQL เปิ ดโอกาศให้ Key ข้อมูลไปก่อน แต่
MySQL จะยัง ไม่ รับ ค าสั่งจนกว่าจะเครื่ อ งหมาย";" ดัง นั้น คุ ณสามารถ Key ค าสั่ง ที่ ต้อ งการแล้ว งกด Enter
ขี้ นบรรทัดใหม่ไปได้เ รื่ อยๆ จนครบค าสั่งแล้วจึ งใส่ เ ครื่ องหมาย ";" ปิ ดท้ายจากนั้น Enter อี ก ครั้ ง MySQL
ก็จะรับคาสังไปทาการ Process ... ถ้าไม่สามารถทาได้ก็จะรายงานบรรทัดที่ผิดพลาดมาให้ เช่น
           ่
              ERROR 1064: You have an error in your SQL syntax near
'223102,NULL)' at line 4
                                                    ้                                                           ่
          แล้วคุณยังสามารถสังคาสังให้อีกครั้งโดยไม่ตอง Key อีกโดยกดปุ่ มลูกศกชี้ ข้ ึน ได้กล่าวไปแล้วเมื่อบทที่ผานมา
                            ่ ่


           การสื บค้นข้ อมูล
                              เมื่ อ เราเพิ่ ม ข้ อ มู ล เข้ า ไปเรื่ อยๆแล้ ว ถ้ า ข้ อ มู ล ไม่ ม ากนั ก เราสามารถเรี ยกดู ไ ด้ ไ ม่ ย าก
                      ั                       ้          ้             ้
     โดยการเรี ยกดูท้ งหมดและใช้ตาเลื อกดูขอมูลที่ตองการ แต่ถาข้อมูลเพิ่มขึ้นเรื่ อยๆ จาก 10 กว่า Record จนเป็ น 100 และ เป็ น
                                                             ั
     10000 ในที่สุด การสื บค้นข้อมู ลโดยวิธีดงกล่ าวไม่สามารถทาได้                                MySQL มีระบบการสื บค้นข้อมูลมาให้แล้ว
                                                                                            ้
     สามารถสื บค้นโดยการสร้ างเงื่อนไขให้ตรงความต้องการ และเราจะได้ขอมูลจากการสื บค้นตรงต่อความต้องการโดยไม่ยากเลย
               ้
     (ในส่ วนนีจะเกี่ยวข้ องกับการกาหนดและใช้ Operator ดังได้ กล่ าวในตอนที่แล้ ว) โดยมีวิธีการอย่างคร่ าวๆ ดังนี้
               การสื บค้นข้อมูลโดยไม่มีเงื่อนไข
               การสื บค้นข้อมูลโดยมีเงื่อนไข (Operator)
     Go Top
                                 ่
     การสืบค้นข้ อมูลโดยไม่ มีเงือนไข
1.                    ้
                 ขอดูขอมูลจากตารางทั้งหมด
2.                      ้
                 ขอดูขอมูลบางส่วนในตารางทุก Record
              รู ปแบบคาสังดังต่อไปนี้
                          ่




              รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยขอดูข้อมูลทั้งหมด table
              SELECT * FROM tablename;
              รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยขอดูข้อมูลบางส่ วน(บาง field)ทั้งหมด table
              SELECT fieldname FROM tablename;
              คาอธิ บาย
              SELECT fieldname FROM tablename;
              SELECT คาสังเลือกข้อมูล
                          ่
                                  ้
              fieldname field ที่ตองการ ถ้าต้องการทุก field ให้ใช้เครื่ องหมาย "*"
              FROM      จาก table อะไร
                                    ้
              tablename table ที่ตองการสื บค้น
             ตัวอย่าง
             mysql>SELECT * FROM phonebook;
             mysql>SELECT name,email FROM phonebook;


      วิธีการทา 1
                                       ั
              ให้สืบค้นข้อมูลโดยขอดูท้งหมดทุก field ในตาราง phonebook ทุก Record
                            ั
              ผลลัพธ์ที่ได้ดงภาพข้างล่าง



     mysql>
     mysql> SELECT * FROM phonebook;
+----------+----------------------+---------+--------+----+
| name | email                  | phone | salary | ID |
+----------+----------------------+---------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
| parinya | parinya@thai.com           | 612069 | 20000 | 2 |
| somchai | somchai@stjohn.com | 9387059 | 30000 | 3 |
| sangchai | sangchai@chaiyo.com | 7127000 | 50000 | 4 |
| somjai | somjai@chaiyo.com | 4410330 | 15000 | 5 |
| sangtong | sangtong@mco.net           | 975899 | 50000 | 6 |
+----------+----------------------+---------+--------+----+
6 rows in set (0.02 sec)

mysql>
วิธีการทา 2
                                   ั
          ให้สืบค้นข้อมูลโดยขอดูท้งหมดเฉพาะ field name, email,ในตาราง phonebook ทุก Record
                        ั
          ผลลัพธ์ที่ได้ดงภาพข้างล่าง



mysql>
mysql> SELECT name,email FROM phonebook;
+----------+----------------------+
| name | email                  |
+----------+----------------------+
| passkorn | ccpasskn@hotmail.com |
| parinya | parinya@thai.com        |
| somchai | somchai@stjohn.com |
| sangchai | sangchai@chaiyo.com |
| somjai | somjai@chaiyo.com |
| sangtong | sangtong@mco.net         |
+----------+----------------------+
6 rows in set (0.01 sec)
mysql>
Go Top
                        ่
การสืบค้นข้ อมูลโดยมีเงือนไข (Operator)
                  การสื บค้ น ข้อ มู ล โดยมี เ งื่ อ นไขจ าเป็ นต้ อ งใช้   Operator   เข้า ช่ ว ย การใช้ Operator
สามารถใช้ได้ในโอกาศและสถานการณ์ที่แตกต่างกัน สามารถแยกการใช้ได้ดงนี้      ั
1.            การสื บค้นโดยใช้ Operator   WHERE
2.            การสื บค้นโดยใช้ Operator   LIKE
3.            การสื บค้นโดยใช้ Operator   AND
4.            การสื บค้นโดยใช้ Operator   OR
5.            การสื บค้นโดยใช้ Operator    >
6.            การสื บค้นโดยใช้ Operator    >=
7.            การสื บค้นโดยใช้ Operator    <
8.            การสื บค้นโดยใช้ Operator <=
9.            การสื บค้นโดยใช้ Operator <>
     Go Top Oper
     1. การสืบค้นโดยใช้ Operator WHERE
     รู ปแบบคาสังดังต่อไปนี้
                ่




            รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยใช้ Operator WHERE
                  SELECT fieldname            FROM        tablename     WHERE
     (fieldname='namerecord');
            คาอธิ บาย
                 SELECT fieldname FROM tablename WHERE
     (fieldname='namerecord');
            SELECT คาสังเลือกข้อมูล
                        ่
                                ้
            fieldname field ที่ตองการ ถ้าต้องการทุก field ให้ใช้เครื่ องหมาย "*"
            FROM จาก table อะไร
                             ้
            WHERE ข้อมูลที่ตองการสื บค้น
                                                       ้
           (fieldname=namerecord) field และ Record ที่ตองการ
           ตัวอย่าง
             mysql>SELECT             *    FROM          phonebook      WHERE
     name='passkorn';


     วิธีการทา
             ให้สืบค้นข้อมูลคนชื่อ passkorn โดยแสดงทุก field ในตาราง phonebook
                           ั
             ผลลัพธ์ที่ได้ดงภาพข้างล่าง



     mysql>
     mysql>           SELECT             *         FROM         phonebook
     WHERE(name='passkorn');
     +----------+----------------------+--------+--------+----+
     | name | email                  | phone | salary | ID |
     +----------+----------------------+--------+--------+----+
     | passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
     +----------+----------------------+--------+--------+----+
     1 row in set (0.01 sec)


     mysql>
     Go Top Oper
     2. การสืบค้นโดยใช้ Operator LIKE
1.             Operator LIKE%
2.             Operator %LIKE%
3.             Operator %LIKE
     รู ปแบบคาสังดังต่อไปนี้
                ่




             รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยใช้ Operator LIKE%
            SELECT fieldname FROM tablename WHERE (fieldname
     LIKE 'namerecord%');
           รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยใช้ Operator %LIKE%
              SELECT fieldname FROM tablename WHERE (fieldname
     LIKE %'namerecord%');
           รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยใช้ Operator %LIKE
            SELECT fieldname FROM tablename WHERE (fieldname
     LIKE '%namerecord');
           คาอธิ บาย
           SELECT คาสังเลือกข้อมูล
                       ่
                                 ้
           fieldname field ที่ตองการ ถ้าต้องการทุก field ให้ใช้เครื่ องหมาย "*"
           FROM จาก table อะไร
                               ้
           LIKE ข้อมูลคล้ายที่ตองการสื บค้น
                                               namerecord%                 คื อ record
         ้
     ที่ตองการสื บค้นขึ้นต้นด้วยตัวอักษรที่กาหนดและตามด้วยอักษรอะไรก็ได้
                                            ้
               %namerecord% คือ record ที่ ตองการสื บค้นขึ้นต้นด้วยตัวอักษรอะไรก็ได้
ตามด้วยที่กาหนด และตามด้วยอักษรอะไรก็ได้
                                     ้
          %namerecord คือ record ที่ตองการสื บค้นขึ้นต้นด้วยตัวอักษรอะไรก็ได้
และตามด้วยอักษรที่กาหนด
         ตัวอย่าง
         mysql>SELECT * FROM phonebook WHERE (name LIKE
's%');
         mysql>SELECT * FROM phonebook WHERE (name LIKE
'%o%');
       mysql>SELECT * FROM phonebook WHERE (name LIKE
'%i');


วิธีการทา 1
          ให้สืบค้นข้อมูลคนที่มีชื่อขึ้นต้นด้วย p และตามด้วยตัวอักษรอะไรก็ได้ โดยแสดงทุก field ในตาราง phonebook
                        ั
          ผลลัพธ์ที่ได้ดงภาพข้างล่าง



mysql>
mysql> SELECT * FROM phonebook WHERE (name LIKE
'p%');
+----------+----------------------+--------+--------+----+
| name | email                  | phone | salary | ID |
+----------+----------------------+--------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
| parinya | parinya@thai.com           | 612069 | 20000 | 2 |
+----------+----------------------+--------+--------+----+
2 rows in set (0.00 sec)


mysql>
วิธีการทา 2
          ให้สืบค้นข้อมูลคนที่มีชื่อขึ้นต้นด้วยตัวอักษรอะไรก็ได้ และลงท้ายด้วย i โดยแสดงทุก field ในตาราง phonebook
                        ั
          ผลลัพธ์ที่ได้ดงภาพข้างล่าง



mysql>
mysql> SELECT * FROM phonebook WHERE (name LIKE
'%i');
+----------+---------------------+---------+--------+----+
| name | email                 | phone | salary | ID |
+----------+---------------------+---------+--------+----+
| somchai | somchai@stjohn.com | 9387059 | 30000 | 3 |
| sangchai | sangchai@chaiyo.com | 7127000 | 50000 | 4 |
| somjai | somjai@chaiyo.com | 4410330 | 15000 | 5 |
+----------+---------------------+---------+--------+----+
3 rows in set (0.01 sec)


mysql>
วิธีการทา 3
         ให้สืบค้นข้อมูลคนที่มีชื่อขึ้นต้นด้วยตัวอักษรอะไรก็ได้ ลงท้ายด้วยตัวอักษรอะไรก็ได้ แต่ระหว่างคาต้องตัวอักษร ch
โดยแสดงทุก field ในตาราง phonebook
                     ั
       ผลลัพธ์ที่ได้ดงภาพข้างล่าง



mysql>mysql> SELECT * FROM phonebook WHERE (name
LIKE '%ch%');
+----------+---------------------+---------+--------+----+
| name | email                 | phone | salary | ID |
+----------+---------------------+---------+--------+----+
| somchai | somchai@stjohn.com | 9387059 | 30000 | 3 |
| sangchai | sangchai@chaiyo.com | 7127000 | 50000 | 4 |
+----------+---------------------+---------+--------+----+
2 rows in set (0.00 sec)


mysql>
3. การสืบค้นโดยใช้ Operator AND
รู ปแบบคาสังดังต่อไปนี้
           ่



         รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยใช้ Operator AND
         SELECT fieldname FROM tablename WHERE
         (fieldname1='namerecord1')AND(fieldname3='namerecord2');
       คาอธิ บาย
       SELECT fieldname FROM tablename WHERE
       (fieldname1='namerecord1')AND(fieldname3='namerecord2');
       SELECT คาสังเลือกข้อมูล
                   ่
                           ้
       fieldname field ที่ตองการ ถ้าต้องการทุก field ให้ใช้เครื่ องหมาย "*"
       FROM จาก table อะไร
                     ้
       WHERE ที่ที่ตองการสื บค้นข้อมูล
      (fieldname1=namerecord1) field และ Record ที่ตองการสื บค้น     ้
      AND เงื่อนไขและ หมายความว่าต้องเป็ นจริ งทั้งสองเหตุการณ์จึงจะแสดงผล
      (fieldname2=namerecord2) field และ Record ที่ตองการสื บค้น       ้
      ตัวอย่าง
      mysql>SELECT * FROM phonebook WHERE
      mysql>(name='passkorn')AND(phone='223102');


วิธีการทา 1
        ให้สืบค้นข้อมูลคนชื่อ passkorn และมีโทรศัพท์หมายเลข 223102 ในตาราง phonebook
                     ั
       ผลลัพธ์ที่ได้ดงภาพข้างล่าง


mysql>
mysql> SELECT * FROM phonebook WHERE
    -> (name='passkorn') AND (phone=223102);
+----------+----------------------+--------+--------+----+
| name | email                  | phone | salary | ID |
+----------+----------------------+--------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
+----------+----------------------+--------+--------+----+
1 row in set (0.00 sec)


mysql>
วิธีการทา 2
          ให้สืบค้นข้อมูลคนชื่อ passkorn และมีโทรศัพท์หมายเลข 612069 ในตาราง phonebook
                        ั
          ผลลัพธ์ที่ได้ดงภาพข้างล่าง


mysql>
mysql> SELECT * FROM phonebook WHERE
  -> (name='passkorn') AND (phone=612069);
Empty set (0.00 sec)


mysql>


              จะเห็นว่าเมื่อสื บค้นโดยใช้ Operator AND พบคนชื่ อ passkorn และมีหมายเลขโทรศพท์ 223102
แต่เมื่อสื บค้นใหม่ ไม่พบคนชื่ อ passkorn และมีหมายเลขโทรศพท์ 612069 สามารถสรุ ปได้ว่า เหตุการณ์ท้ งสองระหว่าง
                                                                                                   ั
AND ต้องเป็ นจริ งเสมอจึงจะแสดงผลออกมา
Go Top Oper
4. การสืบค้นโดยใช้ Operator OR
รู ปแบบคาสังดังต่อไปนี้
           ่



        รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยใช้ Operator OR
        SELECT fieldname FROM tablename WHERE
                      (fieldname1='namerecord1')                                   OR
(fieldname3='namerecord2');
       คาอธิ บาย
       SELECT fieldname FROM tablename WHERE
                          (fieldname1='namerecord1')                               OR
(fieldname3='namerecord2');
       SELECT คาสังเลือกข้อมูล
                   ่
                           ้
       fieldname field ที่ตองการ ถ้าต้องการทุก field ให้ใช้เครื่ องหมาย "*"
       FROM จาก table อะไร
                         ้
        WHERE ที่ที่ตองการสื บค้นข้อมูล
       (fieldname1=namerecord1) field และ Record ที่ตองการสื บค้น          ้
       OR เงื่อนไขหรื อ หมายความว่าต้องเป็ นจริ งเหตุการณ์ใดเหตุการณ์จึงจะแสดงผล
       (fieldname2=namerecord2) field และ Record ที่ตองการสื บค้น        ้
       ตัวอย่าง
       mysql>SELECT * FROM phonebook WHERE
       mysql>(name='passkorn') OR (phone='223102');


วิธีการทา 1
        ให้สืบค้นข้อมูลคนชื่อ passkorn หรื อมีโทรศัพท์หมายเลข 223102 ในตาราง phonebook
                      ั
        ผลลัพธ์ที่ได้ดงภาพข้างล่าง
mysql>
mysql> SELECT * FROM phonebook WHERE
    -> (name='passkorn') OR (phone=223102);
+----------+----------------------+--------+--------+----+
| name | email                  | phone | salary | ID |
+----------+----------------------+--------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
+----------+----------------------+--------+--------+----+
1 row in set (0.00 sec)


mysql>
วิธีการทา 2
         ให้สืบค้นข้อมูลคนชื่อ passkorn หรื อมีโทรศัพท์หมายเลข 612069 ในตาราง phonebook
                       ั
         ผลลัพธ์ที่ได้ดงภาพข้างล่าง


mysql>
mysql> SELECT * FROM phonebook WHERE
    -> (name='passkorn') OR (phone=612069);
+----------+----------------------+--------+--------+----+
| name | email                  | phone | salary | ID |
+----------+----------------------+--------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
+----------+----------------------+--------+--------+----+
1 row in set (0.00 sec)


mysql>
                จะเห็ นว่าสื บค้นคนชื่ อ passkorn หรื อหมายเลขโทรศพท์ 223102 โดยใช้ Operator OR พบข้อมูล
แต่ เ มื่ อ สื บค้ น ใหม่           ก็ ย ัง พบคนชื่ อ passkorn           สามารถสรุ ปได้ ว่ า เหตุ ก ารณ์ ร ะหว่ า ง OR
เป็ นจริ งเหตุการณ์ใดเหตุการณ์หนึ่ งก็สามารถแสดงผลออกมาได้
5. การสืบค้นโดยใช้ Operator >
6. การสืบค้นโดยใช้ Operator >=
7. การสืบค้นโดยใช้ Operator <
8. การสืบค้นโดยใช้ Operator <=
9. การสืบค้นโดยใช้ Operator <>
ในส่วนนี้จะขอกล่าวพร้อมกันทีเดียว 5 Operator เลย เพราะใช้หลัการเดียวกันหมด
รู ปแบบคาสังดังต่อไปนี้
           ่



         รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยใช้ Operator >
           SELECT fieldname FROM tablename WHERE fieldname > data;
       รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยใช้ Operator > =
          SELECT fieldname FROM tablename WHERE fieldname > = data;
        รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยใช้ Operator <
           SELECT fieldname FROM tablename WHERE fieldname < data;
       รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยใช้ Operator < =
          SELECT fieldname FROM tablename WHERE fieldname <= data;
        รู ปแบบคาสั่งสื บค้ นข้ อมูลโดยใช้ Operator >
         SELECT fieldname FROM tablename WHERE fieldname <> data;
         คาอธิ บาย
         SELECT fieldname FROM tablename WHERE fieldname > data;
         SELECT คาสังเลือกข้อมูล
                      ่
                             ้
         fieldname field ที่ตองการ ถ้าต้องการทุก field ให้ใช้เครื่ องหมาย "*"
         FROM จาก table อะไร
                        ้
         WHERE ที่ที่ตองการสื บค้นข้อมูล
                                                ้
             fieldname > data field ที่ ตองการให้แสดงผลว่า มากกว่ า ข้อมูลที่ กาหนด data
คือข้อมูลที่กาหนด
                                     ้
         fieldname >= data field ที่ตองการให้แสดงผลว่า มากกว่ าเท่ ากับ ข้อมูลที่กาหนด data
คือข้อมูลที่กาหนด
                                         ้
             fieldname < data field ที่ ตองการให้แสดงผลว่า น้ อยกว่ า ข้อมูลที่กาหนด data
คือข้อมูลที่กาหนด
                                      ้
          fieldname <= data field ที่ตองการให้แสดงผลว่า น้ อยกว่ าเท่ ากับ ข้อมูลที่กาหนด data
คือข้อมูลที่กาหนด
                                         ้
             fieldname <> data field ที่ตองการให้แสดงผลว่า ไม่ เท่ ากับ ข้อมูลที่กาหนด data
คือข้อมูลที่กาหนด



        ตัวอย่าง
        mysql>SELECT * FROM phonebook WHERE (salary > '20000');
        mysql>SELECT * FROM phonebook WHERE (salary >= '20000')
        mysql>SELECT * FROM phonebook WHERE (salary < '20000');
        mysql>SELECT * FROM phonebook WHERE (salary <= '20000');
       mysql>SELECT * FROM phonebook WHERE (salary <> '20000');


 วิธีการทา 1
         ให้สืบค้นข้อมูลคนที่มีเงือนเดือนมากกว่า 20000 บาท
                       ั
         ผลลัพธ์ที่ได้ดงภาพข้างล่าง



mysql>
mysql> SELECT * FROM phonebook WHERE (salary>20000);
+----------+---------------------+---------+--------+----+
| name | email                 | phone | salary | ID |
+----------+---------------------+---------+--------+----+
| somchai | somchai@stjohn.com | 9387059 | 30000 | 3 |
| sangchai | sangchai@chaiyo.com | 7127000 | 50000 | 4 |
| sangtong | sangtong@mco.net | 975899 | 50000 | 6 |
+----------+---------------------+---------+--------+----+
3 rows in set (0.01 sec)


mysql>
วิธีการทา 2
          ให้สืบค้นข้อมูลที่มีเงือนเดือนมากกว่าเท่ากับ 20000 บาท
                        ั
          ผลลัพธ์ที่ได้ดงภาพข้างล่าง



mysql>
mysql> SELECT * FROM phonebook WHERE (salary>=20000);
+----------+---------------------+---------+--------+----+
| name | email                 | phone | salary | ID |
+----------+---------------------+---------+--------+----+
| parinya | parinya@thai.com | 612069 | 20000 | 2 |
| somchai | somchai@stjohn.com | 9387059 | 30000 | 3 |
| sangchai | sangchai@chaiyo.com | 7127000 | 50000 | 4 |
| sangtong | sangtong@mco.net | 975899 | 50000 | 6 |
+----------+---------------------+---------+--------+----+
4 rows in set (0.00 sec)
mysql>
วิธีการทา 3
          ให้สืบค้นข้อมูลคนที่มีเงือนเดือนน้อยกว่า 20000 บาท
                        ั
          ผลลัพธ์ที่ได้ดงภาพข้างล่าง



mysql>
mysql> SELECT * FROM phonebook WHERE (salary<20000);
+----------+----------------------+---------+--------+----+
| name | email                  | phone | salary | ID |
+----------+----------------------+---------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
| somjai | somjai@chaiyo.com | 4410330 | 15000 | 5 |
+----------+----------------------+---------+--------+----+
2 rows in set (0.00 sec)
mysql>
วิธีการทา 4
          ให้สืบค้นข้อมูลคนที่มีเงือนเดือนน้อยกว่ากับ 20000 บาท
                        ั
          ผลลัพธ์ที่ได้ดงภาพข้างล่าง



mysql>
mysql> SELECT * FROM phonebook WHERE (salary<=20000);
+----------+----------------------+---------+--------+----+
| name | email                  | phone | salary | ID |
+----------+----------------------+---------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
| parinya | parinya@thai.com           | 612069 | 20000 | 2 |
| somjai | somjai@chaiyo.com | 4410330 | 15000 | 5 |
+----------+----------------------+---------+--------+----+
3 rows in set (0.00 sec)


mysql>
วิธีการทา 5
          ให้สืบค้นข้อมูลคนที่มีเงือนเดือนไม่เท่ากับ 20000 บาท
                        ั
          ผลลัพธ์ที่ได้ดงภาพข้างล่าง



mysql>
mysql> SELECT * FROM phonebook WHERE (salary<>20000);
+----------+----------------------+---------+--------+----+
| name | email                  | phone | salary | ID |
+----------+----------------------+---------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
| somchai | somchai@stjohn.com | 9387059 | 30000 | 3 |
| sangchai | sangchai@chaiyo.com | 7127000 | 50000 | 4 |
| somjai | somjai@chaiyo.com | 4410330 | 15000 | 5 |
| sangtong | sangtong@mco.net           | 975899 | 50000 | 6 |
+----------+----------------------+---------+--------+----+
5 rows in set (0.00 sec)


mysql>


                                                            การเรียงลาดับข้ อมูล
            การจัดการข้อมูลจาเป็ นต้องมีการจัดเรี ยงลาดับข้อมูล เพื่อง่ายแก่การดู และตัดสิ นใจ เพื่อจะได้นาไปใช้ประโยชน์
ได้ตรงตามความต้องการ           เช่ น ฝ่ ายบุค ลากรต้องการทราบข้อมูล ของพนัก งานที่ มีเ งินเดื อนเรี ยงลาดับจากมากไปหาน้อย
                                                                           ่ ั
เพื่อนาไปคานวนหาฐานเงินเดือน การจัดลาดับข้อมูล Sort Data มีรูปแบบคาสังมีดงต่อไปนี้
          รูปแบบคาสั่ งการจัดลาดับข้ อมูล


       รู ปแบบคาสั่งจัดลาดับข้ อมูล
        SELECT               fieldname           FROM        tablename             ORDER
BY fieldname;
     คาอธิ บาย
            SELECT           fieldname           FROM        tablename             ORDER
BY fieldname;
                           ้
     SELECT เป็ นคาสังขอดูขอมูล
                     ่
                fieldnameเป็ นคาสั่งเลื อกดูข ้อมูล ใน   field   (ถ้าต้องการเลื อกทุก field
ให้ใช้เครื่ องหมาย *)
        ORDER BYคาสังจัดเรี ยงลาดับข้อมูล
                        ่
                                      ้
        fieldname เป็ นชื่อ field ที่ตองการเรี ยง
        ตัวอย่าง
         SELECT * FROM phonebook ORDER BY salary;


 วิธีการทา 1
                       ให้ ข อดู ข ้ อ มู ล ทั้ งหมดในตาราง         phonebook             (ได้ ส ร้ า งมาตั้ งแต่ ต อนที่ แ ล้ ว )
                                                        ั
โดยจัดเรี ยงลาดับจากคนที่มีเงินเดือนน้อยที่สุด ผลลัพธ์ดงภาพข้างล่าง


mysql>
mysql> SELECT * FROM phonebook ORDER BY salary;
+----------+----------------------+---------+--------+----+
| name | email                  | phone | salary | ID |
+----------+----------------------+---------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
| somjai | somjai@chaiyo.com | 4410330 | 15000 | 5 |
| parinya | parinya@thai.com           | 612069 | 20000 | 2 |
| somchai | somchai@stjohn.com | 9387059 | 30000 | 3 |
| sangchai | sangchai@chaiyo.com | 7127000 | 50000 | 4 |
| sangtong | sangtong@mco.net           | 975899 | 50000 | 6 |
+----------+----------------------+---------+--------+----+
6 rows in set (0.01 sec)


mysql>
        จะเห็นว่าข้อมูลที่ field "salary" มีการจัดเรี ยงลาดับจากคนที่มีเงินเดือนมากที่สุดไปหาคนที่มีเงินเดือนน้อยที่สุด
วิธีการทา 2
              ให้ ข อดูข ้อมูลทั้งหมดในตาราง phonebook เฉพาะโดยเรี ยงล าดับชื่ อคน ใน field "name"
                                                             ั
จากตัวอักษรในพยัญชนะอังกฤษตัวแรกไปหาตัวสุดท้าย ผลลัพธ์ดงภาพข้างล่าง


mysql>
mysql> SELECT * FROM phonebook ORDER BY name;
+----------+----------------------+---------+--------+----+
| name | email                  | phone | salary | ID |
+----------+----------------------+---------+--------+----+
| parinya | parinya@thai.com           | 612069 | 20000 | 2 |
| passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
| sangchai | sangchai@chaiyo.com | 7127000 | 50000 | 4 |
| sangtong | sangtong@mco.net           | 975899 | 50000 | 6 |
| somchai | somchai@stjohn.com | 9387059 | 30000 | 3 |
| somjai | somjai@chaiyo.com | 4410330 | 15000 | 5 |
+----------+----------------------+---------+--------+----+
6 rows in set (0.00 sec)


mysql>
         จะเห็นว่าข้อมูลที่ field "name" ถูกเรี ยงอักษรจากตัวแรกไปหาตัวสุดท้าย
วิธีการทา 3
                     ให้ ข อดู ข ้อ มู ล ทั้ง หมดในตาราง    phonebook            เฉพาะคนที่ มี ชื่ อ ขึ้ น ต้น ด้ ว ยตัว อัก ษร    S
                                                                    ั
โดยจัดเรี ยงลาดับจากคนที่มีเงินเดือนมากที่สุดไปหาน้อยที่สุด ผลลัพธ์ดงภาพข้างล่าง


mysql>
mysql> SELECT * FROM phonebook WHERE (name LIKE
's%') ORDER BY salary;
+----------+---------------------+---------+--------+----+
| name | email                 | phone | salary | ID |
+----------+---------------------+---------+--------+----+
| somjai | somjai@chaiyo.com | 4410330 | 15000 | 5 |
| somchai | somchai@stjohn.com | 9387059 | 30000 | 3 |
| sangchai | sangchai@chaiyo.com | 7127000 | 50000 | 4 |
| sangtong | sangtong@mco.net | 975899 | 50000 | 6 |
+----------+---------------------+---------+--------+----+
4 rows in set (0.00 sec)


mysql>
                    จะเห็ น ว่ า ข้ อ มู ล ที่ field     "name"                  ถู ก เลื อ กเฉพาะคนที่ ข้ ึ นต้ น ด้ ว ยตั ว     "S"
และจัดเรี ยงลาดับจากคนที่มีเงินเดือนน้อยที่สุดไปหามากที่สุด



             การแก้ไขข้ อมูล
               ในการดาเนิ นการจัดการข้อมูล จาเป็ นจะต้องมี การแก้ไขข้อมูล ให้ท นเหตุก ารณ์ (Up Date) อยู่เสมอ เช่ น
                                                                               ั
      ั                                                       ้                  ้
บริ ษทมีการปรับอัตราเงินเดือนของบุคลากร เราในฐานะผูดูแลจัดการข้อมูล ก็ตองปรับข้อมูลให้ตรงกับความเป็ นจริ ง ณ.ขนาดนั้น
ว่ า มี ใ ค ร ไ ด้ ป รั บ เ งิ น เ ดื อ น ไ ป บ้ า ง                               ก า ร แ ก้ ไ ข ข้ อ มู ล มี ห ลั ก ก า ร อ ยู่ ว่ า
จะต้องค้นหาข้อมู ล เก่ าให้ พบก่ อนจากนั้นก็ นาข้อมู ล ใหม่ เ ข้าไปแก้ไข (Up Date)                   การแก้ไขข้อมู ล Update
มีรูปแบบคาสังดังต่อไปนี้
               ่
             รูปแบบคาสั่ งการแก้ ไขข้ อมูล


        รู ปแบบคาสั่งการแก้ ไขข้ อมูล
       UPDATE tablename SET                           fieldname='datanew' WHERE
fieldname='dataold;
       คาอธิ บาย
        UPDATE tablename SET fieldname='datanew' WHERE
fieldname='dataold';
       UPDATE เป็ นคาสังแก้ไขข้อมูล
                         ่
                                     ้
       tablename เป็ นชื่อ table ที่ตองการแก้ไขข้อมูลภายใน table
                                                             ้
       fieldname='datanew' เป็ นชื่อ field และข้อมูลใหม่ที่ตองการแก้ไขข้อมูล
         WHERE คาสังค้นหาข้อมูล
                    ่
                                                              ้
         fieldname='dataold; เป็ นชื่อ field และข้อมูลเก่าที่ตองถูกแก้ไข
        ตัวอย่าง
     mysql>UPDATE phonebook SET                                 name='somjai' WHERE
name='somsee';


 วิธีการทา
                                                                                   ั
             ให้แก้ไขข้อมูลในตาราง phonebook คนชื่อ somjai แก้เป็ น somsee ผลลัพธ์ดงภาพข้างล่าง


mysql>
mysql> UPDATE phonebook SET name='somsee' WHERE
name='somjai';
Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0


mysql>
                                                                                          ั
             จากนั้นทดลองดูโดยใช้คาสัง SELECT ว่าข้อมูลได้ถูกแก้ไขไปจริ งหรื อไม่ ผลลัพธ์ดงภาพ
                                     ่


mysql> SELECT * FROM phonebook;
+----------+----------------------+---------+--------+----+
| name | email                  | phone | salary | ID |
+----------+----------------------+---------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
| parinya | parinya@thai.com | 612069 | 20000 | 2 |
| somchai | somchai@stjohn.com | 9387059 | 30000 | 3 |
| sangchai | sangchai@chaiyo.com | 7127000 | 50000 | 4 |
| sangtong | sangtong@mco.net           | 975899 | 50000 | 6 |
+----------+----------------------+---------+--------+----+
5 rows in set (0.00 sec)


mysql>
       จะเห็นว่าข้อมูลที่ชื่อ somjai ได้หายไปแล้วและถูกแก้ไขเป็ น somsee แทน


              การลบข้ อมูล
                เราสามารถทาการแก้ไขข้อมูลได้แล้ว ทีน้ ี เรามาทาการลบข้อมูลกัน การลบข้อมูลจาเป็ นต้องใช้ความระวังอย่างสู ง
เนื่ องจาก MySQL จะไม่ทวนคาถามก่ อนว่าจะยืนยันการลบหรื อไม่ ข้อมูลที่ ลบไปแล้วไม่ส ามารถ Undo กลับมาได้
ถ้าต้องการเรี ยกคืนจะต้องสร้างขึ้นใหม่ รู ปแบบการลบดังต่อไปนี้
         รูปแบบคาสั่งการลบข้ อมูล


        รู ปแบบคาสั่งการลบข้ อมูล
        DELETE FROM tablename WHERE (fieldname='datadel');
        คาอธิ บาย
         DELETE FROM tablename WHERE (fieldname='datadel');
         DELETE FROM เป็ นคาสังลบข้อมูล
                                   ่
                                       ้
         tablename เป็ นชื่อ table ที่ตองการลบข้อมูลภายใน table
         WHERE คาสังค้นหาข้อมูล
                    ่
                                                          ้
         fieldname='datadel' เป็ นชื่อ field และข้อมูลที่ตองการลบ
        ตัวอย่าง
         mysql >DELETE                       FROM          phonebook           WHERE
(name='somsee');


 วิธีการทา
                                                                ั
             ให้ลบข้อมูลคนชื่อ somsee ในตาราง phonebook ผลลัพธ์ดงภาพ
mysql> DELETE FROM phonebook WHERE (name='somsee');
Query OK, 1 row affected (0.02 sec)
                                                                                    ั
          จากนั้นทดลองดูโดยใช้คาสัง SELECT ว่าข้อมูลได้ถูกลบไปจริ งหรื อไม่ ผลลัพธ์ดงภาพ
                                  ่


mysql> SELECT * FROM phonebook;
+----------+----------------------+---------+--------+----+
| name | email                  | phone | salary | ID |
+----------+----------------------+---------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
| parinya | parinya@thai.com           | 612069 | 20000 | 2 |
| somchai | somchai@stjohn.com | 9387059 | 30000 | 3 |
| sangchai | sangchai@chaiyo.com | 7127000 | 50000 | 4 |
| sangtong | sangtong@mco.net           | 975899 | 50000 | 6 |
+----------+----------------------+---------+--------+----+
5 rows in set (0.00 sec)


mysql>
        จะเห็นว่าข้อมูลที่ชื่อ somsee ได้หายไปแล้ว
                  Tip โปรดระวังในขณะที่ แ ก้ไขหรื อลบข้อมู ล      MySQL          จะไม่ทวนคาถามเพื่ อการยืนยันการท างาน
ดังนั้นก่อนทาการแก้ไขและลบข้อมูลจะต้องแน่ใจก่อน


            การลบข้ อมูล
                เราสามารถทาการแก้ไขข้อมูลได้แล้ว ทีน้ ี เรามาทาการลบข้อมูลกัน การลบข้อมูลจาเป็ นต้องใช้ความระวังอย่างสู ง
เนื่ องจาก MySQL จะไม่ทวนคาถามก่ อนว่าจะยืนยันการลบหรื อไม่ ข้อมูลที่ ลบไปแล้วไม่ส ามารถ Undo กลับมาได้
ถ้าต้องการเรี ยกคืนจะต้องสร้างขึ้นใหม่ รู ปแบบการลบดังต่อไปนี้
         รูปแบบคาสั่งการลบข้ อมูล


       รู ปแบบคาสั่งการลบข้ อมูล
       DELETE FROM tablename WHERE (fieldname='datadel');
       คาอธิ บาย
        DELETE FROM tablename WHERE (fieldname='datadel');
        DELETE FROM เป็ นคาสังลบข้อมูล
                                   ่
                                       ้
        tablename เป็ นชื่ อ table ที่ตองการลบข้อมูลภายใน table
        WHERE คาสังค้นหาข้อมูล
                   ่
                                                         ้
        fieldname='datadel' เป็ นชื่อ field และข้อมูลที่ตองการลบ
            ตัวอย่าง
             mysql >DELETE                             FROM           phonebook              WHERE
    (name='somsee');


     วิธีการทา
                                                                    ั
                 ให้ลบข้อมูลคนชื่อ somsee ในตาราง phonebook ผลลัพธ์ดงภาพ


    mysql> DELETE FROM phonebook WHERE (name='somsee');
    Query OK, 1 row affected (0.02 sec)
                                                                                           ั
                 จากนั้นทดลองดูโดยใช้คาสัง SELECT ว่าข้อมูลได้ถูกลบไปจริ งหรื อไม่ ผลลัพธ์ดงภาพ
                                         ่


    mysql> SELECT * FROM phonebook;
    +----------+----------------------+---------+--------+----+
    | name | email                  | phone | salary | ID |
    +----------+----------------------+---------+--------+----+
    | passkorn | ccpasskn@hotmail.com | 223102 | 10000 | 1 |
    | parinya | parinya@thai.com           | 612069 | 20000 | 2 |
    | somchai | somchai@stjohn.com | 9387059 | 30000 | 3 |
    | sangchai | sangchai@chaiyo.com | 7127000 | 50000 | 4 |
    | sangtong | sangtong@mco.net           | 975899 | 50000 | 6 |
    +----------+----------------------+---------+--------+----+
    5 rows in set (0.00 sec)


    mysql>
            จะเห็นว่าข้อมูลที่ชื่อ somsee ได้หายไปแล้ว
                      Tip โปรดระวังในขณะที่ แ ก้ไขหรื อลบข้อมู ล               MySQL           จะไม่ทวนคาถามเพื่ อการยืนยันการท างาน
    ดังนั้นก่อนทาการแก้ไขและลบข้อมูลจะต้องแน่ใจก่อน


                  การ Import และ Export ข้ อมูล
                            การจั ด การข้ อ มู ล จ าเป็ นจะต้ อ งมี ก ารโอนถ่ า ยและเชื่ อมต่ อ ฐานข้ อ มู ล จากแหล่ ง ข้ อ มู ล อื่ น ๆ
    ในการโอนถ่ ายการเชื่ อ มต่ อ นั้นมี ห ลายวิ ธี ส าหรั บ วิ ธี ที่ เ ป็ นกลางและสามารถใช้โ อนถ่ า ยเชื่ อมต่ อฐานข้อ มู ล ได้ทุ ก ตระกู ล
             ้
    โดยไม่มีขอจากัด ก็คือการ Import และ Export ข้อมูลนั้นเอง และยังเป็ นการ Backup ข้อมูลไปในตัวด้วย หลักการก็คือว่า
    Export เป็ น text file จากนั้นก็ Import เข้าฐานข้อมูล ที่ อื่น หรื อ Import ข้อ มูล จาก text file
    ซึ่งมาจากแหล่งฐานข้อมูลอื่นเข้ามาเป็ นชนิ ดของ MySQL
             การ Export Data
            การ Import Data




    Go Top
    1. การ Export Data
    มีรูปแบบคาสังดังต่อไปนี้
                ่
             รูปแบบคาสั่ งการ Export ข้ อมูล


           รู ปแบบคาสั่งการ Export ข้ อมูล
           SELECT fieldname FROM tablename                      INTO OUTFILE
    '/directory/outfile.txt';
          คาอธิ บาย
           SELECT fieldname FROM tablename                      INTO OUTFILE
    '/directory/outfile.txt';
          SELECT คาสังเลือกข้อมูล
                      ่
                                         ้
               fieldname ชื่ อ field ที่ตองการ Expot Data ถ้าต้องการ Export ทุก field
    ให้ใช้เครื่ องหมาย "*"
           FROM จากที่ไหน
                                        ้
           tablename ชื่อ table ที่ตองการ Export
           INTO OUTFILE คาสัง Export  ่
                                              ้
           /directory/ ชื่อ Directory ที่ตองการ Export ข้อมูลไปไว้
           outfile.txt ชื่อ file ที่จะ Export ออกไป
           ตัวอย่าง
           mysql> SELECT * FROMphonebookINTO OUTFILE
    '/tmp/exdata.txt';
วิธีการทา 1
          ให้ Export ข้อมูล table phonebook ไปไว้ที่ /tmp ชื่อ exdata.txt
                   ั
           ผลลัพธ์ดงภาพข้างล่าง


mysql>
mysql> SELECT * FROM phonebook INTO OUTFILE
'/tmp/exdata.txt';
Query OK, 6 rows affected (0.02 sec)


mysql>
วิธีการทา 2
                                     ่            ้
          ให้ทดสอบโดยใช้คาสัง cat ดูวา ใน /tmp มีขอมูลชื่อ exdata.txt ที่ได้ Export ไปวางไว้หรื อไม่
                              ่
                   ั
           ผลลัพธ์ดงภาพข้างล่าง


localhost:/tmp$ cat exdata.txt
passkorn      ccpasskn@hotmail.com                 223102 10000           1
parinya parinya@thai.com     612069 20000 2
somchai somchai@stjohn.com      9387059 30000 3
sangchai      sangchai@chaiyo.com    7127000 50000 4
somjai somjai@chaiyo.com       4410330 15000 5
sangtong      sangtong@mco.net      975899 50000 6
         ทีน้ ีเรามาทาการการ Import ข้อมูลกัน
Go Top
1. การ Import Data
            ่ ั
มีรูปแบบคาสังมีดงต่อไปนี้
         รูปแบบคาสั่ งการ Import ข้ อมูล


       รู ปแบบคาสั่งการ Import ข้ อมูล
                      LOAD          DATA                                 INFILE
"/directory/inputdata.txt"REPLACE/IGNORE                       INTO      TABLE
tablename;
      คาอธิ บาย
                              LOAD                 DATA                   INFILE
"/directory/inputdata.txt"REPLACE/IGNORE                       INTO      TABLE
tablename;
         LOAD DATA INFILE คาสัง Import ข้อมูล
                                     ่
                                                         ้
         /directory/inputdata.txt directory และ file ที่ตองการ Import
                             ้
         REPLACE ให้แทนที่ขอมูลเก่า
                      ้
         IGNORE ให้ขามข้อมูลเก่าโดยไม่แทนที่
         INTO TABLE ให้ Import ไปไว้ที่ table
                                  ้
         tablename ชื่อ table ที่ตองการ Import ไปไว้
         ตัวอย่าง
     LOAD DATA INFILE "/tmp/exdata.txt" REPLACEINTO
TABLE phonebook;


วิธีทา
            ให้ Import ข้อมูลจาก /tmp ชื่อว่า exdata.txt ไปไว้ที่ table phonebook โดยทับข้อมูลเก่าทั้งหมด
             ผลลัพธ์ ดังภาพ


mysql>
mysql> LOAD DATA INFILE "/tmp/exdata.txt" REPLACE
INTO TABLE phonebook;
Query OK, 12 rows affected (0.01 sec)
Records: 6 Deleted: 6 Skipped: 0 Warnings: 0 ysql>
 sec)


mysql>
                 โปรแกรมจะรายงานว่า Import ข้อมูลมา 6 Record ทับข้อมูลเก่าที่ เหมือนกันไป 6 Record
ไม่มีการข้าม Record เก่า
                                                                                              ่
                Tip โปรแกรมฐานข้อมูลโปรแกรมอื่นๆ มีความสามารถ Export ข้อมูลเป็ น text file อยูแล้ว ส่ วน
Export อย่างไรก็ตองศึกษากันเองครับ เพราะผมไม่ทราบว่าคุณใช้โปรแกรมฐานข้อมูลโปรแกรมอะไรกันอยู่
                  ้


             การกาหนดผู้ใช้ ฐานข้ อมูล
                                                                                ั
              เนื่ องจาก MySQL ทางานภายใต้ Client Server สามารถทางานได้ท้ งเครื อข่าย Internet และ Intranet
                       ้                                                                          ้ ้
นันหมายความว่าผูใช้สามารถใช้ MySQL จากที่ใดก็ได้ในโลกที่มี Internet อย่างไรก็ตามถ้ามีผูใช้ผูอื่นที่ไม่พึงประสงค์
  ่
เข้า มาใช้ ข ้อ มู ล ของเราหรื อผู้บุ ก รุ ก ระบบ        (Hacker)         ก็ จ ะสร้ า งความเสี ย หายแก่ ข ้อ มู ล ของเราได้
ความจาเป็ นของระบบป้ องกันความปลอดภัย จึงต้องเข้ามาเกี่ยวข้องด้วย   MySQL ได้มีระบบดังกล่ าวมาให้เรี ยบร้ อยแล้ว
                         ้                                        ้
มันสามารถกาหนดผูใช้ฐานข้อมูลตลอดจนสิ ทธิ ในการใช้ เช่ นสามารถดูขอมูลได้อย่างเดี ยว หรื อสามารถดูแก้ไขและลบข้อมูลได้
                                        ้       ้
เป็ นต้น การกาหนดสิ ทธิ (ระดับการใช้ขอมูล) และผูใช้มีรูปแบบคาสังดังต่อไปนี้
                                                               ่
          รูปแบบคาสั่ งการกาหนดผู้ใช้ ข้อมูล
       รู ปแบบคาสั่งกาหนดผู้ใช้ ข้อมูล
    GRANT all/select,insert,update,delete                      ON tablename
TO username;
    คาอธิ บาย
    GRANT all/select,insert,update,delete                      ON tablename
TO username;
                               ้ ้
   GRANT คาสังกาหนดสิ ทธิ และผูใช้ขอมูล
             ่
                       ั
        all ให้สิทธิท้ งหมด insert, select, update, delete
                                                         ้          ั
       select,insert,update,delete สิ ทธิ การใช้อาจไม่ตองกาหนดให้ท้ งหมดก็ได้
สามารถเลือกได้ตามความต้องการ
        ON เป็ นการกาหนดให้ table ชื่ออะไร
        TO ให้แก่ใคร
                                   ้
        username ชื่อของ user ที่ตองการกาหนด
       ตัวอย่าง
        SELECT * FROM phonebook ORDER BY salary;


 วิธีการทา 1
                           ู้
           ให้กาหนดสิ ทธิ ผใช้ฐานข้อมูล table phonebook ชื่อ jib โดยสามารถจัดการข้อมูลได้ทุกอย่าง
                    ั
            ผลลัพธ์ดงภาพข้างล่าง


mysql>
mysql> GRANT all ON phonebook TO jib;
Query OK, 0 rows affected (0.03 sec)


mysql>
 วิธีการทา 2
                            ้
           ให้กาหนดสิ ทธิ ผูใช้ฐานข้อมูล table   phonebook ชื่ อ somchai       โดยสามารถ select และ insert
data ได้เท่านั้น
                    ั
            ผลลัพธ์ดงภาพข้างล่าง


mysql>
mysql> GRANT select,insert ON phonebook TO somchai;
Query OK, 0 rows affected (0.00 sec)


mysql>
                                                               ้
              MySQL ยังสามารถขอดู user ที่เราได้กาหนดไปแล้วได้ดวย
              รูปแบบคาสั่ งการขอดูผู้ใช้ ข้อมูล


                              ู
          รู ปแบบคาสั่งขอดูผ้ ใช้ ข้อมูล
          SELECT user();
          คาอธิ บาย
          SELECT user();
          SELECT ขอดูขอมูล้
          user() ข้อมูล user ที่เรากาหนด
         ตัวอย่าง
          SELECT user();


วิธีทา
             ให้ขอดู user ที่เรากาหนดไว้แล้ว
              ผลลัพธ์ ดังภาพ


mysql>


mysql> SELECT user();
+----------------+
| user()       |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.01 sec)


mysql>



               การยกเลิกผู้ใช้ ฐานข้ อมูล
                                    ้                        ้                  ้
           เมื่อเราสามารถกาหนดผูใช้ฐานข้อมูลได้แล้วเราก็ตองสามารถยกเลิ กได้ดวย การยกเลิ กสิ ทธิ เราสามารถยกเลิ กทั้งหมด
หรื อยกเลิกสิ ทธิเฉพาะอย่างได้ เช่น user ชื่อ jib มีสิทธิสามารถทาได้ทุกอย่าง select, insert, update, delete data
ได้ ในขณะเดียวกันเราก็สามารถยกเลิกสิ ทธิ บางอย่างได้เช่น ยกเลิก การ update และ delete data ได้เป็ นต้น
            รูปแบบคาสั่ งการยกเลิกผู้ใช้ ข้อมูล
       รู ปแบบคาสั่งจัดการกาหนดผู้ใช้ ข้อมูล
    REVOKE all/select,insert,update,delete ON tablename
From username;
     คาอธิ บาย
    REVOKE all/select,insert,update,delete ON tablename
From username;
                                          ้ ้
    REVOKE คาสังยกเลิกการกาหนดสิ ทธิ และผูใช้ขอมูล
               ่
        all ยกเลิกทั้งหมด
                      select,insert,update,delete                  ยกเลิ ก บางส่ วน
สามารถเลือกได้ตามความต้องการ
         ON ยกเลิกที่ table ชื่ออะไร
         From ยกเลิกผูใด้
                                     ้
         username ชื่อของ user ที่ตองการยกเลิก
       ตัวอย่าง
         REVOKE all ON phonebook From jib;


 วิธีการทา 1
                           ู้
           ให้ยกเลิกสิ ทธิผใช้ฐานข้อมูล table phonebook ชื่อ somchai โดยยกเลิกทั้งหมด (ได้สร้างจากข้างต้นแล้ว)
                     ั
            ผลลัพธ์ดงภาพข้างล่าง


mysql>
mysql> REVOKE all ON phonebook FROM somchai;
Query OK, 0 rows affected (0.01 sec)


mysql>
 วิธีการทา 2
                               ู้
             ให้ยกเลิ กสิ ทธิ ผใช้ฐานข้อ มูล table   phonebook ชื่ อ jib โดยยกเลิกเฉพาะ update, delete
(ได้สร้างจากข้างต้นแล้ว)
                    ั
           ผลลัพธ์ดงภาพข้างล่าง


mysql>


mysql> REVOKE update,delete ON phonebook FROM jib;
Query OK, 0 rows affected (0.00 sec)
mysql>
                                               ้
           Tip user โดยทัวไปเช่ นผูสั่งซื้ อของผ่านทางอินเทอร์ เนต จะไม่สามารถแก้ไขและลบข้อมูลได้ จะมี user
                                    ่
เฉพาะเท่ านั้น ที่ ส ามารถแก้ไ ขและลบข้อ มู ล ได ้้ เ ช่ น user admin เป็ นต้น ดัง นั้น การก าหนดสิ ท ธิ user
จึงหมายถึงความปลอดภัยของระบบด้วย


           การยกเลิกผู้ใช้ ฐานข้ อมูล
                              ้                        ้                  ้
         เมื่อเราสามารถกาหนดผูใช้ฐานข้อมูลได้แล้วเราก็ตองสามารถยกเลิ กได้ดวย การยกเลิ กสิ ทธิ เราสามารถยกเลิ กทั้งหมด
หรื อยกเลิกสิ ทธิเฉพาะอย่างได้ เช่น user ชื่อ jib มีสิทธิสามารถทาได้ทุกอย่าง select, insert, update, delete data
ได้ ในขณะเดียวกันเราก็สามารถยกเลิกสิ ทธิ บางอย่างได้เช่น ยกเลิก การ update และ delete data ได้เป็ นต้น
           รูปแบบคาสั่ งการยกเลิกผู้ใช้ ข้อมูล


       รู ปแบบคาสั่งจัดการกาหนดผู้ใช้ ข้อมูล
    REVOKE all/select,insert,update,delete ON tablename
From username;
     คาอธิ บาย
       REVOKE all/select,insert,update,delete ON tablename
From username;
                                             ้ ้
       REVOKE คาสังยกเลิกการกาหนดสิ ทธิ และผูใช้ขอมูล
                         ่
        all ยกเลิกทั้งหมด
                      select,insert,update,delete                      ยกเลิ ก บางส่ วน
สามารถเลือกได้ตามความต้องการ
        ON ยกเลิกที่ table ชื่ออะไร
        From ยกเลิกผูใด้
                                    ้
        username ชื่อของ user ที่ตองการยกเลิก
       ตัวอย่าง
        REVOKE all ON phonebook From jib;


วิธีการทา 1
                          ู้
          ให้ยกเลิกสิ ทธิผใช้ฐานข้อมูล table phonebook ชื่อ somchai โดยยกเลิกทั้งหมด (ได้สร้างจากข้างต้นแล้ว)
                    ั
           ผลลัพธ์ดงภาพข้างล่าง


mysql>
mysql> REVOKE all ON phonebook FROM somchai;
Query OK, 0 rows affected (0.01 sec)
mysql>
 วิธีการทา 2
                               ู้
             ให้ยกเลิ กสิ ทธิ ผใช้ฐานข้อมูล table   phonebook ชื่ อ jib โดยยกเลิกเฉพาะ update, delete
(ได้สร้างจากข้างต้นแล้ว)
                    ั
           ผลลัพธ์ดงภาพข้างล่าง


mysql>


mysql> REVOKE update,delete ON phonebook FROM jib;
Query OK, 0 rows affected (0.00 sec)


mysql>
                                               ้
           Tip user โดยทัวไปเช่นผูสั่งซื้ อของผ่านทางอินเทอร์ เนต จะไม่สามารถแก้ไขและลบข้อมูลได้ จะมี user
                                    ่
เฉพาะเท่ านั้น ที่ ส ามารถแก้ไ ขและลบข้อ มู ล ได ้้ เ ช่ น user admin เป็ นต้น ดัง นั้น การก าหนดสิ ท ธิ user
จึงหมายถึงความปลอดภัยของระบบด้วย




http://www.thaiwbi.com/course/mysql/index2.html

								
To top