วันพฤหัสบดีที่ 18 ธันวาคม พ.ศ. 2557

ข้อสอบ O-NET วิชาคอมพิวเตอร์ ปี49

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

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

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

4.  โปรแกรมจัดการฐานข้อมูล (DBMS) มีหน้าที่อย่างไร
       ก. ดูแลรักษาข้อมูล
       ข. ติดต่อกับตัวจัดการระบบแฟ้มข้อมูล 
       ค. ควบคุมภาวการณ์ใช้ข้อมูลพร้อมกัน
       ง. จัดการการเข้าถึงข้อมูลและไฟล์ข้อมูล

5.ข้อจำกัดของคอมพิวเตอร์คือข้อใด?
ก. เครื่องมีราคาแพงมาก
ข. ขาดแคลนบุคลากรทางคอมพิวเตอร์
ค. การทำงานขึ้นอยู่กัมนุษย์
ง. ถูกทุกข้อ

6.ผู้ที่ทำหน้าที่บริหารฐานข้อมูล จะทำหน้าที่คล้ายคลึงกับใคร
       ก. เจ้าหน้าที่เขียนโปรแกรม
       ข. ผู้ใช้    
       ค. หัวหน้าฝ่ายคอมพิวเตอร์
       ง. นักวิเคราะห์ระบบ

7.ส่วนหัวจดหมาย (E-mail) Subject มีไว้สำหรับทำอะไร
      ก. การทำสำเนาจดหมาย
      ข. การแนบไฟล์ไปกับจดหมาย
      ค. ระบุหัวเรื่องของอีเมล์ที่จะส่งไป ว่าเกี่ยวกับเรื่องอะไร
      ง. การระบุชื่อผู้ส่งจดหมาย

8. FTP ย่อมาจากอะไร
      ก. Files Technology Porcess
      ข. Files Transfer Protocal
      ค. Files Transfer Process
      ง. Files Telecom Protocal

9. CGI (Common Gateway Interface) Program คืออะไร
       ก. โปรแกรมในการติดต่อสื่อสารหน้าต่อหน้า
       ข. โปรแกรมที่ทำงานเป็นตัวกลางระหว่างเซิร์ฟเวอร์กับไคลเอนด์
       ค. โปรแกรมที่มีการติดต่อระหว่างกัน
       ง. ไม่มีข้อถูก
10. เครื่องควบคุมสัญญานที่ใช้ในคอมพิวเตอร์ไฮบริด เรียกว่าอะไร
      ก. เรียกว่า Hybrid Input
      ข. เรียกว่า Hybrid Protocal
      ค. เรียกว่า Hyper text
      ง. เรียกว่า Hybrid Interface


เฉลย
1.เฉลยข้อ  3
2.เฉลยข้อ  1
3.เฉลยข้อ  1
4.เฉลยข้อ  2
5.เฉลยข้อ  3
6.เฉลยข้อ  4
7.เฉลยข้อ  3
8.เฉลยข้อ  2
9.เฉลยข้อ  2
10. เฉลยข้อ  4

คำสั่ง SQL

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>;

การสืบค้นข้อมูล หรือการดูข้อมูล
SELECT <สิ่งที่ต้องการ>
FROM   <ชื่อtable>
WHERE <เงื่อนไขอื่นๆ>
ซึ่งการกำหนดเงื่อนไขนั้นเราสามารถใช้ตัวแปรทางคณิตศาสตร์ตรรกะ มาช่วยได้เช่น
AND และ
 OR หรือ
< น้อยกว่า
 > มากกว่า
<= น้อยกว่าหรือเท่ากับ
>= มากกว่าหรือเท่ากับ
<> ไม่เท่ากับ
UNION การนำ 2 ตารางมาเชื่อมต่อกันตัดตัวซ้ำ
 UNION ALL การนำ 2 ตารางมาเชื่อมกันโดยไม่ตัดตัวซ้ำ
