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

ฟังก์ชัน echo

ภาษา PHP มีฟังก์ชันมาตรฐานในการแสดงค่า หรือข้อความหลัก ๆ อยู่ 2 ตัวคือ echo() และ print() ความเหมือนกันก็คือเป็นคำสั่งที่ใช้แสดงผลลัพธ์จากโปรแกรมออกมา  ส่วนข้อแตกต่างนั้นมีนิดเดียวตรงที่ ฟังก์ชัน print() จะใช้ในการสร้างข้อความให้กับ Text File ได้ด้วย เพราะฉะนั้นหากต้องการสร้าง Text File ด้วย Code ภาษา PHP ท่านต้องใช้ print()  ส่วนการแสดงผลออกทางหน้าเว็บจะใช้ echo() หรือ print() ก็ได้ ไม่แตกต่างอะไร

คำสั่ง echo()
       หน้าที่

       เป็นคำสั่งที่ใช้ในการแสดงผลออกทางหน้าเว็บ

       รูปแบบคำสั่ง

       แบบที่ 1
               echo"ข้อความที่ต้องการแสดง";
       แบบที่ 2
               echo("ข้อความที่ต้องการแสดง");
       ตัวอย่าง
              
               <?php
               echo"Hello<br>";
               echo("sunday");
               ?>

       ผลลัพธ์    
Hello
sunday

       จะเห็นว่าเราสามารถใช้ได้หลายรูปแบบ ก็เลือกใช้เอง นอกจากกนี้เรายังสามารถนำ tag  HTML มาใส่ในคำสั่ง PHP ได้ด้วย จากตัวอย่าง จะเห็นว่ามี tag <br> อยู่ด้วย ข้อสังเกตุในการนำ tag หรือคำสั่งของภาษา HTML มาใช้ร่วมกับ ภาษา PHP คือ จะต้องนำคำสั่งของ HTML มาใส่ไว้ในคำสั่ง echo()


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


คีย์เวิร์ด 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


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


การประกาศฟังก์ชันเริ่มต้นด้วยคีย์เวิร์ด 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();
?>

ฟังก์ชันในPHP

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

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

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

phpinfo ();


วันอังคารที่ 4 พฤศจิกายน พ.ศ. 2557

ชนิดของฟิลด์


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 หรือ YMMDDHHMMSS หรือ 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 ค่า



ข้อดีและข้อเสียของการใช้ฐานข้อมูล


ข้อดีของการใช้ฐานข้อมูล

เมื่อมีการนำระบบการจัดการฐานข้อมูลมาใช้ เพื่ออำนวยความสะดวกในการบันทึกข้อมูล แก้ไขปรับปรุงข้อมูล ค้นหาข้อมูล รวมทั้งกำหนดผู้ที่ได้รับอนุญาตให้ใช้ฐานข้อมูล เป็นต้น ทำให้ฐานข้อมูลมีข้อดีมากมาย ได้แก่
1.1 ลดความจำเจของงานดูแลเอกสาร ซึ่งเป็นงานประจำที่ทำให้ผู้ดูแลรู้สึกเบื่อหน่าย และขาดแรงจูงใจ แต่เราสามารถใช้คอมพิวเตอร์ในการปฏิบัติงานนี้แทนมนุษย์ได้ โดยผ่านโปรแกรมสำหรับการจัดการฐานข้อมูล

1.2 ข้อมูลที่จัดเก็บมีความทันสมัย เมื่อข้อมูลในระบบฐานข้อมูลได้รับการดูแลปรับปรุงอย่างต่อเนื่อง ทำให้ข้อมูลที่จัดเก็บเป็นข้อมูลที่มีความทันสมัย ตรงกับเหตุการณ์ในปัจจุบัน และตรงกับความต้องการอยู่เสมอ

1.3 ลดความซ้ำซ้อนในการจัดเก็บข้อมูล เนื่องจากการจัดทำฐานข้อมูลจะมีการรวบรวมข้อมูลประเภทต่างๆ เข้ามาจัดเก็บไว้ในระบบและเก็บข้อมูลเพียงชุดเดียว ซึ่งทุกฝ่ายที่เกี่ยวข้องจะสามารถเรียกใช้ข้อมูลที่ต้องการได้  เป็นการประหยัดเนื้อที่ในการจัดเก็บ และทำให้เกิดความรวดเร็วในการค้นหาและจัดเก็บข้อมูลด้วย

1.4 หลีกเลี่ยงความขัดแย้งของข้อมูลได้ เมื่อข้อมูลถูกจัดเก็บในระบบฐานข้อมูล จะทำให้ข้อมูลลดความซ้ำซ้อนลง คือ มีข้อมูลแต่ละประเภทเพียงหนึ่งชุดในระบบ ทำให้ข้อมูลที่เก็บได้ไม่ขัดแย้งกันเอง ในกรณีที่จำเป็นต้องเก็บข้อมูลที่ซ้ำซ้อนกัน เพื่อสาเหตุบางประการ เช่น เพื่อความรวดเร็วในการประมวลผลข้อมูล ระบบจัดการฐานข้อมูลจะเป็นผู้ดูแลข้อมูลที่ซ้ำกันให้มีความถูกต้องตรงกัน

