วันเสาร์ที่ 22 พฤศจิกายน พ.ศ. 2557

ฟังก์ชันที่เกี่ยวกับ Array

ฟังก์ชัน sort
• เป็นฟังก์ชันที่ใช้ในการเรียงลำดับรายการข้อมูลในอะเรย์โดยจัดเรียงข้อมูลจากค่าน้อยไป
หาค่ามาก
File: lab4-19.php
<?php
$sort = array(50,40,30,35);
sort($sort);
for($r = 0; $r < count($sort);$r++){
echo "$sort[$r] <br>";
}
?>

ฟังก์ชัน asort
• เป็นฟังก์ชันที่ใช้ในการเรียงลำดับรายการข้อมูลในอะเรย์แบบคู่ โดยจัดเรียงข้อมูลของ
Value จากค่าน้อยไปหาค่ามาก
File: lab4-20.php
<?php
$keep_age = array(
“Joe" => 15 ,
“Game" => 18 ,
“Off" => 30 ,
“Champ" => 16 );
asort($keep_age );
foreach ($keep_age as $key => $value) {
echo "$key = $value <br>\n";
}
?>

ฟังก์ชัน ksort
• เป็นฟังก์ชันที่ใช้ในการเรียงลำดับรายการข้อมูลในอะเรย์แบบคู่ โดยจัดเรียงข้อมูลของ Key
จากค่าน้อยไปหาค่ามาก
File: lab4-21.php
<?php
$keep_age = array(
“Joe" => 15 ,
“Game" => 18 ,
“Off" => 30 ,
“Champ" => 16 );
ksort($keep_age );
foreach ($keep_age as $key => $value) {
echo "$key = $value <br>\n";
}
?>

ฟังก์ชัน max ใช้ในการหาค่า maximum ของ Value ใน Array
ฟังก์ชัน min ใช้ในการหาค่า minimum ของ Value ใน Array
ฟังก์ชัน count ใช้ในการนับจำนวน Array ว่ามีทัง้ หมดเท่าไหร่
File: lab4-22.php
<?php
$arr = array( 51,6,7,4,3,2,10,3,70 );
echo max( $arr) ,"<br>";
echo min( $arr) ,"<br>";
echo count( $arr) ,"<br>";
?>


 ฟังก์ชัน current ใช้ดึง Value ของ Array ที่ Pointer ชีอ้ ยู่ หากเป็นการ Initialize Array
ตัว Pointer จะอยู่ที่ Array 0
ฟังก์ชัน next ใช้เลื่อน Pointer ใน Array ไปข้างหน้าจำนวน 1 ช่อง
ฟังก์ชัน prev ใช้เลื่อน Pointer ใน Array ถอยหลังจำนวน 1 ช่อง
File: lab4-23.php
<?php
$arr = array( 51,6,7,4,3,2,10,3,70 );
echo current($arr) ,"<br>";
next ($arr);
echo current($arr) ,"<br>";
prev ($arr);
echo current($arr) ,"<br>";
?>

ฟังก์ชัน each ใช้ดึงค่าของ Array ที่ Pointer ชีอ้ ยู่ แล้วเลื่อน Pointer ใน Array ไปจำนวน
1 ช่อง ค่าที่ดึงออกมาจะเป็น Array เช่นกัน
File: lab4-24.php
<?php
$arr = array( 51,6,7,4,3,2,10,3,70 );
$myarr = each($arr);
echo $myarr['key'] . " => " . $myarr['value'] . "<br>";
$myarr = each( $arr);
echo $myarr[0] . " => " . $myarr[1] . "<br>";
?>

ฟังก์ชัน end ใช้เลื่อน Pointer ใน Array ไปลำดับสุดท้าย
File: lab4-25.php
<?php
$arr = array( 51,6,7,4,3,2,10,3,70 );
echo current($arr) ,"<br>";
end($arr);
echo current($arr) ,"<br>";
?>


ฟังก์ชัน key ใช้ดึง Key ของ Array ที่ Pointer ชีอ้ ยู่
File: lab4-26.php
<?php
$arr = array("code" => "123", "name" => "ABC" );
echo key ($arr) ,"<br>";
next($arr);
echo key ($arr) ,"<br>";
?>
 
ฟังก์ชัน reset เป็นคำสั่งให้เริ่มต้น Pointer ใหม่
File: lab4-27.php
<?php
$arr = array(10,20,30,40,50);
echo current($arr) ,"<br>";
next($arr);
echo current($arr) ,"<br>";
reset($arr);
echo current($arr) ,"<br>";
?>

 ฟังก์ชัน list ใช้ในการรับค่าที่อ่านมาได้จากอะเรย์โดยจำนวนของตัวแปร (var1,var2,…)
ที่ตัง้ รับในคำสั่งนีขึ้น้ อยู่กับขนาดอะเรย์ที่ส่งค่ามาให้ว่าอะเรย์นัน้ ส่งค่าข้อมูลมาให้จำนวนกี่
ค่า
File: lab4-28.php
<?php
$arr = array("A"=>10,"B"=>20,"C"=>30);
while ( list($key,$data) = each($arr) ) {
echo "$key => $data<br>";
}
?>

ฟังก์ชัน print_r ใช้ในการแสดงค่าใน Array ทัง้ หมด
File: lab4-29.php
<?php
$arr = array("A"=>10,"B"=>20,"C"=>30);
print_r($arr);
?>
File: lab4-30.php
<?php
echo "\$_SERVER<br>";
print_r($_SERVER);
?>

อะเรย์ (Array)

  •  อะเรย์หรือตัวแปรชุดคือตัวแปรที่สามารถเก็บค่าได้หลายๆค่า โดยใช้ตัวแปรตัวเดียว
  •  สิ่งที่อยู่ภายในอะเรย์เรียกว่าสมาชิก
  •  แต่ละสมาชิกในอะเรย์จะมีอินเด็กซ์เพื่อใช้อ้างอิง
  •  ใน PHP อินเด็กซ์จะเริ่มที่ 0 แต่สามารถกำหนดอินเด็กซ์ให้เป็นตัวอักษรได้

File: lab4-7.php
<html>
<body>
<?php
$arr[0] = "Red";
$arr[1] = "Green";
$arr[2] = "Blue";
$arr[3] = "White";
echo " $arr[0] , $arr[1] ,$arr[2] ,$arr[3] ";
?>
</body>
</html>


• ข้อมูลแต่ละตัวในอะเรย์ไม่จำเป็น ต้องเป็นข้อมูลชนิดเดียวกัน เช่น อาจจะมีทั้งจำนวนเต็ม เลขทศนิยม ตัวอักษร

File: lab4-8.php
<?php
$arr[0] = "Chair";
$arr[1] = 20;
$arr[2] = 3.37;
$arr[3] = "A";
$all = count( $arr );
for ($i=0; $i < $all; $i++){
print "Member $i = $arr[$i] <BR>";
}
?>


• ใน PHP อะเรย์ที่มีขนาดเปลี่ยนแปลงได้เรียกว่า dynamic array
หรือ vector(สำหรับอะเรย์มิติเดียว)


• ไม่จำเป็นต้องประกาศตัวแปร


• ค่าของอะเรย์จะ ถูกกำหนดให้ตอนที่ โปรแกรมทำงาน (Run time)


File: lab4-9.php
<?php
$myarray[]=3;
$myarray[]=1.1;
$myarray[]="abc";
$all = count( $myarray);
for ($i=0; $i < $all; $i++){
print "Member $i = $myarray[$i] <BR>";
}



• การสร้างอะเรย์โดยใช้ฟังก์ชัน array และการเปรียบเทียบการใช้ For และ Foreach
File: lab4-10.php
<?php
$myarray = array( 5,6,7, 20,31,440,”PHP”,”GNA” );
$all = count( $myarray);
for ($i=0; $i < $all; $i++){
print "Member $i = $myarray[$i] <BR>";
}
foreach ($myarray as $myvalue) {
print "$myvalue <BR>";
}
?>



• การสร้างอะเรย์โดยใช้ฟังก์ชัน array range(int low, int high)
File: lab4-11.php
<?php
$arr = range( 5,10);
$all = count( $arr );
for ($i=0; $i<$all; $i++){
echo "arr[" .$i. "] = ";
echo $arr[$i] . "<BR>" ;
}
?>



• การนำข้อมูลจาก Text file มาเก็บไว้ใน Array
• ข้อมูลที่เก็บในแต่ละบรรทัดคือ ข้อมูลในแต่ละ Element
File: lab4-12.php
<?php
$des = file("lab4-6.php");
$count_des = count($des);
if($count_des==0) {
echo "ไม่มีข้อมูลใน File <br>";
}
for ($i=0; $i<$count_des; $i++) {
echo $des[$i] . "<br>";
}
?>




• จากตัวอย่างที่แล้ว หากเราต้องการแสดงข้อความให้ถูกต้อง จำเป็นต้อง Convert Special
Character ก่อนการ Display HTML โดยใช้ Function htmlspecialchars
File: lab4-13.php
<?php
$des = file("lab4-6.php");
$count_des = count($des);
if($count_des==0) {
echo htmlspecialchars("ไม่มีข้อมูลใน File <br>");
}
for ($i=0; $i<$count_des; $i++) {
echo htmlspecialchars($des[$i]) . "<br>";
}
?>



• การใช้อะเรย์หลายมิติ(Multidimensional Array)
• กำหนดชื่อตัวแปรแล้วตามด้วยเครื่อง [..][..] สำหรับอะเรย์สองมิติและ [..][..][..]
สำหรับอะเรย์สามมิติ
$arr_2[1][1] = 4000; //$arr_2 เป็นอะเรย์สองมิติ
$arr_3[1][1][1] = 2000; //$arr_3 เป็นอะเรย์สามมิติ
อะเรย์ (Array)
File: lab4-14.php
<?php
$dim = 4;
for ($row=0; $row <= $dim; $row++) {
for($column = 0; $column <= $dim; $column++) {
$myarray[$row][$column] = 4 * $row * $column;
echo "4 x $row x $column = " . $myarray[$row][$column] . "<br>";
}
echo "<br>";
}
?>



• อะเรย์แบบคู่ (Key/Value)
• การเก็บข้อมูลในอะเรย์แบบนีจ้ ะใช้กับข้อมูลที่จัดเก็บเป็นคู่ ๆ
File: lab4-15.php
<?php
$keep_age = array(
“Joe" => 15 ,
“Game" => 18 ,
“Off" => 30 ,
“Champ" => 16 );
$name =key($keep_age);
$age =current($keep_age);
print ("Age of <u>$name</u> is $age");
?>




• อะเรย์แบบคู่ (Key/Value) ประเภท 2 มิติ
File: lab4-16.php
<?php
$countries = array (
"thailand" => array ( "zone" => "Asia", "D_NAME" => ".th"),
"malasia" => array ( "zone" => "Asia", "D_NAME" => ".my"),
"india" => array ( "zone" => "Asia", "D_NAME" => ".in"),
"holland“ => array ( "zone" => "Europe", "D_NAME" => ".nl"),
"france" => array ( "zone" => "Europe", "D_NAME" => ".fr")
);
echo "domain name=".$countries[ "thailand"]["D_NAME"]."<BR>\n";
?>


ถ้าเราต้องการจะเข้าถึงข้อมูลแต่ละคู่ที่ถูกเก็บอยู่ในอะเรย์แบบคู่ จะใช้วิธีเรียกผ่าน
ฟังก์ชัน each() และ list()
File: lab4-17.php
<?php
$test = array( "a" => 10, "b" => 20, "c" => 30 );
while (list($key, $value) = each($test)) {
echo "$key = $value <br>\n";
}
?>



• จะเข้าถึงข้อมูลแต่ละคู่ที่ถูกเก็บอยู่ในอะเรย์แบบคู่สามารถทำได้อีกวิธีคือการใช้คำสั่ง
foreach
File: lab4-18.php
<?php
$test = array( "a" => 10, "b" => 20, "c" => 30 );
foreach ($test as $key => $value) {
echo "$key = $value <br>\n";
}
?>

ฟังก์ชันของ PHP

การใช้ Static ใน Function
File: lab4-4.php
<?php
function MyFunc() {
static $num_func_calls = 0;
echo "num_func_calls = $num_func_calls<br>";
return ++$num_func_calls;
}
MyFunc();
MyFunc();
MyFunc();
?>

การผ่านค่าตัวแปลแบบ Reference ใน Function
File: lab4-5.php
<?php
function swap(&$a, &$b) {
$t = $a;
$a = $b;
$b = $t;
}
$x=10;
$y=3;
echo "x=" . $x . ", y=" . $y . "<br>";
swap($x,$y);
echo "x=" . $x . ", y=" . $y . "<br>";
?>

การนำค่านอก Function มาใช้โดยใช้คำสั่ง global
File: lab4-6.php
<?php
$z = 20;
function MyFunc() {
echo $z . "<br>";
$z = 50;
echo $z . "<br>";
global $z;
echo $z . "<br>";
}
MyFunc();
?>

ฟังก์ชันPHP

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

โดยฟังก์ชันของ PHP มี 2 ส่วน คือ
  1. ฟังก์ชันที่ผู้ใช้สร้างขึน้ มาเอง
  2. ฟังก์ชันที่มากับ PHP (สามารถเรียกใช้งานได้ทันที)
• ชื่อของคลาสและฟังก์ชันที่ผู้ใช้ทำการกำหนดเอง ตลอดจน constructs และ keywords ต่าง ๆ
เช่น echo, while, class เป็นต้น มีคุณสมบัติเป็นแบบ case-insensitive ตัวอย่างเช่น echo,
ECHO, EcHo
 

• แต่ในทางกลับกัน ชื่อตัวแปรต่าง ๆ นัน้ PHP จะมองเป็น case-sensitive ตัวอย่างเช่น $name,
$NAME และ $NaMe


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


ฟังก์ชันที่ผู้ใช้สร้างขึ้นมาเอง - ไม่มีการส่งระหว่างฟังก์ชัน
ฟังก์ชันแบบนีผ้ ู้ใช้จะต้องกำหนดชื่อและขัน้ ตอนการทำงานของฟังก์ชันไว้ที่ต้น
ของโปรแกรมก่อน หลังจากนัน้ สามารถเรียกใช้งานได้ทันที รูปแบบการสร้าง
ฟังก์ชันมีดังนี้
function functionName(){
instructions;
}
functionName(); //เรียกใช้งาน


ฟังก์ชันที่ผู้ใช้สร้างขึ้นมาเอง - ตัวอย่างฟังก์ชันที่ไม่มีการส่งระหว่างฟังก์ชัน
File: lab4-1.php
<?php
function Contact(){
echo “ติดต่อเรา 08-12345678”;
}
Contact();
?>
ผลลัพธ์ ติดต่อเรา 08-12345678


ฟังก์ชันที่ผู้ใช้สร้างขึ้นมาเอง - มีการส่งค่าระหว่างฟังก์ชัน
ฟังก์ชันแบบนีจ้ ะมีการรับค่าเพื่อนำไปคำนวณภายในฟังก์ชันจนได้ผลลัพธ์ที่
ต้องการออกมา ภายในฟังก์ชันเป็นการใช้โครงสร้าง ตัวแปร โอเปอเรเตอร์ อื่นๆ
รูปแบบการกำหนดฟังก์ชันจะเป็นดังนี้
function functionName(parameter){
return (instructions);
}
functionName(parameterValue); //เรียกใช้งาน


ฟังก์ชันที่ผู้ใช้สร้างขึ้นมาเอง - ตัวอย่างฟังก์ชันที่มีการส่งระหว่างฟังก์ชัน
File: lab4-2.php
<html><body>
<?php
echo"จะแทรกไว้ส่วนบนของ Function ก็ได้ <br>";
echo circle_area(5);
function circle_area($radius){
return M_PI*$radius*$radius;
}
?>
<br><br>หรือจะแทรกไว้ส่วนล่างของ Function ก็ได้<br>
<?php echo circle_area(5); ?>
</body></html>


วันจันทร์ที่ 3 พฤศจิกายน พ.ศ. 2557

PHP MyAdmin

phpMyAdmin เป็นโปรแกรมประเภท MySQL Client ตัวหนึ่งที่ใช้ในการจัดการข้อมูล MySQL ผ่าน Web Browser ได้โดยตรง phpMyAdmin ตัวนี้จะทำงานบน Web Server เป็น PHP Application ที่ใช้ควบคุมจัดการ MySQL Server ความสามารถของ phpMyAdmin คือ
1. สร้างและลบ Database
2. สร้างและจัดการตาราง (Table) เช่น แทรก record, ลบ record, แก้ไข record หรือ Table, เพิ่มหรือแก้ไข field ในตาราง
3. โหลดเท็กซ์ไฟล์เข้าไปเก็บเป็นข้อมูลในตารางได้
4. หาผลสรุป (Query) ด้วยคำสั่ง SQL และอีกหลาย ๆ ความสามารถที่ phpMyAdmin ทำได้
 การเริ่มต้นใช้งาน phpMyAdmin
การเข้าใช้งานโปรแกรม phpMyAdmin จะใช้งานผ่านโปรแกรม Web Browser เช่น Internet Explorer และพิมพ์ URL ไปยังไดเรกทอรีของ phpMyAdmin เป็น http://pontus2.csloxinfo.com เป็นต้น ซึ่งหน้าจอแรกในการใช้งาน แสดงดังรูปที่ 1


รูปที่ 1 หน้าจอแรกของโปรแกรม phpMyAdmin

จากรูปที่ 1 จะเห็นได้ว่าโปรแกรมได้แบ่งส่วนของการแสดงผลออกเป็น 2 ส่วน คือ ส่วนซ้าย(เลข 1) และ ส่วนขวา (เลข 2, 3) ซึ่งจะอธิบายได้ดังนี้หมายเลข 1 ใช้สำหรับ เลือก/เปลี่ยน จัดการกับฐานข้อมูลเดิมที่มีอยู่แล้วซึ่งทาง csloxinfo จะทำการสร้างฐานข้อมูลให้กับลูกค้า 1 ฐานข้อมูลเท่านั้น หมายเลข 2 สำหรับใส่ชื่อฐานข้อมูลที่ต้องการสร้างใหม่หมายเลข 3 สำหรับเลือกภาษาที่ต้องการให้แสดงภายในโปรแกรม phpMyAdmin
 การสร้างฐานข้อมูลใหม่ก่อนที่จะเก็บข้อมูลลงใน MySQL จะต้องเลือกเสียก่อนว่า จะสร้างฐานข้อมูลชื่ออะไร จากนั้น จึงทำการสร้างตาราง และ ฟิลด์ เพื่อบันทึกข้อมูล ในอันดับแรกจะเป็นการทดลองสร้างฐานข้อมูลขึ้นมา ใหม่ โดยจะยกตัวอย่างฐานข้อมูลเกี่ยวกับสินค้า ซึ่งมีชื่อฐานข้อมูลว่า “product” ดังรูปที่ 2


รูปที่ 2 สร้างฐานข้อมูลใหม่ชื่อ product

จากรูปที่ 2 อธิบายขั้นตอนการสร้างฐานข้อมูลใหม่ตามลำดับ ได้ดังนี้
1. ใส่ชื่อของฐานข้อมูลที่ต้องการสร้าง ในที่นี้ให้ชื่อว่า product
2. คลิกที่ปุ่ม สร้าง เพื่อสร้างฐานข้อมูล
 การสร้างตารางใหม่
ภายหลังจากที่สร้างฐานข้อมูลเรียบร้อยแล้ว phpMyAdmin จะแจ้งให้เราทราบว่า ได้ทำการ
สร้างฐานข้อมูล product เรียบร้อยแล้ว และท่านใช้งานฐานข้อมูล product อยู่ ยังไม่มีตารางใดๆ อยู่เลย
ในที่นี้จะสร้างตารางสำหรับเก็บข้อมูลสินค้า โดยรายละเอียดในตารางจะมี 3 ฟิลด์ ดังนี้
- name ชื่อสินค้า
- cost ราคาสินค้า
- quan จำนวนสินค้า (ย่อมาจาก quantity แต่เขียนให้ง่ายและสั้นขึ้น)
ทำการสร้างตารางใหม่ โดยมีขั้นตอนดังนี้
1. ใส่ชื่อตารางที่ต้องการสร้าง
2. ใส่จำนวนฟิลด์ของตาราง สำหรับตาราง stock จะมีจำนวน 3 ฟิลด์
3. คลิกปุ่ม ลงมือ เพื่อดำเนินการขั้นต่อไป


รูปที่ 3 การสร้างตาราง

ขั้นตอนต่อไป ภายหลังจากคลิกปุ่ม ลงมือในขั้นตอนก่อนหน้า จะเป็นการกำหนด ชื่อฟิลด์
ชนิดของข้อมูลที่เก็บ และรายละเอียดอื่นๆ ซึ่งจะอธิบายในส่วนต่างๆ ได้ดังนี้
- ฟิลด์ สำหรับใส่ชื่อฟิลด์
- ชนิด สำหรับเลือกชนิดของข้อมูลที่ต้องการเก็บในฟิลด์นั้น- ความยาว/เซต สำหรับกำหนดขนาดของข้อมูล
- แอตทริบิวต์ สำหรับเลือกลักษณะเฉพาะของข้อมูลที่จะเก็บ เช่น ตัวเลขแบบคิด
เครื่องหมาย บวกหรือลบ เป็นต้น
- ค่าว่าเปล่า (null) สำหรับเลือกว่า ฟิลด์นั้นสามารถใส่ค่าว่างได้หรือไม่
- ค่าปริยาย สำหรับกำหนดค่าเริ่มต้นของฟิลด์ (ค่า Default)
- เพิ่มเติม สำหรับกำหนดค่าเพิ่มเติม เช่น กรณีที่ฟิลด์เก็บข้อมูลตัวเลขจำนวนเต็ม (Integer)
จะสามารถเลือกให้มีการเพิ่มค่าอัตโนมัติ (auto_increment) ได้ เป็นต้น
- ไพรมารี เลือกเมื่อต้องการกำหนดให้ฟิลด์นั้นๆ เป็นไพรมารีคีย์ (Primary Key)
- ดัชนี เลือกเมื่อต้องการสร้างฟิลด์นั้นๆ เป็นดัชนี (Index)
- เอกลักษณ์ เลือกเมื่อต้องการให้ฟิลด์นั้นเป็น Unique
 คำอธิบายของชนิดข้อมูลแต่ละชนิดที่สามารถเลือกได้
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 ค่า
 ขั้นต่อไปให้กรอกรายละเอียดต่างๆ ให้ครบ เช่น สร้างฟิลด์ 3 ฟิลด์ เราต้องระบุชื่อฟิลด์ ชนิด ของข้อมูลที่จัดเก็บ หรือรายละเอียดอื่นๆ ให้ครบทั้ง 3 ฟิลด์ก่อน เมื่อเรียบร้อยแล้วคลิกที่ปุ่ม บันทึก เพื่อ สร้างตารางใหม่ตามรายละเอียดที่ได้กำหนดไว้ ดังรูปที่ 4


ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล

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





รหัสพนักงาน
ชื่อพนักงาน
ที่อยู่
เงินเดือน
รหัสแผนก
12501535
12534568
12503452
12356892
15689730
นายสมพงศ์
นายมนตรี
นายเอก
นายบรรทัด
นายราชัน
กรุงเทพ
นครปฐม
กรุงเทพ
นนทบุรี
สมุทรปราการ
12000
12500
13500
11500
12000
VO
VN
VO
VD
VA



นิยามและคำศัพท์พื้นฐานเกี่ยวกับระบบฐานข้อมูล
บิท (Bit) หมายถึง หน่วยของข้อมูลที่มีขนาดเล็กที่สุด
ไบท์ (Byte) หมายถึง หน่วยของข้อมูลที่กิดจากการนำบิทมารวมกันเป็นตัวอักขระ (Character)
เขตข้อมูล (Field) หมายถึง หน่วยของข้อมูลที่ประกอบขึ้นจากตัวอักขระตั้งแต่หนึ่งตัวขึ้นไปมารวมกันแล้วได้ความหมายของสิ่งใดสิ่งหนึ่ง เช่น ชื่อ ที่อยู่ เป็นต้น
ระเบียน (Record) หมายถึง หน่วยของข้อมูลที่เกิดจากการนเอาเขตข้อมูลหลาย ๆ เขตข้อมูลมารวมกัน เพื่อเกิดเป็นข้อมูลเรื่องใดเรื่องหนึ่ง เช่น ข้อมูลของนักศึกษา 1 ระเบียน (1 คน) จะประกอบด้วย
รหัสประจำตัวนักศึกษา 1 เขตข้อมูล
ชื่อนักศึกษา 1 เขตข้อมูล
ที่อยู่ 1 เขตข้อมูล
แฟ้มข้อมูล (File) หมายถึงหน่วยของข้อมูลที่เกิดจากการนำข้อมูลหลาย ๆ ระเบียนที่เป็นเรื่องเดียวกันมารวมกัน เช่น แฟ้มข้อมูลนักศึกษา แฟ้มข้อมูลลูกค้า แฟ้มข้อมูลพนักงาน

ส่วนในระบบฐานข้อมูล มีคำศัพท์ต่าง ๆ ที่เกี่ยวข้องดังนี้
เอนทิตี้ (Entity) หมายถึง ชื่อของสิ่งใดสิ่งหนึ่ง ได้แก่ คน สถานที่ สิ่งของ การกระทำ ซึ่งต้องการจัดก็บข้อมูล
ไว้ เช่น เอนทิตี้ลูกค้า เอนทิตี้พนักงาน
- เอนทิตี้ชนิดอ่อนแอ (Weak Entity) เป็นเอนทิตี้ที่ไม่มีความหมาย หากขาดเอนทิตี้อื่นในฐานข้อมูล
แอททริบิวต์(Attribute) หมายถึง รายละเอียดข้อมูลที่แสดงลักษณะและคุณสมบัติของเอนทิตี้หนึ่ง ๆ เช่น
เอนทิตี้นักศึกษา ประกอบด้วย - แอทริบิวต์รหัสนักศึกษา
- แอททริบิวต์ชื่อนักศึกษา
- แอททริบิวต์ที่อยู่นักศึกษา
ความสัมพันธ์ (Relationships) หมายถึง ความสัมพันธ์ระหว่างเอนทิตี้ เช่น ความสัมพันธ์ระหว่างเอนทิตี้นักศึกษาและเอนทิตี้คณะวิชา เป็นลักษณะว่า นักศึกษาแต่ละคนเรียนอยู่คณะวิชาใดคณะวิชาหนึ่ง
ในการแสดงความสัมพันธ์ระหว่างเอนทิตี้ เราจะใช้หัวลูกศรเพื่อแสดงความสัมพันธ์ ดังตัวอย่างในรูปต่อไปนี้
รูปที่ 1.1 คณะวิชา ß ----------à à นักศึกษา (คณะวิชามีความสัมพันธ์กับนักศึกษา)
ในการระบุความสัมพันธ์ระหว่างเอนทิตี้ จะกำหนดโดยใช้หัวลูกศร และหากพิจารณาความสัมพันธ์จากเอนทิตี้นักศึกษาไปยังเอนทิตี้คณะวิชา อาจจะกำหนดความสัมพันธ์ได้ดังนี้
รูปที่ 1.2 คณะวิชา ----------------à นักศึกษา (นักศึกษาสังกัดอยู่คณะวิชา)
และหากพิจารณาความสัมพันธ์จากเอนทิตี้คณะวิชาไปยังเอนทิตี้นักศึกษา อาจกำหนดความสัมพันธ์ได้ดังนี้
รูปที่ 1.3 คณะวิชา --------------à à นักศึกษา (คณะวิชาประกอบด้วยนักศึกษา)
จากรูปที่ 1.2 จะเห็นได้ว่า นักศึกษา 1 คนจะสามารถสังกัดอยู่ได้เพียง 1 คณะวิชา แต่จากรูปที่ 1.3 จะเห็นได้ว่า 1 คณะวิชาสามารถประกอบด้วยนักศึกษาหลาย ๆ คน
ความสัมพันธ์ระหว่างเอนทิตี้ แบ่งออกเป็น 3 ประเภท คือ
1. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One-to-one Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลในเอนทิตี้หนึ่งที่มีความสัมพันธ์กับข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะหนึ่งต่อหนึ่ง (1 : 1)
2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-many Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลในเอนทิตี้หนึ่ง ที่มีความสัมพันธ์กับข้อมูลหลาย ๆ ข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะ (1:m) ตัวอย่างเช่น
3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many-to-many Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลสองเอนทิตี้ในลักษณะกลุ่มต่อกลุ่ม (m:n)


เอนทิตี้ใบสั่งซื้อแต่ละใบจะสามารถสั่งสินค้าได้มากกว่าหนึ่งชนิด ความสัมพันธ์ของข้อมูลจากเอนทิตี้ใบสั่งซื้อไปยังเอนทิตี้สินค้า จึงเป็นแบบหนึ่งต่อกลุ่ม (1:m) ในขณะที่สินค้าแต่ละชนิด จะถูกสั่งอยู่ในใบสั่งซื้อหลายใบ ความสัมพันธ์ของข้อมูลจากเอนทิตี้สินค้าไปยังอินทิตี้ใบสั่งซื้อ จึงเป็นแบบหนึ่งต่อกลุ่ม (1:n) ดังนั้นความสัมพันธ์ของเอนทิตี้ทั้งสอง จึงเป็นแบบกลุ่มต่อกลุ่ม (m:n)
จากคำศัพท์ต่าง ๆ ที่เกี่ยวข้องกับระบบฐานข้อมูลที่ได้กล่าวมาแล้วข้างต้น จึงอาจให้นิยามของฐานข้อมูลในอีกลักษณะได้ว่า “ฐานข้อมูล” อาจหมายถึง โครงสร้างสารสนเทศ ที่ประกอบด้วยหลาย ๆ เอนทิตี้ที่มีความสัมพันธ์กัน

ความสำคัญของการประมวลผลแบบระบบฐานข้อมูล
จากการจัดเก็บข้อมูลรวมเป็นฐานข้อมูลจะก่อให้เกิดประโยชน์ดังนี้
1. สามารถลดความซ้ำซ้อนของข้อมูลได้
การเก็บข้อมูลชนิดเดียวกันไว้หลาย ๆ ที่ ทำให้เกิดความซ้ำซ้อน (Redundancy) ดังนั้นการนำข้อมูลมารวมเก็บไว้ในฐานข้อมูล จะชาวยลดปัญหาการเกิดความซ้ำซ้อนของข้อมูลได้ โดยระบบจัดการฐานข้อมูล (Database Management System : DBMS) จะช่วยควบคุมความซ้ำซ้อนได้ เนื่องจากระบบจัดการฐานข้อมูลจะทราบได้ตลอดเวลาว่ามีข้อมูลซ้ำซ้อนกันอยู่ที่ใดบ้าง
2. หลีกเลี่ยงความขัดแย้งของข้อมูลได้
หากมีการเก็บข้อมูลชนิดเดียวกันไว้หลาย ๆ ที่และมีการปรับปรุงข้อมูลเดียวกันนี้ แต่ปรับปรุงไม่ครบทุกที่ที่มีข้อมูลเก็บอยู่ก็จะทำให้เกิดปัญหาข้อมูลชนิดเดียวกัน อาจมีค่าไม่เหมือนกันในแต่ละที่ที่เก็บข้อมูลอยู่ จึงก่อใให้เกิดความขัดแย้งของข้อมูลขึ้น (Inconsistency)
3. สามารถใช้ข้อมูลร่วมกันได้
ฐานข้อมูลจะเป็นการจัดเก็บข้อมูลรวมไว้ด้วยกัน ดังนั้นหากผู้ใช้ต้องการใช้ข้อมูลในฐานข้อมูลที่มาจากแฟ้มข้อมูลต่างๆ ก็จะทำได้โดยง่าย
4. สามารถรักษาความถูกต้องเชื่อถือได้ของข้อมูล
บางครั้งพบว่าการจัดเก็บข้อมูลในฐานข้อมูลอาจมีข้อผิดพลาดเกิดขึ้น เช่น จากการที่ผู้ป้อนข้อมูลป้อนข้อมูลผิดพลาดคือป้อนจากตัวเลขหนึ่งไปเป็นอีกตัวเลขหนึ่ง โดยเฉพาะกรณีมีผู้ใช้หลายคนต้องใช้ข้อมูลจากฐานข้อมูลร่วมกัน หากผู้ใช้คนใดคนหนึ่งแก้ไขข้อมูลผิดพลาดก็ทำให้ผู้อื่นได้รับผลกระทบตามไปด้วย ในระบบจัดการฐานข้อมูล (DBMS) จะสามารถใส่กฎเกณฑ์เพื่อควบคุมความผิดพลาดที่เกดขึ้น
5. สามารถกำหนดความป็นมาตรฐานเดียวกันของข้อมูลได้
การเก็บข้อมูลร่วมกันไว้ในฐานข้อมูลจะทำให้สามารถกำหนดมาตรฐานของข้อมูลได้รวมทั้งมาตรฐานต่าง ๆ ในการจัดเก็บข้อมูลให้เป็นไปในลักษณะเดียวกันได้ เช่นการกำหนดรูปแบบการเขียนวันที่ ในลักษณะ วัน/เดือน/ปี หรือ ปี/เดือน/วัน ทั้งนี้จะมีผู้ที่คอยบริหารฐานข้อมูลที่เราเรียกว่า ผู้บริหารฐานข้อมูล (Database Administrator : DBA) เป็นผู้กำหนดมาตรฐานต่างๆ
6. สามารถกำหนดระบบความปลอดภัยของข้อมูลได้
ระบบความปลอดภัยในที่นี้ เป็นการป้องกันไม่ให้ผู้ใช้ที่ไม่มีสิทธิมาใช้ หรือมาเห็นข้อมูลบางอย่างในระบบ ผู้บริหารฐานข้อมูลจะสามารถกำหนดระดับการเรียกใช้ข้อมูลของผู้ใช้แต่ละคนได้ตามความเหมาะสม
7. เกิดความเป็นอิสระของข้อมูล
ในระบบฐานข้อมูลจะมีตัวจัดการฐานข้อมูลที่ทำหน้าที่เป็นตัวเชื่อมโยงกับฐานข้อมูล โปรแกรมต่าง ๆ อาจไม่จำเป็นต้องมีโครงสร้างข้อมูลทุกครั้ง ดังนั้นการแก้ไขข้อมูลบางครั้ง จึงอาจกระทำเฉพาะกับโปรแกรมที่เรียกใช้ข้อมูลที่เปลี่ยนแปลงเท่านั้น ส่วนโปรแกรมที่ไม่ได้เรียกใช้ข้อมูลดังกล่าว ก็จะเป็นอิสระจากการเปลี่ยนแปลง

รูปแบบของระบบฐานข้อมูล
รูปแบบของระบบฐานข้อมูล มีอยู่ด้วยกัน 3 ประเภท คือ
1. ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
เป็นการเก็บข้อมูลในรูปแบบที่เป็นตาราง (Table) หรือเรียกว่า รีเลชั่น (Relation) มีลักษณะเป็น 2 มิติ คือเป็นแถว (row) และเป็นคอลัมน์ (column) การเชื่อมโยงข้อมูลระหว่างตาราง จะเชื่อมโยงโดยใช้แอททริบิวต์ (attribute) หรือคอลัมน์ที่เหมือนกันทั้งสองตารางเป็นตัวเชื่อมโยงข้อมูล ฐานข้อมูลเชิงสัมพันธ์นี้จะเป็นรูปแบบของฐานข้อมูลที่นิยมใช้ในปัจจุบัน ดังตัวอย่าง
พนักงาน
รูปแสดงตารางพนักงาน
2. ฐานข้อมูลแบบเครือข่าย (Network Database)
ฐานข้อมูลแบบเครือข่ายจะเป็นการรวมระเบียนต่าง ๆ และความสัมพันธ์ระหว่างระเบียนแต่จะต่างกับฐานข้อมูลเชิงสัมพันธ์ คือ ในฐานข้อมูลเชิงสัมพันธ์จะแฝงความสัมพันธ์เอาไว้ โดยระเบียนที่มีความสัมพันธ์กันจะต้องมีค่าของข้อมูลในแอททริบิวต์ใดแอททริบิวต์หนึ่งเหมือนกัน แต่ฐานข้อมูลแบบเครือข่าย จะแสดงความสัมพันธ์อย่างชัดเจน ตัวอย่างเช่น
3. ฐานข้อมูลแบบลำดับชั้น (Hierarchical Database)
ฐานข้อมูลแบบลำดับชั้น เป็นโครงสร้างที่จัดเก็บข้อมูลในลักษณะความสัมพันธ์แบบพ่อ-ลูก (Parent-Child Relationship Type : PCR Type) หรือเป็นโครงสร้างรูปแบบต้นไม้ (Tree) ข้อมูลที่จัดเก็บในที่นี้ คือ ระเบียน (Record) ซึ่งประกอบด้วยค่าของเขตข้อมูล (Field) ของเอนทิตี้หนึ่ง ๆ
ฐานข้อมูลแบบลำดับชั้นนี้คล้ายคลึงกับฐานข้อมูลแบบเครือข่าย แต่ต่างกันที่ฐานข้อมูลแบบลำดับชั้น มีกฎเพิ่มขึ้นมาอีกหนึ่งประการ คือ ในแต่ละกรอบจะมีลูกศรวิ่งเข้าหาได้ไม่เกิน 1 หัวลูกศร


โปรแกรมฐานข้อมูลที่นิยมใช้
โปรแกรมฐานข้อมูล เป็นโปรแกรมหรือซอฟแวร์ที่ช่วยจัดการข้อมูลหรือรายการต่าง ๆ ที่อยู่ในฐานข้อมูล ไม่ว่าจะเป็นการจัดเก็บ การเรียกใช้ การปรับปรุงข้อมูล
โปรแกรมฐานข้อมูล จะช่วยให้ผู้ใช้สามารถค้นหาข้อมูลได้อย่างรวดเร็ว ซึ่งโปรแกรมฐานข้อมมูลที่นิยมใช้มีอยู่ด้วยกันหลายตัว เช่น Access, FoxPro, Clipper, dBase, FoxBase, Oracle, SQL เป็นต้น โดยแต่ละโปรแกรมจะมีความสามารถต่างกัน บางโปรแกรมใช้ง่ายแต่จะจำกัดขอบเขตการใช้งาน บ่งโปรแกรมใช้งานยากกว่า แต่จะมีความสามารถในการทำงานมากกว่า
โปรแกรม Access นับเป็นโปรแกรมที่นิยมใช้กันมากในขณะนี้ โดยเฉพาะในระบบฐานข้อมูลขนาดใหญ่ สามารถสร้างแบบฟอร์มที่ต้องการจะเรียกดูข้อมูลในฐานข้อมูล หลังจากบันทึกข้อมูลในฐานข้อมูลเรียบร้อยแล้ว จะสามารถค้นหาหรือเรียกดูข้อมูลจากเขตข้อมูลใดก็ได้ นอกจากนี้ Access ยังมีระบบรักษาความปลอดภัยของข้อมูล โดยการกำหนดรหัสผ่านเพื่อป้องกันความปลอดภัยของข้อมูลในระบบได้ด้วย
โปรแกรม FoxPro เป็นโปรแกรมฐานข้อมูลที่มีผู้ใช้งานมากที่สุด เนื่องจากใช้ง่ายทั้งวิธีการเรียกจากเมนูของ FoxPro และประยุกต์โปรแกรมขึ้นใช้งาน โปรแกรมที่เขียนด้วย FoxPro จะสามารถใช้กลับ dBase คำสั่งและฟังก์ชั่นต่าง ๆ ใน dBase จะสามารถใช้งานบน FoxPro ได้ นอกจากนี้ใน FoxPro ยังมีเครื่องมือช่วยในการเขียนโปรแกรม เช่น การสร้างรายงาน
โปรแกรม dBase เป็นโปรแกรมฐานข้อมูลชนิดหนึ่ง การใช้งานจะคล้ายกับโปรแกรม FoxPro ข้อมูลรายงานที่อยู่ในไฟล์บน dBase จะสามารถส่งไปประมวลผลในโปรแกรม Word Processor ได้ และแม้แต่ Excel ก็สามารถอ่านไฟล์ .DBF ที่สร้างขึ้นโดยโปรแกรม dBase ได้ด้วย

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

วันเสาร์ที่ 1 พฤศจิกายน พ.ศ. 2557

Microsoft SQL Server

ไมโครซอฟท์ ซีควลเซิร์ฟเวอร์ หรือ ไมโครซอฟท์ เอสคิวแอลเซิร์ฟเวอร์ (อังกฤษMicrosoft SQL Server) คือระบบจัดการฐานข้อมูลพัฒนาโดยไมโครซอฟท์ ซึ่งใช้ภาษา T-SQL ในการดึงเรียกข้อมูล
ไมโครซอฟท์ ซีควลเซิร์ฟเวอร์ 2005 รุ่นล่าสุดได้แบ่งเป็นรุ่นดังนี้:
  • เอนเทอร์ไพรส์ เอดิชัน
  • ดีเวโลเปอร์ เอดิชัน
  • สแตนดาร์ด เอดิชัน
  • เวิร์คกรุป เอดิชัน
  • เอกซ์เพรส เอดิชัน
  • โมไบล์ เอดัน
ก่อนที่จะติดตั้ง SQL Server นั้นจะต้องเตรียมเครื่องคอมพิวเตอร์ทั้งส่วนที่เป็นฮาร์ดแวร์และซอฟต์แวร์ที่มีอยู่บนเครื่องให้พอกับความต้องการอย่างต่ำของ SQL Server เสียก่อน เช่น ขนาดหน่วยความจำของเครื่อง เนื้อที่ว่างในฮาร์ดดิสก์ เป็นต้น รวมทั้งชนิดของ OS หรือ เวอร์ชั่นของ Internet Explorer สำหรับแผ่นซีดีที่ใช้ติดตั้ง SQL Server นั้นสามารถนำไปติดตั้งได้ทั้งเครื่องที่จะเป็นเครื่องเซิร์ฟเวอร์ก็ให้เลือกออปชั่น Server Components ได้ (Server Components คือโปรแกรมที่ควบคุมการทำงานหลัก ๆ ของ SQL Server รายละเอียดของคอมโพเนนต์ต่าง ๆ จะได้กล่าวต่อไป)
ระบบฮาร์ดแวร์และซอฟต์แวร์สำหรับ SQL Server
                                                                                                  
                เพื่อให้การติดตั้งระบบฐานข้อมูล SQL Server เป็นไปอย่างราบรื่นและสมบูรณ์ที่สุด ระบบฮาร์ดแวร์ของเครื่องคอมพิวเตอร์ที่เป็นเซิร์ฟเวอร์ควรจะมีประสิทธิภาพ ความคงทน และความเร็วในการทำงาน เพราะจะต้องติดตั้งระบบปฏิบัติการเน็ตเวิร์ก ดังนี้
ซีพียู                                       Intel (Pentium 166 MHz เป็นอย่างต่ำ, Pentium Pro หรือ Pentium I/III
                                                XEON)
หน่วยความจำ                      64 เมกกะไบต์ อย่างต่ำ
ฮาร์ดดิสก์                              ความจุอย่างต่ำ 1 กิ๊กกะไบต์ และมีพื้นที่ว่างหลังจากการติดตั้งโปรแกรม
                                                แล้วประมาณ 300 เมกกะไบต์เป็นอย่างต่ำ
ระบบปฏิบัติการ                  Microsoft Windows 95/98
                                                Microsoft Windows NT Workstation 4.0
                                                Microsoft 2000 Advanced Server
                                                Microsoft Windows NT Server 4.0

ระบบไฟล์                             ควรจะเป็น NTFS สำหรับ Windows NT Server
                                                FAT สำหรับ Windows 95/98
ซีดีรอมไดร์ฟ                        ความเร็วอย่างต่ำ 12 X
เน็ตเวิร์กโปรโตคอล           TCP/IP, Name Pipes
การติดตั้ง SQL Server
                

                การติดตั้ง SQL Server มีทางเลือกให้ทำได้ 3 วิธีด้วยกัน คือ
  • Local Installation คือ ติดตั้งลงในเครื่องที่กำลังใช้อยู่
  • Remote Installation คือ ติดตั้งลงบนเครื่องอื่นที่อยู่ในเน็ตเวิร์กเดียวกัน
  • Unattended Installation คือ ติดตั้งโดยที่ไม่ต้องป้อนรายละเอียดในขณะที่ติดตั้ง แต่ใส่รายละเอียดเหล่านั้นไว้ในไฟล์ จากนั้นโปรแกรมติดตั้งจะอ่านข้อมูลจากไฟล์นี้ให้เองโดยอัตโนมัติ
                การติดตั้ง SQL Server 2000 
โปรแกรม SQL Server เป็นโปรแกรมฐานข้อมูลที่ใช้เก็บขอมูลภายในองค์กรต่างๆ ซึ่งนิยมใช้กันทั่วไป ตัวโปรแกรมเอง มี 2 ชุดคือ SQL Server Personal และ SQL Server Enterprise ซึ่ง แตกต่างกันตรงที่ รุ่น SQL Server Personal ใช้ลงที่เครื่อง Client เช่น Microsoft Windows 98 และ Microsoft Windows ME ส่วน SQL Server Enterprise ใช้ลงกับระบบปฏิบัติการ ที่เป็น Server เท่านั้นเช่น Microsoft Windows 2000 Server การติดตั้งโปรแกรมมีขั้นตอนดังนี้
1. ให้นำแผ่น ซีดี โปรแกรม SQL Server ใส่ที่ Drive CD ROM แล้วรอสักครู่โปรแกรมจะแสดงหน้าจอการติดตั้งขึ้นมาให้ผู้ใช้เลือกการติดตั้ง (โปรแกรม SQL Server นั้นขึ้นอยู่กับระบบปฏิบัติการของผู้ใช้งานเองว่าจะใช้ SQL Server Personal สำหรับ Microsoft Windows 98 และ ME ถ้า SQL Server Enterprise สำหรับ Microsoft Windows 2000 Server ขั้นตอนการติดตั้งจะคล้ายๆ กัน) 


2. ให้เลือก SQL Server 2000 Components



3. เลือกหัวข้อ install Database Server


4. โปรแกรมจะเริ่มสอบถามรายละเอียดที่จำเป็นในการติดตั้งโดยจะมีเมนูสอบถามเป็นขั้นตอนจากรูปข้างล่างจะสอบถามที่ทำการติดตั้งโดยบังคับที่ เครื่องที่ทำการ RUN โปรแกรมนี้ แล้ว คลิก Next>


 5. ขั้นต่อไปให้เลือกสร้าง Database ใหม่หรือ Create a new instance of SQL Server, or install Client Tools แล้ว คลิก Next>
6. ให้ระบุชื่อเครื่องและชื่อบริษัท แล้ว คลิก Next>



7. โปรแกรมจะแจ้งรายละเอียดการใช้งานให้ผู้ใช้ทราย แล้วเลือกหัวข้อ Yes.


 8. เลือกหัวข้อ Server and Client Tools แล้ว คลิก Next>

 

9. เลือกหัวข้อ Default แล้ว คลิก Next> c

หลังจากสร้างฐานข้อมูลเสร็จแล้วให้ทำการ Restore ฐานข้อมูลโดยการ คลิกขวาที่ ฐานข้อมูล Research ที่ได้สร้างไว้ข้างต้น เลือก All Tasks / Restore Database



จะปรากฏหน้าต่างให้ทำการ Restore ข้อมูล 


ที่ประเภทการ Restore ให้เลือก From Device แล้วเลือก Select Device จะปรากฏหน้าต่างให้เลือก Device จะปรากฏหน้าต่างให้เลือก Device



ที่ Restore from ให้เลือก Disk แล้วเลือก Add จะปรากฏหน้าต่างให้ไฟล์ Backup ของฐานข้อมูล 


เลือก เพื่อเลือกไฟล์ RANsys_Database ที่ได้เตรียมไว้ใน CD-ROM RANsys หรือ Download ได้ที่ http://Ransys.swu.ac.thหลังจากเลือกไฟล์แล้วให้เลือก OK เพื่อกลับไปที่หน้า Choose Restore Device แล้วเลือก OK เพื่อกลับไปหน้า Restore Database จะปรากฏหน้าต่างแสดงความก้าวหน้าในการ Restore ฐานข้อมูล

หลังจาก Restore เรียบร้อยจะปรากฏหน้าต่างแสดงว่าทำการ Restore เรียบร้อยแล้ว


หลังจากนั้นให้สร้าง Login Name ชื่อ Research เพื่อทำการ Login เข้าสู่ระบบ โดยการ ไปที่โฟลเดอร์ Security / Login คลิกขวา แล้ว New Login จะปรากฏหน้าต่างให้กำหนด New Login
  • General ที่ Name ให้ระบุเป็น Research เลือก SQL Server Authentication ไม่ต้องระบุ Password ที่ Database เลือก Research


  • Server Role ให้เลือก System Administrators

  • Database Access ให้เลือก System Administrators ให้เลือกที่ฐานข้อมูล Research และเลือก db_owner

Oracle

Oracle คือ โปรแกรมจัดการฐานข้อมูล ผลิตโดยบริษัทออราเคิล ซึ่งเป็นโปรแกรมจัดการฐานข้อมูลเชิงสัมพันธ์ หรือ DBMS(Relational Database Management System) ตัวโปรแกรมนี้จะทำหน้าที่เป็นตัวกลางคอยติดต่อ ประสาน ระหว่างผู้ใช้และฐานข้อมูล ทำให้ผู้ใช้งานสามารถใช้งานฐานข้อมูลได้สะดวกขึ้น เช่นการค้นหาข้มูลต่างๆภายในฐานข้อมูลที่ง่ายและสะดวก โดยผู้ใช้ไม่จำเป็นต้องทราบถึงโครงสร้างภายในของฐานข้อมูลก้สามารถเข้าใช้ฐานข้อมุลนั้นได้
ข้อดีของ Oracle
1.เทคโนโลยี Rollback Segment ถูกนำมาใช้ในโปรแกรม Oracle ประโยชน์ Rollback Segment คือ สามารถจัดการกับข้อมูลในกรณีที่เกิดการล้มเหลวของระบบ หรือภาวะระบบไม่สามารถให้บริการได้ ด้วยเทคโนโลยี Rollback Segment จะจัดการ Instance Recovery ข้อมูลไม่ให้เกิดความเสียหายอันเนื่องมาจาก การล้มเหลวของระบบ ได้อย่างดีมาก  
2. Oracle ยังมีส่วนที่เรียกว่า Timestamp ทำงานเกี่ยวข้องกับ Concurrency Control เป็นส่วนที่จัดการการทำงานกับหลาย ๆ Transaction ในเวลาเดียวกัน โดยทุก ๆ Transaction จะมี Timestamp เป็นตัวกำหนดเวลาเริ่มต้นของการประมวลผล (Process) ซึ่งช่วยในการขจัดปัญหาหลักของ Concurrency Problems 
3.Oracle ใช้ได้กับฐานข้อมูลกว่า 80 แพลตฟอร์ม ซึ่งครอบคลุมเกือบทุกแพลตฟอร์มที่มีอยู่ในปัจจุบัน เริ่มตั้งแต่เครื่องคอมพิวเตอร์บนเมนเฟรม, มินิคอมพิวเตอร์, พีซี บนระบบปฏิบัติการตั้งแต่ Window 9x, NT, Window CE, UNIX, SOLARIS, LINUX  โดยที่ในทุกพอร์ตมีโครงสร้างการเหมือนกันๆหมด คำสั่งที่ใช้ก็เป็นแบบเดียวกัน สามารถทำงานร่วมกันได้ สามารถนำข้อมูลจากพอร์ตหนึ่งไปพอร์ตอื่นได้อย่างไม่มีปัญหา
ประเภทของ Oracle1. Personal Oracle
2. Oracle Server
     ทั้ง 2 แบบนี้มีลักษณะการใช้งานและคำสั่งเหมือนกัน แต่ต่างกันที่ Personal Oracle คือฐานข้อมูลที่เมื่อติดตั้งบนเครื่องคอมพิวเตอร์แล้ว ผู้ใช้จะต้องนั่งทำงานกับ Oracle นี้ที่หน้าเครื่องท่านั้น ส่วนของ Oracle Server คือ ฐานข้อมูลในลักษณะเซิร์ฟเวอร์ คือเครื่องคอมพิวเตอร์ที่ติดตั้งโปรแกรมของ Oracle Server ไว้ และยอมให้ผู้ใช้งานเรียกฐานข้อมูล หรือจัดการกับข้อมูลจากเครื่องคอมพิวเตอร์อื่น ๆ ได้(เรียกเครื่องอื่นๆ เป็นไคลเอนต์) ดังนั้นถ้าต้องการให้มีผู้เรียกใช้ข้อมูลจากฐานข้อมูลหลาย ๆ คนได้ ก็ควรต้องเลือกแบบที่เป็น Oracle Server


MySQL

MySQL คือ โปรแกรมระบบจัดการฐานข้อมูล ที่พัฒนาโดยบริษัท MySQL AB มีหน้าที่เก็บข้อมูลอย่างเป็นระบบ รองรับคำสั่ง SQL เป็นเครื่องมือสำหรับเก็บข้อมูล ที่ต้องใช้ร่วมกับเครื่องมือหรือโปรแกรมอื่นอย่างบูรณาการ เพื่อให้ได้ระบบงานที่รองรับ ความต้องการของผู้ใช้ เช่นทำงานร่วมกับเครื่องบริการเว็บ (Web Server) เพื่อให้บริการแก่ภาษาสคริปต์ที่ทำงานฝั่งเครื่องบริการ (Server-Side Script) เช่น ภาษา php ภาษา aps.net หรือภาษาเจเอสพี เป็นต้น หรือทำงานร่วมกับโปรแกรมประยุกต์ (Application Program) เช่น ภาษาวิชวลเบสิกดอทเน็ต ภาษาจาวา หรือภาษาซีชาร์ป เป็นต้น โปรแกรมถูกออกแบบให้สามารถทำงานได้บนระบบปฏิบัติการที่หลากหลาย และเป็นระบบฐานข้อมูลโอเพนทซอร์ท (Open Source)ที่ถูกนำไปใช้งานมากที่สุด
MySQL : มายเอสคิวแอล เป็นระบบจัดการฐานข้อมูลโดยใช้ภาษา SQL. แม้ว่า MySQL เป็นซอฟต์แวร์โอเพนซอร์ส แต่แตกต่างจากซอฟต์แวร์โอเพนซอร์สทั่วไป โดยมีการพัฒนาภายใต้บริษัท MySQL AB ในประเทศสวีเดน โดยจัดการ MySQL ทั้งในแบบที่ให้ใช้ฟรี และแบบที่ใช้ในเชิงธุรกิจ
MySQL สร้างขึ้นโดยชาวสวีเดน 2 คน และชาวฟินแลนด์ ชื่อ David Axmark, Allan Larsson และ Michael "Monty" Widenius.
ปัจจุบันบริษัทซันไมโครซิสเต็มส์ (Sun Microsystems, Inc.) เข้าซื้อกิจการของ MySQL AB เรียบร้อยแล้ว ฉะนั้นผลิตภัณฑ์ภายใต้ MySQL AB ทั้งหมดจะตกเป็นของซัน
ชื่อ "MySQL" อ่านออกเสียงว่า "มายเอสคิวเอล" หรือ "มายเอสคิวแอล" (ในการอ่านอักษร L ในภาษาไทย) ซึ่งทางซอฟต์แวร์ไม่ได้อ่าน มายซีเควล หรือ มายซีควล เหมือนกับซอฟต์แวร์จัดการฐานข้อมูลตัวอื่น

 ความสามารถและการทำงานของโปรแกรม MySQL มีดังต่อไปนี้

MySQL ถือเป็นระบบจัดการฐานข้อมูล (DataBase Management System (DBMS)
ฐานข้อมูลมีลักษณะเป็นโครงสร้างของการเก็บรวบรวมข้อมูล การที่จะเพิ่มเติม เข้าถึงหรือประมวลผลข้อมูลที่เก็บในฐานข้อมูลจำเป็นจะต้องอาศัยระบบจัดการ ฐานข้อมูล ซึ่งจะทำหน้าที่เป็นตัวกลางในการจัดการกับข้อมูลในฐานข้อมูลทั้งสำหรับการ ใช้งานเฉพาะ และรองรับการทำงานของแอพลิเคชันอื่นๆ ที่ต้องการใช้งานข้อมูลในฐานข้อมูล เพื่อให้ได้รับความสะดวกในการจัดการกับข้อมูลจำนวนมาก MySQL ทำหน้าที่เป็นทั้งตัวฐานข้อมูลและระบบจัดการฐานข้อมูล
MySQL เป็นระบบจัดการฐานข้อมูลแบบ relational
ฐานข้อมูลแบบ relational จะทำการเก็บข้อมูลทั้งหมดในรูปแบบของตารางแทนการเก็บข้อมูลทั้งหมดลงในไฟล์ เพียงไฟล์เดียว ทำให้ทำงานได้รวดเร็วและมีความยืดหยุ่น นอกจากนั้น แต่ละตารางที่เก็บข้อมูลสามารถเชื่อมโยงเข้าหากันทำให้สามารถรวมหรือจัด กลุ่มข้อมูลได้ตามต้องการ โดยอาศัยภาษา SQL ที่เป็นส่วนหนึ่งของโปรแกรม MySQL ซึ่งเป็นภาษามาตรฐานในการเข้าถึงฐานข้อมูล
MySQL แจกจ่ายให้ใช้งานแบบ Open Source นั่นคือ ผู้ใช้งาน MySQL ทุกคนสามารถใช้งานและปรับแต่งการทำงานได้ตามต้องการ สามารถดาวน์โหลดโปรแกรม MySQL ได้จากอินเทอร์เน็ตและนำมาใช้งานโดยไม่มีค่าใช้จ่ายใดๆ
ในระบบปฏิบัติการ Red Hat Linux นั้น มีโปรแกรมที่สามารถใช้งานเป็นฐานข้อมูลให้ผู้ดูแลระบบสามารถเลือกใช้งานได้ หลายโปรแกรม เช่น MySQL และ PostgreSQL ผู้ดูแลระบบสามารถเลือกติดตั้งได้ทั้งในขณะที่ติดตั้งระบบปฏิบัติการ Red Hat Linux หรือจะติดตั้งภายหลังจากที่ติดตั้งระบบปฏิบัติการก็ได้ อย่างไรก็ตาม สาเหตุที่ผู้ใช้งานจำนวนมากนิยมใช้งานโปรแกรม MySQL คือ MySQL สามารถทำงานได้อย่างรวดเร็ว น่าเชื่อถือและใช้งานได้ง่าย เมื่อเปรียบเทียบประสิทธิภาพในการทำงานระหว่างโปรแกรม MySQL และ PostgreSQL โดยพิจารณาจากการประมวลผลแต่ละคำสั่งได้ผลลัพธ์ดังรูปที่ 1 นอกจากนั้น MySQL ถูกออกแบบและพัฒนาขึ้นมาเพื่อทำหน้าเป็นเครื่องให้บริการรองรับการจัดการกับ ฐานข้อมูลขนาดใหญ่ ซึ่งการพัฒนายังคงดำเนินอยู่อย่างต่อเนื่อง ส่งผลให้มีฟังก์ชันการทำงานใหม่ๆ ที่อำนวยความสะดวกแก่ผู้ใช้งานเพิ่มขึ้นอยู่ตลอดเวลา รวมไปถึงการปรับปรุงด้านความต่อเนื่อง ความเร็วในการทำงาน และความปลอดภัย ทำให้ MySQL เหมาะสมต่อการนำไปใช้งานเพื่อเข้าถึงฐานข้อมูลบนเครือข่ายอินเทอร์เน็ต

Microsoft Access

ไมโครซอฟท์แอคเซส (Microsoft Access) คือ โปรแกรมเพื่อพัฒนาระบบฐานข้อมูล มีตารางเก็บข้อมูลและสร้างแบบสอบถามได้ง่าย มีวัตถุคอนโทลให้เรียกใช้ในรายงานและฟอร์ม สร้างมาโครและโมดูลด้วยภาษาเบสิก เพื่อประมวลผลตามหลักภาษาโครงสร้าง สามารถใช้โปรแกรมนี้เป็นเพียงระบบฐานข้อมูลให้โปรแกรมจากภายนอกเรียกใช้ก็ได้ ไมโครซอฟท์แอคเซส (Microsoft Access) ต่างกับ วิชวลเบสิก (Visual Basic) หรือ วิชวลเบสิกดอทเน็ต (Visual Basic .Net) เพราะ วิชวลเบสิกไม่มีส่วนเก็บข้อมูลในตนเอง แต่สามารถพัฒนาโปรแกรมได้หลากหลาย เช่น พัฒนาโปรแกรมควบคุมอุปกรณ์ โปรแกรมประยุกต์ทางวิทยาศาสตร์ เกมส์ หรือเชื่อมต่อกับระบบฐานข้อมูลภายนอก เป็นภาษาที่เหมาะกับการพัฒนาโปรแกรมประยุกต์ (Application) ส่วนไมโครซอฟท์แอคเซสเหมาะสำหรับนักพัฒนาระบบฐานข้อมูลที่ไม่ต้องการโปรแกรมที่ซับซ้อน ความสามารถของโปรแกรมที่สำคัญคือสร้างตาราง แบบสอบถาม ฟอร์ม หรือรายงานในแฟ้มเดียวกันได้ ด้วยคุณสมบัติพื้นฐานและวิซซาร์ดจึงอำนวยให้พัฒนาโปรแกรมให้แล้วเสร็จได้ในเวลาอันสั้น มีเครื่องมือที่อำนวยความสะดวกในการพัฒนาระบบฐานข้อมูลอย่างครบถ้วน 
การใช้ Access จะทำให้คุณสามารถ


  1. เพิ่มข้อมูลใหม่ลงในฐานข้อมูล เช่น รายการใหม่ในสินค้าคงคลัง
  2. แก้ไขข้อมูลที่มีอยู่ในฐานข้อมูล เช่น การเปลี่ยนตำแหน่งที่ตั้งปัจจุบันของรายการ
  3. ลบข้อมูล ถ้ารายการถูกขายออกหรือละทิ้งแล้ว
  4. จัดระเบียบและดูข้อมูลด้วยวิธีต่างๆ
  5. ใช้ข้อมูลร่วมกันกับผู้อื่นผ่าานทางรายงาน ข้อความอีเมล อินทราเน็ต หรืออินเทอร์เน็ต
Access ประกอบด้วย
  • Table ทำหน้าที่ในการเก็บข้อมูล และเป็นแหล่งข้อมูล (Data source) ของอ๊อบเจคอื่น ได้แก่ คิวรี่ ฟอร์ม และรายงาน
  • คิวรี่ (Query) เป็นอ๊อบเจคที่สำคัญมาก นอกจากจะเป็นแหล่งข้อมูลให้กับฟอร์ม และรายงาน คิวรี่ มีชุดคำสั่งในการประมวลผล เช่น การเรียงลำดับ การหาผลรวม การคำนวณด้วยฟังก์ชัน การกำหนดเงื่อนไขคัดเลือกข้อมูล รวมถึงการแสดงผล โดยเรียกข้อมูลจากหลายๆ Table ที่สัมพันธ์กัน ออกมาเป็นกลุ่มข้อมูลเดียวกัน (Recordset)
  • ฟอร์ม (Form) เป็นอ๊อบเจคที่ทำหน้าที่เป็นส่วนติดต่อ กับผู้ใช้ผ่านจอภาพ ทำหน้าที่ได้ทั้งการป้อนข้อมูล และแสดงผล โดยเฉพาะการป้อนข้อมูล จะทำหน้าที่ได้ดีกว่า Table และคิวรี่ เพราะมีเครื่องมือต่างๆ อำนวยความสะดวก ในการป้อนข้อมูล และการควบคุมความถูกต้องของค่า
  • รายงาน (Report) เป็นการแสดงผลลัพธ์ที่ได้ทำการประมวลแล้วออกมาทางเครื่องพิมพ์
  • มาโคร (Macro) เป็นชุดคำสั่งแบบสำเร็จรูป เพื่อจัดการและบริหารอ๊อบเจคของ Access เป็นส่วนที่ทำให้มีความสะดวกกับผู้พัฒนาโปรแกรม ในการสร้างชุดคำสั่งอย่างมาก
  • โมดูล (Module) เป็นส่วนที่ให้ผู้พัฒนาโปรแกรม เขียนชุดคำสั่งได้เอง ด้วยภาษา Visual Basic เพื่อใช้ เป็นคำสั่งควบคุม การคำนวณ และฟังก์ชันในการคำนวณ
  • เพจ (Access data page) เป็นอ๊อบเจคที่ทำหน้าที่เป็น ส่วนติดต่อกับผู้ใช้ในแบบ Home page เพื่อใช้งานกับเว็บ ซึ่งมีลักษณะคล้ายกับฟอร์ม
ในการพัฒนาโปรแกรมจะต้องทำเครื่องมือต่างๆ ของ Access มาใช้ตั้งแต่การรับข้อมูล จนถึงการแสดงผล จากเครื่องมือที่มีทำให้ผังการทำงานสามารถกำหนดเป็นรูปธรรมมากขึ้นเป็น

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