INTERSECT ข้อมูลที่ซ้ำกัน
การคำนวณเกี่ยวกับวันที่
ตัวแปร 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 นั้นๆ โดย
เริ่มนับจากทางซ้าย


สรุปแบบคร่าวๆ ให้พอดูรวมคำศัพท์คำสั่งที่เจอเพจนี้
CREATE สร้างdatabase, table
INSERT ใส่ข้อมูล
UPDATE อัพเดตข้อมูล
SELECT ต้องการจะดูอะไรบ้าง
FROM จากที่ไหน
WHERE เงื่อนไขอย่างไร
YEAR() ปี
MONTH() เดือน
DAY() วัน
RIGHT() ตัดคำจากทางขวา
LEFT() ตัดคำจากทางซ้าย

วันพฤหัสบดีที่ 27 พฤศจิกายน พ.ศ. 2557

ฟิลด์ PHP



INSERT INTO employee (name, position, department, salary) VALUES ('Meeboon Boonlonluer', 'Staff', 'Accounting', '8500')

คือ SQL Statement ที่เราได้มาครับ ซึ่งก็คือ SQL Statement ในการแทรกระเบียนเข้าสู่ตารางฐานข้อมูล

รูปแบบของคำสั่งมีดังนี้

INSERT INTO ชื่อตาราง (ฟิลด์ที่1, ฟิลด์ที่2,... , ฟิลด์ที่n) VALUES ('ค่าที่1', 'ค่าที่2',... , 'ค่าที่n')

ตอนที่เราเปิดเข้ามาดูระเบียนที่เพิ่งจะถูกแทรกเข้าไป ก็ได้ SQL Statement มาอีกอัน นั่นก็คือ เอาไว้สำหรับเรียกดูข้อมูล (query หรือ สืบค้น นั่นเอง) ภายในตาราง

SELECT * FROM employee LIMIT 0, 30

ซึ่งมีความหมายดังนี้
ดึงข้อมูลของทุกฟิลด์มาแสดง โดยดึงจากตารางชื่อ employee โดยจำกัดแค่ 30 ระเบียนแรก ที่สืบค้นมาได้ และเริ่มจากระเบียนที่ 0
รูปแบบของคำสั่ง SELECT นั้น ในภาษา SQL มีความซับซ้อนมากๆ

ดังนั้นเรามาดูรูปแบบการใช้งานคำสั่ง SELECT แบบง่ายๆ ก่อน ซึ่งก็มีดังนี้

SELECT * FROM ชื่อตาราง [WHERE เงื่อนไขต่างๆ] [ORDER BY ฟิลด์ [DESC/ASC]] [LIMIT ระเบียนแรกที่ต้องการให้แสดง, จำนวนระเบียนที่ต้องการให้แสดง]

แค่นี้ก็ปวดหัวแล้วใช่ไหมครับ... รูปแบบเต็มๆ นี่ยิ่งกว่านี้อีกนะครับ เหอๆ เพียงแต่ตอนนี้ผมเอามาเล่าสู่กันอ่านแค่นี้ก่อน

