วันจันทร์ที่ 22 มีนาคม พ.ศ. 2553

Internal Error 2755. 1612, Microsoft Visual Studio 2005 SP 1

This error issued when your windows securities is not update
You need to download update for windows  Download Here

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

การใช้ SUB Query ใน SQL Command

Sub query คือ การดึงข้อมูลออกเป็นตารางเสมือน ตามเงื่อนไขที่ต้องการเพื่อจุดประสงค์ที่ต้องการ
ซึ่งต้องใช้ ( ) ในการ scope

ตัวอย่างการใช้งาน SUB Query

SELECT a.*
FROM (
  SELECT emp_id,emp_name
  FROM employee
  WHERE emp_id  >= '100111'
) as a

จากตัวอย่างหมายความว่า  เลือกข้อมูลทั้งหมดจากตารางที่มี Alias "a" ซึ่งเป็น Sub query จากการ
Select ข้อมูลจากตาราง employee ที่มี emp_id >= '100111'

การใช้คำสั่ง IN ใน SQL command

คำสั่ง IN ใน Sql หมายถึงการกรองข้อมูลด้วย column  โดยที่ค่าที่ต้องการกรองมีได้มากกว่า 1 ค่า ซึ่งแตกต่างจากการใช้เครื่องหมายเท่ากับ ("=")  และค่าที่ใช้กรองจะต้องอยู่ภายในวงเล็บ

ตัวอย่าง
SELECT *
FROM employee
WHERE emp_id IN ('100234','100235','100236')
ความหมายของ Query นี้คือ การเลือกพนักงานที่มีรหัสตามที่ระบุนั่นเอง ซึ่งผลลัพธ์จะได้ 3 Records

คำสั่ง JOIN ใน SQL

Join ก็คือ "ร่วมกัน" , "เชื่อมต่อ" ดังนั้นก็คือการเชื่อมโยงตารางเข้าด้วยกันนั่นเอง และการ join table
มีหลายรูปแบบซึ่งใช้งานแตกต่างกันออกไป

รูปแบบของการ JOIN ที่ใช้กันบ่อย ๆ มีดังนี้
INNER JOIN  คือ ค่าของ column ที่ใช้ในการ join จะต้องมีค่าตรงกันเท่านั้น แถวของข้อมูลที่ตรงตามเงื่อนไขนี้เท่านั้นที่จะแสดงผลออกมาจากการ Query

LEFT JOIN  คือ แถวจากตารางหลัก(ทางซ้าย)จะออกมาเสมอ แม้ว่าจะไม่มีข้อมูลที่ตรงกันในตารางที่เชื่อมโยงไป

RIGHT JOIN จริง ๆ แล้วเหมือนกับ LEFT JOIN เพียงแต่สลับตำแหน่งของตารางที่ใช้ในการเชื่อมโยงข้อมูลเท่านั้น
(ไม่แนะนำให้ใช้ ใช้ LEFT JOIN แทนดีกว่า จะได้ไม่สับสน)


ตัวอย่าง

/* INNER JOIN */
SELECT e.emp_id,e.emp_name,d.dept_name
FROM employee as e
INNER JOIN department as d ON e.dept_id = d.dept_idORDER BY d.dept_id,e.emp_id

ความหมายคือ  เลือกพนักงานทุกคนที่มีรหัสแผนกตรงกับในตารางแผนก
หากพนักงานคนใดยังไม่รหัสแผนกคือ dept_id  ข้อมูลพนักงานรายนั้นจะไม่แสดงใน Query นี้


/* LEFT JOIN */
SELECT e.emp_id,e.emp_name,d.dept_name
FROM employee as e
LEFT JOIN department as d ON e.dept_id = d.dept_id

ความหมายคือ เลือกพนักงานทุกคนที่มีรหัสแผนกตรง หรือ ไม่ตรงกับในตารางแผนกออกมาทั้งหมด
ถึงแม้ว่าพนักงานบางรายจะยังไม่มีรหัสแผนก ข้อมูลพนักงานรายนั้นก็จะยังแสดงออกมาด้วย
เพียงแต่ว่าค่าใน column "dept_name" จะเป็นค่า NULL เท่านั้นเอง

การใช้ Alias แทนชื่อคอลัมน์เดิมในคำสั่ง SQL

ลักษณะเช่นเดียวกับการใช้ Alias แทนชื่อตาราง เพียงแต่เปลี่ยนมาใช้แทนในส่วน column name
ตัวอย่าง

SELECT e.emp_id as   employee_id, e.emp_name as employee_name
FROM  employee as e

จากตัวอย่างคือ การตั้งชื่อ column ใหม่จาก SQL Query จากเดิม emp_id เป็น employee_id
และจาก emp_name เป็น employee_name