15 ธันวาคม 2557



คำสั่ง SQL


1.ใช้คืนค่า วันที่ในสัปดาห์ โดยค่าที่เป็นไปได้ได้แก่ 1 ถึง 7 คือเรียงจาก 1=อาทิตย์ จนถึง 7=เสาร์

ใช้คำสั่ง WEEKDAY(date)




2.ใช้หาค่าเศษที่เหลือจากการหาร ของ expression1 หารด้วย expression2

ใช้คำสั่ง MOD(expression1,expression2)



3.ใช้ปัดเศษของ expression ให้มีค่าน้อยลง

ใช้คำสั่ง FLOOR(expression)



4.ใช้ปัดเศษของ expression ให้มีค่ามากขึ้น

ใช้คำสั่ง CEILING(expression)



5.ใช้หาค่ารากที่สองของ num

ใช้คำสั่ง SQRT(num)




6.ใช้หาค่าเฉลี่ยของค่าข้อมูลในทุกแถว
ใช้คำสั่ง AVG ( column_name )



7.ใช้หาผลรวมของค่าข้อมูลในทุกแถว
ใช้คำสั่ง SUM(column_name)


8.ใช้หาค่าความแปรปรวน ของค่าข้อมูลในทุกแถว
ใช้คำสั่ง VAR(column_name)



9.ใช้หาค่าสูงสุด เมื่อเทียบกับค่าข้อมูลในทุกแถว ถ้าใช้กับข้อมูลที่เป็นตัวอักษร จะแสดงผลแถวแรกสุด
ใช้คำสั่ง MAX(column_name)


10.ใช้หาค่าต่ำสุด เมื่อเทียบกับค่าข้อมูลในทุกแถว ถ้าใช้กับข้อมูลที่เป็นตัวอักษร จะแสดงผลแถวท้ายสุด
ใช้คำสั่ง MIN(column_name)


Credit : http://code.function.in.th/mysql









1 ธันวาคม 2557

ข้อสอบ O-Net : หลักการทำงานและการเลือกใช้คอมพิวเตอร์



1.อุปกรณ์ในข้อใดจัดเป็นอุปกรณ์หน่วยรับข้อมูล


          ก.แป้นพิมพ์, ซีพียู


          ข.แผ่นซีดี, จอภาพ


          ค.สแกนเนอร์, ไมโครโฟน


          ง.เมาส์, แฟลชไดรฟ์


เฉลย ค.สแกนเนอร์ และ ไมโครโฟน                    





2.ในการเลือกซื้อแป้นพิมพ์เพื่อการใช้งาน ควรพิจารณาจากสิ่งใด เป็นสำคัญ



        ก.ราคาถูก



        ข.มีความสวยงาม



        ค.มีขนาดเล็กกะทัดรัด



        ง.มีคุณสมบัติเหมาะสมกับการใช้งา




เฉลย ง.มีคุณสมบัติเหมาะกับการใช้งาน              










   3. อุปกรณ์รับข้อมูลใดที่สามารถจัดเก็บข้อมูลเป็นไฟล์ภาพ           


          ก. แป้นพิมพ์


          ข.สแกนเนอร์


          ค.ปากกาสไตลัส


          ง.จอภาพแบบไวต่อการสัมผัส 


    เฉลย ข.สแกนเนอร์                                         







4. อุปกรณ์ข้อใดจัดเก็บข้อมูลได้ในระหว่างการทำงานของซีพียูหรือในขณะที่มีกระแสไฟเลี้ยง



       ก.รอม


       ข.แรม


       ค.ฮาร์ดดิสก์


       ง.เทปแม่เหล็ก


   เฉลย ข.แรม                                                    






5.ปัจจุบันเครื่องรับโทรทัศน์ที่ใช้เทคโนโลยีใหม่โดยมีขนาดบางและความคมชัดสูง ซึ่งเลือกใช้จอแสดงภาพชนิดใด

       
ก.CRT


       ข.LCD


       ค.LED


       ง.PLASMA

       

 เฉลย ค.LED                                                      






