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

คำสั่ง SQL

1.)SQL WHERE
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) คำสั่ง SQL WHERE สามารถระบุเงื่อนไขในการเลือกข้อมูลได้ 1 เงื่อนไข หรือมากกว่า 1 เงื่อนไข
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax : SELECT Column1, Column2, Column3,... FROM Table-Name WHERE [Field] = 'Value'

2.)SQL ALIAS
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดย ALIAS คือการสร้างชื่อจำลองขึ้นมาใหม่ โดยสามารถจำลองชื่อได้ทั้งชื่อ Field และชื่อ Table
Database : MySQL
Syntax : SELECT Column1 AS Alias1,Column2 AS Alias2,Column3 AS Alias3,... FROM [Table-Name1] Table Alias

3.)SQL OR AND
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) การเชื่อมวลีสำหรับเงื่อนไขต่าง ๆ
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax : SELECT Column1,Column2,Column3,... FROM [Table-Name] WHERE [Field] = 'Value' [AND/OR] [Field] = 'Value'

4.)SQL ORDER BY
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยจัดเรียงข้อมูลตามต้องการ
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax : SELECT Culumn1,Culumn2,Culumn3,... FROM [Table-Name] ORDER BY [Field] [ASC/DESC],[Field] [ASC/DESC],...
ASC = น้อยไปหามาก
DESC = มากไปหาน้อย

5.)SQL SUB SELECT QUERY
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยใช้เลือกข้อมูลย่อยภายใน SELECT ย่อยอีกชั้นหนึ่งครับSUB SELECT QUERY เข้ามาช่วยในด้านความสะดวกและง่ายกว่าการ JOIN TABLE แต่ข้อเสียของ SUB SELECT คือ สามารถทำงานได้ช้ากว่า JOIN TABLE
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax : SELECT Column1,Column2,Column3,... FROM [Table-Name] WHERE [Field] IN (SELECT ..... FROM ....)

6.)SQL SELECT INTO
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยใช้การเลือกข้อมูลจากต้นทางไปยังปลายทาง นิยมใช้สำหรับการ Copy Table หรือทำการ Backup Table
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax : SELECT Column1,Column2,Column3,... INTO [New-Table] FROM [Table-Name]

7.)SQL BETWEEN
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยทำการเลือกเงื่อนไขที่อยู่ระหว่างค่าเริ่มต้นและค่าสิ้นสุด
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax : SELECT Column1,Column2,Column3,... FROM [Table-Name] WHERE [Field] BETWEEN [Value-Start] AND [Value-End]

8.)SQL JOIN
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยเงื่อนไขการ JOIN จะกระทำเมื่อมีข้อมูลตั้งแต่ 2 Table ขึ้นไป โดยข้อมูลเหล่านั้นเป็นข้อมูลที่มีความสัมพันธ์และเชื่อมโยงกับข้อมูลหลัก
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax : SELECT [Table-Name1].Column1, [Table-Name2].Column1,... FROM [Table-Name1],[Table-Name2]
WHERE [Table-Name1].Column = [Table-Name2].Column

9.)SQL LIMIT
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) ที่สามารถกำหนดจำนวน Record ที่แสดงผลออกมาได้
Database : MySQL
Syntax : SELECT Column1, Column2, Column3,... FROM [Table-Name] ORDER BY [Fields] [ASC/DESC] LIMIT [Int-Start] , [Int-End]

10.)SQL ROWNUM
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) ที่สามารถกำหนดจำนวน Record ที่แสดงผลออกมาได้
Database : Oracle
Syntax : SELECT Column1, Column2, Column3,... FROM [Table-Name] WHERE ROWNUM <= [Int-Limit]

คำสั่ง SQL

คำสั่ง SQL เบื้องต้น


ก่อนอื่นต้องบอกเลยครับว่ามันไม่ได้ดีมากนักสำหรับหน้าเวปนี้เพราะผมอ่านหนังสือและสรุปอย่างคร่าวๆ แล้วรูปแบบมันอาจจะเพี้ยนๆ เพราะผมเขียนใน 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 > (เราจะพิมพ์คำสั่งต่างๆลงไป)
ถ้าต้องการออกใช้
1.mysql > quit
2.mysql > show databases;  แสดง  databases ทั้งหมดที่เราสร้างขึ้น
3.mysql > use <ชื่อ database> เป็นการเข้าใช้ database นั้นๆ
4.mysql > SELECT database(); ดู database ที่เรากำลังใช้อยู่
5.mysql > show tables;  แสดงตารางทั้งหมดที่เราสร้างขึ้นใน database ที่ use

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

