ตัวอย่างคำสั่งเพิ่มข้อมูล รูปแบบคือ INSERT INTO table (name) VALUES ('$name')
<?php $sql = mysql_query("INSERT INTO tbcustomer (custId,custName,custLastName) VALUES( '$idcar', '".$_REQUEST['custName']."', '".$_REQUEST['custLastName']."' ) ")or die(mysql_error()); ?>
ตัวอย่างคำสั่งอัพเดทข้อมูล รูปแบบคือ UPDATE table SET name = '$name' WHERE id = '$id'
<?php $sql = mysql_query("UPDATE tbcustomer SET custName='".$_REQUEST['custName']."', custLastName='".$_REQUEST['custLastName']."', cardId='".$_REQUEST['cardId']."', WHERE custId = '$idcar' ")or die(mysql_error()); ?>
ตัวอย่างรูปแบบคำสั่งลบ รูปแบบคือ DELETE FROM table WHERE id='$id'
<?php $sql = mysql_query("DELETE FROM tbcarpic WHERE id_car = '$dropcar'"); ?>
การแสดงข้อมูล รูปแบบคือ SELECT * FROM table WHERE id= '$id' //ORDER BY id ASC หรือ DESC
* เลือกข้อมูลทั้งหมด, หรือเลือกแค่ชื่อฟิวด์ที่ต้องการแสดงก็ได้ เช่น SELECT name,surname FROM table
<?php $sql = mysql_query("SELECT * FROM tbmember WHERE id = '".$_SESSION["id"]."'"); $result = mysql_fetch_array($sql);// การนำมาใช้ echo "name ".$result['name']." surname ".$result['surname'];?>
แต่ถ้าตารางมีความสัมพันธ์กัน เราจะใช้วิธีการ JOIN ตาราง จะยกตัวอย่าง 4 วิธีดังนี้
คำสั่งการจับคู่ตาราง INNER JOIN, OUTER JOIN, LEFT JOIN และ RIGHT JOIN
1. INNER JOIN จะรวมข้อมูลที่เลือกเชื่อมต่อ
2. OUTER JOIN จะรวมข้อมูลที่เลือกเชื่อมต่อ
3. LEFT JOIN จะรวมข้อมูลที่ตรงกัน โดยจะเน้นตารางฝั่งซ้ายเป็นหลัก
4. RIGHT JOIN จะรวมข้อมูลที่ตรงกัน โดยจะเน้นตารางฝั่งขวาเป็นหลัก
ยกตัวอย่างจากตาราง บริษัทแห่งหนึ่ง ความสัมพันธ์ ของพนักงานต่อแผนก
INNER JOIN
<?php SELECT tbmember.id, tbmember.name, tbdepartment.departname FROM tbmember INNER JOIN tbdepartment ON tbmember.db_id = tbdepartment.id ORDER BY tbmember.id ASC //ASC หรือ DESC?>
ผลการรัน ผลที่ได้จะเห็นว่าข้อมูลที่ไม่ตรงกัน จะไม่แสดง
OUTER JOIN
<?php SELECT tbmember.id, tbmember.name, tbdepartment.departname FROM tbmember,tbdepartment WHERE tbmember.dp_id = tbdepartment.id?>
ผลการรัน ผลการรันขึ้นอยู่กับเงื่อนไข WHERE ที่เราใส่
LEFT JOIN
<?php SELECT tbmember.id, tbmember.name, tbdepartment.departname FROM tbdepartment LEFT JOIN tbmember ON tbmember.dp_id = tbdepartment.id ?>
ผลการรัน จะเน้นตารางฝั่งซ้ายเป็นหลัก คือตาราง tbdepartment
RIGHT JOIN
<?php SELECT tbmember.id, tbmember.name, tbdepartment.departname FROM tbdepartment RIGHT JOIN tbmember ON tbmember.dp_id = tbdepartment.id ?>
ผลการรัน จะเน้นตารางฝั่งขวาเป็นหลัก คือตาราง tbmember
ส่วนการ JOIN ในรูปแบบอื่น ๆ ที่ไม่กล่าวถึงไปศึกษาเพิ่มเติมเองนะครับ
- LEFT OUTER JOIN
- RIGHT OUTER JOIN
- CROSS JOIN
- STRAIGHT_JOIN
- NATURAL JOIN
- NATURAL LEFT JOIN
- NATURAL RIGHT JOIN
SQL SELECT รูปแบบอื่น ๆ
tbmember ตารางใช้เป็นตัวอย่าง..
SQL SUM คือผลรวมของฟิวด์ที่ต้องการ
<?php $sql = mysql_query("SELECT SUM(salary) as sum_salary FROM tbmember")?>
ผลการรัน
------------------
sum_salary |
------------------
156000
SQL MAX คือค่ามากสุดของฟิวด์ที่ต้องการ
<?php $sql = mysql_query("SELECT MAX(salary) as max_salary FROM tbmember")?>
ผลการรัน
------------------
max_salary |
------------------
46000
SQL MIN คือน้อยสุดของฟิวด์ที่ต้องการ
<?php $sql = mysql_query("SELECT MIN(salary) as min_salary FROM tbmember")?>
ผลการรัน
------------------
min_salary |
------------------
30000
SQL COUNT คือการนับจำนวน record
<?php$sql = mysql_query("SELECT COUNT(name) as count_name FROM tbmember")?>
ผลการรัน
------------------
count_name |
------------------
4
SQL LIMIT สามารถกำหนดจำนวน Record ที่แสดงผลออกมาได้
<?php$sql = mysql_query("SELECT * FROM tbmember ORDER BY salary DESC LIMIT 0,2")?>
ผลการรัน
--------------------
name | age | salary |
--------------------
นายสมัคร | 34 | 45000
นายสมาน | 38 | 46000
SQL AVG เฉลี่ยผลรวมของฟิวด์
<?php$sql = mysql_query("SELECT AVG(salary)AS avg_salary FROM tbmember")?>
ผลการรัน
------------------
avg_salary |
------------------
390000
SQL LIKE การค้นหาข้อความที่ระบุภายในฟิวด์ที่กำหนด
name LIKE '%anan' // ค้นหาชื่ออะไรก็ได้ลงท้ายด้วย anan
name LIKE '%anan%' // ค้นหาชื่ออะไรก็ได้ที่มีคำว่า anan
name LIKE 'anan%' // ค้นหาชื่อที่ขึ้นต้นด้วยคำว่า anan
name LIKE '%[anan,surname]%' // ค้นหาสองค่าใน 1 ฟิวด์
<?php$sql = mysql_query("SELECT * FROM tbmember WHERE name LIKE 'นาย'")?>
ผลการรัน
---------------------------------------------
name | age | salary |
---------------------------------------------
นายสมัคร | 34 | 45000
นายสมาน | 38 | 46000
นายวาริน | 30 | 30000
SQL DROP สำหรับการลบคุณสมบัติต่าง ๆ ของตาราง
<?php // ลบฐานข้อมูล$sql = mysql_query("DROP FROM tbmember") // ลบตาราง $sql = mysql_query("DROP DATABASE tbmember")
// ลบ INDEX$sql = mysql_query("DROP INDEX tbmember TableName.IndexName (for SQL Server) ")
?>
SQL TOP การเลือกข้อมูล
<?php$sql = mysql_query("SELECT TOP 2 * FROM tbmember ORDER BY salary DESC")?>
ผลการรัน
---------------------------------------------
name | age | salary |
---------------------------------------------
นายวาริน | 30 | 30000
นางสาวเกษร | 33 | 35000
SQL BETWEEN เลือกข้อมูลระหว่าง
<?php$sql = mysql_query("SELECT * FROM tbmember WHERE salary BETWEEN '30000' AND '35000'")?>
ผลการรัน
---------------------------------------------
name | age | salary |
---------------------------------------------
นายวาริน | 30 | 30000
นางสาวเกษร | 33 | 35000