6.ข้อใดเป็นการเลือกซื้อเครื่องพิมพ์ที่ถูกวิธี


         ก.เลือกซื้อเครื่องพิมพ์ที่มีราคาถูก


         ข.เลือกซื้อเครื่องพิมพ์ที่มีรูปทรงทันสมัย


         ค.เลือกซื้อเครื่องพิมพ์ตามคำบอกเล่าของเพื่อน


         ง.เลือกซื้อเครื่องพิมพ์ตามลักษณะการใช้งานและมีการรับประกันคุณภาพ



เฉลย ง.เลือกซื้อเครื่องพิมพ์ตามลักษณะการใช้งานและมีการรับประกันคุณภาพ





7.ข้อใดเป็นการใช้งานโปรแกรม Google Earth ได้ถูกต้องตามวัตถุประสงค์


         ก. ใช้ค้นหาภาพถ่าย


         ข.ใช้สำรวจถนนเพื่อการเดินทาง


         ค.ใช้สร้างภาพกราฟิกสามมิติ


         ง.ใช้เพื่อช่วยการเรียนการสอนวิชาดาราศาสตร์

เฉลย ข.ใช้สำรวจถนนเพื่อการเดินทาง                         





8.ข้อใด ไม่มี ระบบการทำงานพื้นฐานแบบคอมพิวเตอร์

        ก.เครื่องคิดเลข        


        ข.นาฬิการะบบดิจิทัล     

   

        ค.เครื่องฝาก-ถอนเงินอัติโนมัติ        


        ง.เครื่องคำนวณร้านสะดวกซื้อ 


เฉลย ข.นาฬิการะบบดิจิทัล                                         




9.ใช้คอมพิวเตอร์อย่างไรจึงจะช่วยลดภาวะโลกร้อน


         ก.ปิดเครื่องเมื่อไม่ใช้งาน และพิมพ์งานเมื่อจำเป็น

         ข.เลือกใช้จอแอลซีดีและปรับปรุงซอฟต์แวร์ให้ทันสมัย

         ค.ใช้คอมพิวเตอร์วันละ 1 ชม. และรักษาความสะอาดอยู่เสมอ

         ง.ไม่เชื่อมต่อระบบเครือข่ายและใช้เครื่องพิมพ์ Inkjet เท่านั้น

เฉลย ก.ปิดเครื่องเมื่อไม่ใช้งาน และพิมพ์งานเมื่อจำเป็น                 




10.ข้อใดเป็นการใช้แป้นพิมพ์ที่ไม่ถูกต้อง


        ก.วางแป้นพิมพ์ในที่มีอากาศถ่ายเทสะดวก

        ข.ระมัดระวังมิให้แป้นพิมพ์ได้รับการกระแทก

        ค.ใช้แปรงขนอ่อนนุ่มปัดฝุ่นทำความสะอาดเสมอ

        ง.เมื่อเกิดคราบบนแป้นพิมพ์ ใช้ผ้าชุบน้ำเช็ดออกทันที


เฉลย   ง.เมื่อเกิดคราบบนแป้นพิมพ์ ใช้ผ้าชุบน้ำเช็ดออกทันที   










22 พฤศจิกายน 2557

ฟังก์ชัน PHP

 ฟังก์ชันใน PHP


ฟังก์ชันในโปรแกรมส่วนใหญ่ได้รับการเรียกคำสั่งเพื่อทำงานอย่างเดียว สิ่งนี้ทำให้คำสั่งอ่านได้ง่ายและยอมให้ใช้คำสั่งใหม่แต่ละครั้งเมื่อต้องการทำงานเดียวกัน

ฟังก์ชันเป็นโมดูลเก็บคำสั่งที่กำหนดการเรียกอินเตอร์เฟซ ทำงานเดียวกัน และตัวเลือกส่งออกค่าจากการเรียกฟังก์ชัน คำสั่งต่อไปเป็นการเรียกฟังก์ชันอย่างง่าย
my_function ();

คำสั่งเรียกฟังก์ชันชื่อ my_function ที่ไม่ต้องการพารามิเตอร์ และไม่สนใจค่าที่อาจจะส่งออกโดยฟังก์ชันนี้

