วันพฤหัสบดีที่ 19 พฤษภาคม พ.ศ. 2559

ASSIGNMENT 2 : Security Of Inventory Transaction Process (Draft)

GROUP # 6

    1) นายนิติธร บุญภักดี                  56-010126-2003-0
    2) นางสาวอรพรรณ เทียมสระคู      56-010126-2006-4
    3) นายภุมมิฑล ไชยเชิดเกียรติ      56-010116-2131-8
    4) นาวสาวปนัดดา อ่อนพลับ          56-010126-3018-3  กลุ่ม 5

เนื้อหาภายในสไลด์

          https://docs.google.com/presentation/d/1AEClTj0JzEDwS-oMp2ArVWk17HtfVUdwocjOtNqgAzA/edit?usp=sharing 

Compare with file-system security (permission)
Sample security settings for your A1 users
  • Access Control Matrix , SQLite , MySQL , PostgreSQL
Sample Database Log
  • SQLite , MySQL , PostgreSQL
Backup / Restore data
  • SQLite , MySQL , PostgreSQL
Possible Unethical
SQL Injection

  • What is SQL Injection ?, SQLite , MySQL , PostgreSQL
SLIDE  ASSIGNMENT I 

วันเสาร์ที่ 16 เมษายน พ.ศ. 2559

PostgreSQL

          PosgreSQL เป็น Object-Relational DBMS โดยสามารถใช้รูปแบบของภาษา SQL ได้เกือบทั้งหมดและยังเป็น Open-source
ขอจํากัดของ PostgreSQL

  • ขนาด database: ไมเกิน 60GB 
  • ขนาดตารางขอมูล(table) ไมเกิน 64 TB ในระบบปฏิบัติการทุกระบบ
  • ขนาดของขอมูลแตละรายการ(row):ไมจํากัด ตั้งแต Version 7.1 ขึ้นไป
  • ขนาดของขอมูลแตละ field : 1GB ตั้งแต Version 7.1 ขึ้นไป
  • จํานวนรายการ(rows) ในตารางขอมูล(table) : ไมจํากัด
  • จํานวน columns ในตารางขอมูล(table): 1600 columns
  • จํานวน indexes ในตารางขอมูล(table) : ไมจํากัด

การตั้งชื่อ
  • ตนดวยตัวอักษรหรือ underscore(_) 
  • ความยาวไมเกิน 31 ตัวอักษร
  • ไมซ้ำกับ reserve word 
  • ชื่อที่อยูในประเภทเดียวกันตองไมซ้ำกัน เชน ƒชื่อ Table ที่อยูใน Database เดียวกันตองไมซ้ำกัน ƒ ชื่อ Column ที่อยูใน Table เดียวกันตองไมซ้ำกัน ƒ ชื่อ Index ที่อยูใน Database เดียวกันตองไมซ้ำกัน

how to install postgresql

ก่อนการ install postgresql ควร  update ก่อน
apt-get update
sudo apt-get install postgresql postgresql-contrib
หลังจาก install postgresql ต่อไปเป็นการใช้งาน

how to use postgresql

พิมพ์
          " \h "  เพื่อดูวิธีการใช้งานเบื้องต้น
          " \q "  เพื่อออกจาก
          " \l "  เพื่อแสดงดาต้าเบสทั้งหมดที่มีอยู่
          " \c  ์NameDatabase"  เพื่อเลือกการเข้าถึงดาต้าเบส(เชื่อมต่อ)
          " \d "  เพื่อแสดงตารางต่างๆที่มีอยู่ในดาต้าเบส
          " \d+ NameTable "  เพื่อแสดงรายละเอียดต่างๆ ที่มีอยู่ในตารางที่ต้องการทราบ( NameTable) ซึ่งจะประกอบไปด้วยชื่อคอลัมต่างๆ, ชนิดของข้อมูลที่ทำการเก็บในแต่ละคอลัม, ระบุ primary key Attribute ไหน , foreign key อะไรบ้างและแสดงการอ้างอิงไปยังตารางอื่นๆ

            ER diagram ที่นำมาจากหนังสือ Database Systems - Design, Implementation, and Management (9th Edition) Carlos Coronel, Steven A. Morris, Peter Rob ISBN: 0538469684