1.5 ใช้ข้อมูลร่วมกันได้ เนื่องจากระบบการจัดการฐานข้อมูลสามารถจัดให้ผู้ใช้แต่ละคนเข้าใช้ข้อมูลในแฟ้มที่มีข้อมูลเดียวกันได้ในเวลาเดียวกัน เช่น ฝ่ายบุคคลและฝ่ายการเงิน สามารถที่จะใช้ข้อมูลจากแฟ้มประวัติพนักงานในระบบฐานข้อมูลได้พร้อมกัน

1.6 ควบคุมมาตรฐานของข้อมูลได้ เมื่อข้อมูลต่างๆ ในหน่วยงานถูกรวบรวมเข้ามา ผู้บริหารระบบฐานข้อมูลสามารถที่จะวางมาตรฐานในการรับข้อมูล แสดงผลข้อมูล ตลอดจนการจัดเก็บข้อมูลได้ เช่น การกำหนดรูปแบบของตัวเลขให้มีทศนิยม 2 ตำแหน่งสำหรับค่าที่เป็นตัวเงิน การกำหนดรูปแบบของการรับ และแสดงผลสำหรับข้อมูลที่เป็นวันที่ นอกจากนี้การที่ข้อมูลมีมาตรฐานเดียวกัน ทำให้สามารถแลกเปลี่ยนข้อมูลระหว่างระบบได้อย่างสะดวก

1.7 จัดทำระบบการรักษาความปลอดภัยของข้อมูลได้ ผู้บริหารระบบฐานข้อมูลสามารถกำหนดรหัสผ่านเข้าใช้งานข้อมูลของผู้ใช้แต่ละราย โดยระบบการจัดการฐานข้อมูลจะทำการตรวจสอบสิทธิ์ในการทำงานกับข้อมูลทุกครั้ง เช่น การตรวจสอบสิทธิ์ในการเรียกดูข้อมูล   การลบข้อมูล  การปรับปรุงข้อมูล   และการเพิ่มข้อมูลในแต่ละแฟ้มข้อมูล

1.8 ควบคุมความถูกต้องของข้อมูลได้   ปัญหาเรื่องความขัดแย้งกันของข้อมูลที่มีความซับซ้อน เป็นปัญหาหนึ่งในเรื่องความถูกต้องของข้อมูล ซึ่งเมื่อได้มีการกำจัดความซับซ้อนของข้อมูลออก ปัญหาเรื่องความถูกต้องของข้อมูลที่อาจเกิดขึ้นได้ เช่น อายุโดยปกติของคนงาน ควรอยู่ระหว่าง 18 – 60 ปี ถ้าหากในระบบฐานข้อมูล ปรากฏมีพนักงานที่มีอายุ 150 ปีซึ่งเป็นไปไม่ได้ในทางปฏิบัติที่หน่วยงานจะมีการว่าจ้างคนงานที่มีอายุเกิน 60 ปี และอายุของคนในปัจจุบันไม่ควรเกิน 100 ปี ผู้บริหารระบบฐานข้อมูลสามารถกำหนดกฎเกณฑ์ในการนำเข้าข้อมูล และระบบจัดการฐานข้อมูลจะคอยควบคุมให้มีการนำเข้าข้อมูล เป็นไปตามกฎเกณฑ์ให้มีความถูกต้อง


ข้อเสียของการใช้ฐานข้อมูล

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

1.2 เกิดการสูญเสียข้อมูลได้ เนื่องจากข้อมูลต่างๆ ภายในฐานข้อมูลจะถูกจัดเก็บอยู่ในที่เดียวกัน ดังนั้นถ้าที่เก็บข้อมูลเกิดมีปัญหา อาจทำให้ต้องสูญเสียข้อมูลทั้งหมดในฐานข้อมูลได้ ดังนั้นการจัดทำฐานข้อมูลที่ดีจึงต้องมีการสำรองข้อมูลไว้เสมอ

ตัวอย่างฐานข้อมูล



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

2. ฐานข้อมูลของร้านค้า เมื่อมีการจัดเก็บข้อมูลเกี่ยวกับสินค้าและลูกค้าอย่างเป็นระบบดีแล้ว การ จัดการก็ง่าย สินค้ามีกี่รายการ ต้นทุน กำไรเท่าไร ก็ดูได้ทันที ในโลกธุรกิจ การมีข้อมูลจำนวนมากและมี การจัดการที่ดี มีผลต่อความได้เปรียบในการทำธุรกิจและการประสบความสำเร็จ
3. ฐานข้อมูลบัญชีครัวเรือน จะเป็นการรวบรวมข้อมูลเกี่ยวกับรายรับ-รายจ่ายในการใช้เงินในแต่ละวันของครัวเรือน ค่าใช้จ่ายที่เกี่ยวข้อง ฯลฯ อาจบันทึกข้อมูลลงกระดาษ แบบฟอร์มหรือจัดเก็บลงคอมพิวเตอร์ เมื่อมีการจัดเก็บข้อมูลอย่างเป็น ระเบียบ การค้นหาก็ทำได้ง่าย

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

5. ฐานข้อมูลระบบห้องสมุด ยืม-คืน จะเป็นการจัดการเกี่ยวกับการยืม-คืนหนังสือ ให้ง่ายต่อการค้นหา จะมีข้อมูลที่เกี่ยวข้อง เัช่น ข้อมูลหนังสือ ข้อมูลการยืม ข้อมูลการคืน 
รหัสและประเภทหนังสือ ฯลฯ ทำให้ค้นหาได้ง่ายขึ้น 

ไม่มีความคิดเห็น:

แสดงความคิดเห็น