ฟังก์ชันจำนวนมากได้รับการเรียกด้วยวิธีนี้ เช่น ฟังก์ชัน phpinfo () สำหรับแสดงเวอร์ชันติดตั้งของ PHP สารสนเทศเกี่ยวกับ PHP การตั้งค่าแม่ข่ายเว็บ ค่าต่างๆ ของ PHP และตัวแปร ฟังก์ชันนี้ไม่ใช้พารามิเตอร์และโดยทั่วไปไม่สนใจค่าส่งออก ดังนั้นการเรียก phpinfo () จะประกอบขึ้นดังนี้

phpinfo ();


การกำหนดฟังก์ชันและการเรียกฟังก์ชัน

การประกาศฟังก์ชันเริ่มต้นด้วยคีย์เวิร์ด function กำหนดชื่อฟังก์ชัน พารามิเตอร์ที่ต้องการ และเก็บคำสั่งที่จะประมวลผลแต่ละครั้งเมื่อเรียกฟังก์ชันนี้

<?php
function function_name(parameter1,…)
{
ชุดคำสั่ง …
}
?>
ชุดคำสั่งต้องเริ่มต้นและสิ้นสุดในวงเล็บปีกกา ({ }) ตัวอย่างฟังก์ชัน my_function
<?php
function my_function()
{
$mystring =<<<BODYSTRING
my function ได้รับการเรียก
BODYSTRING;
echo $mystring;
}
?>

การประกาศฟังก์ชันนี้ เริ่มต้นด้วย function ดังนั้นผู้อ่านและตัวกระจาย PHP ทราบว่าต่อไปเป็นฟังก์ชันกำหนดเอง ชื่อฟังก์ชันคือ my_function การเรียกฟังก์ชันนี้ใช้ประโยคคำสั่งนี้
my_function ();

การเรียกฟังก์ชันนี้จะให้ผลลัพธ์เป็นข้อความ "my function ได้รับการเรียก " บน browser

การตั้งชื่อฟังก์ชัน

สิ่งสำคัญมากในการพิจารณาเมื่อตั้งชื่อฟังก์ชันคือชื่อต้องสั้นแต่มีความหมาย ถ้าฟังก์ชันสร้างส่วนตัวของเพจควรตั้งชื่อเป็น pageheader () หรือ page_header ()

**ข้อจำกัดในการตั้งชื่อคือ
  • ฟังก์ชันไม่สามารถมีชื่อเดียวกับฟังก์ชันที่มีอยู่
  • ชื่อฟังก์ชันสามารถมีได้เพียงตัวอักษรตัวเลข และ underscore
  • ชื่อฟังก์ชันไม่สามารถเริ่มต้นด้วยตัวเลข
หลายภาษายอมให้ใช้ชื่อฟังก์ชันได้อีก ส่วนการทำงานนี้เรียกว่า function overload อย่างไรก็ตาม PHP ไม่สนับสนุน function overload ดังนั้นฟังก์ชันไม่สามารถมีชื่อเดียวกันกับฟังก์ชันภายใน หรือฟังก์ชันกำหนดเองที่มีอยู่
หมายเหตุ ถึงแม้ว่าทุกสคริปต์ PHP รู้จักฟังก์ชันภายในทั้งหมด ฟังก์ชันกำหนดเองอยู่เฉพาะในสคริปต์ที่ประกาศสิ่งนี้หมายความว่า ชื่อฟังก์ชันสามารถใช้ในคนละไฟล์แต่อาจจะไปสู่ความสับสน และควรหลีกเลียง

ชื่อฟังก์ชันต่อไปนี้ถูกต้อง
name ()
name2 ()
name_three ()
_namefour ()

ชื่อไม่ถูกต้อง
5name ()
Name-six ()
fopen ()

การเรียกฟังก์ชันไม่มีผลจากชนิดตัวพิมพ์ ดังนั้นการเรียก function_name (), Function_Name() หรือ FUNCTION_NAME() สามารถทำได้และมีผลลัพธ์เหมือนกัน แต่แบบแผนการกำหนดชื่อฟังก์ชันใน PHP ให้ใช้ตัวพิมพ์เล็ก