สร้าง TABLE
7.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

ดูชื่อและชนิดข้อมูลของแต่ละตาราง
8.mysql > describe <ชื่อtable>;
9. การใส่ข้อมูลลงไปใน 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 -----
 หลังจากสร้างเสร็จแล้วก้ลองใช้คำสั่ง
 10.mysql > source natsu.sql;
 ก็จะได้ตาราง world หน้าที่มีข้อมูล 3 ตัว
 create table IF NOT EXISTS human
 คำว่า IF NOT EXISTS หมายถึงการสร้าง table นี้ถ้ายังไม่มี table นี้ ถ้ามีแล้วก็ไม่ต้องสร้าง

มีสร้างก็ต้องมีลบ การลบ table ใช้คำสั่ง
        11.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()  ตัดคำจากทางซ้าย
*       ทั้งหมด

ที่มา  http://natsusencho.blogspot.com/2012/08/sql-language.html

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

ข้อสอบ O-Net วิชาคอมพิวเตอร์

1.   ข้อใดไม่ใช่ ขั้นตอนหลักในการทำงานของคอมพิวเตอร์
ก.  ประมวลผล                       ข.  เก็บข้อมูล 
ค.  รับข้อมูล                          ง.  แสดงผลลัพธ์     
        จ.  นำข้อมูลเข้า

2.  หน่วยข้อมูลที่เล็กที่สุดในระบบคอมพิวเตอร์เรียกว่า
ก.  บิต                                ข.  ไบต์ 
ค. ฟิลด์                               ง.  เร็คคอร์ด
จ. ไฟล์

3.  ข้อมูลเมื่อผ่านการประมวลผลแล้ว จะได้อะไร
ก.  Document                       ข.   Report
ค.  Information                     ง.  Output
จ.  Database

4.  สัญญาณในคอมพิวเตอร์เป็นสัญญาณชนิดใด
ก.  อนาล็อก                          ข.  ดิจิตอล  
ค.  ไฮบริค                            ง.  ไฟฟ้า
จ. อิเล็กทรอนิกส์


5. ข้อใดกล่าวถึง Protocol ได้ถูกต้อง
ก.  การสืบค้นข้อมูลบนอินเทอร์เน็ต
ข. การใช้เครื่องคอมพิวเตอร์ที่อยู่ห่างไกล
ค.  การบริหารวารสารและข่าวสารบนอินเทอร์เน็ต
ง. เครื่องมือที่ช่วยในการสืบค้นข้อมูลในรูปแบบเอกสาร
จ.  ภาษาการสื่อสารระหว่างเครื่องคอมพิวเตอร์ในระบบอินเทอร์เน็ต

6. ส่วนประกอบใดของโปรแกรม Internet Explorer ที่ทำหน้าที่แสดงที่อยู่ของเว็ปไซด์
ก.  แถบชื่อ                            ข.  แถบสื่อสาร   
ค.  แถบสถานะ                       ง.  พื้นที่แสดงเว็บเพจ
จ. แถบที่อยู่ของเว็บไซต์

7. s15550036@student.rit.ac.th  ข้อความ “s1555036” หมายถึงข้อใด
ก.  Domain Name                  ข.  Password   
ค.  Sub Domain                    ง.  Username   
จ.  ISP

 8.  ไฟล์ที่ถูกบีบอัดด้วยโปรแกรม WinZip จะมีส่วนขยายหรือนามสกุลไฟล์ตามข้อใด
ก.  .doc                               ข.  .zip 
ค.  .com                              ง.  .txt 
จ.  .exe
9. ใน SQL ต่อจากคำสั่ง SELECT ต้องเป็นชื่อของอะไร
        ก. ชื่อ File                            ข. ชื่อ Table
        ค. ชื่อ Table หรือชื่อ Query        ง. ชื่อ File หรือชื่อ Query
        จ. ถูกทุกข้อ

10. ใน SQL ต่อจากคำสั่ง FROM ต้องเป็น
        ก. ชื่อ File                            ข. ชื่อ Table
        ค. ชื่อ Table หรือชื่อ Query        ง. ชื่อ File หรือชื่อ Query
        จ. ถูกทุกข้อ


ที่มา : http://tongrod-tongrod.blogspot.com/2012/02/o-net.html