วันพุธที่ 17 ธันวาคม พ.ศ. 2557

คำสั่ง SQL
คำสั่ง SQL เบื้องต้น by natsu
          ก่อนอื่นต้องบอกเลยครับว่ามันไม่ได้ดีมากนักสำหรับหน้าเวปนี้เพราะผมอ่านหนังสือและสรุปอย่างคร่าวๆ แล้วรูปแบบมันอาจจะเพี้ยนๆ เพราะผมเขียนใน 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 > quitmysql > 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() ตัดคำจากทางซ้าย
* ทั้งหมด

ที่มา : http://natsusencho.blogspot.com/2012/08/sql-language.html
แนวข้อสอบ o-net คอมพิวเตอร์

1.ข้อใดเป็นการเรียงลำดับวิวัฒนาการของวงจรคอมพิวเตอร์จากอดีตจนถึงปัจจุบัน   ก. หลอดสุญญกาศ วงจรไอซี ทรานซิสเตอร์ วงจรรวมความจุสูง 
   ข.  ทรานซิสเตอร์ หลอดสุญญากาศ วงจรไอซี วงจรรวมความจุสูง
   ค.  หลอดสุญญากาศ ทรานซิสเตอร์ วงจรไอซี วงจรรวมความจุสูง
   ง.  ทรานซิสเตอร์ วงจรไอซี หลอดสูญญากาศ วงจรรวมความจุสูง


2.ทำไมอุปกรณ์คอมพิวเตอร์จึงใช้ระบบเลขฐานสอง
   ก. เนื่องจากอุปกรณ์คอมพิวเตอร์ใช้ภาษาเครื่อง    
   ข. เนื่องจากอุปกรณ์คอมพิวเตอร์ไม่เข้าใจภาษามนุษย์    
   ค.เนื่องจากอุปกรณ์คอมพิวเตอร์เป็นอุปกรณ์อิเล็กทรอนิกส์ที่ทำงานแบบแอนะล็อก    
   ง.เนื่องจากอุปกรณ์คอมพิวเตอร์เป็นอุปกรณ์อิเล็กทรอนิกส์ที่ทำงานแบบดิจิทัลโดยใช้แรงดันไฟฟ้าแสดงสถานะเพียงสองสถานะ


3.กระบวนงานในข้อใดเกิดขึ้นเป็นสิ่งแรกเมื่อเปิดเครื่องคอมพิวเตอร์
    ก. เช็คสถานะของอาร์ดแวร์
    ข. โหลดระบบปฏิบัติการเข้าสู่หน่วยความจำหลัก
    ค. หน่วยประมวลผลกลางประมวลชุดคำสั่งในหน่วยความจำหลักแบบแก้ไขได้ ( RAM )
    ง. หน่วยประมวลผลกลางประมวลชุดคำสั่งในหน่วยความจำหลักแบบอ่านได้อย่างเดียว( ROM )


4.สื่อกลางที่ใช้มากในการสื่อสารข้อมูลในระบบเครือข่ายแลนคือข้อใด
    ก. สายคู่บิดเกลี่ยว
    ข. สายโคแอกเชียล
    ค. สายเส้นใยนำแสง
    ง.  สายโทรศัพท์


5.ความละเอียดของจอภาพสามารถบอกได้ด้วยปัจจัยในข้อใด
    ก. CRT
    ข. Dot Pitch
    ค. Refresh Rate
    ง. Color Quality


6. การวัดขนาดข้อมูล 8 Bit มีค่าเท่ากับ
    ก. 10 Byte
    ข. 100 Byte
    ค. 1 Byte
    ง. 1024 Byte


 7.ข้อมูลสารสนเทศ คืออะไร
    ก. ข้อมูลที่ได้รับการกรอง และเรียบเรียง ที่สามารถนำไปใช้งานได้
    ข. ความเป็นจริงที่ยังเป็นข้อมูลดิบซึ่งไม่ได้ผ่านการประมวลผลใด ๆ
    ค. ข้อมูลที่ประมวลผลแล้ว
    ง. ผลลัพท์ของการทำงาน


