จำนวนการดูหน้าเว็บรวม

วันอาทิตย์ที่ 14 ธันวาคม พ.ศ. 2557

คำสั่ง SQL

คำสั่ง SQL


รูปแบบคำสั่งการสร้างตาราง

 CREATE TABLE  <table name> (<column_name><>[<size>][[constraint<constraint name>]constraint type],   [column name>data type>[<size>],…]);

 

ตัวอย่าง

CREATE TABLE  EMPLOYEE

(Empnum CHAR(4) Empname CHAR (15),Salary NUMBER)

PRIMARY KEY (Empnum));

 

สั่งการเพิ่มข้อมูล
คำสั่งการเพิ่มข้อมูลในตาคำรางจะใช้คำสั่ง INSERT จะมีอยู่ 2 รูปแบบคือ การเพิ่มข้อมูลเข้าไปทีละแถว และ การเพิ่มข้อมูลโดยการดึงกลุ่มข้อมูลด้วยคำสั่งค้นหาข้อมูล
1.1 คำสั่งการเพิ่มข้อมูลทีละแถวโดยระบุข้อมูลที่จะ INSERTเข้าไปโดยตรง รูปแบบของคำสั่งเป็นดังนี้
INSERT INTO <tablename>[(column 1, column 2,…)]
VALUE(<value1,value2, …>);

ตัวอย่าง ถ้าต้องการจะใส่ข้อมูลทุกคอลัมน์ลงในตารางลูกค้า

 

    INSERT INTO SALES

    VALUES( 1001, “Chaiwat”, “Bangkok”,0.12);

ผลของคำสั่งนี้ จะมีข้อมูลปรากฎในทุกคอลัมน์ในตารางพนักงานขายดังนี้


SALENO

SALENAME

ADDRESS

SALECOM

1001

Chaiwat

Bangkok

0.12

 

ตัวอย่าง ถ้าต้องการจะใส่ข้อมูลบางคอลัมน์ เช่น ชื่อเมือง Bangkok ชื่อลูกค้า Arlee และหมายเลขลูกค้า 2001 ลงในตารางลูกค้า ใช้คำสั่งดังนี้
INSERT INTO CUSTOMER (ADDRESS,CUSNAME,CUSNO)
VALUES( 'Bangkok','Arlee', 2001);

ผลของคำสั่งในตารางลูกค้า จะทำให้คอลัมน์ ADDRESS มีค่าเป็น Bangkok คอลัมน์ CUSNAME จะมีค่าเป็น Arlee คอลัมน์ CUSNO จะมีค่าเป็น 2001

CUSNO
CUSNAME
ADDRESS
RATING
SALENO
2001
Arlee
Bangkok



 


คำสั่ง SQL


การเรียกคำสั่งใน SQL ในการดูข้อมูลในโปรแกรม ACCESS

คำสั่ง SELECT
1.    กำหนดข้อมูลใน QUERY เรียกชื่อ TABLE ที่ต้องการ
2.    เมนู VIEW เลือกคำสั่ง SQL view
3.    พิมพ์คำสั่ง
4.    RUN รูป           เพื่อแสดงผล


การเรียกดูข้อมูลทั้งตาราง

         
รูปแบบของคำสั่ง SELECT เพื่อใช้เรียกดูข้อมูลทุกคอลัมน์จากตารางใดตารางหนึ่งเป็นดังนี้คือ

รูปแบบ


Select *
From <table name>;

          ในการเรียกดูข้อมูลทั้งตารางจะต้องใช้เครื่องหมาย * เพื่อแทนการเรียกดูข้อมูลจากทุกคอลัมน์ของตารางหนึ่ง
          เช่นเรียกดูข้อมูลทั้งตารางของ EMPLOYEE
          คำสั่งที่ใช้คือ
          Select *
From <EMPLOYEE>;

การเรียกดูข้อมูลเพียงบางคอลัมน์

         
          รูปแบบคำสั่ง SELECT เพื่อเรียกดูข้อมูลเพียงคอลัมน์จากตารางใดตารางหนึ่ง คือ
         

รูปแบบ


