You are on page 1of 6

สรุปไวยากรณ์

ภาษา SQL เบื้องต้น


)แก้ไขใหม่ 18/02/2563(

SQL Query

Query Language
Parser + Optimizer
Processor

File Manager
DBMS engine +
Transaction Manager

Physical
เครดิตรูป
Database https://www.tutorialspoint.com/sql/sql-overview.htm
โปรแกรมเมอร์ไทย Thai programmer
https://www.facebook.com/programmetrhai 2
สรุปไวยากรณ์ภาษา SQL เบื้องต้น
ประโยค SELECT โอเปอเรเตอร์ในประโยค WHERE
SELECT * FROM table_name; โอเปอเรเตอร์ ค�ำอธิบาย
SELECT column1, column2, .... = เท่ากับ
FROM table_name; <> ไม่เท่ากับ (SQL บางเวอร์ชั่นอาจ
ข้อสังเกต database บางระบบต้องการเซมิโคลอน (;) ต่อ ใช้ !=)
ท้ายเพื่อจบประโยคค�ำสั่ง SQL > มากกว่า
Comments < น้อยกว่า
คอมเมนต์เพียงบรรทัดเดียว จะเริ่มต้นด้วย -- >= มากกว่า หรือ เท่ากับ
-- SELECT * FROM Students; <= น้อยกว่า หรือ เท่ากับ
คอมเมนต์หลายบรรทัด จะเริ่มต้นด้วย /* และสิ้น LIKE ค้นหาด้วยแพทเทิร์น
สุดด้วย */ BETWEEN ข้อมูลอยู่ในช่วงระหว่าง
/*SELECT * FROM Students;
IN ระบุค่าที่เป็นไปได้
SELECT * FROM Class;
SELECT * FROM Teacher*/ โอเปอเรอเตอร์ LIKE
DISTINCT Clause SELECT column1, column2, ....
FROM table_name
SELECT DISTINCT column1, column2, .... WHERE column_name LIKE { PATTERN };
FROM table_name;
สัญลักษณ์แทนตัวอักษรใน SQL (wildcard characters)
Aliases Clause % ใช้แทนตัวอักษรตั้งแต่ 0 ตัว 1 ตัว หรือมากกว่านั้น
_ ใช้แทนตัวอักษรแค่ตัวเดียว
SELECT column_name AS alias_name ( MS Access จะใช้เครื่องหมาย ? แทน _ )
FROM table_name;
SELECT column1, column2, .... โอเปอเรอเตอร์ BETWEEN
FROM table_name AS alias_name; SELECT column1, column2, ....
FROM table_name
WHERE Clause
WHERE column_name
SELECT column1, column2, .... BETWEEN value1 AND value2;
FROM table_name
WHERE condition; โอเปอเรอเตอร์ IN
ข้อสังเกต ประโยค WHERE ไม่ได้ใช้แค่ในประโยค SELECT SELECT column1, column2, ....
เท่านั้น ยังสามารถใช้ในประโยค UPDATE, DELETE และอื่นๆ FROM table_name
อีกด้วย WHERE column_name IN (value1, value2, ...);
Written by Jaturapat Patanasongsivilai
โปรแกรมเมอร์ไทย Thai programmer
https://www.facebook.com/programmetrhai 3
SELECT column1, column2, .... ฟังก์ชั่น MIN() and MAX()x
FROM table_name SELECT MIN( column_name )
WHERE column_name IN FROM table_name
( SELECT STATEMENT ); WHERE condition;
โอเปอเรเตอร์ AND/OR SELECT MAX( column_name )
SELECT column1, column2, .... FROM table_name
FROM table_name WHERE condition;
WHERE condition1 { AND | OR } condition2;
ฟังก์ชั่น COUNT(), AVG() และ SUM()x
NOT Clause SELECT COUNT( column_name )
SELECT column1, column2, .... FROM table_name
FROM table_name WHERE condition;
WHERE NOT condition; SELECT AVG( column_name )
IS NULL Clause FROM table_name
SELECT column1, column2, .... WHERE condition;
FROM table_name SELECT SUM( column_name )
WHERE column_name IS NULL; FROM table_name
WHERE condition;
IS NOT NULL Clause
SELECT column1, column2, .... โอเปอเรเตอร์ EXISTS, ANY and ALL
FROM table_name SELECT column_name(s)
WHERE column_name IS NOT NULL; FROM table_name
WHERE EXISTS
ORDER BY Clause
(SELECT column_name
SELECT column1, column2, .... FROM table_name WHERE condition);
FROM table_name
SELECT column_name(s)
WHERE condition
FROM table_name
ORDER BY column1, column2, .... {ASC|DESC};
WHERE column_name operator ANY
GROUP BY Clause (SELECT column_name
SELECT column_name(s) FROM table_name WHERE condition);
FROM table_name SELECT column_name(s)
WHERE condition FROM table_name
GROUP BY column_name(s) WHERE column_name operator ALL
ORDER BY column_name(s); (SELECT column_name
FROM table_name WHERE condition);
Written by Jaturapat Patanasongsivilai *** column_name(s) หมายถึงชื่อคอลัมน์ 1 อัน หรือมากกว่านั้น
*** operators ได้แก่ =, <>, !=, >, >=, < หรือ <=
โปรแกรมเมอร์ไทย Thai programmer
https://www.facebook.com/programmetrhai 4
HAVING Clause ประโยค UPDATE
SELECT column_name(s) UPDATE table_name
FROM table_name SET column1 = value1, column2 = value2, ....
WHERE condition WHERE condition;
GROUP BY column_name(s)
ประโยค DELETE
HAVING ( arithematic function condition );
ORDER BY column_name(s) DELETE FROM table_name
*** arithematic functions เป็นฟังก์ชั่นได้แก่ COUNT(), WHERE condition;
AVG() และ SUM() ข้อสังเกต ถ้าละประโยค WHERE เรคอร์ดทั้งหมดในตารางจะถูก
ประโยค INSERT INTO ลบออกไปหมด ซึ่งสามารถเขียนได้ด้วยประโยค DELETE * FROM
table_name; หรือเขียนสั้นๆ DELETE FROM table_name;
INSERT INTO
table_name( column1, column2, ....) การท�ำ INNER JOIN
VALUES ( value1, value2, ....);
INSERT INTO table_name
VALUES ( value1, value2, ....); table1 table2
ประโยค INSERT INTO SELECT
INSERT INTO
table_name2( column1, column2, ....) SELECT column1, column2, ....
SELECT column1, column2, .... FROM table1
FROM table_name1 INNER JOIN table2
WHERE condition; ON
table1.column_name = table2.column_name;
INSERT INTO table_name2
SELECT * FROM table_name1 การท�ำ LEFT JOIN
WHERE condition;
ประโยค SELECT INTO
SELECT column1, column2, .... table1 table2
INTO new_table [ IN externaldb ]
FROM old_table
WHERE condition; SELECT column1, column2, ....
SELECT * FROM table1
INTO new_table [ IN externaldb ] LEFT JOIN table2
FROM old_table ON
WHERE condition; table1.column_name = table2.column_name;
Written by Jaturapat Patanasongsivilai
โปรแกรมเมอร์ไทย Thai programmer
https://www.facebook.com/programmetrhai 5
การท�ำ RIGHT JOIN การท�ำ UNION
SELECT column1, column2, ....
FROM table1
WHERE condition
table1 table2 UNION
SELECT column1, column2, ....
FROM table2;
SELECT column1, column2, .... WHERE condition
FROM table1
RIGHT JOIN table2
การท�ำ UNION ALL
ON SELECT column1, column2, ....
table1.column_name = table2.column_name; FROM table1
WHERE condition
การท�ำ FULL OUTER JOIN UNION ALL
SELECT column1, column2, ....
FROM table2;
WHERE condition
table1 table2
ประโยค CREATE DATABASE
CREATE DATABASE database_name;
SELECT column1, column2, .... ประโยค DROP DATABASE
FROM table1
DROP DATABASE database_name;
FULL OUTER JOIN table2
ON ประโยค CREATE TABLE
table1.column_name = table2.column_name; CREATE TABLE table_name(
การท�ำ Self JOIN column1 datatype,
column2 datatype,
condition .....
columnN datatype,
table1 table1 PRIMARY KEY( one or more columns )
);
CREATE TABLE new_table_name AS
SELECT column1, column2, .... SELECT column1, column2, ....
FROM table1 T1, table1 T2 FROM existing_table_name
WHERE condition; WHERE ....;
Written by Jaturapat Patanasongsivilai
โปรแกรมเมอร์ไทย Thai programmer
https://www.facebook.com/programmetrhai 6
ประโยค DROP TABLE ประโยค DESC[1]x
DROP TABLE table_name; DESC table_name;
ประโยค TRUNCATE TABLE ประโยค ALTER TABLE[1]x
TRUNCATE TABLE table_name; ALTER TABLE table_name
ADD column_name { data_type };
ประโยค CREATE INDEX
ALTER TABLE table_name
CREATE INDEX index_name
{ DROP | MODIFY } COLUMN
ON table_name ( column1, column2, ...);
column_name { data_type };
ประโยค CREATE UNIQUE INDEX
ประโยค ALTER TABLE (Rename) [1]x
CREATE UNIQUE INDEX index_name
ALTER TABLE table_name
ON table_name ( column1, column2, ...);
RENAME TO new_table_name;
ประโยค DROP INDEX[1]x หมายเหตุ
ALTER TABLE table_name [1] เป็นค�ำสั่ง SQL ที่ใช้กับ MySQL (ถ้าเป็น database ตัว
DROP INDEX index_name; อื่นอาจใช้รูปแบบเหมือนกัน หรือต่างกันก็ได้)

อ้างอิง
https://www.w3schools.com/sql/sql_select.asp
https://www.tutorialspoint.com/sql/sql-syntax.htm
Written by Jaturapat Patanasongsivilai

Written by Jaturapat Patanasongsivilai

You might also like