ชื่อฟังก์ชันแตกต่างจากชื่อตัวแปร โดยชื่อตัวแปรเป็นชนิดตัวพิมพ์มีผล ดังนั้น $Name และ $name เป็น 2 ตัวแปร แต่ Name () และ name () เป็นฟังก์ชันเดียวกัน


การหยุดประมวลผลภายในฟังก์ชัน

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

<?php
function division($x, $y)
{
if ($y == 0 || !isset($y))
{
echo " ตัวหาร y ต้องไม่เป็นศูนย์หรือไม่มีค่า" ;
return;
}
$result = $x / $y;
echo $result;
}
?>

ถ้าประโยคคำสั่ง return ได้รับการประมวลผล บรรทัดคำสั่งต่อไปในฟังก์ชันจะถูกข้ามไป และกลับไปยังผู้เรียกฟังก์ชันนี้ ในฟังก์ชันนี้ ถ้า y เป็น 0 จะหยุดการประมวลผล ถ้า y ไม่เท่ากับ 0 จะคำนวณผลหาร
สมมติป้อนค่าเป็น
x = 4, y = 0
x = 4
x = 4, y = 2
ผลลัพธ์ของคำสั่ง คือ
x = 4, y = 0 ผลลัพธ์ ตัวหาร y ต้องไม่เป็นศูนย์หรือไม่มีค่า
x = 4, y = ผลลัพธ์ ตัวหาร y ต้องไม่เป็นศูนย์หรือไม่มีค่า
x = 4, y = 2 ผลลัพธ์ 2


การเรียกฟังก์ชัน

เมื่อฟังก์ชันได้รับการประกาศหรือสร้างขึ้นแล้ว การเรียกฟังก์ชันสามารถเรียกมาจากที่ใดๆ ภายในสคริปต์ หรือ จากไฟล์ที่มีการรวมด้วยประโยคคำสั่ง include() หรือ require()

ตัวอย่าง ฟังก์ชัน show_message() เก็บอยู่ในไฟล์ fn_ 03 _keeper.php ส่วนผู้เรียกอยู่ในสคริปต์ fn_ 03 _caller.php

<?php
include("fn_ 03 _keeper.php");
show_message();
?>

9 พฤศจิกายน 2557

ชนิดของ Fields ในตาราง mySQL

 

VARCHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร ทุกครั้งที่เลือกชนิดของฟิลด์เป็นประเภทนี้ จะต้องมีการกำหนดความยาวของข้อมูลลงไปด้วย ซึ่งสามารถกำหนดค่าได้ตั้งแต่ 1 - 255 ฟิลด์ชนิดนี้ เหมาะสำหรับการเก็บข้อมูลสั้นๆ เช่น ชื่อ นามสกุล หรือหัวข้อต่างๆ เป็นต้น... ในส่วนฟิลด์ประเภทนี้ จะสามารถเลือก "แอตทริบิวต์" เป็น BINARY ได้ โดยปกติแล้วการจัดเรียงข้อมูลเวลาสืบค้น (query) สำหรับ VARCHAR จะเป็นแบบ case-sensitive (ตัวอักษรใหญ่ และเล็กมีความหมายแตกต่างกัน) แต่หากระบุ "แอตทริบิวต์" เป็น BINARY ปุ๊บ การสืบค้นจะไม่คำนึงตัวอักษรว่าจะเป็นตัวใหญ่ หรือตัวเล็ก 
CHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร แบบที่ถูกจำกัดความกว้างเอาไว้คือ 255 ตัวอักษร ไม่สามารถปรับเปลี่ยนได้เหมือนกับ VARCHAR หากทำการสืบค้นโดยเรียงตามลำดับ ก็จะเรียงข้อมูลแบบ case-sensitive เว้นแต่จะกำหนดแอตทริบิวต์เป็น BINARY ที่จะทำให้การเรียงข้อมูลเป็นแบบ non case-sensitive เช่นเดียวกับ VARCHAR
TINYTEXT : ในกรณีที่ข้อความยาวๆ หรือต้องการที่จะค้นหาข้อความ โดยอาศัยฟีเจอร์ FULL TEXT SEARCH ของ MySQL เราอาจจะเลือกที่จะไม่เก็บข้อมูลลงในฟิลด์ประเภท VARCHAR ที่มีข้อจำกัดแค่ 256 ตัวอักษร แต่เราจะเก็บลงฟิลด์ประเภท TEXT แทน โดย TINYTEXT นี้ จะสามารถเก็บข้อมูลได้ 256 ตัวอักษร ซึ่งมองเผินๆ ก็ไม่ต่างกับเก็บลงฟิลด์ประเภท CHAR หรือ VARCHAR(255) เลย แต่จริงๆ มันต่างกันตรงที่ มันทำ FULL TEXT SEARCH ได้
TEXT : สำหรับเก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่สามารถเก็บได้มากขึ้น โดยสูงสุดคือ 65,535 ตัวอักษร หรือ 64KB เหมาะสำหรับเก็บข้อมูลพวกเนื้อหาต่างๆ ที่ยาวๆ  
MEDIUMTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร
LONGTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร  
TINYINT : สำหรับเก็บข้อมูลชนิดตัวเลขที่มีขนาด 8 บิต ข้อมูลประเภทนี้เราสามารถกำหนดเพิ่มเติมในส่วนของ "แอตทริบิวต์" ได้ว่าจะเลือกเป็น UNSIGNED หรือ UNSIGNED ZEROFILL โดยจะมีความแตกต่างดังนี้ 

  • UNSIGNED : จะหมายถึงเก็บค่าตัวเลขแบบไม่มีเครื่องหมาย แบบนี้จะทำให้สามารถเก็บค่าได้ตั้งแต่ 0 - 255
  • UNSIGNED ZEROFILL : เหมือนข้างต้น แต่ว่าหากข้อมูลที่กรอกเข้ามาไม่ครบตามจำนวนหลักที่เรากำหนด ตัว MySQL จะทำการเติม 0 ให้ครบหลักเอง เช่น ถ้ากำหนดให้ใส่ได้ 3 หลัก แล้วทำการเก็บข้อมูล 25 เข้าไป เวลาที่สืบค้นดู เราจะได้ค่าออกมาเป็น 025