8.   ในปัจจุบันนิยมใช้ระบบปฏิบัติการอะไรมากที่สุด
    ก. Microsoft Windows98
    ข. Microsoft Windows ME
    ค. Microsoft Windows XP
    ง. Microsoft Office 


9.  โปรโตคอล คืออะไร
     ก. ระบบที่แปลงภาษาเครื่องคอมพิวเตอร์
     ข. ระเบียบวิธีที่กำหนดสำหรับการสื่อสารข้อมูลระหว่างเครื่องคอมพิวเตอร์
     ค. ระบบที่จำลองการทำงานของเครื่องคอมพิวเตอร์
     ง. ระบบรับส่งข้อมูล


10. โปรแกรม Microsoft Office XPใช้ทำงานเกี่ยวกับด้านใด
     ก. ด้านเอกสาร
     ข. พิมพ์จดหมาย
     ค. การบันทึกไฟล์
     ง. การแนบไฟล์


ที่มา : http://www.testthai1.com/read.php?tid=4668

ฟิลด์

            ฟิลด์ คือ กลุ่มของอักขระทีสัมพันธ์กัน ตั้งแต่ 1 ตัวขึ้นไปที่นำมารวมกันแล้วแสดงลักษณะหรือความหมายอย่างใดอย่างหนึ่ง ฟิลด์แต่ละฟิลด์ยังแยกออกเป็นประเภทข้อมูล ซึ่งจะบ่งบอกว่าในเขตฟิลด์นั้นบรรจุข้อมูลประเภทใดไว้ สามารถแยกประเภทของฟิลด์ได้เป็น 3 ประเภทคือ

          
          - ฟิลด์ตัวเลข (numeric field) ประกอบด้วย อักขระที่เป็นตัวเลข ซึ่งอาจเป็นเลขจำนวนเต็มหรือทศนิยมและอาจมีเครื่องหมายลบหรือบวก เช่น ยอดคงเหลือในบัญชีเป็นกลุ่มของตัวเลข
          
          - ฟิลด์ตัวอักษร (alphabetic field) ประกอบด้วย อักขระที่เป็นตัวอักษรหรือช่องว่าง (blank) เช่น ชื่อลูกค้าเป็นกลุ่มของตัวอักษร
         
          - ฟิลด์อักขระ (character field หรือ alphanumeric field) ประกอบด้วย อักขระซึ่งอาจจะเป็นตัวเลขหรือตัวอักษรก็ได้ เช่น ที่อยู่ของลูกค้า
       
          ข้อมูลที่ปรากฏอยู่ในฟิลด์ เป็นหน่วยย่อยของระเบียนที่บรรจุอยู่ในแฟ้มข้อมูล เช่น ฟิลด์เลขรหัสประจำตัวบุคลากร ฟิลด์เงินเดือนของลูกจ้าง หรือฟิลด์เลขหมายโทรศัพท์ของพนักงาน ตัวอย่าง เช็คของธนาคารแห่งหนึ่งประกอบด้วย ชื่อที่อยู่ธนาคาร เช็คเลขที่ จ่ายจำนวนเงินเป็นตัวเลข จำนวนเงินเป็นตัวอักษร สาขาเลขที่ เลขที่บัญชี และลายเซ็น
       
          ฟิลด์บางฟิลด์อาจจะประกอบด้วยข้อมูลหลาย ๆ ประเภทรวมกันในฟิลด์ เช่น ฟิลด์วันที่ประกอบด้วย 3 ฟิลด์ย่อย ๆ คือ วันที่ เดือน และปี หรือในฟิลด์ชื่อธนาคาร ยังประกอบด้วยหลายฟิลด์ย่อย ๆ คือ ชื่อธนาคาร ที่อยู่ เมือง ประเทศ และรหัสไปรษณีย์


ที่มา : http://www.sirikitdam.egat.com/WEB_MIS/103_116/04.html