ความหมายของรูปแบบข้างต้นก็มีดังนี้ครับ (ขออธิบายเป็นส่วนๆ)

    SELECT * : มีความหมายว่า เลือกที่จะแสดงข้อมูลทุกฟิลด์ (ตัว * มีความหมายแทนทุกฟิลด์นั่นเอง) แต่หากเราไม่ต้องการสิ้นเปลืองทรัพยากรในการเก็บข้อมูลที่เราไม่ได้อยากเลือกออกมา เราก็แค่กำหนดชื่อฟิลด์ลงไปแทนครับ เช่น SELECT field1, field2 เป็นต้น เท่านี้ก็จะเป็นการสืบค้นเฉพาะข้อมูลที่อยู่ในฟิลด์ชื่อ field1 และ field2 ออกมา
    FROM ชื่อตาราง : ก็คือ เราจะสืบค้นข้อมูลจากตารางอะไรบ้าง... เราสามารถเลือกสืบค้นจากข้อมูลได้มากกว่า 1 ตารางนะครับ แต่จะไม่กล่าวถึงในตอนนี้ เพราะเดี๋ยวมันจะมั่วไป
    WHERE เงื่อนไขต่างๆ : อันนี้จะเป็นการกำหนดเงื่อนไขในการสืบค้นครับ เช่น หากผมใส่ว่า WHERE salary < 2000 ก็แสดงว่า ผมต้องการค้นหาระเบียนที่มีเงื่อนไขว่า ข้อมูลในฟิลด์ชื่อ salary มีค่าน้อยกว่า 2000 นั่นเอง เป็นต้น (ไว้ดูตัวอย่างต่อไป ตอนที่เราเพิ่มข้อมูลลงในฐานข้อมูลไปแล้วเยอะๆ)... หากไม่กำหนดเงื่อนไข แสดงว่าเราจะแสดงข้อมูลทั้งหมด
    ORDER BY ฟิลด์ [DESC/ASC] : อันนี้มีไว้ เพื่อจัดเรียงข้อมูลครับ โดยสามารถเลือกได้ว่าจะเรียงข้อมูลโดยดูจากฟิลด์ไหน เช่น ถ้าบอกว่า ORDER BY salary DESC ก็หมายความว่าเรียงข้อมูล โดยเรียงจากผู้ที่มีข้อมูลในฟิลด์ salary จากค่ามาก ไปหาค่าน้อย แต่ถ้าบอกว่า ORDER BY salary ASC ก็จะหมายความว่า เรียงจากผู้ที่มีข้อมูลในฟิลด์ salary จากค่าน้อย ไปหาค่ามาก (แต่จริงๆ หากไม่บอกว่าเป็น DESC หรือ ASC แล้ว มันก็จะติ๊ต่างว่าเราเลือกเป็น ASC ครับ)... เราสามารถเลือกที่จะเรียงข้อมูลโดยดูจากหลายๆ ฟิลด์รวมๆ กันได้ เช่น ORDER BY id, salary ซึ่งก็จะมีความหมายว่า เรียงตาม id ก่อน แล้วค่อยมาเรียงตาม salary อีกทีนั่นเอง (จะเห็นภาพชัดเจนกว่านี้ตอนได้ลองกับตัวอย่างจริงๆ) หากไม่กำหนด มันก็จะอิงฟิลด์แรกเป็นหลัก หรือไม่ก็ ฟิลด์ใดๆ ที่ถูกกำหนดเป็น primary key (คีย์หลัก) ครับ
    LIMIT ระเบียนแรกที่ต้องการให้แสดง, จำนวนระเบียนที่ต้องการให้แสดง : อันนี้คงไม่ต้องอธิบายอะไรมาก เพราะมันคือการกำหนดจำนวนระเบียนที่ต้องการแสดงออกมาหลังสืบค้น หากเราใส่เป็น LIMIT 0, 2 ก็หมายความต้องการให้แสดงแค่ 2 ระเบียน โดยเริ่มจากระเบียนที่ 0 ซึ่งเราก็จะได้ระเบียนที่ 0 และ 1 ออกมา... หากเราบอกเป็น LIMIT 4, 3 เราก็จะได้ระเบียนที่ 4, 5 และ 6 ออกมาครับ (เริ่มจากระเบียนที่ 4 แสดงออกมา 3 ระเบียนนั่นเอง)

    สังเกตนิดนึงตรงคำว่า ระเบียนที่  มันไม่ได้หมายความว่าจะแสดงโดยดูจาก id หรือฟิลด์ใดๆ เป็นหลัก แต่จะดูว่าเวลาที่ทำการ query ตามเงื่อนไขมาแล้ว ระเบียนใดมาเป็นระเบียบแรกสุด ก็จะถือว่าเป็นระเบียนที่ 0 ไป
ที่มา: http://flash.thaimisc.com/r/view.php?id=487