Select <Column1, Column2...>
From <table name>;

          ในการเรียกดูข้อมูลเพียงบางคอลัมน์ จำเป็นต้องระบุชื่อคอลัมน์ให้ถูกต้อง ตามที่ระบุไว้ในโครงสร้าง หากเรียกดูมากกว่าหนึ่งคอลัมน์จะต้องมีเครื่องหมาย , คั่นระหว่างซื่อคอลัมน์
          เช่น ต้องการเรียกดู ชื่อพนักงาน ตำแหน่ง เงินเดือน
          คำสั่งที่ใช้คือ
          Select NAME, POSITION, SALARY
From  EMPLOYEE;

การเรียกดูข้อมูลโดยเปลี่ยนชื่อฟิลด์ 

ในบางครั้งชื่อฟิลด์ที่เราตั้งขึ้นอาจจะไม่ตรงกับความต้องการ เราสามารถเปลี่ยนชื่อของฟิลด์ใหม่ในการเรียกดูข้อมูลได้โดยใช้ AS
          เช่น ต้องการชื่อฟิลด์ POSITION เป็น DEPT

          คำสั่งที่ใช้คือ

          Select POSITION AS DEPT
From  EMPLOYEE;

 

การเรียกดูข้อมูลโดยไม่ให้แสดงข้อมูลที่ซ้ำกัน

            DISTINCT เป็นคำสั่งที่ใช้ตัดฟิลด์ที่มีค่าของข้อมูลซ้ำกันและจัดเรียงข้อมูมใหม่(เรียงจากน้อยมาหามาก) เมื่อต้องการดูข้อมูลจากตารางโดยไม่ให้แสดงข้อมูลซ้ำกันออกมา จะใช้คำว่า DISTINCT  หลังคำว่า SELECT
          เช่น ต้องการเรียกดู ตำแหน่งของพนักงานที่ไม่ซ้ำกัน
          คำสั่งที่ใช้คือ
          Select DISTINCT POSITION
From  EMPLOYEE;

Top n เป็นการเลือกเรคคอร์ดจากตำแหน่งของเรคคอร์ดแรกไปยังตำแหน่งของเรค

คอร์ดระบุไว้

เช่น ต้องการเรียกดู เรคคอร์ดแรกถึงเรคคอร์ดที่5
          คำสั่งที่ใช้คือ
          Select Top 5 *
From  EMPLOYEE;

การเรียกดูข้อมูลโดยแสดงผลข้อมูลทางคอลัมน์เป็นนิพจน์ทางคณิตศาสตร์

         

          เครื่องหมาย                                             ความหมาย
          + (Add)                                            บวก
          - (Subtract)                                               ลบ
          * (Multiply)                                               คูณ
          / (Divide)                                         หาร

เช่น ต้องการคำนวณหาเงินเดือนสุทธิหลังหักภาษี 3% ของเงินเดือน
          คำสั่งที่ใช้คือ
          Select EMPNAME, SALARY-(SALARY*0.03)AS TOTAL_SALARY
From  EMPLOYEE;

 