หากไม่เลือก "แอตทริบิวต์" สิ่งที่เราจะได้ก็คือ SIGNED นั่นก็คือต้องเสียบิตนึงไปเก็บเครื่องหมาย บวก/ลบ ทำให้สามารถเก็บข้อมูลได้อยู่ในช่วง -128 ถึง 127 เท่านั้น
SMALLINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 16 บิต จึงสามารถเก็บค่าได้ตั้งแต่ -32768 ถึง 32767 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 65535 (ในกรณี UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT
MEDIUMINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 24 บิต นั่นก็หมายความว่าสามารถเก็บข้อมูลตัวเลขได้ตั้งแต่ -8388608 ไปจนถึง 8388607 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 16777215 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT
INT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 32 บิต หรือสามารถเก็บข้อมูลได้ตั้งแต่ -2147483648 ไปจนถึง 2147483647 ครับ (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 4294967295 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT

BIGINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 64 บิต สามารถเก็บข้อมูลได้ตั้งแต่ -9223372036854775808 ไปจนถึง 9223372036854775807 เลยทีเดียว (แบบคิดเครื่องหมาย) หรือ 0 ถึง 18446744073709551615 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT
FLOAT[(M,D)] : ที่กล่าวถึงไปทั้งหมด ในตระกูล INT นั้นจะเป็นเลขจำนวนเต็ม หากเราบันทึกข้อมูลที่มีเศษทศนิยม มันจะถูกปัดทันที ดังนั้นหากต้องการจะเก็บค่าที่เป็นเลขทศนิยม ต้องเลือกชนิดขอฟิลด์เป็น FLOAT โดยจะเก็บข้อมูลแบบ 32 บิต คือมีค่าตั้งแต่ -3.402823466E+38 ไปจนถึง -1.175494351E-38, 0 และ 1.175494351E-38 ถึง 3.402823466E+38
DOUBLE[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่มีขนาดเป็น 64 บิต สามารถเก็บได้ตั้งแต่ -1.7976931348623157E+308 ถึง -2.2250738585072014E-308, 0 และ 2.2250738585072014E-308 ถึง 1.7976931348623157E+308
DECIMAL[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่ใช้กับข้อมูลที่ต้องการความละเอียดและถูกต้องของข้อมูลสูง


**ข้อสังเกต เกี่ยวกับข้อมูลประเภท FLOAT, DOUBLE และ DECIMAL ก็คือ เวลากำหนดความยาวของข้อมูลในฟิลด์ จะถูกกำหนดอยู่ในรูปแบบ (M,D) ซึ่งหมายความว่า ต้องมีการระบุว่า จะให้มีตัวเลขส่วนที่เป็นจำนวนเต็มกี่หลัก และมีเลขทศนิยมกี่หลัก เช่น ถ้าเรากำหนดว่า FLOAT(5,2) จะหมายความว่า เราจะเก็บข้อมูลเป็นตัวเลขจำนวนเต็ม 5 หลัก และทศนิยม 2 หลัก ดังนั้นหากทำการใส่ข้อมูล 12345.6789 เข้าไป สิ่งที่จะเข้าไปอยู่ในข้อมูลจริงๆ ก็คือ 12345.68 (ปัดเศษให้มีจำนวนหลักตามที่กำหนดไว้)

DATE : สำหรับเก็บข้อมูลประเภทวันที่ โดยเก็บได้จาก 1 มกราคม ค.ศ. 1000 ถึง 31 ธันวาคม ค.ศ. 9999 โดยจะแสดงผลในรูปแบบ YYYY-MM-DD
DATETIME : สำหรับเก็บข้อมูลประเภทวันที่ และเวลา โดยจะเก็บได้ตั้งแต่ 1 มกราคม ค.ศ. 1000 เวลา 00:00:00 ไปจนถึง 31 ธันวาคม ค.ศ. 9999 เวลา 23:59:59 โดยรูปแบบการแสดงผล เวลาที่ทำการสืบค้น (query) ออกมา จะเป็น YYYY-MM-DD HH:MM:SS
TIMESTAMP[(M)] : สำหรับเก็บข้อมูลประเภทวันที่ และเวลาเช่นกัน แต่จะเก็บในรูปแบบของ YYYYMMDDHHMMSS หรือ YYMMDDHHMMSS หรือ YYYYMMDD หรือ YYMMDD แล้วแต่ว่าจะระบุค่า M เป็น 14, 12, 8 หรือ 6 ตามลำดับ สามารถเก็บได้ตั้งแต่วันที่ 1 มกราคม ค.ศ. 1000 ไปจนถึงประมาณปี ค.ศ. 2037
TIME : สำหรับเก็บข้อมูลประเภทเวลา มีค่าได้ตั้งแต่ -838:59:59 ไปจนถึง 838:59:59 โดยจะแสดงผลออกมาในรูปแบบ HH:MM:SS
YEAR[(2/4)] : สำหรับเก็บข้อมูลประเภทปี ในรูปแบบ YYYY หรือ YY แล้วแต่ว่าจะเลือก 2 หรือ 4 (หากไม่ระบุ จะถือว่าเป็น 4 หลัก) โดยหากเลือกเป็น 4 หลัก จะเก็บค่าได้ตั้งแต่ ค.ศ. 1901 ถึง 2155 แต่หากเป็น 2 หลัก จะเก็บตั้งแต่ ค.ศ. 1970 ถึง 2069

**ข้อสังเกต ค่าที่เก็บในข้อมูลประเภท TIMESTAMP และ YEAR นั้นจะมีความสามารถพอๆ กับ การเก็บข้อมูลวันเดือนปี และเวลา ด้วยฟิลด์ชนิด VARCHAR แต่ต่างกันตรงที่ จะใช้เนื้อที่เก็บข้อมูลน้อยกว่า... ทว่า ฟิลด์ประเภท TIMESTAMP นั้นจะมีข้อจำกัดในเรื่องของเวลาที่สามารถเก็บได้ คือจะต้องอยู่ในระหว่าง 1 มกราคม ค.ศ. 1000 ไปจนถึงแถวๆ ค.ศ. 2037 อย่างที่บอก แต่หากเก็บเป็น VARCHAR นั้นจะไม่ติดข้อจำกัดนี้

  • ฟิลด์ชนิด YEAR ก็เช่นกันครับ... ใช้เนื้อที่แค่ 1 ไบต์เท่านั้นในการเก็บข้อมูล แต่ข้อจำกัดจะอยู่ที่ ปี ค.ศ. 1901 ถึง 2155 เท่านั้น (หรือ ค.ศ. 1970 ถึง 2069 ในกรณี 2 หลัก) แต่หากเก็บเป็น VARCHAR จะได้ตั้งแต่ 0000 ถึง 9999 เลย อันนี้เลยอยู่ที่ความจำเป็นมากกว่าครับ (แต่ด้วยความที่ว่า ปัจจุบันฮาร์ดดิสก์ราคาถูกมากๆ ผมเลยไม่ติดใจอะไรที่จะใช้ VARCHAR แทน เพื่อความสบายใจ อิอิ เพราะสมมติว่ากินเนื้อที่ต่างกัน 3 ไบต์ ต่อ 1 ระเบียน มีข้อมูล 4 ล้านระเบียน ก็เพิ่งต่างกัน 12 ล้านไบต์ หรือ 12 เมกะไบต์เท่านั้นเอง ซึ่งหากเทียบกับปริมาณข้อมูลทั้งหมดของข้อมูล 4 ล้านระเบียน ผมว่ามันต้องมีอย่างน้อยเป็นกิกะไบต์ ดังนั้นความแตกต่างที่ไม่กี่เมกะไบต์จึงไม่มากมายอะไรครับ)
TINYBLOB : สำหรับเก็บข้อมูลประเภทไบนารี ได้แก่ ไฟล์ข้อมูลต่างๆ, ไฟล์รูปภาพ, ไฟล์มัลติมีเดีย เป็นต้น คือไฟล์อะไรก็ตามที่อัพโหลดผ่านฟอร์มอัพโหลดไฟล์ในภาษา HTML โดย TINYBLOB นั้นจะมีเนื้อที่ให้เก็บข้อมูลได้ 256 ไบต์
BLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่สามารถเก็บข้อมูลได้ 64KB
MEDIUMBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 16MB

LONGBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 4GB


**ข้อสังเกต ข้อมูลประเภท BLOB นั้น แม้จะมีประโยชน์ในเรื่องของการเก็บข้อมูลประเภท BINARY ให้อยู่กับตัวฐานข้อมูล ทำให้สะดวกเวลาสืบค้นก็ตาม แต่มันก็ทำให้ฐานข้อมูลมีขนาดใหญ่เกินความจำเป็นด้วย ทำให้เกิดความไม่สะดวกในการสำรองฐานข้อมูลในกรณีที่ มีข้อมูลอัพโหลดไปเก็บมากๆ โดยปกติแล้ว จะใช้วิธีการอัพโหลดไปเก็บไว้ในโฟลเดอร์ แล้วเก็บลิงก์ไปยังไฟล์เหล่านั้น เป็นฟิลด์ชนิด VARCHAR มากกว่า
SET : สำหรับเก็บข้อมูลที่เป็นกลุ่มของข้อมูลที่ยอมให้เลือกได้ 1 ค่าหรือหลายๆ ค่า ซึ่งสามารถกำหนดได้ถึง 64 ค่า


ที่มา : http://tappanom.blogspot.com/2010/08/field.html

31 ตุลาคม 2557

☺ระบบฐานข้อมูล (Database)☺

       Php กับ MySQL Database เป็นของคู่กัน โดย Php บางอันไม่จำเป็นต้องใช้พร้อมกับ MySQL

 Database แต่ทว่า MySQL Database จะต้องใช้งานคู่กับ Php (หรือภาษาอื่น) ด้วยเสมอๆ




Database คืออะไร?

       ดาต้าเบสเซิร์ฟเวอร์ เป็นโปรแกรมอีกจำพวกหนึ่งทางด้านฐานข้อมูล ซึ่ง PHP มีฟังก์ชันต่างๆ 

ให้เรียกใช้งานได้อยู่แล้ว โดยฟังก์ชันของ PHP จะสั่งให้ดาต้าเบสเซิร์ฟเวอร์ทำงาน แล้วส่ง

เฉพาะผลลัพธ์ออกมา ประสิทธิภาพการทำงานจะขึ้นอยู่กับความสามารถขอโปรแกรมดาต้าเบส 

เซิร์ฟโดยตรง PHP มีฟังก์ชันที่จะติดต่อกับโปรแกรมดาต้าเบสเซิร์ฟเวอร์ได้หลายหลากตระกูล 

ซึ่งดาต้าเบสเซิร์ฟเวอร์แต่ละโปรแกรมก็จะใช้ฟังก์ชันในการติดต่อทำงานที่แตกต่างกันออกไป

โดยที่ MySQL เป็นโปรแกรมด้านดาต้าเบสเซิร์ฟเวอร์ที่ทำงานภายใต้ระบบปฏิบัติการหลายระบบ 

มีทั้ง Linux หรือ Unix และ Windows NT

Database



Php คืออะไร?

       PHP (Professional Home Page) เป็นภาษาสคริปต์(Script language)  อีกประเภทหนึ่งที่กำลัง

ได้รับความนิยมจากผู้พัฒนา Website โดยเฉพาะและ PHP ยังเป็นภาษาที่เรียกว่า Server –side 

include (SSL) หรือ HTML-embedded scripting language ซึ่งเป็นเครื่องมือ ที่สำคัญทำให้สามารถ

ใส่สคริปต์ของ PHP ไว้ในเอกสาร (file) HTML ได้เลย  เมื่อเอกสารของ HTML นั้นถูกเรียกขึ้นมา 

web server ก็จะตรวจสอบก่อนที่จะส่ง เอกสารนั้นออกไปว่า ภายในเอกสารมีสคริปต์ของ PHP หรือไม่ 

ถ้ามี Web server ก็จะทำงานในส่วนของสคริปต์ PHP ให้เสร็จก่อน แล้วเอาผลลัพธ์ที่ได้รวมกับเนื้อหา 

HTML แล้ว ส่งออกไปแสดงผล

        
       Professional Home Page กลายเป็นกระแสหลักอีกกระแสหนึ่ง ที่ก้าวขึ้นมาทาบรัศมี ASP และ 

CGI/Perl ในหมู่พัฒนาโฮมเพจระดับเซียน   แม้ว่าการเขียนสคริปต์ PHP จะเป็นวิธีการสร้างโฮมเพจอีก

วิธีหนึ่งที่แตกต่างไปจากการเขียนสคริปต์ ASP และสคริปต์ CGI/Perl นั่นคือ สามารถนำไปประยุกต์ใช้

ร้างโฮมเพจแบบไดนามิกและอินเตอร์แอคทีฟในลักษณะต่างๆ รวมทั้งการประยุกต์ใช้งานร่วมกับ

โปรแกรมจัดการฐานข้อมูลหรือโปรแกรมจำพวกดาต้าเบสเซิร์ฟเวอร์อันเป็นเป้าหมายสำคัญของการ

สร้างโฮมเพจให้เกิดประโยชน์อย่างเต็มประสิทธิภาพ ว่ากันว่า สคริปต์ PHP เขียนได้ง่ายกว่า ASP หรือ

CGI/Perl เสียด้วยซ้ำ

ตัวอย่าง Php



Php ใช้ทำอะไรได้บ้าง ?

       PHP เป็นภาษาสคริปต์ ที่มีความสามารถสูงสำหรับการพัฒนา Web site และความสามารถที่โดดเด่น

อีกประการหนึ่งของ PHP นั้น คือ database-enabled web page ทำให้เอกสารของ HTML สามารถที่

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

เรื่องการจัดรายการสินค้าและรับรายการสั่งของตลอดจนการจัดเก็บ ข้อมูลต่างๆ ที่สำคัญผ่านทาง Internet 

เป็นไปได้อย่างง่ายดาย