รูปภาพแสดง ER diagram ของระบบ inventory transaction
การใช้งาน PostgreSQL : https://spalinux.com/2011/01/learn_to_use_postgresql


- create databases

$ createdb nameDatabase
รูปภาพแสดงการสร้างฐานข้อมูลและการแสดงฐานข้อมูลต่างๆ โดยใช้คำสั่ง \l
           จากนั้นใช้คำสั่ง \c inv_trans เพื่อเข้าไปยังฐานข้อมูลของ inv_trans หรือเราอาจใช้คำสั่งต่อไปนี้ก็ได้เหมือนกัน 
$ psql testdb
- create tables

$ create table ชื่อตาราง (ชื่อคอลัมนชนิดขอมูล, ...); 
รูปภาพแสดงการสร้างตารางต่างๆของดาต้าเบส inv_trans

how to install psycopg2 

เนื่องจากในเครื่องไม่มี pip จึงทำคำสั่งต่อไปนี้เพื่อลง python-pip ซะก่อน
sudo apt-get install python-pip
จากนั้นทำตามคำสั่งต่อไปนี้เพื่อลง psycopg2
sudo apt-get update
sudo apt-get install libpq-dev python-dev
sudo pip install psycopg2
          psycopg2 เป็น library ของ python ที่ใช้สำหรับการติดต่อกับดาต้าเบสของ PostgreSQL โดยเราจะนำมาใช้ในการ insert ข้อมูลให้กับแต่ละตาราง

how to insert data

          เราจะใช้โค้ด python ในการ insert ข้อมูล


compare Sqlite Mysql and PostgreSQL

          
file size :
         
         Sqlite : 6.44GB
         Mysql : 
         PostgreSQL : 13GB


references link :
install postgresql : https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-12-04
install psycopg2 : http://stackoverflow.com/questions/11583714/install-psycopg2-on-ubuntu
generate data : http://initd.org/psycopg/docs/usage.html

วันจันทร์ที่ 28 มีนาคม พ.ศ. 2559

Assignment1 : ER Diagram(Bookstore)

Group 5
  1.  นายชินวัฒน์       ฉิมดี          5601012630060
  2.  นางสาวปนัดดา  อ่อนพลับ  5601012630183
  3.  นายศรัญ            สารากิจ     5601012630221
Slide
https://drive.google.com/file/d/0B3vJrLZroBcYWUMzOFN4blRaTEk/view?usp=sharing



- ยกตัวอย่าง ER Diagram จาก textbook ( เลือก  >> Bookstore )
- Requirement ที่นำไปสู่การสร้างความสัมพันธ์ ER diagram
- นำ ER Diagram ที่เลือกไปแปลงเป็นตาราง Relation โดยการทำ Relation mapping  ุุุ6 Step
- code generate เราจะใช้ python ในการ random ค่าต่างๆให้ในตาราง และโปรแกรมที่ใช้ในการสร้างตารางคือ Sqlite กับ MySQL
- ขนาดไฟล์ที่ได้ทำการแอดค่าจะมีมากกว่า 4 MB
- เปรียบเทียบเวลาที่ใช้ในการ Query ข้อมูลของคอมพิวเตอร์แต่ละเครื่อง


related info/link/reference

Textbook :

SQL Clearly Explained 

(Third Edition)