การจัดเรียงลำดับผลลัพธ์โดยใช้ ORDER BY 

            ORDER BY เป็นคำสั่งที่ใช้สำหรับการเรียงลำดับหรือ Sorting ขัอมูลตามอักษรหรือฟิลด์ที่กำหนด สามารถกำหนดการเรียงจากมากไปหาน้อย (Descending order (DESC) หรือจากน้อยไปหามาก (Ascending order (ASC))  โดยทั่วไปแล้วจะเรียงลำดับจากน้อยไปหามากเสมอ
          เช่น ต้องการเรียงลำดับชื่อของพนักงาน

          คำสั่งที่ใช้คือ                          คำสั่งที่ใช้คือ                         คำสั่งที่ใช้คือ                         Select EMPNAME                     Select EMPNAME                     Select EMPNAME

From  EMPLOYEE  From  EMPLOYEE From  MPLOYEE   
Order By ENPNAME;           Order By ENPNAME ASC;         Order By ENPNAME DESC;   
                            

นอกจากนี้การใช้ ORDER BY ยังสามารถใช้เลขกำกับแทนการใช้ชื่อฟิลด์ได้อีกด้วย
เช่น การเรียกดูข้อมูลโดยจัดเรียงผลลัพธ์ตามชื่อมากไปหาน้อย และเงินเดือนด้วย
Select EMPNAME, SALARY
From  EMPLOYEE
ORDER BY 1 DESC 2;

การเรียกดูข้อมูลแบบมีเงื่อนไข 

การเรียกดูข้อมูลแบบมีเงือนไข  เป็นการระบุค่าเฉพาะของข้อมูลที่ต้องการเรียกดู  อาจจะใช้เงื่อนไขเพื่อดึงดูข้อมูลของพนักงานที่มีเงินเดือนมากกว่า 3000 เป็นต้น  ดังนั้นการเรียกดูข้อมูลแบบมีเงื่อนไขโดยมีโอเปอร์เรเตอร์ทางตรรกะหรือ โอเปอเรเตอร์ของ SQL เป็นต้นเป็นตัวประกอบในการแสดงเงื่อนไข
การเรียกดูข้อมูลแบบมีเงื่อนไข  จะใช้วลีหรืออนุประโยค WHERE ต่อท้ายวลีหรืออนุประโยค FROM รูปแบบคำสั่ง

          รูปแบบ


SELECT <Column1, Column2...>
FROM <table name>
WHERE <CONDITION>;


          ในอนุประโยค WHERE  ประกอบด้วยส่วนสำคัญ 3 ส่วนคือ
1.    ชื่อคอลัมน์
2.    โอเปอเรเตอร์การเปรียบเทียบ  ซึ่งแบ่งออกเป็นโอเปอเรเตอร์ทางตรรกะ (LOGICAL OPERATER) โอเปอเรเตอร์ SQL รวมถึงการใช้โอเปอเรเตอร์ BOOLEAN
3.    ข้อมูลเฉพาะที่ต้องการแสดงเป็นเงื่อนไขของชื่อคอลัมน์ที่ระบุในข้อ 1 อาจเป็นค่าคงที่ (CONSTANT) กลุ่มของข้อมูลหรือ นิพจน์(EXPRESSON) หรือชื่อคอลัมน์อื่นที่ต้องการนำมาเปรียบเทียบข้อมูลเฉพาะที่เป็นประเภทตัวอักษรหรือ วัน เดือน ปี (DATE) เมื่อนำมาเป็นเงื่อนไขเฉพาะจะต้องมีเครื่องหมาย ‘  ‘ กำกับ

เครื่องหมายการแสดงการเปรียบเทียบค่าข้อมูล

โอเปอเรเตอร์                                  ความหมาย
=                                              เท่ากับ
>                                               มากกว่า
>=                                             มากเท่ากับ
<                                               น้อยกว่า
<=                                             น้อยกว่าเท่ากับ
<>                                             ไม่เท่ากับ

เช่น ต้องการเรียกดูข้อมูลทั้งตาราง ที่มีเงือนไขเงินเดือนมากกว่า 30000
          คำสั่งที่ใช้คือ
          Select *
From  EMPLOYEE
WHERE SALARY>30000;
เช่น ต้องการเรียกดูข้อมูล รหัส ชื่อพนักงาน รหัสแผนก ของพนักงานที่มีตำแหน่ง MANAGER
          คำสั่งที่ใช้คือ
          Select EMPNAME, EMPNAME, DEPNO
From  EMPLOYEE
WHERE POSITION = MANAGER;

เช่น ต้องการเรียกดูข้อมูลชื่อพนักงานที่มีเงินเดือนต่อปีมากกว่า 300000
          คำสั่งที่ใช้คือ
          Select  EMPNAME, SALARY
From  EMPLOYEE
WHERE SALARY*12>300000

การเรียกดูข้อมูลแบบมีเงื่อนไขโดยใช้คำสั่ง  BETWEEN... AND....      

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

เช่น ต้องการเรียกดูข้อมูลที่แสดงชื่อ และเงินเดือนของพนักงานที่มีเงินเดือนอยู่ระหว่าง 20000 กับ 50000
          คำสั่งที่ใช้คือ
          Select EMPNAME, SALARY
From  EMPLOYEE
WHERE SALARY BETWEEN 20000 AND 50000;
หรือ
เช่น ต้องการเรียกดูข้อมูลของพนักงานที่เริ่มทำงานระหว่างวันที่ 01/01/94 ถึง 11/30/94
          คำสั่งที่ใช้คือ
          Select *
From  EMPLOYEE
WHERE STARTDATE  BETWEEN #01/01/94# AND #11/30/94#;

การเรียกดูข้อมูลแบบมีเงื่อนไขโดยใช้คำสั่ง  IN        

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

เช่น ต้องการเรียกดูข้อมูลรหัส ชื่อ เงินเดือน และรหัสผู้บังคับบัญขาของพนักงานที่มีรหัสผู้บังคับบัญชาเป็น  1002  2002  และ 3004
          คำสั่งที่ใช้คือ
          Select EMPNUM, EMPNAME, SALARY,MGRNO
From  EMPLOYEE
WHERE MRGNO IN (1002,2002, 3004);
หรือ
เช่น ต้องการเรียกดูข้อมูลของพนักงานที่อยู่แผนกที่มีรหัส 20 และ 40 โดยให้แสดงเรียงตามเงินเดือนจากมากไปหาน้อย
          คำสั่งที่ใช้คือ
          Select *
From  EMPLOYEE
WHERE DEPNO IN(20,40)
ORDER BY SALARY DESC;

การเรียกดูข้อมูลแบบมีเงื่อนไขโดยใช้คำสั่ง  LIKE     

LIKE เป็นโอเปอรเรเตอร์ที่ใช้ในการค้นหาข้อมูลของคอลัมน์ที่เก็บข้อมูลประเภทตัวอักษรเท่านั้น โดยยังไม่ทราบค่าที่แน่นอนทั้งหมดของข้อมูลที่จะค้นหา หรือรู้เพียงบางตัวอักษรเท่านั้น โอเปอเรเตอร์ LIKE จะระบุต่อท้ายชื่อคอลัมน์ที่เป็นเงื่อนไข โดยจะใช้สัญญาลักษณ์ช่วยในการค้นหาข้อมูลเป็นตัวช่วยในการค้นหาข้อมูลที่เรียกว่า Wild Card (อักขระพิเศษ) ดังนี้
          ตัวอักขระพิเศษ                                ความหมาย
                   *                                    แทนอักษรใดๆ กี่ตัวก็ได้
                   ?                                    แทนอักษรใดๆ 1 ตัว

เช่น ต้องการเรียกดูข้อชื่อพนักงานที่ขึ้นต้นด้วยอักษร  S อย่างเดียว
          คำสั่งที่ใช้คือ
          Select  EMPNAME
From  EMPLOYEE
WHERE EMPNAME LIKE S*;
หรือ
เช่น ต้องการเรียกดูข้อชื่อพนักงานที่ลงท้ายด้วยอักษร E อย่างเดียว
          คำสั่งที่ใช้คือ
          Select  EMPNAME
From  EMPLOYEE
WHERE EMPNAME LIKE*E*;
หรือ
เช่น ต้องการเรียกดูข้อชื่อพนักงานที่มีอักษร Hเป็นตัวที่2แล้วตามด้วยอะไรก็ได้
คำสั่งที่ใช้คือ
          Select  EMPNAME
From  EMPLOYEE
WHERE EMPNAME LIKE?H*;

การเรียกดูข้อมูลแบบมีเงื่อนไขโดยใช้คำสั่ง  IS NULL 

IS NULL เป็นโอเปอเรเตอร์ที่ใช้ในแสดงค่าของคอลัมน์ที่มีค่าเป็นค่าว่าง หรือไม่มีค่า

เช่น ให้แสดงชื่อคอลัมน์ที่ไม่มีผู้บังคับบัญชา
          คำสั่งที่ใช้คือ
          Select  EMPNAME
From  EMPLOYEE
WHERE MGRNO IS NULL;

นอกจากโอเปอเรเตอร์ของSQL ทั้ง 4 ที่กล่าวมาข้างต้น โอเปอเรเตอร์เหล่านี้ยังสามารถใช้เป็นเงื่อนไขในเชิงปฏิเสธ โดยใช้ NOT นำหน้าดังนี้
         
          โอเปอเรเตอร์                                  ความหมาย
          NOT BETWEEN ... AND              ไม่มีค่าอยู่ระหว่างค่าสองค่าที่ระบุ
          NOT IN                                  ไม่มีค่าที่เป็นกลุ่มข้อมูลที่ระบุ
          NOT LIKE                                       ไม่มีค่าตามตัวอักษรหรือสัญญลักษณ์
          IS NOT NULL                       ไม่มีค่าเป็นค่าว่าง



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

AND          ใช้เชื่อมเงื่อนไขสองเงื่อนไข โดยข้อมูลที่จะแสดงออกมาจะต้องเป็น          จริงตามเงื่อนไขทั้งสอง
OR             ใช้เชื่อมเงื่อนไขสองเงื่อนไข โดยข้อมูลที่จะแสดงออกมาจะต้องเป็น          จริงตามเงื่อนไขใดเงื่อนไขหนึ่ง
NOT           ใช้แสดงหน้าเงื่อนไขใดเงื่อนไขหนึ่ง เพื่อให้ได้ข้อมูลที่ไม่เป็นไปตามเงื่อนไขที่ระบุ
                  
          การลำดับการทำงานก่อนหลังของโอเปอเรเตอร์
          จะเห็นว่าโอเปอเรเตอร์ต่างๆ ที่ใช้ในการแสดงเงื่อนไขมีมากมาย การลำดับการทำงานของโอเปอเรเตอร์จะสามารถกำหนดให้ทำงานก่อนหลังด้วยเครื่องหมายวงเล็บ (   ) เหมือนหลักการคำนวณทางคณิตศาสตร์

เช่น ให้แสดงรหัส ชื่อ ตำแหน่ง และเงินเดือนของพนักงานที่มีตำแหน่งงานเป็นMANAGER และมีเงินเดือนอยู่ระหว่าง 30000 - 50000
          คำสั่งที่ใช้คือ
          Select  EMPNUM, EMPNAME, POSITION, SALARY
From  EMPLOYEE
WHERE SALARY BETWEEN 30000 AND 50000 AND POSITION=MANAGER;

หรือ
เช่น ให้แสดงชื่อ ตำแหน่ง เงินเดือนของพนักงานที่มีเงินเดือนมากว่า 20000 และมีตำแหน่งเป็นMANAGER หรือ SUPERVISOR
          คำสั่งที่ใช้คือ
          Select  EMPNAME, POSITION, SALARY
From  EMPLOYEE
WHERE SALARY >20000 AND (POSITION=MANAGER OR
POSITION=SUPERVISOR);

หรือ
เช่น ให้แสดงข้อมูลของพนักงานที่มีเงินเดือนน้อยกว่า 20000และและไม่ได้อยู่แผนกที่มีรหัส 20
คำสั่งที่ใช้คือ
          Select  *
From  EMPLOYEE
WHERE SALARY <=20000 AND NOT DEPNO=20;

การแสดงข้อมูลด้วยฟังก์ชั่นที่เกี่ยวกับการรวม         

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




ฟังก์ชั่น                                        ผลที่ได้จากการใช้ฟังก์ชั้น

AVG([*|DISTINCT]<COLUMN NAME>)                       เป็นฟังก์ชั่นที่ใช้ในการหาค่าเฉลี่ย
หรือ AVG([*|DISTINCT] <COLUMN EXPRESSION>)   ของคอลัมน์หนึ่ง ที่เก็บข้อมูลประเภทตัวเลข

COUNT([*|DISTINCT]<COLUMN NAME>)                  เป็นฟังก์ชั่นที่ใช้ในการนับจำนวน
                                                                             แถว


วันอังคารที่ 2 ธันวาคม พ.ศ. 2557

คำสั่ง MySQL


ก่อนอื่นต้องบอกเลยครับว่ามันไม่ได้ดีมากนักสำหรับหน้าเวปนี้เพราะผมอ่านหนังสือและสรุปอย่างคร่าวๆ แล้วรูปแบบมันอาจจะเพี้ยนๆ เพราะผมเขียนใน PAGE แล้วเอา COPY and PASTE ลงเล้ย แบบไม่แก้ไขอันใด tab มั่วไปหมด ถ้าผิดพลาดประการใดต้องขออภัยด้วยครับ

ภาษา SQL นั้นไม่เป็น case sensitive (ตัวเล็ก ตัวใหญ่มีค่าเท่ากัน) และในแต่ละคำสั่งจะถูกปิดด้วย ; (semi-colon) 


(วิธีการลง SQL ใน Window7 : http://natsusencho.blogspot.com/2012/07/mysql-window7.html)

มาเริ่มกันเลย
การเข้าใช้ให้เราเปิด cmd ขึ้นมาและ
$ mysql -u root -p
จากนั้นใส่ password ลงไป
จะเข้าสู่การใช้ 

mysql > (เราจะพิมพ์คำสั่งต่างๆลงไป)

ถ้าต้องการออกใช้
mysql > quit
mysql > show databases; แสดง  databases ทั้งหมดที่เราสร้างขึ้น

mysql > use <ชื่อ database> เป็นการเข้าใช้ database นั้นๆ
mysql > SELECT database(); ดู database ที่เรากำลังใช้อยู่
mysql > show tables; แสดงตารางทั้งหมดที่เราสร้างขึ้นใน database ที่ use

สร้าง DATABASE
mysql > create database  <ชื่อdatabase>;
เช่น create database world;


สร้าง table
mysql > create table <ชื่อtable> (<ชื่อข้อมูล> <ชนิดข้อมูล>, ... );
เช่น create table human (name VARCHAR(20), birth DATE, sex CHAR(1));
ชนิดข้อมูล เช่น
VARCHAR(n) - ข้อมูลชนิด string เก็บแบบ linked list เหมาะสมกับข้อมูลที่มีความยาวที่ไม่แน่นอน
CHAR(n) - ข้อมูลชนิด string เก็บแบบ array เหมาะสมกับข้อมูลที่มีความยาวที่แน่นอน
INT - จำนวนเต็ม
DATE - ข้อมูลชนิดพิเศษของ SQL ใช้เก็บวันที่ มีรูปแบบเป็น YYYY-MM-DD
ดูชื่อและชนิดข้อมูลของแต่ละตาราง
mysql > describe <ชื่อtable>;
การใส่ข้อมูลลงไปใน table
1. ใช้คำสั่ง load data จากไฟล์ที่เราเตรียมไว้ โดย default จะแบ่งเนื้อหาโดยใช้ tab แบบนี้จะมีปัญหาเรื่องการใช้ข้อมูลชนิด NULL ซึ่งใช้ \N แทน
mysql > load data local infile ‘natsu.txt’ into table pet;

2.INSERT ใส่ทีละข้อมูล เหมาะกับข้อมูลที่น้อยๆ ที่เราเพิ่มเติมเข้าไป เช่น
mysql > INSERT INTO pet VALUES (‘natsusencho’, ‘1992-03-25’, ‘M’);

3. *ทำ SQL script คือเตรียมไฟล์คำสั่ง sql ไว้แล้วนำมาทำการ source ทีเดวเช่น
ส่วนตัวแนะนำวิธีนี้เพราะเราเขียนทั้งหมดทีเดียวไม่ต้องมาใส่ทีละคำสั่ง นึกออกให้เสร็จที่เดียวแล้ว run ทีเดียวทั้งหมด
  ---- file natsu.sql ----
CREATE TABLE IF NOT EXISTS human (
       name   VARCHAR(20),
       birth DATE, 
sex CHAR(1) );
INSERT INTO human VALUES 
      ( 'NatsuSencho',   '1992-03-25', 'M'),
      ( 'Slime',   '1999-03-03', NULL ),
  ( ‘HeyFemale’ , ‘1993-12-25’ , ‘F’);
----- file natsu.sql -----
หลังจากสร้างเสร็จแล้วก้ลองใช้คำสั่ง
mysql > source natsu.sql;
ก็จะได้ตาราง world หน้าที่มีข้อมูล 3 ตัว
create table IF NOT EXISTS human
คำว่า IF NOT EXISTS หมายถึงการสร้าง table นี้ถ้ายังไม่มี table นี้ ถ้ามีแล้วก็ไม่ต้องสร้าง
มีสร้างก็ต้องมีลบ การลบ table ใช้คำสั่ง
mysql > DELETE FROM <ชื่อtable>;
หลังจากที่สร้างเป็นแล้วต้องสามารถแก้ไขข้อมูลได้
mysql > UPDATE <ชื่อtable> 
SET <ชื่อข้อมูล> = <ข้อมูลใหม่>
WHERE <เงื่อนไขอื่นๆ>;
เช่น UPDATE human SET name = ‘HeyGirl’ WHERE name = ‘HeyFemale’;
การสืบค้นข้อมูล หรือการดูข้อมูล
SELECT <สิ่งที่ต้องการ>
FROM   <ชื่อtable>
WHERE <เงื่อนไขอื่นๆ>
เช่นต้องการชื่อของข้อมูลในตาราง human ที่มีมีเพศชาย
SELECT name
FROM   human
WHERE sex = ‘M’; 
ต้องการดูข้อมูลทั้งหมดในตาราง human [* คือทั้งหมด]
SELECT *
FROM   human;
ซึ่งการกำหนดเงื่อนไขนั้นเราสามารถใช้ตัวแปรทางคณิตศาสตร์ตรรกะ มาช่วยได้เช่น
AND และ 
 OR หรือ
< น้อยกว่า 
 > มากกว่า
<= น้อยกว่าหรือเท่ากับ
>= มากกว่าหรือเท่ากับ
<> ไม่เท่ากับ
UNION การนำ 2 ตารางมาเชื่อมต่อกันตัดตัวซ้ำ
 UNION ALL การนำ 2 ตารางมาเชื่อมกันโดยไม่ตัดตัวซ้ำ
INTERSECT ข้อมูลที่ซ้ำกัน
DISTINCT คือการตัดตัวที่ซ้ำกันออก
เช่น SELECT DISTINCT sex
FROM   human;
ORDER BY เรียงลำดับข้อมูล การจัดกลุ่มข้อมูล
เรียงลำดับจากมากไปน้อย (descending order)
เช่น SELECT *
FROM   human
ORDER BY name;
เรียงลำดับจากน้อยไปมาก (descending order)
เช่น SELECT *
FROM   human
ORDER BY name DESC;
ถ้าต้องการมากกว่าอันนึงก็ย่อมได้
เช่น SELECT *
FROM   human
ORDER BY name , sex DESC ;
แบบนี้จะจัดตามชื่อแบบ ascending ก่อนแล้วจะมาจัดเพศแบบ descending ทีหลัง
การคำนวณเกี่ยวกับวันที่
ตัวแปร DATE เป็น string ที่มีการเก็บเป็นรูปแบบ YYYY-MM-DD ตัวแปรชนิด DATE สามารถนำมาเทียบค่ากันได้ในระดับ ASCII
CURDATE() จะเป็น function ที่ส่งค่าออกมาเป็นข้อมูลรูปแบบ DATE (YYYY-MM-DD)
YEAR(<ข้อมูลชนิดdate>) ส่งค่าออกมาเป็นข้อมูลรูปแบบของปี (YYYY)
MONTH(<ข้อมูลชนิดdate>) ส่งค่าออกมาเป็นข้อมูลรูปแบบของเดือน (MM)
DAY(<ข้อมูลชนิดdate>)  ส่งค่าออกมาเป็นข้อมูลรูปแบบของวัน (DD)
RIGHT(<ข้อมูลชนิดstring>, <จำนวนตัวเลข>) ส่งค่าออกมาจำนวนเท่ากับที่เราต้องการตัดออกมาจาก string นั้นๆ โดยเริ่มนับจากทางขวา
LEFT(<ข้อมูลชนิดstring>, <จำนวนตัวเลข>) ส่งค่าออกมาจำนวนเท่ากับที่เราต้องการตัดออกมาจาก string นั้นๆ โดยเริ่มนับจากทางซ้าย
ตัวอย่าง
ex1. ต้องการปีของวันปัจจุบัน YEAR( CURDATE() )
ex2. ต้องการเดือนและวันของปัจจุบัน RIGHT( CURDATE(),5 )
[5 ในที่นี้คือนับจากทางขวามือมา YYYY-MM-DD ก็จะได้ ​MM-DD มา]
การใช้ตัวแปร NULL ในเงื่อนไข
ใช้คำสั่ง xxx IS NOT NULL เช่นต้องการดูสิ่งมีชีิวิตที่ไม่มีเพศ
SELECT *
FROM   human
WHERE sex IS NOT NULL;
การตั้งชื่อเป็นชื่อที่เราต้องการ
หมายถึงเวลา select บางทีคนทั่วไปอาจจะไม่เข้าใจว่าคืออะไร เราจึงมีคำสั่ง AS ช่วย เช่น
SELECT name AS ‘NAME-SURNAME’
FROM   human;
COUNT การนับจำนวน + GROUP BY การจัดกลุ่ม
COUNT ใช้ในการนับจำนวนของตารางต่างๆ จะใช้คู่กับ GROUP BY ได้ดีเพราะจะช่วยในการจัดกลุ่มชุดข้อมูลได้ดีขึ้น
SELECT <อื่นๆ> COUNT(*)
FROM <ชื่อtable>
WHERE <เงื่อนไข>
GROUP BY <จัดกลุ่มโดยใช้อะไร>
เช่นต้องการนับจำนวนคนในแต่ละเพศ
SELECT sex , COUNT(*)
FROM   human
GROUP BY sex;
SET การกำหนดตัวแปร
SET @<ชื่อตัวแปร> = <ค่า>
เช่น  SET @A1 = ‘Natsu Sencho’;
SET @A2 = ‘1999-09-09’;
การใช้คำสั่ง JOIN
การ JOIN คือการนำตารางที่มีความสัมพันธ์ของข้อมูลในแต่ละฟิลมาเชื่อมโยงกัน
การ JOIN มี 2 แบบคือ
1. INNER JOIN
2. OUTER JOIN  |--- LEFT JOIN
|--- RIGHT JOIN
INNER JOIN
คือการ JOIN โดยไม่สนใจค่า NULL จะดูเพียงตัวที่เหมือนกันเท่านั้น
สมมติมีตาราง 2 อันชื่อ Ltable และ ​Rtable นำมา JOIN กันโดยมีข้อมูลที่ซ้ำกันคือ id
-- JOIN โดยใช้ ON
SELECT *
FROM Ltable INNER JOIN Rtable ON Ltable.id = Rtable.id;
-- หรือ JOIN โดยใช้ USING
SELECT *
FROM Ltable INNER JOIN Rtable USING (id);
กรณีพิเศษที่ตัวแปรหรือชื่อ Column ซ้ำกันก็สามาใช้ NATURAL JOIN ได้ อย่างในที่นี้เรารุ้ว่า id นั้นซ้ำกันเราก็ไม่ต้องใส่เงื่อนไขใดๆ แต่ใช้ Natural Join เข้ามาช่วยโดย
SELECT *
FROM Ltable NATURAL JOIN Rtable;
OUTER JOIN
  • LEFT JOIN
คือการ JOIN โดยใช้ตัวทางซ้ายเป็นหลักคือ จะแสดงตัวทางซ้ายทุกตัวและนำข้อมูลขวามาเชื่อม
SELECT *
FROM Ltable LEFT JOIN Rtable ON Ltable.id = Rtable.id;
  • RIGHT JOIN
คือการ JOIN โดยใช้ตัวทางขวาเป็นหลักคือ จะแสดงตัวทางขวาทุกตัวและนำข้อมูลขวามาเชื่อม
SELECT *
FROM Ltable RIGHT JOIN Rtable ON Ltable.id = Rtable.id;
นอกจากวิธีการ JOIN ยังมีวิธีที่เรียกว่า Cartesian Product ซึ่งไม่ได้อทิบายไว้ในทีนี้
ถ้ามีโอกาศจะนั่งทำตัวอย่างให้ดูให้เห็นได้ชัดกว่านี้นะครับ แต่ผมสรุปแบบคร่าวๆ ให้พอดู
รวมคำศัพท์คำสั่งที่เจอเพจนี้
CREATE สร้างdatabase, table
INSERT ใส่ข้อมูล
UPDATE อัพเดตข้อมูล
SELECT ต้องการจะดูอะไรบ้าง
FROM จากที่ไหน
WHERE เงื่อนไขอย่างไร
COUNT(*) นับจำนวนของฟิลข้อมูล
GROUP BY จัดกลุ่มข้อมูล
ORDER BY เรียงลำดับข้อมูลโดย
JOIN เชื่อมตาราง
DISTINCT ตัดตัวซ้ำ
AS ใช้คำใหม่ให้กระทัดรัดขึ้น
SET กำหนดตัวแปร
CURDATE() วันที่ปัจจุบัน
YEAR() ปี
MONTH() เดือน
DAY() วัน
RIGHT() ตัดคำจากทางขวา
LEFT() ตัดคำจากทางซ้าย
* ทั้งหมด

อ้างอิง : เอกสารประกอบการสอนวิชา Databases โดยอาจารย์จิระ 2012 มหาวิทยาลัยบูรพา