A volume in The Morgan Kaufmann Series in Data Management Systems
    Author(s):Jan L. Harrington
    ISBN: 978-0-12-375697-8


    - เปรียบเทียบเวลาที่ใช้ในการ Query ข้อมูลของคอมพิวเตอร์แต่ละเครื่อง สำหรับการ download เราสารถ download ได้ฟรีที่ http://www.sciencedirect.com/science/book/9780123756978 โดยใช้เน็ต maka

    วันจันทร์ที่ 8 กุมภาพันธ์ พ.ศ. 2559

    Example of queries in relational algebra


                (relational algebra)  เป็นภาษาที่ใช้ในการเขียนขั้นตอนต่างๆของ Query ซึ่งจะพิจารณาว่าจะทำอย่างไร เพื่อให้ได้มาซึ่งผลลัพธ์ตามที่ต้องการในการจัดการข้อมูล โดยการระบุตัวกระทำกับความสัมพันธ์ที่ต้องการจัดการ ผลลัพธ์ที่ได้คือ ความสัมพันธ์ใหม่ และนอกจากนี้ยังเป็นภาษาที่ใช้เป็นพื้นฐานในการเขียน SQL อีกด้วย

    คำสั่งพื้นฐานต่างๆ
    โอเปอเรชั่นแบบยูนารี (Unary Operations)
    Select( σ) หรือ Restrict  เลือกแถวจากความสัมพันธ์
    Project(Π)  เลือกเฉพาะคอลัมน์ที่ต้องการจากความสัมพันธ์
     โอเปอเรชั่นแบบเซต (Set Operations)
     Product(×) สามารถรวมความสัมพันธ์ได้
     Union ( ∪) เชื่อม 2 ความสัมพันธ์เข้าด้วยกัน
      Intersection (∩)
     Difference(-) หาความแตกต่างระหว่าง 2 ความสัมพันธ์
     โอเปอเรชั่นการ Join (Join Operations)
     Join ()
     โอเปอเรชั่นการหาร (Division Operations)
      Division (÷)
    Select(σ) 
              เป็นการดึงข้อมูลจาก Relation โดยจะเลือกเฉพาะแถวที่ต้องการตามเงื่อนไขที่ระบุเอาไว้ และมีลักษณะการทำงานเหมือนกับคำสั่ง where ของภาษา SQL
    syntax 
    σ condition (R)


     σ                           อ่านว่า ซิกม่า (sigma) เป็นสัญลักษณ์แทนการ Select
     condition              คือ ประโยคที่ใช้เป็นเงื่อนไข
     R                           คือ ชื่อ Relation (ชื่อตาราง)

    Project(Π)
                เป็นการเลือกเฉพาะ column ที่ต้องการ โดยจะมีเซตของแต่ละแถวเป็นผลลัพธ์ที่ได้

    syntax

    Π col1,col2,col3,...,coln (R)

    P (pi)                            คือ สัญลักษณ์ของการ Projection
    col1,col2,…,coln         คือ คอลัมน์ที่ต้องการแสดง
    R                                  คือ ชื่อ Relation (ชื่อตาราง)

    Product(×)
               product หรือ Cartesian Product เป็นการแสดงความสัมพันธ์ด้วยการคูณ Cartesian ระหว่าง 2 รีเลชั่น  เช่น ต้องการนำรีเลชั่น R และ S มาคูณกันแบบ Cartesian ผลลัพธ์ที่ได้ในรีเลชั่นใหม่จะประกอบด้วยจำนวนแถวของ R×S ในรูปแบบของผลคูณ Cartesian
    syntax
    × S

        ×               อ่านว่าไทมส์ (times) เป็นสัญลักษณ์ของการ Product
        R และ S    คือ Relation ที่ต้องการนำมาคูณกัน

    Union (∪)
               เป็นนำข้อมูลจาก 2 Relation มารวมกัน และถ้ารายการไหนซ้ำหลายแถวก็จะแสดงเพียงแถวเดียว  โดยการ Union นี้มีข้อกำหนดว่า แอตทริบิวต์ในลำดับที่ตรงกันจาก 2 Relation ต้องมีชนิดของข้อมูลตรงกันด้วยไม่อย่างนั้นจะ Union กันไม่ได้

    syntax

    R ∪ S
        ∪               คือสัญลักษณ์ของการยูเนียน
        R และ S    คือ Relation ที่ต้องการนำมายูเนียนกัน

    Intersection (∩)
             เป็นการนำข้อมูลจาก 2 Relation มารวมกันคล้ายกับ Union แต่จะต่างกันที่ผลลัพธ์ซึ่ง Intersection จะเลือกผลลัพธ์เฉพาะรายการที่เหมือนกันจาก 2 Relation

    syntax

     S
                       คือสัญลักษณ์ของการยูเนียน
        R และ S    คือ Relation ที่ต้องการนำมายูเนียนกัน

    Difference(-) 
                 เป็นการแสดงข้อมูลเฉพาะแถวของรีเลชั่นแรกที่ต่างจากแถวข้อมูลในรีเลชั่นที่สอง
    syntax

    R - S
    -   คือสัญลักษณ์แทนการ Difference
    R และ S คือชื่อรีเลชั่นที่ต้องการนำมา Difference กัน
    Join ()



    syntax

     S
       คือสัญลักษณ์แทนการ Join
    R และ S คือชื่อรีเลชั่นที่ต้องการนำมา Join กัน

    Division (÷)
                 เป็นการหาผลลัพธ์จาก 2 Relation โดยตัวตั้งมี Attribute มากกว่าตัวหารและทั้งสองมี Attribute อย่างน้อยหนึ่งตัวที่เหมือนกัน โดยผลลัพธ์ที่ได้จะมาจาก Attribute ตัวใดตัวหนึ่งของตัวตั้ง

    syntax

    R÷ S
    ÷    คือสัญลักษณ์แทนการ Division
    R และ S คือชื่อรีเลชั่นที่ต้องการนำมา Division กัน





    What is an inner join? outer join?
    Ans  inner join คือ การ joint ชนิดหนึ่งที่มีการนำเอาตารางสาองตารางมารวมกัน แล้วเลือกผลลัพธ์โดยเอามาเฉพาะข้อมูลที่ตรงกันทั้งสองตาราง ส่วน outer join  คือ การ join อีชนิดหนึ่งที่จะนำเอาตารางสองตารางมารวมกันเช่นเดียวกับ inner join แต่จะให้ผลลัพธ์โดยเอาทั้งข้อมูลที่ตรงกันและไม่ตรงกัน โดยค่าที่ไม่ตรงกันเราแสดงข้อมูลที่ไม่ตรงกันเป็น null

    What is a division operation?
              SSN_PNOS ÷ SMITH_PNOS
    why it is not in the complete set of relational algebra operations
    Ans  

    related info/link/reference : 
                     - http://mathcom.uru.ac.th/~nerissa/DB/DB_05.ppt
                  - https://www.gotoknow.org/posts/97459

    วันจันทร์ที่ 1 กุมภาพันธ์ พ.ศ. 2559

    SQL constraints for select in my DBMS


             SQL Constraints คือข้อกำหนดหรือข้อบังคับที่ใช้ในการเก็บข้อมูลในตารางให้เป็นระเบียบ และหากมีการดำเนินการที่ไม่เป็นไปตามข้อบังคับนั้นจะถูกยกเลิกโดยข้อบังคับนั้น  การระบุ constraints ต่างๆ สามารถทำได้โดย
            1 ระบุเมื่อมีการสร้างตารางข้อมูล(ภายในคำสั่ง CREATE)
            2  ระบุหลังจากที่ทำการสร้างตารางข้อมูลแล้ว

    Constraints ต่างๆ


  • NOT NULL -  column นั้นๆจะไม่เก็บค่าข้อมูลที่เป็น NULL
  • UNIQUE - แต่ละแถวของคอลัมน์ข้อมูลจะมีค่าที่ไม่ซ้ำกัน
  • PRIMARY KEY - การรวมกันของ NOT NULL และ UNIQUE เพื่อให้แน่ใจว่าคอลัมน์มีเอกลักษณ์ไม่ซ้ำกันทำให้การค้นหา บันทึกข้อมูลในตารางได้ง่ายและรวดเร็วขึ้น
  • FOREIGN KEY - จะใช้งานร่วมกับ PRIMARY KEY เพื่อสร้างความสัมพันธ์ระหว่าง table
  • CHECK - ใช้ตรวจสอบเงื่อนไขของคอลัมน์ ก่อนเก็บข้อมูลที่เฉพาะเจาะจง
  • DEFAULT - ค่าเริ่มต้นสำหรับ column ในกรณีที่ column นั้นๆ ไม่มีการเพิ่มค่าข้อมูลลงไป ก็จะเพิ่มค่าที่กำหนดใน default นี้โดยอัตโนมัติ

  • NOT NULL 
              : Constraints นี้จะบังคับให้ column นั้นๆไม่ยอบรับข้อมูลที่มีค่าเป็น null ซึ่งก็คือจะบังคับให้ใส่ค่า ถ้าไม่ใส่ค่าหรือใส่ค่าเป็น null ไปเราจะไม่สามารถ  insert หรือ update ข้อมูลได้ได้

    รูปภาพแสดงการสร้างตารางและการกำหนดข้อบังคับในการเก็บข้อมูลในตารางของแต่ละ column ให้เป็น NOT NULL ที่ column Id และ LastName
    รูปภาพแสดงการเกิด error เมื่อมีการใส่ค่าของ Id ให้เป็น null 
    ซึ่งไม่เป็นไปตามข้อบังคับในการเก็บข้อมูลที่ได้ตั้งค่าให้เป็น Not Null Constraint เอาไว้

    รูปภาพแสดงการผลหลังจากตั้งค่า Constraints ขณะสร้างตาราง
     สังเกตจะพบว่า column ชื่อ Id และ LastName ไม่รับค่าที่เป็น null (กรอบสีฟ้า)เหมือน column อื่นๆ


    UNIQUE 
            :Constraint นี้จะบังคับให้ข้อมูลแต่ละ record มีค่าไม่ซำ้กัน โดย unique กับ primary key เป็นตัวที่บอกว่า column และเซตของ column มีข้อมูลที่ไม่ซ้ำกัน primary key จะมีคุณสมบัติเป็น unique โดยอัติโนมัติ ในหนึ่งตารางสามารถมีได้หลาย unique แต่ primary key มีเพียงตัวเดียว
    รูปภาพแสดงการสร้างตารางและการกำหนดข้อบังคับในการเก็บข้อมูลในตาราง
    ของแต่ละ column ให้เป็น NOT NULL ที่ column P_Id และ LastName และกำหนดให้ P_Id เป็น UNIQUE
    รูปภาพแสดงการ insert ค่าให้แก่ตารางสองครั้ง โดยครั้งที่สองไม่เปลี่ยนค่า P_Id 
    ทำให้เกิด error ว่า "#1062 - Duplicate entry '109' for key 'P_Id'"เนื่องจากมีข้อมูลซ้ำซึ่งไม่เป็นไปตามข้อบังคับที่เราได้ตั้งค่าให้ P_Id เป็น UNIQUE จะมีข้อมูลซ้ำกันไม่ได้

    PRIMARY  KEY 
                 :Constraint นี้บังคับว่า column ที่เราได้เลือกให้เป็น Primary key นั้น จะต้องมีค่าของแต่ละ record ที่ไม่ซ้ำกันสามารถนำไปใช้เป็นตัวแทนของข้อมูลทั้งหมดได้ และนอกจากนี้ Primary key จะต้องไม่มีค่าเป็น null และในหนึ่งตารางสามารถมี Primary key ได้เพียงตัวเดียว

    รูปภาพแสดงการกำหนดให้ P_Id เป็น PRIMARY KEY (หมายเลข 1) จากนั้นไปดูที่ structure ของตารางจะพบว่า column P_Id นั้นมีการกำหนดให้เป็น UNIQUE และ PRIMARY KEY(หมายเลข 2)

    FOREIGN  KEY
                 :Constraint นี้จะตัวที่เชื่อมจากตารางหนึ่งไปยัง Primary key ของอีกตารางหนึ่ง

    related info/link/reference : 
                     http://www.w3schools.com/sql/default.asp

    วันเสาร์ที่ 23 มกราคม พ.ศ. 2559

    SQL Tutorial

    SQL Tutorial

                    SQL ย่อมาจาก structured query language คือภาษาที่ใช้ในการเขียนโปรแกรม เพื่อใช้จัดการกับฐานข้อมูล ( Database )โดยเฉพาะ และเป็นโปรแกรมฐานข้อมูลที่มีโครงสร้างของภาษาที่เข้าใจง่าย ไม่ซับซ้อน มีประสิทธิภาพการทำงานสูง สามารถทำงานที่ซับซ้อนได้โดยใช้คำสั่งเพียงไม่กี่คำสั่ง โปรแกรม SQL จึงเหมาะที่จะใช้กับระบบฐานข้อมูลเชิงสัมพันธ์ และเป็นภาษาหนึ่ง ซึ่งแบ่งการทำงานได้เป็น 4 ประเภท ดังนี้
                1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
                2. Update query ใช้สำหรับแก้ไขข้อมูล
                3. Insert query ใช้สำหรับการเพิ่มข้อมูล
                4. Delete query ใช้สำหรับลบข้อมูลออกไป
    SQL Quiz :  http://www.w3schools.com/sql/sql_quiz.asp
    SQL Quick Reference  :  http://www.w3schools.com/sql/sql_quickref.asp 

    SQL Intro :
    SQL สามารถทำอะไรได้บ้าง
    1 SQL สามารถดำเนินการเกี่ยวกับฐานข้อมูลได้
    2 SQL สามารถสร้างตารางในฐานข้อมูลได้
    3 SQL สามารถสร้างการจัดเก็บข้อมูลได้
    4 SQL สามารถเพิ่ม ลด ลบ แก้ไข เปลี่ยนแปลงได้
    5 SQL สามารถดึงข้อมูลออกจากฐานข้อมูลได้
    6 SQL สมารถกำหนดสิทธิ์ในตาราง กระบวนการ และมุมมองในตารางได้
    7 SQL สามารถสร้างมุมมองในฐานข้อมูลได้
    การใช้ SQL ในเว็บไซค์
              ในการสร้างเว็บไซค์บางครั้งเราก็จำเป็นต้องใช้ SQL ในการจัดการกับฐานข้อมูล คุณสามารถใช้ได้โดย
    - RDBMS ซึ่งก็คือโปรแกรมในการจัดการฐานข้อมูล เช่น My SQL, SQL Server, MS Access, Oracle
    - ภาษาสคลิปฝั่ง sever เช่น PHP, ASP
    - SQL
    - HTML / CSS
    RDBMS
              RDBMS เป็นโปแกรมระบบการจัดการฐานข้อมูลแบบสัมพันธ์ เช่น MS SQL Server, IBM DB2, Oracle, MySQL, Microsoft Access
    ข้อมูลใน RDBMS ถูกเก็บไว้ในฐานข้อมูลเป็นออบเจ็กต์ที่เรียกว่าตาราง
    ตารางเป็นชุดของรายการข้อมูลที่มีความสัมพันธ์กัน ประกอบด้วย แถว และคอลัมน์

    SQL Syntax : เป็นส่วนที่อธิบายหลักการใช้งาน

    SQL Select :

              คำสั่งนี้ใช้เลือกข้อมูลที่เราต้องการใช้จาก Database โดยเราสามารถเลือกได้ว่าเราจะเอาข้อมูลอะไรบ้าง  หรือเลือกข้อมูลทั้งหมด

    SQL Select Syntax


             syntax ต่อไปนี้เป็น syntax ที่ใช้ในการเลือกข้อมูลทั้งหมดของตารางข้อมูลจาก Database โดยใช้เครื่องหมาย * หลังคำว่า SELECT

    Example :
                  รูปภาพแสดงการใช้คำสั่ง Select หรือการเลือกข้อมูลจากตาราง Customers โดยจะเลือกเฉพาะข้อมูลใน Column "CustomerName" และ "City"ที่มี่ Country 
                  รูปภาพแสดงการเลือกข้อมูลทั้งหมดที่มีอยู่ในตาราง Customers โดยใช้ * คั่นกลางระหว่าง SELECT กับ FROM  แทนการระบุชื่อ column

    SQL Distinct :

             เป็นคำสั่งที่เราใช้ระบุเงื่อนไขในการเลือกข้อมูลในตาราง (Table)  โดยจะเลือกข้อมูลที่มีซ้ำกันมาเพียงแค่ตัวเดียวเท่านั้นทำให้เราทราบความหลากหลายของข้อมูล 

    SQL Distinct Syntax



    Example :  
                    รูปภาพแสดงการใช้คำสั่ง Distinct หรือดูความหลายหลายของข้อมูลใน Column "Country " ของตาราง Customers โดยจะเลือกข้อมูลที่ซ้ำกันมาเพียงตัวเดียวเท่านั้น

    SQL Where :

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

    SQL WHERE Syntax



    Example :
                    รูปภาพแสดงการใช้คำสั่ง Where หรือการกำหนดเงื่อนไขในการเลือกข้อมูลใน Column "Country " ของตาราง Customers โดยเลือกเฉพาะข้อมูลที่ชื่อ "Mexico" เท่านั้น
                    รูปภาพแสดงการใช้คำสั่ง Where ร่วมกับเครื่องหมายต่างๆ เพื่อใช้ในการกำหนดเงื่อนไขการทำงาน

    SQL And&Or :
                เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขกรณี(And)เป็นจริงทั้งคู่ และกรณี (Or)ที่ตัวใดตัวหนึ่งเป็นจริงหรือเป็นจริงทั้งคู่ก็ได้

    Example :
                   รูปภาพแสดงการใช้คำสั่ง Or หรือการกำหนดเงื่อนไขในการเลือกข้อมูลใน Column "Country " ของตาราง Customers โดยเลือกเฉพาะข้อมูลที่ชื่อ "Germany" เป็นจริงและมี City เป็น "ฺBerlin" หรือ "M�nchen" และเมื่อรัน SQL แล้วก็จะแสดงผลลัพธ์ออกมาเป็นข้อมูลจำนวน 2 Records

    SQL Order By :

                 เป็นคำสั่งที่ใช้ในการเรียงลำดับข้อมูลเข้าไปในตารางต่างๆ ของ Database 

    SQL Order By Syntax



    ASC = Ascendant เป็นการเรียงจากน้อยไปมาก 
    DESC = Descendant เป็นการเรียงจากมากไปน้อย
    ***หากไม่กำหนดว่าเป็น ASC หรือ DESC ค่า Default จะเป็น ASC

    Example :
                  รูปภาพแสดงการใช้คำสั่ง Order By หรือการเรียงข้อมูลในตาราง Customers โดยจะเรียงข้อมูลใน Column "Country" จากน้อยไปมาก จากนั้นจะเรียงข้อมูลใน Column "CustomerName"ที่มี่ Country เดียวกันจากมากไปน้อย

    SQL Insert Into :

                 เป็นคำสั่งที่ใช้สำหรับการเพิ่มข้อมูลเข้าไปในตารางต่างๆ ของ Database 

    SQL Insert Into Syntax


     or 

    Example :
                  รูปภาพแสดงการใช้คำสั่ง Insert Into หรือการเพิ่มข้อมูลเข้าไปในตาราง Customers ของ Database  เมื่อทำการรัน SQL แล้วเว็บจะทำการแจ้งเตือนมาว่าได้ทำการเปลี่ยนแปลงข้อมูลที่ Database เรียบร้อยแล้ว 
    สังเกต จำนวนข้อมูลที่อยู่ในตาราง Customers มีจำนวนเพิ่มขึ้น
                   รูปภาพแสดงข้อมูลที่อยู่ในกรอบสีเขียวเป็นข้อมูลที่เราได้เพิ่มเข้าไปใน Database โดยใช้คำสั่ง SELECT * FROM Customers เพื่อดูการเปลี่ยนแปลงของข้อมูลทั้งหมด


    SQL Update :

                 เป็นคำสั่งที่ใช้ในการเปลี่ยนแปลงข้อมูลใน Database 

    SQL Update Syntax



    Example :

                รูปภาพแสดงการใช้คำสั่ง Update หรือการเปลี่ยนแปลงข้อมูลในตาราง Customers เมื่อทำการรัน SQL แล้วเว็บจะทำการแจ้งเตือนมาว่าได้ทำการเปลี่ยนแปลงข้อมูลที่ Database เรียบร้อยแล้วดังกรอบสีเดียวด้านล่าง 

                  รูปภาพแสดงผลลัพธ์หลังจากได้ทำการอัพเดตข้อมูลใน Database ด้วยคำสั่ง SQL Update และใช้คำสั่ง SELECT * FROM Customers เพื่อดูการเปลี่ยนแปลงของข้อมูลทั้งหมด

                  นอกจากนี้การใช้คำสั่ง SQL  Update นั้นเราต้องระบุตำแหน่งที่เราต้องการแก้ไขให้ชัดเจนไม่อย่างนั้นจะเกิดปัญหาดังรูปต่อไปนี้
                  เมื่อเราไม่ได้ระบุตำแหน่งที่เราต้องการที่จะไปอัพเดต  SQL ก็ทำการอัพเดตข้อมูลทุกตัวใน Column ที่เลือกให้มีข้อมูลเดียวกันตามที่เราได้กำหนดเอาไว้

    SQL Delete :

                  เป็นคำสั่งที่ใช้ในการลบข้อมูล  Record ออกจากตารางใดตารางหนึ่งใน Database 

    SQL Delete Syntax



    Example :
                    รูปภาพแสดงข้อมูลในกรอบสีเขียวซึ่งข้อมูลที่เราต้องการลบออกจาก Database
                     รูปภาพแสดงการใช้คำสั่ง SQL ในการ Delete ข้อมูลออกจากตาราง Customers ของ Database  และข้อมูลที่เราต้องการลบนี้เป็นข้อมูลของ Cardinal  ที่อยู่ใย column "CustomerName"   เมื่อเราทำการกดรัน SQL แล้วเว็บก็จะแจ้งเตื่อนเราว่าได้ทำการเปลี่ยนแปลงข้อมูลที่ Database เรียบร้อยแล้ว
                   รูปภาพแสดงผลลัพธ์หลังจากลบข้อมูลใน Database ด้วยคำสั่ง SQL DELETE  และใช้คำสั่ง SELECT * FROM Customers เพื่อดูข้อมูลทั้งหมดซึ่งเราพบว่าข้อมูลเหลือ 91 จาก 92 ข้อมูล

    ***หมายเหตุ ในการใช้คำสั่งนี้ต้องมีเงื่อนไขการระบุตำแหน่งที่ต้องการลบออกให้ชัดเจนเพราะหากไม่มีจะทำให้ข้อมูลในตารางนั้นถูกลบออกหมด


    Program for DBMS 

               เลือกโปรแกรม Appserv version 8.0.0 ซึ่งเป็นโปรแกรมที่รวบรวมเอา Open Source Software หลายๆ อย่างมารวมกันหลักๆดังนี้
               – Apache
               – PHP
               – MySQL
               – phpMyAdmin 
    สามารถดาวน์โหลดได้ที่  :  https://www.appservnetwork.com/en/
    ข้อดีของการใช้งาน appserv
    • สามารถติดตั้ง Apache, PHP, MySQL ได้อย่างรวดเร็ว
    • ไม่ต้องใช้ความสามารถในการติดตั้งแต่ละขั้นตอนให้ยุ่งยาก
    • สามารถแปลงเครื่องคอมพิวเตอร์ให้เป็นเว็บเซิร์ฟเวอร์ได้ทันที
    การใช้งาน appserv 
    >>เปิดเว็บบราวเซอร์แล้วไปที่  http://localhost/ แล้ว click ที่ phpMyAdmin Database Manager Version 4.5.3.1 
    >>log in เข้าสู่ระบบ
    >>การตั้งค่า และการสร้างฐานข้อมูลใหม่
    >> การสร้างตารางข้อมูลเสร็จเรียบร้อยแล้ว
    >> เพิ่มข้อมูลเข้าไปในตารางโดยใช้คำสัง Insert Into
    >> ตารางข้อมูลที่ได้ทำการ Insert เข้าไป
      

    related info/link/reference :
                  http://www.sonfree.com/detail.php?page_id=7
                  https://www.appservnetwork.com/en/    : สำหรับโหลดโปรแกรม appserv