Skip to content
Home » [Update] การใช้งานคำสั่งภาษา SQL | พนักงาน คีย์ ข้อมูล คือ – NATAVIGUIDES

[Update] การใช้งานคำสั่งภาษา SQL | พนักงาน คีย์ ข้อมูล คือ – NATAVIGUIDES

พนักงาน คีย์ ข้อมูล คือ: นี่คือโพสต์ที่เกี่ยวข้องกับหัวข้อนี้

ภาษามาตราฐานสำหรับการนิยามข้อมูล และการใช้ข้อมูล (SQL)

การกำหนดโครงสร้างข้อมูล :

โครงสร้างของภาษาเอสคิวแอล

ภาษา SQL (สามารถอ่านออกเสียงได้ 2 แบบ คือ “เอสคิวแอล” (SQL) หรือ “ซีเควล” (Sequel)) ย่อมาจาก Structured Query Language หรือภาษาในการสอบถามข้อมูล เป็นภาษาทางด้านฐานข้อมูล ที่สามารถสร้างและปฎิบัติการกับฐานข้อมูลแบบสัมพันธ์(relational database)โดยเฉพาะ และ เป็นภาษาที่มีลักษณะคล้ายกับภาษาอังกฤษ ภาษา SQLถูกพัฒนาขึ้นจากแนวคิดของ relational calculus และ relational algebra เป็นหลัก ภาษา SQL เริ่มพัฒนาครั้งแรกโดย almaden research center ของบริษัท IBM โดยมีชื่อเริ่มแรกว่า “ซีเควล” (Sequel) ต่อมาได้เปลี่ยนชื่อเป็น“เอสคิวแอล” (SQL) หลังจากนั้นภาษา SQLได้ถูกนำมาพัฒนาโดยผู้ผลิตซอฟแวร์ด้านระบบจัดการฐานข้อมูลเชิงสัมพันธ์จนเป็นที่นิยมกันอย่างแพร่หลายในปัจจุบัน โดยผู้ผลิตแต่ละรายก็พยายามที่จะพัฒนาระบบจัดการฐานข้อมูลของตนให้มีลักษณะเด่นเฉพาะขึ้นมา ทำให้รูปแบบการใช้คำสั่ง SQL มีรูปแบบที่แตกต่างกันไปบ้าง เช่น ORACLE ACCESS SQL Base ของ Sybase INGRES หรือ SQL Server ของ Microsoft เป็นต้น ดังนั้นในปี ค.ศ. 1986 ทางด้าน American National Standards Institute (ANSI) จึงได้กำหนดมาตรฐานของ SQL ขึ้น อย่างไรก็ดี โปรแกรมฐานข้อมูลที่ขายในท้องตลาด ได้ขยาย SQL ออกไปจนเกินข้อกำหนดของ ANSI โดยเพิ่มคุณสมบัติอื่นๆ ที่คิดว่าเป็นประโยชน์เข้าไปอีกแต่โดยหลักทั่วไปแล้วก็ยังปฏิบัติตามมาตราฐานของ ANSI ในการอธิบายคำสั่งต่างๆของภาษา SQL ในหนังสือเล่มนี้จะอธิบายคำสั่งที่เป็นรูปแบบคำสั่งมาตราฐานของภาษา SQLโดยทั่วไป

1.ประเภทของคำสั่งของภาษา SQL

ภาษา SQL เป็นภาษาที่ใช้งานได้ตั้งแต่ระดับเครื่องคอมพิวเตอร์ส่วนบุคคลพีซีไปจนถึงระดับเมนเฟรม ประเภทของคำสั่งในภาษา SQL (The subdivision of sql) แบ่งออกเป็น 3 ประเภท คือ

1) ภาษาสำหรับการนิยามข้อมูล (Data Definition Language : DDL) ประกอบด้วยคำสั่งที่ใช้ในการกำหนดโครงสร้างข้อมูลว่ามีคอลัมน์อะไร แต่ละคอลัมน์เก็บข้อมูลประเภทใด รวมถึงการเพิ่มคอลัมน์ การกำหนดดัชนี การกำหนดวิวหรือตารางเสมือนของผู้ใช้ เป็นต้น

2) ภาษาสำหรับการจัดการข้อมูล (Data Manipulation Language : DML) ประกอบด้วยคำสั่งที่ใช้ในการเรียกใช้ข้อมูล การเปลี่ยนแปลงข้อมูล การเพิ่มหรือลบข้อมูล เป็นต้น

3) ภาษาควบคุม (Data Control Language : DCL) : ประกอบด้วยคำสั่งที่ใช้ในการควบคุม การเกิดภาวะพร้อมกัน หรือการป้องกันการเกิดเหตุการณ์ที่ผู้ใช้หลายคนเรียกใช้ข้อมูลพร้อมกัน และคำสั่งที่เกี่ยวข้องกับการควบคุมความปลอดภัยของข้อมูลด้วยการกำหนดสิทธิของผู้ใช้ที่แตกต่างกัน เป็นต้น

2. ชนิดของข้อมูลที่ใช้ในภาษา SQL

ในภาษา SQL การบรรจุข้อมูลลงในคอลัมน์ต่าง ๆ ของตารางจะต้องกำหนดชนิดของข้อมูล (data type) ให้แต่ละคอลัมน์ ชนิดของข้อมูลนี้จะแสดงชนิดของค่าที่อยู่ในคอลัมน์ ค่าทุกค่าในคอลัมน์ที่กำหนดจะต้องเป็นชนิดเดียวกัน เช่น ในตารางลูกค้าคอลัมน์ที่เป็นรายชื่อลูกค้า จะต้องเป็นตัวหนังสือ ในขณะที่คอลัมน์จำนวนเงินที่ลูกค้าซื้อสินค้าเป็นตัวเลข

ชนิดของข้อมูลของแต่ละคอลัมน์จะขึ้นกับลักษณะของข้อมูลแต่ละคอลัมน์ ซึ่งแบ่งได้ดังนี้ชนิดข้อมูลพื้นฐานในภาษา SQL ดังนี้

2.1 ตัวหนังสือ(character) ในภาษา SQL จะใช้

– ตัวหนังสือแบบความยาวคงที่(fixed-length character) จะใช้ char (n) หรือ character(n) แทนประเภทของข้อมูลที่เป็นตัวหนังสือใดๆที่มีความยาวของข้อมูลคงที่โดยมีความยาว n ตัวหนังสือประเภทนี้จะมีการจองเนื้อที่ตามความยาวที่คงที่ตามที่กำหนดไว้ ชนิดของข้อมูลประเภทนี้จะเก็บความยาวของข้อมูลได้มากที่สุดได้ 255 ตัวอักษร

– ตัวหนังสือแบบความยาวไม่คงที่(variable-length character) จะใช้ varchar (n) แทนประเภทของข้อมูลที่เป็นตัวหนังสือใดๆที่มีความยาวของข้อมูลไม่คงที่ โดยมีความยาว n ตัวหนังสือประเภทนี้จะมีการจองเนื้อที่ตามความยาวของข้อมูล ชนิดของข้อมูลประเภทนี้จะเก็บความยาวของข้อมูลได้มากที่สุดได้ 4000 ตัวอักษร

2.2 จำนวนเลข( numeric)

– จำนวนเลขที่มีจุดทศนิยม(decimal) ในภาษา SQL จะใช้ dec(m,n) หรือ decimal(m,n) เป็นประเภทข้อมูลที่เป็นจำนวนเลขที่มีจุดทศนิยมโดย m คือจำนวนตัวเลขทั้งหมด (รวมจุดทศนิยม) และ n คือจำนวนตัวเลขหลังจุดทศนิยม

– จำนวนเลขที่ไม่มีจุดทศนิยมในภาษา SQL จะใช้ int หรือ integer เป็นเลขจำนวนเต็มบวกหรือลบขนาดใหญ่ เป็นตัวเลข 10 หลัก ที่มีค่าตั้งแต่ –2,147,483,648 ถึง +2,147,483,647 และในภาษา SQL จะใช้ smallint เป็นประเภทข้อมูลที่เป็นเลขจำนวนเต็มบวกหรือลบขนาดเล็ก เป็นตัวเลข 5 หลัก ที่มีค่าตั้งแต่ – 32,768 ถึง + 32,767 ตัวเลขจำนวนเต็มประเภทนี้จะมีการจองเนื้อที่น้อยกว่าแบบ integer

– เลขจำนวนจริง ในภาษา SQL อาจใช้ number(n)แทนจำนวนเลขที่ไม่มีจุดทศนิยมและจำนวนเลขที่มีจุดทศนิยม

2.3 ข้อมูลในลักษณะอื่นๆ

– วันที่และเวลา(Date/Time) เป็นชนิดวันที่หรือเวลาในภาษา SQL จะใช้ date เป็นข้อมูลวันที่ ซึ่งจะมีหลายรูปแบบให้เลือกใช้ เช่น yyyy-mm-dd (1999-10-31) dd.mm.yyyy(31. 10.1999) หรือ dd/mm/yyyy (31/10/1999)

3. ลักษณะการใช้งานของภาษา SQL

ภาษา SQL เป็นส่วนประกอบหนึ่งของ DBMS มักพบใน DBMS เชิงสัมพันธ์หลายตัวและเป็นที่นิยมใช้ในปัจจุบัน ภาษา SQL ง่ายต่อการเรียนรู้ การใช้งานในภาษา SQLแบ่งเป็น 2 ลักษณะ คือ ภาษา SQL ที่โต้ตอบได้ (interactive SQL)  และภาษา SQL ที่ฝังในโปรแกรม (embedded SQL)

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

SELECT SALENAME, SALECOM

FROM SALESTAB;

โดยตาราง SALESTAB มีรายละเอียดของตารางดังนี้

SALENO

SALENAME

ADDRESS

SALECOM

1001

Chaiwat
Bangkok

0.12

1002

Mitree
Puket

0.13

1004

Benjawan
Bangkok

0.11

1007

Kanjana
Chiangmai

0.15

1003

Ternjai
Nonthaburi

0.10

ผลของคำสั่งจะแสดงผลลัพธ์ดังนี้ทันที

SALENAME

SALECOM

Chaiwat

0.12

Mitree

0.13

Benjawan

0.11

Kanjana

0.15

Ternjai

0.10

(รายละเอียดจะได้ศึกษาต่อไป)

 

3.2 ภาษา SQL ที่ฝังในโปรแกรม เป็นภาษา SQL ที่ประกอบด้วยคำสั่งต่าง ๆ ของ ภาษา SQL ที่ใส่ไว้ในโปรแกรมที่ส่วนมากแล้วเขียนด้วยภาษาอื่น เช่น โคบอล ปาสคาล ภาษาซี ลักษณะของคำสั่ง SQL จะแตกต่างจากภาษาอื่นๆ ในแง่ที่ว่า SQL ไม่มีคำสั่งที่เกี่ยวกับการควบคุม(control statement)เหมือนภาษาอื่น เช่น if..then…else for…do หรือ loop หรือ while ทำให้มีข้อจำกัดในการเขียนชุดคำสั่งงาน การใช้ภาษา SQL ฝังในโปรแกรมอื่นจะทำให้ภาษา SQL มีความสามารถและมีประสิทธิภาพมากยิ่งขึ้น ผลลัพธ์ของคำสั่งที่เกิดจากภาษา SQL ที่ฝังในโปรแกรมจะถูกส่งผ่านไปให้กับตัวแปรหรือพารามิเตอร์ที่ใช้ โดยโปรแกรมที่ภาษา SQL ไปฝังตัวอยู่ เช่น

while not end-of-file(input) do

begin

readin(id-num, salesperson,loc,comm);

EXEC SQL INSERT INTO SALESTAB

VALUES(:id-num,:salesperson,:loc,:comm);

end;

จากตัวอย่างถ้าใช้คำสั่ง

INSERT INTO SALESTAB

VALUES (:id-num,:salesperson,: loc, :comm);

เพียงอย่างเดียว จะทำให้คำสั่งนี้ใส่ค่า id-num salesperson loc comm ใส่ค่าได้เพียงครั้งเดียว แต่เมื่อนำคำสั่งนี้มาใส่ไว้ในภาษาปาสคาลข้างต้นจะทำให้คำสั่งดังกล่าวมีความสามารถสูงขึ้นคือคำสั่งนี้จะสามารถทำงานซ้ำ(loop) โดยใส่ค่าต่างๆลงในตัวแปรเพื่อให้ทำซ้ำกันหลายๆครั้ง โดยจากตัวอย่างส่วนของโปรแกรมภาษาปาสคาลจะกำหนดลูปวนซึ่งจะอ่านค่าจากแฟ้มข้อมูลแล้วเก็บค่านั้นไว้ในตัวแปร id-num, salesperson, loc, comm ของตารางSALESTAB การอ่านค่าแล้วเก็บค่าไว้ในตัวแปรจะทำซ้ำจนกระทั่งข้อมูลหมดจากแฟ้มข้อมูล

ทั้งภาษา SQL ที่โต้ตอบได้และภาษา SQL ที่ฝังในโปรแกรมจะมีลักษณะของคำสั่งที่ใช้งานเหมือนกัน จะต่างกันแต่เพียงภาษา SQL ที่ฝังในโปรแกรมจะมีวิธีการเชื่อมโยงกับภาษาอื่น ๆ

ภาษาสำหรับนิยามข้อมูล

คำสั่งในภาษา SQL (The subdivision of sql) แบ่งออกเป็น 3 ประเภท คือ

– คำสั่งภาษาสำหรับการนิยามข้อมูล (Data Definition Language : DDL)

– คำสั่งภาษาสำหรับการจัดการข้อมูล (Data Manipulation Language : DML)

– คำสั่งภาษาควบคุม (Data Control Language : DCL)

1. ตารางข้อมูล

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

ตารางพนักงานขาย(SALESTAB)

SALENO

SALENAME

ADDRESS

SALECOM

1001

Chaiwat
Bangkok

0.12

1002

Mitree
Puket

0.13

1004

Benjawan
Bangkok

0.11

1007

Kanjana
Chiangmai

0.15

1003

Ternjai
Nonthaburi

0.10

คำอธิบายของคอลัมน์ต่าง ๆ ในตาราง

คอลัมน์


ชนิดข้อมูล


รายละเอียด

SALENO
Integer
เลขประจำตัวพนักงานขาย

SALENAME
Char(10)
ชื่อพนักงานขาย

ADDRESS
Char(10)
ที่อยู่ของพนักงานขาย

SALECOM
Decimal
ค่าคอมมิชชั่นของพนักงานขายตามคำสั่งซื้อ

ภาษาสำหรับนิยามข้อมูล (Data Definition Language : DDL) เป็นส่วนหนึ่งของภาษา SQL โดยเป็นภาษาที่ใช้นิยามโครงสร้างของฐานข้อมูล เพื่อทำการสร้างเปลี่ยนแปลงหรือยกเลิกโครงสร้างของฐานข้อมูลตามที่ได้ออกแบบไว้ โครงสร้างของฐานข้อมูลสามารถเรียกได้อีกอย่างว่าสคีมา (sehema) ดังนั้นภาษาสำหรับนิยามข้อมูล จึงเป็นภาษาที่ใช้ในการสร้างสคีมานั้นเอง หลังจากที่ได้มีการออกแบบฐานข้อมูลเรียบร้อยแล้วจะทำให้ทราบว่าฐานข้อมูลนั้นมีสคีมาอย่างไร และประกอบด้วยตารางใดบ้าง แต่ละตารางสัมพันธ์กันอย่างไร คีย์หลักของตารางคืออะไร เมื่อทราบถึงรายละเอียดต่างๆที่ได้จากการออกแบบฐานข้อมูลแล้วก็จะทำการสร้างตารางต่างๆที่จะใช้เป็นฐานข้อมูลลงในเครื่องคอมพิวเตอร์

2. การสร้างตาราง

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

CREATE TABLE<table name>

(<column name>< >[<size>][[ constraint <constraint_name>]constraint_type]

[,<column name>data type>[<size>],………]);

CREATE TABLE เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการสร้างตาราง

table name ชื่อตารางที่ต้องการสร้าง

column name ชื่อของคอลัมน์แต่ละคอลัมน์

data type ชนิดข้อมูลของคอลัมน์นั้นๆ

constraint ข้อกำหนดของคอลัมน์

constraint_name ชื่อของข้อกำหนดที่ต้องการสร้างให้กับคอลัมน์

constraint_type ประเภทของข้อกำหนด

ตัวอย่างที่ การสร้างตารางพนักงานขาย

CREATE TABLE SALESTAB

(SALENO integer,

SALENAME char (10),

ADDRESS char (10),

SALECOM decimal);

จากคำสั่งจะทำให้ได้ตารางพนักงานขายที่มีคอลัมน์ SALENO มีชนิดข้อมูลเป็น integer คอลัมน์ SALENAME มีชนิดข้อมูลเป็น char มีความยาว 10 ตัวอักษร คอลัมน์ ADDRESS มีชนิดข้อมูลเป็น char มีความยาว 10 ตัวอักษร และคอลัมน์ SALECOM มีชนิดข้อมูลเป็น decimal

ผลของคำสั่งการสร้างตารางจะได้ตารางพนักงานขายที่ยังไม่มีข้อมูลใดๆ เป็นเพียงแต่โครงของตารางเท่านั้นดังนี้

SALENO

SALENAME

ADDRESS

SALECOM

3. การสร้างตารางโดยมีการกำหนดข้อจำกัด

การสร้างตารางสามารถกำหนดข้อจำกัด(constraints)ลงในค่าต่างๆที่จะป้อนลงในคอลัมน์ต่างๆของตารางได้ การกำหนดข้อจำกัดเป็นการควบคุมความถูกต้องสมบูรณ์(integrity)ที่จัดเก็บในฐานข้อมูลให้มีความถูกต้องตามที่ถูกกำหนดไว้หรือตามที่ควรจะเป็น การกำหนดข้อจำกัดทำให้ข้อมูลมีความเชื่อถือได้ การกำหนดข้อจำกัดจะทำให้ข้อมูลในตารางไม่สามารถรับค่าใดๆที่ไม่ตรงกับข้อจำกัดที่กำหนดไว้ การกำหนดข้อจำกัดที่เป็นการควบคุมความถูกต้องสมบูรณ์(integrity)ได้ดังนี้

3.1 การกำหนดไม่ให้ค่าใดค่าหนึ่งเป็นค่าว่าง(NOT NULL) เป็นการกำหนดข้อมูลของคอลัมน์ใดคอลัมน์หนึ่งมีค่าว่างไม่ได้ โดยใช้คำว่า “NOT NULL” เช่น คอลัมน์ที่เป็นคีย์หลัก(primary key)ถูกระบุไม่ให้ค่าใดค่าหนึ่งเป็นค่าว่าง(NOT NULL ) หรือต้องการให้ลูกค้าทุกคนในตารางลูกค้าต้องมีข้อมูลชื่อ โดยทั่วไปการสร้างตารางถ้าในคอลัมน์ไม่ระบุคำว่า “NOT NULL” คอลัมน์นั้นจะถูกระบุให้เป็นค่า NULL โดยปริยาย(DEFAULT) นั่นคือคอลัมน์นั้นสามารถมีค่าว่างได้(NULL)

ตัวอย่าง สมมติว่าต้องการกำหนดให้ตารางพนักงานขายในคอลัมน์ SALENO และ คอลัมน์ SALENAMEไม่ให้เป็นค่าว่าง(NOT NULL ) จะสามารถสร้างตารางพนักงานด้วยคำสั่งดังนี้

CREATE TABLE SALESTAB

(SALENO integer NOT NULL,

SALENAME char(10) NOT NULL,

ADDRESS char(10),

SALECOM decimal);

3.2 การกำหนดไม่ให้มีค่าซ้ำกัน(UNIQUE) เป็นการสร้างตารางโดยกำหนดให้คอลัมน์นั้นทั้งตารางไม่ให้มีค่าซ้ำกัน โดยใช้คำว่า “UNIQUE” เช่น คอลัมน์รหัสพนักงานที่เป็นคีย์หลัก และไม่ต้องการให้มีค่าซ้ำ จะใช้คำว่า UNIQUE เป็นการระบุข้อจำกัดนี้

ตัวอย่าง สมมติว่าต้องการกำหนดให้ตารางพนักงานขายในคอลัมน์ SALENO และ คอลัมน์ SALENAMEไม่ให้เป็นค่าว่าง(NOT NULL ) และไม่ให้มีค่าซ้ำกัน จะสามารถสร้างตารางพนักงานด้วยคำสั่งดังนี้

CREATE TABLE SALESPEOPLE

(SALENO integer NOT NULL UNIQUE,

SALENAME char(10) NOT NULL UNIQUE,

ADDRESS char(10),

SALECOM decimal);

3.3. การกำหนดคีย์หลัก(primary key) สามารถกำหนดได้ 2 วิธีคือ

1) การกำหนดให้คอลัมน์เดียวเป็นคีย์หลัก

ตัวอย่าง สมมติว่าต้องสร้างตารางพนักงานที่กำหนดให้คอลัมน์ SALENO เป็น คีย์หลัก(primary key) โดยไม่ให้มีค่าซ้ำกัน และคอลัมน์ SALENAMEไม่ให้เป็นค่าว่าง(NOT NULL) และไม่ให้มีค่าซ้ำกัน จะสามารถสร้างตารางพนักงานด้วยคำสั่งดังนี้

CREATE TABLE SALESPEOPLE

(SALENO integer NOT NULL UNIQUE PRIMARY KEY,

SALENAME char(10) NOT NULL UNIQUE,

ADDRESS char(10),

SALECOM decimal);

2) การกำหนดให้คอลัมน์มากกว่า 1 คอลัมน์เป็นคีย์หลัก ในบางครั้งการอ้างอิงคีย์หลัก อาจต้องใช้คอลัมน์มากกว่า 1 คอลัมน์เป็นคีย์หลัก

ตัวอย่าง สมมติว่าต้องสร้างตาราง NAMEFIELD โดยกำหนดให้คอลัมน์ FIRSTNAME และคอลัมน์ LASTNAME เป็น คีย์หลัก(primary key) จะสามารถสร้างตาราง NAMEFIELD ด้วยคำสั่งดังนี้

CREATE TABLE NAMEFIELD

(FIRSTNAME char(10) NOT NULL ,

LASTNAME char(10) NOT NULL UNIQUE,

CITY char(10),

PRIMARY KEY (FIRSTNAME LASTNAME ));

3.4 การกำหนดคีย์นอก(foreign key ) คีย์นอกเป็นคอลัมน์ของตารางหนึ่งที่ใช้เชื่อมโยงหรืออ้างอิงข้อมูลกับอีกตารางหนึ่งที่มีคอลัมน์ที่มีชื่อคอลัมน์เดียวกัน เช่น ลูกค้าในตารางลูกค้า แต่ละคนมีคอลัมน์ SALENO ที่อยู่ในตารางพนักงานขาย

หากกำหนดคีย์นอกเป็นข้อจำกัดในระดับคอลัมน์จะใช้คำสั่ง REFERENCE ต่อท้ายประเภทและขนาดของคอลัมน์ที่เป็นคีย์นอก

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

ตัวอย่าง ถ้าต้องการสร้างตารางลูกค้า( CUSTOMERSTAB) โดยกำหนดให้คอลัมน์CUSNO เป็น PRIMARY KEY และคอลัมน์SALENO เป็นคีย์นอก (foreign key) ที่ใช้เชื่อมโยงหรืออ้างอิงข้อมูลกับตารางพนักงานขาย( SALESTAB) โดยใช้คำสั่งดังนี้

CREATE TABLE CUSTOMERSTAB

(CUSNO integer NOT NULL PRIMARY KEY,

CUSNAME char(10) ,

ADDRESS char(10),

SALENO integer,

FOREIGN KEY (SALENO) REFERENCES SALESTAB(SALENO));

หรือ

CREATE TABLE CUSTOMERSTAB

(CUSNO integer NOT NULL PRIMARY KEY,

CUSNAME char(10) ,

ADDRESS char(10),

SALENO integer REFERENCES SALESTAB(SALENO));

การกำหนดคีย์นอก (foreign key ) เป็นคอลัมน์ของตารางหนึ่งที่ใช้เชื่อมโยงหรืออ้างอิงข้อมูลกับอีกตารางหนึ่ง จะทำให้การปรับปรุงตารางมีผลต่อตารางอ้างอิง คำสั่งที่มีผลต่อการปรับปรุงตาราง ได้แก่คำสั่ง ”CASCADES” และ “RESTRICTED” ทั้ง 2 คำสั่งนี้ใช้เพื่อควบคุมความถูกต้องครบถ้วนสมบูรณ์ในการอ้างอิงข้อมูล(referential integrity) ดังตัวอย่างต่อไปนี้

CREATE TABLE CUSTOMERSTAB

(CUSNO integer NOT NULL PRIMARY KEY,

CUSNAME char(10) ,

ADDRESS char(10),

SALENO integer REFERENCES SALESTAB(SALENO)

UPDATE OF SALESTAB CASCADES,

DELETE OF SALESTAB RESTRICTED);

ผลของคำสั่งนี้จะทำให้เมื่อต้องการปรับปรุงตารางที่สร้างขึ้นหรือตารางที่อ้างอิงถึง จะต้องมีเงื่อนไขในการปรับปรุง โดย

– คำสั่ง UPDATE OF SALESTAB CASCADES จะทำให้เมื่อมีการปรับปรุงคอลัมน์SALENOในตารางลูกค้าจะทำให้คอลัมน์ SALENOในตารางพนักงานขายถูกปรับปรุงไปด้วย

– คำสั่ง DELETE OF SALESTAB RESTRICTED จะทำให้เมื่อต้องการลบคอลัมน์SALENOในตารางลูกค้าจะไม่สามารถลบได้ ถ้าคอลัมน์SALENOในตารางพนักงานขายยังมีข้อมูลอยู่

จากตัวอย่างสมมุติว่าต้องการลบ Chaiwat ออกจากตารางพนักงานขาย (SALESTAB) คำสั่งนี้ก็จะไม่เป็นที่ยอมรับ นอกเสียจากเปลี่ยนค่าคอลัมน์ SALENO ของลูกค้าชื่อ Arlee และ Surasit ไปเป็น SALENO ของพนักงานขายผู้อื่น หรือกล่าวอีกอย่างหนึ่งว่าจะเปลี่ยนค่า SALENO ของ Chaiwat เป็น 1009 แล้ว ในตารางลูกค้า Arlee และ Surasit ก็จะเปลี่ยนค่า SALENO ของทั้งสองคนนั้นตามไปด้วยโดยอัตโนมัติ

3.5  การกำหนดการตรวจสอบ(CHECK) การตรวจสอบความถูกต้องครบถ้วนสมบูรณ์ของข้อมูล(entity integrity)โดยการระบุเงื่อนไขหรือกำหนดค่าเฉพาะของคอลัมน์ใดคอลัมน์หนึ่งขึ้น หากมีการป้อนข้อมูลที่ผิดจากเงื่อนไขที่ระบุไว้ ค่านั้นก็จะถูกปฎิเสธหรือไม่ยอมรับ การตรวจสอบจะใช้คำสั่ง CHECK <เงื่อนไข>ต่อท้ายชนิดและขนาดของข้อมูลคอลัมน์

ตัวอย่าง สมมติว่าต้องการกำหนดให้ตารางพนักงานขายในคอลัมน์ SNUM และ SNAME ไม่ให้เป็นค่าว่าง (NOT NULL ) และในคอลัมน์ SALENO และคอลัมน์ SALENAME ไม่ให้มีค่าซ้ำกันพร้อมทั้งกำหนดให้ คอลัมน์ SALECOM ชนิดข้อมูลที่ป้อนลงไปจะเป็นเลขทศนิยมเท่านั้น จะสามารถสร้างตารางพนักงานด้วยคำสั่งดังนี้

CREATE TABLE SALESPEOPLE

(SALENO integer NOT NULL UNIQUE,

SALENAME char(10) NOT NULL UNIQUE,

CITY char(10),

SALECOM decimal CHECK (salecom < 1);

4.ข้อคำนึงในการใช้คำสั่งสร้างตาราง

4.1 ในการสร้างตารางแต่ละตารางอย่างน้อยที่สุดต้องกำหนดคอลัมน์ได้ 1 คอลัมน์

4.2 รายละเอียดของแต่ละคอลัมน์แยกจากกันด้วยเครื่องหมาย comma (,)

4.3 สิ้นสุดคำสั่งด้วยเครื่องหมาย semicolon (;)

*หมายเหตุ ข้อคำนึงเหล่านี้อาจมีความแตกต่างกันไปบ้าง ขึ้นอยู่กับผู้ผลิตแต่ละราย

5.การลบโครงสร้างตารางออกจากระบบ

เมื่อต้องการลบโครงสร้างตารางที่ถูกสร้างขึ้นจะสามารถทำได้ด้วยคำสั่ง DROP TABLE ซึ่งมีรูปแบบทั่วไปดังนี้

DROP TABLE <table name>[CASCADE CONSTRAINTS];

DROP TABLE                         เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการลบโครงสร้างตาราง

table name                       ชื่อตารางที่ต้องการลบ

CASCADE CONSTRAINTS ระบบจัดการฐานข้อมูลจะทำการลบข้อจำกัดต่างๆ(constraint) ที่มีการอ้างถึงตารางทิ้งไปให้ด้วยทั้งหมด

ตัวอย่าง ถ้าต้องการลบตารางพนักงานขาย (SALESTAB) จะใช้คำสั่งดังนี้

DROP TABLE SALESTAB;

ผลของคำสั่งการลบโครงสร้างตาราง จะทำให้ข้อมูลถูกลบไปด้วยจะทำให้ดัชนี( index) ทุกตัวและตารางเสมือนหรือวิวที่สร้างขึ้นสำหรับตารางSALESTABนี้ จะถูกลบไปพร้อมๆกันด้วย เมื่อมีการใช้คำสั่งลบโครงสร้างตารางเกิดขึ้นก่อนที่จะลบโครงสร้างตารางข้อมูล DBMS จะเตือนผู้ใช้ถึงผลที่เกิดจากการลบโครงสร้างตาราง

6. การเปลี่ยนแปลงโครงสร้างตาราง

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

– ALTER TABLE ที่ใช้ในการเพิ่มคอลัมน์

– ALTER TABLE ที่ใช้ในการเปลี่ยนชื่อคอลัมน์

คำสั่ง ALTER TABLE เป็นคำสั่งที่ใช้ในการแก้ไขปรับปรุงโครงสร้างตาราง เมื่อจำเป็นที่ต้องปรับปรุงจากโครงสร้างเดิมตามที่ได้กำหนดไว้ตั้งแต่สร้างตารางในครั้งแรก คำสั่ง ALTER TABLE มีรูปแบบดังนี้

ALTER TABLE <table name>

Database update(<column_name> data type [SIZE]);

ALTER TABLE                      เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเปลี่ยนแปลงโครงสร้างตาราง

table name                           ชื่อตารางที่จะเปลี่ยนแปลง

Database update                คำสั่งการเปลี่ยนแปลง

column_name                      ชื่อคอลัมน์

data type [SIZE] ชนิดข้อมูลและขนาดของข้อมูล

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

ALTER TABLE SALESPEOPLE ADD SALESTAB_FAX CHAR(15);

ผลของคำสั่งจะทำให้ตารางพนักงานขายมีคอลัมน์ SALESTAB_FAX ทีมีชนิดข้อมูลเป็น charมีความยาว 15 ตัวอักษรเพิ่มขึ้น

ตัวอย่าง ถ้าต้องการเปลี่ยนแปลงโครงสร้างตารางโดยการเปลี่ยนชื่อคอลัมน์จะใช้คำสั่งดังนี้

ALTER TABLE SALESPEOPLE RENAME ADDRESS TO COUNTRY;

ผลของคำสั่งจะทำให้ตารางพนักงานขาย ที่เดิมมีคอลัมน์ชื่อ ADDRESS ต้องเปลี่ยนชื่อเป็น COUNTRY แทน

7. ข้อแตกต่างระหว่างคีย์หลักและดัชนี

คีย์หลักได้แก่ คอลัมน์ 1 คอลัมน์หรือหลายคอลัมน์ที่ทำให้แต่ละแถวในตารางข้อมูลมีค่าของข้อมูลที่ไม่ซ้ำกัน(unique) เช่น คอลัมน์รหัสลูกค้า( CUSNO) ของตารางลูกค้า( CUSTOMERTAB) ซึ่งใช้แทนรหัสลูกค้าแต่ละคนจะมีรหัสประจำตัวไม่ซ้ำกัน คีย์หลักเป็นพื้นฐานในการเชื่อมโยงกันระหว่างตารางและควบคุมความถูกต้องครบถ้วนสมบูรณ์(integrity) ในการตรวจสอบความซ้ำกันของข้อมูลระหว่างที่ทำการป้อนข้อมูลหรือกำหนดข้อมูลใหม่ให้กับตาราง ส่วนดัชนีเป็นการสร้างโดยการเลือกคอลัมน์ใดคอลัมน์หนึ่งหรือหลายคอลัมน์จากตารางขึ้นมาเป็นดัชนี โดยในตารางหนึ่งๆ สามารถมีดัชนีได้หลายดัชนี คอลัมน์ที่จะเลือกเป็นดัชนีควรจะมีค่าของข้อมูลไม่ซ้ำกัน (unique)ในแต่ละแถว ถ้าเลือกคอลัมน์ที่เป็นดัชนีที่สามารถมีค่าว่างได้จะทำให้ DBMSไม่สามารถนำดัชนีที่เป็นค่าว่างนั้นไปค้นหาข้อมูลในฐานข้อมูลได้ การสร้างดัชนีก็เพื่อเป็นตัวนำทางในการสืบค้นข้อมูลให้เร็วขึ้น

8. การสร้างดัชนี

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

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

การสร้างดัชนีมีรูปแบบคำสั่งของการสร้างดังนี้

CREATE INDEX <index name>

ON <table name>(<column>name>[,<column name>]..);

CREATE INDEX           เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการสร้างดัชนี

index name                  ชื่อดัชนี

table name                   ชื่อตารางที่จะสร้างดัชนี

ตัวอย่าง ถ้าตารางลูกค้าเป็นตารางที่พนักงานขายอ้างถึงบ่อยที่สุดเพื่อถามหาลูกค้าของตนเองแล้ว ก็ควรสร้างดัชนีขึ้นในคอลัมน์พนักงาน( SALENO) ของตารางลูกค้า จะใช้คำสั่งดังนี้

CREATE UNIQUE INDEX CLIENTGROUP ON CUSTOMERSTAB(SALENO);

จากคำสั่ง “UNIQUE” เป็นการระบุว่าดัชนี( index) ที่สร้างขึ้นในคอลัมน์ CLIENTGROUP ซึ่งในคอลัมน์นี้จะมีค่าที่ซ้ำกันไม่ได้ และจะใช้คอลัมน์ SALENO เป็นข้อมูลในการค้นหา ผลของคำสั่งตารางลูกค้าจะมี CLIENTGROUP เป็นดัชนี( index) ในการค้นหาข้อมูล โดยเรียงลำดับตามข้อมูลในคอลัมน์ SALENO ของตารางลูกค้า index คอลัมน์CLIENTGROUP ที่สร้างขึ้นนี้จะไม่ถูกเก็บไว้ในตารางลูกค้า แต่จะถูกเก็บไว้แยกต่างหากในหน่วยความจำของเครื่องคอมพิวเตอร์

9. การลบดัชนีของตาราง

เมื่อต้องการจบดัชนีที่สร้างขึ้น ก็สามารถทำได้ด้วยคำสั่ง DROP INDEX แล้วตามด้วยชื่อดัชนีที่ต้องการลบ โดยคำสั่งการลบดัชนีมีรูปแบบทั่วไปดังนี้

DROP INDEX <index name>;

DROP INDEX       เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการลบดัชนี

index name          ชื่อดัชนี

ในการลบดัชนีออกไปจะไม่มีผลกระทบกับรายละเอียดในคอลัมน์ต่าง ๆ ภายในตารางแต่อย่างไรเพราะดัชนีที่สร้างขึ้นไม่ได้บรรจุไว้ในตาราง

ตัวอย่าง ถัาต้องการลบดัชนีชื่อ CLIENTGROUP ใช้คำสั่งดังนี้

DROP INDEX CLIENTGROUP ;

ผลของคำสั่งนี้จะทำให้ดัชนีชื่อ CLIENTGROUP ที่เดิมเป็นดัชนีของตารางลูกค้าได้ถูกลบออกไป ทำให้ตารางลูกค้าไม่มีดัชนีดังกล่าว

การบันทึกข้อมูล การปรับปรุงข้อมูล การลบข้อมูลและการเรียกข้อมูลอย่างง่าย :

การบันทึกข้อมูล การปรับปรุงข้อมูลและการลบข้อมูล

ในระบบฐานข้อมูล การบันทึกข้อมูล การปรับปรุงข้อมูลและการลบข้อมูลถือเป็นสิ่งสำคัญ ในภาษา SQL มีภาษาสำหรับการจัดการข้อมูล (Data manipulation Language : DML) ซึ่งเป็นภาษาที่ใช้ในการบันทึกข้อมูล การปรับปรุงข้อมูลและการลบข้อมูล ภาษาสำหรับการจัดการข้อมูล เป็นส่วนประกอบหนึ่งในภาษา SQL โดยภาษาสำหรับการจัดการข้อมูลใช้สำหรับจัดการข้อมูลภายในตารางของฐานข้อมูล ในการใช้คำสั่งที่เป็นภาษาสำหรับนิยามข้อมูลของภาษา SQL เช่น CREATE TABLE จะทำให้ได้โครงสร้างตารางว่างๆ ที่ยังไม่มีข้อมูลใดๆเก็บอยู่ คำสั่งในภาษาสำหรับการจัดการข้อมูลจะเป็นคำสั่งที่ช่วยในการจัดการข้อมูลภายในโครงสร้างตารางที่สร้างขึ้น ตัวอย่างของคำสั่งในภาษาสำหรับการจัดการข้อมูล จะเป็นคำสั่งการปรับปรุงข้อมูล ได้แก่ การเพิ่มข้อมูล (INSERT) การปรับปรุง (UPDATE) และ การลบข้อมูล (DELETE)ซึ่งจะกล่าวต่อไป และคำสั่งการเรียกค้นข้อมูลได้แก่คำสั่ง(SELECT)ซึ่งจะกล่าวในเรื่องต่อไป

คำสั่งที่ใช้ในการปรับปรุงข้อมูลของภาษา SQL คือ การเพิ่มข้อมูล (INSERT) การปรับปรุงข้อมูล (UPDATE) และ การลบข้อมูล (DELETE) เป็นคำสั่งในภาษาการจัดการข้อมูล เมื่อโครงสร้างหลักของตารางได้ถูกกำหนดขึ้นเรียบร้อยแล้ว ก็จะทำการบันทึกข้อมูลลงในตารางหลักหรืออาจทำการปรับปรุง หรือลบข้อมูลในภายหลัง คำสั่งทั้ง 3 นี้ เมื่อดำเนินการในภาษา SQL จะไม่แสดงผลลัพธ์ออกมาทางหน้าจอ แต่ผลของคำสั่งจะมีผลต่อข้อมูล ผู้ใช้สามารถดูผลของการใช้คำสั่งในการเพิ่มข้อมูล การปรับปรุงและการลบข้อมูล โดยใช้คำสั่งการเรียกค้นข้อมูล(SELECT)

1. คำสั่งการเพิ่มข้อมูล

คำสั่งการเพิ่มข้อมูลในตารางจะใช้คำสั่ง INSERT จะมีอยู่ 2 รูปแบบคือ การเพิ่มข้อมูลเข้าไปทีละแถว และ การเพิ่มข้อมูลโดยการดึงกลุ่มข้อมูลด้วยคำสั่งค้นหาข้อมูล

1.1 คำสั่งการเพิ่มข้อมูลทีละแถวโดยระบุข้อมูลที่จะ INSERTเข้าไปโดยตรง รูปแบบของคำสั่งเป็นดังนี้

INSERT INTO <tablename>[(column 1, column 2,…)]

VALUE(<value1,value2, …>);

INSERT INTO                       เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเพิ่มข้อมูล

tablename                            ชื่อตารางที่จะเพิ่มข้อมูล

column 1, column 2,…       คอลัมที่ต้องการเพิ่มข้อมูล

value1,value2,                      ค่าข้อมูลของแต่ละคอลัมภ์ที่ต้องการเพิ่ม

ตัวอย่าง ถ้าต้องการจะใส่ข้อมูลทุกคอลัมน์ลงในตารางลูกค้า

INSERT INTO SALESTAB

VALUES( 1001, “Chaiwat”, “Bangkok”,0.12);

ผลของคำสั่งนี้ จะมีข้อมูลปรากฎในทุกคอลัมน์ในตารางพนักงานขายดังนี้

SALENO

SALENAME

ADDRESS

SALECOM

1001
Chaiwat
Bangkok
0.12

 

ตัวอย่าง ถ้าต้องการจะใส่ข้อมูลบางคอลัมน์ เช่น ชื่อเมือง Bangkok ชื่อลูกค้า Arlee และหมายเลขลูกค้า 2001 ลงในตารางลูกค้า ใช้คำสั่งดังนี้

INSERT INTO CUSTOMERSTAB(ADDRESS,CUSNAME,CUSNO)

VALUES( ‘Bangkok’,’Arlee’, 2001);

ผลของคำสั่งในตารางลูกค้า จะทำให้คอลัมน์ ADDRESS มีค่าเป็น Bangkok คอลัมน์ CUSNAME จะมีค่าเป็น Arlee คอลัมน์ CUSNO จะมีค่าเป็น 2001ดังนี้

CUSNO
CUSNAME
ADDRESS
RATING
SALENO

2001
Arlee
Bangkok

จะเห็นว่าไม่ได้ใส่ค่าในคอลัมน์ RATING และ SALENO ไว้ ดังนั้นทั้งสองคอลัมน์นี้จะมีค่าเป็น NULL โดยอัตโนมัติ

1.2 คำสั่งการเพิ่มข้อมูลโดยการดึงกลุ่มข้อมูลด้วยคำสั่งค้นหาข้อมูล ในภาษา SQL สามารถใช้คำสั่ง INSERT ในการนำค่าหรือหาค่าจากตารางหนึ่งแล้วไปใส่ไว้ในอีกตาราหนึ่งได้ โดยได้ค่านั้นมาจากการสอบถามข้อมูล รูปแบบเป็นดังนี้

INSERT INTO <table name>[(column 1, column 2,…)]

SELECT statement;

INSERT INTO                       เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเพิ่มข้อมูล

tablename                            ชื่อตารางที่จะเพิ่มข้อมูล

SELECT statement              ประโยคคำสั่ง SELECTที่ต้องการข้อมูลอีกตารางหนึ่ง

ตัวอย่าง ถ้าต้องการใส่ข้อมูลพนักงานลงในตาราง BANGKOKSTAFF โดยข้อมูลที่จะใส่ลงไปนั้นได้มาจากตารางพนักงานขายที่อาศัยอยู่ใน “Bangkok“

INSERT INTO BANGKOKSTAFF

SELECT *

FROM SALESTAB

WHERE ADDRESS = ‘Bangkok’;

ผลของคำสั่งนี้จะทำให้ได้ข้อมูลพนักงานที่อยู่ในเมือง Bangkok ( ADDRESS = ‘Bangkok’) ทั้งหมดไปใส่ไว้ในตาราง BANGKOKSTAFF โดยตาราง BANGKOKSTAFF ได้ถูกสร้างไว้แล้วด้วยคำสั่ง CREATE TABLE ในการสร้างตาราง BANGKOKSTAFF จะต้องสร้างให้มี 4 คอลัมน์และมีชนิดข้อมูลตรงกับคอลัมน์ของตารางพนักงานขาย (โดยไม่จำเป็นต้องมีชื่อคอลัมน์เหมือนกัน)

2. คำสั่งปรับปรุงแถวข้อมูล

หลังจากที่ป้อนข้อมูลเข้าไปเก็บไว้ในตารางแล้ว กรณีที่ต้องการปรับปรุงแก้ไขข้อมูลสามารถทำได้ด้วยภาษา SQL การปรับปรุงแถวข้อมูลเป็นการปรับปรุงหรือแก้ไขค่าคอลัมน์ ซึ่งในคำสั่งปรับปรุงข้อมูลอาจมีมากกว่า 1 คอลัมน์ในแถวทุกแถวที่มีเงื่อนไขสอดคล้องกับที่ระบุไว้หลังคำว่า WHERE

รูปแบบของคำสั่งปรับปรุงแถวข้อมูลมีดังนี้

UPDATE <table name> SET <column 1>[, column 2,…] = <expression |sunquery>

[WHERE<condition>];

UPDATE                        เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการปรับปรุงข้อมูล

table name                   ชื่อตารางที่ต้องการปรับปรุง

SET <column >           ชื่อคอลัมน์ที่ต้องการปรับปรุง

expression                    ค่าข้อมูลที่ต้องการปรับปรุง

WHERE<condition>   เงื่อนไขในการปรับปรุง

ตัวอย่าง ถ้าต้องการเปลี่ยนค่า RATING ของลูกค้าทั้งหมดในตารางลูกค้าให้เป็น 200 จะต้องป้อนคำสั่งดังนี้

UPDATE CUSTOMERSTAB

SET RATING = 200;

ผลของคำสั่งจะทำให้คอลัมน์ RATING ของตารางลูกค้ามีค่าเป็น 200 ทุกแถวและเมื่อเข้าไปดูข้อมูลในตารางลูกค้าจะปรากฎข้อมูลดังนี้

หากต้องการจะเปลี่ยนเฉพาะแถวใดแถวหนึ่งเท่านั้นก็สามารถทำได้ดังนี้

ตัวอย่าง ถ้าต้องการจะเปลี่ยนค่า RATING ให้กับลูกค้าทั้งหมด ที่มีหมายเลขประจำตัวพนักงานขาย(SALENO) เป็น 1001 ให้มีค่า RATINGเป็น 200

UPDATE CUSTOMERSTAB

SET RATING = 200

WHERE SALENO = 1001;

ผลของคำสั่งจะทำให้ตารางลูกค้าเดิมเปลี่ยนเป็นตารางใหม่ในตารางใหม่นี้ ลูกค้าทั้งหมดที่มีหมายเลขประจำตัวเป็น 1001 จะมีค่า RATING เป็น 200 ดังนี้

3. คำสั่งการลบข้อมูลทั้งแถว

คำสั่งในการลบแถวข้อมูล เป็นคำสั่งที่ใช้ในการลบแถวข้อมูลทุกแถวที่มีเงื่อนไขสอดคล้องกับที่ระบุไว้หลัง WHERE คำสั่งการลบข้อมูลมีรูปแบบทั่วไปดังนี้

DELETE FROM <table name>

[WHERE<condition>];

DELETE FROM                    เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการลบข้อมูล

table name                           ชื่อตารางที่ต้องการลบข้อมูล

WHERE<condition>           เงื่อนไขในการลบข้อมูล

ตัวอย่าง ถ้าต้องการลบแบบมีเงื่อนไข เช่น ต้องการลบพนักงานขายชื่อ Ternjai ซึ่งมีหมายเลขพนักงาน (SALENO)=1003 ออกจากตารางจะใช้คำสั่งว่า

DELETE FROM SALESTAB

WHERE SALENO = 1003;

ผลของคำสั่งจากตารางพนักงานขายเดิมจะทำให้ได้ตารางใหม่ดังนี้

ตารางพนักงานขาย(SALESTAB)

SALENO
SALENAME
ADDRESS
SALECOM

1001
Chaiwat
Bangkok
0.12

1002
Mitree
Puket
0.13

1004
Benjawan
Bangkok
0.11

1007
Kanjana
Chiangmai
0.15

1003
Ternjai
Nonthaburi
0.10

SALENO

SALENAME

ADDRESS

SALECOM

1001
Chaiwat
Bangkok
0.12

1002
Mitree
Puket
0.13

1004
Benjawan
Bangkok
0.11

1007
Kanjana
Chiangmai
0.15

โดยปกติแล้วการลบข้อมูลจะกระทำการลบเพียงบางแถวของตารางเท่านั้น การลบแถวต่าง ๆ ออกจากตารางด้วยคำสั่งในการปรับปรุงคือคำสั่ง DELETE คำสั่งนี้จะลบแถวทั้งแถวแต่ไม่สามารถลบค่าเพียงคอลัมน์ใดคอลัมน์หนึ่ง

ตัวอย่าง ถ้าต้องการลบรายละเอียดทั้งหมดของตารางพนักงานขายจะต้องป้อนคำสั่งต่อไปนี้

DELETE FROM SALESTAB;

ในตารางพนักงานขายก็จะว่างไม่มีค่าใดๆ อยู่แต่ตารางยังปรากฎอยู่ ถ้าต้องการตารางออกไปจะใช้คำสั่ง DROP TABLE

ตัวอย่าง ถ้าต้องการลบตาราง SALESTABใช้คำสั่งดังนี้

DROP TABLE SALESTAB;

การเรียกค้นข้อมูลอย่างง่าย

การเรียกค้นข้อมูลเป็นการสอบถามข้อมูลหรือ “Query” โดยการนำข้อมูลจากฐานข้อมูลมาแสดงออกทางจอภาพ การสอบถามข้อมูลนี้ในภาษา SQL ใช้คำสั่ง SELECT โดยการเรียกค้นข้อมูลจะเป็นไปตามเงื่อนไขที่ผู้ใช้ข้อมูลระบุ

1. การเรียกค้นดูทุกคอลัมน์ในตาราง

คำสั่ง SELECT แบบง่ายมีรูปแบบดังนี้

SELECT *

FROM <table name>;

SELECT *              เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเรียกค้นข้อมูลทุกคอลัมน์

FROM                     เป็นการกำหนดว่าให้เรียกดูข้อมูล ได้จากตารางใดบ้าง

table name           ชื่อตารางที่ต้องการเรียกค้นข้อมูล

การเรียกดูข้อมูลสามารถเรียกดูได้มากกว่า 1 คอลัมน์ขึ้นไป โดยถ้ามีมากกว่า 1 คอลัมน์ แต่ละคอลัมน์จะต้องคั่นด้วยเครื่องหมายคอมม่า(,) และถ้าต้องการดูทุกคอลัมน์จะใช้เครื่องหมาย ดอกจัน(*) หลัง SELECT การใช้คำสั่ง SELECT จะใช้ควบคู่กับคำสั่ง FROM เสมอในการเลือกตาราง

การใช้คำสั่ง SELECT ในการเรียกค้นข้อมูลทุกคอลัมน์ในตารางจะใช้เครื่องหมายดอกจัน(*) ตามหลังคำสั่ง SELECT

ตัวอย่าง ตาราง CHECKS

CHECK#

PAYEE

AMOUNT

REMARKS

1.
Malee Benjanee
150
Have sons next time

2.
Reading R.R
24534
Train to Chiangmai

3.
Malee Benjanee
20032
Cellular Phone

4.
Surasit Utities
98
Gas

5.
Jintana $ Mitree
150
Groesries

6.
Cash
25
Wild Night Out

7.
Benjawan Gas
251
Gas

 

ตัวอย่าง ถ้าต้องการดูทุกคอลัมน์ในตารางก็จะใช้เครื่องหมายดอกจัน(*) แทนรายการคอลัมน์ได้ทั้งหมดได้ดังนี้

select * from checks;

ผลลัพธ์

CHECK#
PAYEE
AMOUNT
REMARKS

1.
Malee Benjanee
150
Have sons next time

2.
Reading R.R
24534
Train to Chiangmai

3.
Malee Benjanee
20032
Cellular Phone

4.
Surasit Utities
98
Gas

5.
Jintana $ Mitree
150
Groesries

6.
Cash
25
Wild Night Out

7.
Benjawan Gas
251
Gas

จากคำสั่ง select * จะเป็นการบอกให้นำข้อมูลทั้งจากตาราง CHECKS มา แสดง (from checks) โดยลำดับตามคอลัมน์ในฐานข้อมูล

2. การเรียกค้นข้อมูลเฉพาะคอลัมน์ใดๆในตารางและการเปลี่ยนลำดับคอลัมน์

การใช้คำสั่ง SELECT ในการเรียกค้นข้อมูลเฉพาะคอลัมน์ที่สนใจทำได้โดยใส่เฉพาะคอลัมน์ที่ต้องการดูในส่วนของคำสั่ง SELECT มีรูปแบบคังนี้

SELECT <column 1, column 2,…>

FROM <table name>;

SELECT                        เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเรียกค้นข้อมูล

column 1, column 2,…เป็นคอลัมน์ที่ต้องการเรียกค้น

FROM                             เป็นการกำหนดว่าให้เรียกดูข้อมูลได้จากตารางใดบ้าง

table name                   ชื่อตารางที่ต้องการเรียกค้นข้อมูล

การเลือกบางคอลัมน์

ตัวอย่าง ถ้าต้องการแสดงข้อมูลบางคอลัมน์จะใช้ เช่น ถ้าต้องการดูคอลัมน์ CHECK# และ AMOUNTใช้คำสั่งดังนี้

SELECT CHECK#, amount from checks;

ผลลัพธ์

CHECK#

AMOUNT

1

150

2

24534

3

20032

4

98

5

150

6

25

7

251

จะเห็นได้ว่าเราสามารถใช้ทั้งอักษรตัวใหญ่และตัวเล็กปนกันในคำสั่ง ซึ่งอักษรตัวใหญ่และตัวเล็กจะไม่มีความแตกต่างกัน

ตัวอย่าง ถ้าต้องแสดงข้อมูลโดยการเปลี่ยนลำดับคอลัมน์ของข้อมูล จะใช้คำสั่งดังนี้

SELECT PAYEE, REMARKS, AMOUNT, CHECK#

FROM checks;

ผลลัพธ์

 

PAYEE

REMARKS

AMOUNT

CHECK#

Malee Benjanee
Have sons next time

150

1

Reading R.R.
Train to Chiangmai

24534

2

Malee Benjanee
Cellular Phone

20032

3

Surasit Utilities
Gas

98

4

Jintana $ Mitree
Groesries

150

5

Cash
Wild Night Out

25

6

Benjawan Gas
Gas

251

7

3.การเรียกค้นข้อมูลกับคำสั่ง Distinction

จากตาราง CHECKS ถ้าต้องการดูคอลัมน์ AMOUNT เป็นดังนี้

select amount from checks;

ผลลัพธ์

AMOUNT

150

24534

20032

98

150

25

251

จากผลลัพธ์จะเห็นว่าในคอลัมน์ AMOUNT มีข้อมูลที่ซ้ำกันอยู่คือ 150 ถ้าใช้คำสั่ง Distinct ในคำสั่ง SELECT จะทำให้ข้อมูลที่ซ้ำกันนั้นแสดงออกมาเพียงครั้งเดียวดังนี้

select DISTINCT amount from checks;

ผลลัพธ์

AMOUNT

25

251

98

150

20032

24534

จะเห็นว่าจะแสดงข้อมูลออกมาเพียง 6 แถวเท่านั้น

4.การใช้คำสั่ง SELECT กับ WHERE

 

SELECT <column 1, column 2,…>

FROM <table name>

[WHERE<condition>];

SELECT                                เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเรียกค้นข้อมูล

column 1, column 2,…       คอลัมน์ที่ต้องการเรียกค้น

FROM                                     เป็นการกำหนดว่าให้เรียกดูข้อมูล ได้จากตารางใดบ้าง

table name                           ชื่อตารางที่ต้องการเรียกค้นข้อมูล

WHERE<condition>           ส่วนของคำสั่งที่บอกเงื่อนไขที่จะใช้ในการค้นหาข้อมูล

การใช้ WHERE ในคำสั่ง SELECT จะช่วยให้สามารถสืบค้นข้อมูลได้อย่างเจาะจงมากกว่า เช่น ถ้าใช้เฉพาะ SELECT อย่างเดียวจะได้ข้อมูลทั้งหมด ตัวอย่างเช่น

ตัวอย่าง ตาราง BIKES

NAME

FRAMESIZE

COMPOSITION

MILESRIDDEN

TYPE

TREK 2300
22.5
CARBON FIBER
3500
RACING

BURLEY
22
STEEL
2000
TANDEM

GIANT
19
STEEL
1500
COMMUTER

FUJI
20
STEEL
500
TOURING

SPECIALIZED
16
STEEL
100
MOUNTAIN

CANNONDALE
22.5
ALUMINUM
3000
RACING

ถ้าต้องการจะดูเฉพาะข้อมูลของ “BURLEY” เท่านั้นเราจะต้องใช้ คำสั่ง WHERE ดังนี้

SELECT * FROM BIKES

WHERE NAME = ‘BURLEY’ ;

ผลลัพธ์

NAME

FRAMESIZE

COMPOSITION

MILESRIDDEN

TYPE

BURLEY
22
STEEL
2000
TANDEM

5.โอเปอเรเตอร์

การเรียกค้นข้อมูลอย่างมีเงื่อนไขตามหลักของภาษา SQL จะอยู่หลังคำสั่ง WHERE ซึ่งสามารถเปรียบเทียบตามโอเปอเรเตอร์ ในภาษา SQL อาจแบ่งโอเปอเรเตอร์ ได้เป็น 4 กลุ่ม คือ

5.1. โอเปอเรเตอร์คณิตศาสตร์(Arithmetic Operators) ได้แก่ operators ที่เป็น plus (+) minus (-), divide (/), multiply (*), and modulo (%)

– โอเปอเรเตอร์ Plus (+) เป็นคำสั่งที่ใช้รวมค่า 2 ค่าเข้าด้วยกัน ดังตัวอย่างต่อไปนี้

จากตาราง PRICE มีรายละเอียดดังนี้

ITEM

WHOLESALE

TOMATOES
34

POTATOES
51

BANANAS
67

TURNIPS
45

CHEESE
89

APPLES
23

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

และจากคอลัมน์ WHOLESALE+15 สามารถให้แสดงผลหน้าจอเป็นชื่อคอลัมน์อื่นได้ โดยถ้าต้องการให้ WHOLESALE +15 และให้แสดงผลเป็นคอลัมน์ RETAIL จะใช้คำสั่งดังนี้

SELECT ITEM, WHOLESALE, (WHOLESALE + 0.15) RETAIL

FROM PRICE;

ผลลัพธ์

ITEM

WHOLESALE

RETAIL

TOMATOES
34
49

POTATOES
51
66

BANANAS
67
82

TURNIPS
45
60

CHEESE
89
104

APPLES
23
38

นอกจากนี้เราสามารถแสดงข้อมูลในคอลัมน์ให้มีชื่อใหม่ตามที่ต้องการได้ เช่น ต้องการให้แสดงข้อมูลในคอลัมน์ ITEM ในตาราง PRICE ให้แสดงออกมาทางหน้าจอเป็นชื่อคอลัมน์ PRODUCE ได้ โดยในคำสั่งยังไม่ใส่เครื่องหมายคอมม่าระหว่าง ITEM และ PRODUCE เพื่อให้ภาษาSQL เข้าใจได้ว่าจะแสดงคอลัมน์ ITEM เป็นคอลัมน์ PRODUCE ดังตัวอย่างต่อไปนี้

SELECT ITEM PRODUCE, WHOLESALE, WHOLESALE * 0.25 RETAIL

FROM PRICE:

ผลลัพธ์

PRODUCE

WHOLESALE

RETAIL

TOMATOES

34

59

POTATOES

51

76

BANNANAS

67

92

TURNIPS

45

70

CHEESE

89

114

APPLES

23

48

– โอเปอร์เรเตอร์ Minus (-) คำสั่ง Minus ใช้ได้เป็น 2 กรณีคือ

1)  การเปลี่ยนเครื่องหมายจากบวกเป็นลบและจากลบเป็นบวก เช่น รายละเอียดของตาราง HILOW เป็นดังนี้

ตัวอย่างตาราง HILOW

STATE

HIGHTEMP

LOWTEMP

CA
120
-50

FL
110
20

LA
101
15

ND
99
-70

NE
100
-60

 

ตัวอย่าง ถ้าต้องการให้คอลัมน์ HIGHTEMP และ LOWTEMP มีค่าจากลบเป็นบวก จากบวกเป็นลบ และแสดงหน้าจากคอลัมน์ HIGHTEMP เป็นคอลัมน์ LOWS และคอลัมน์ LOWTEMP เป็นคอลัมน์ HIGHS ใช้คำสั่งดังนี้

SELECTSTATE, – HIGHTEMP LOWS, -LOWTEMP HIGHS

FROM HILOW;

ผลลัพธ์

STATE

LOWS

HIGHS

CA
-120
50

FL
-110
-20

LA
-101
-15

ND
-99
70

NE
-100
60

2)  การนำข้อมูลของคอลัมน์หนึ่งไปลบออกจากข้อมูลของอีกคอลัมน์หนึ่ง

ตัวอย่าง ถ้าต้องการนำคอลัมน์ HIGHTEMP ลบออกจากคอลัมน์ LOWTEMPแล้วนำผลลัพธ์ที่ได้แสดงในคอลัมน์ DIFFERENCE โดยใช้คำสั่งดังนี้

SELECTSTATE,HIGHTEM LOWS,

LOWTEMP HIGHS, (HIGHTEMP – LOWTEMP ) DIFFERENCE

FROM HILOW;

ผลลัพธ์

STATE

LOWS

HIGHS

DIFFERENCE

CA
-50
120
170

FL
20
110
90

LA
15
99
84

ND
-70
101
171

NE
-60
100
160

– โอเปอร์เรเตอร์ Divide (/)เป็นคำสั่งที่ใช้ในการหารข้อมูลดังตัวอย่าง เช่น

ตัวอย่างตาราง PRICE

ITEM

WHOLESALE

TOMATOES
34

POTATOES
51

BANNANAS
67

TURNIPS
45

CHEESE
89

APPLES
23

เมื่อต้องการให้คอลัมน์ WHOLESALE ถูกหารด้วย 2 และแสดงในคอลัมน์ SALEPRICE จะใช้คำสั่งดังนี้

SELECT ITEM, WHOLESALE, (WHOLESALE/2) SALEPRICE

FROM PRICE;

ผลลัพธ์

ITEM

WHOLESALE

SALEPRICE

TOMATOES
34
17

POTATOES
51
25.5

BANNANAS
67
33.5

TURNIPS
45
22.5

CHEESE
89
44.5

APPLES
23
11.5

จากตัวอย่างคอลัมน์ SALEPRICE เป็นผลลัพธ์ที่เกิดจากการนำคอลัมน์ WHOLESALE มาหารด้วย 2

– โอเปอร์เรเตอร์ Multiply (*)เป็นคำสั่งที่ใช้ในคูณค่าของข้อมูลในคอลัมน์

ตัวอย่างตาราง PRICE

ITEM

WHOLESALE

TOMATOES
34

POTATOES
51

BANANAS
67

TURNIPS
45

CHEESE
89

APPLES
23

 

ตัวอย่าง ถ้าต้องการคูณคอลัมน์ WHOLESALE ด้วย 0.9 ให้ได้ผลลัพธ์เป็นข้อมูลในคอลัมน์ใหม่ที่ชื่อ NEWPRICE จะใช้คำสั่งดังนี้

SELECT ITEM, WHOLESALE, WHOLESALE * 0.9 NEWPRICE

FROM PRICE;

 

ผลลัพธ์

ITEM

WHOLESALE

NEWPRICE

TOMATOES
34
30.6

POTATOES
51
45.9

BANANAS
67
60.3

TURNIPS
45
40.5

CHEESE
89
80.1

APPLES
23
20.7

– โอเปอเรเตอร์ Modulo (%)เป็นคำสั่งที่ได้ผลลัพธ์เป็นเศษที่ได้จากการหาร

ตัวอย่าง ตาราง REMAINS

NUMERATOR

DENOMENATOR

10

5

8

3

23

9

40

17

1024

16

85

34

ตัวอย่าง ถ้าต้องการสร้างคอลัมน์ REMAINDER ที่มีข้อมูลที่เกิดจากการนำข้อมูลในคอลัมน์ NUMERATOR หารด้วยข้อมูลในคอลัมน์ DENOMINATOR เหลือเศษในการหารเท่าไรแล้วนำค่าที่ได้ไปเก็บไว้ในคอลัมน์ REMAINDER ดังคำสั่งต่อไปนี้

SELECT NUMERATOR,

DENOMINATOR,

NUMERATOR%DENOMINATOR REMAINDER

FROM REMAINS;

ผลลัพธ์

NUMERATOR

DENOMENATOR

REMAINDER

10
5
0

8
3
2

23
9
5

40
17
6

1024
16
0

85
34
17

นอกจากการใช้เครื่องหมาย % ในคำสั่ง Modulo แล้วในภาษา SQL ยังใช้ฟังก์ชัน MOD แทนเครื่องหมาย %ได้ซึ่งจะให้ผลลัพธ์เช่นเดียวกันดังคำสั่งต่อไปนี้

SELECT NUMERATOR,

DENOMINATOR,

MOD(NUMERATOR, DENOMONATOR) REMAINDER

FROM REMAINS;

5.2. โอเปอรเรเตอร์ เปรียบเทียบ (Comparison Operators เป็น Operator ที่จะให้ค่าออกมา 3 ค่า คือ ถูก (TRUE) ผิด (FALSE) ไม่รู้ (Unknow) การไม่รู้หมายถึง ถ้านำข้อมูลที่มีค่าไปเปรียบเทียบกับข้อมูลที่เป็น NULL ตัวเปรียบเทียบจะให้ค่าไม่รู้

ตัวอย่างในตาราง PRICE

ITEM

WHOLESALE

TOMATOES
34

POTATOES
51

BANANAS
67

TURNIPS
45

CHEESE
89

APPLES
23

ORANGES

 

ตัวอย่าง ถ้าต้องการดูว่า ITEM ที่ไม่มีค่า WHOLESALE หรือค่า WHOLESALEเป็นค่าว่างจะใช้คำสั่งดังนี้

SELECT *

FROM PRICE

WHERE WHOLESALE IS NULL;

หรือ

SELECT *

FROM PRICE

WHERE WHOLESALE = NULL;

ผลลัพธ์

ITEM
WHOLESALE

ORANGES

5.3 โอเปอเรเตอร์ตัวอักษร(Character Operators) ตัวโอเปอเรเตอร์ LIKE เป็นการค้นหาข้อมูลของคอลัมน์ที่เก็บข้อมูลประเภทตัวอักษรเท่านั้น โดยไม่ทราบค่าข้อมูลทั้งหมดที่จะคันหา หรือรู้เพียงบางตัวอักษรเท่านั้น โอเปอร์เรเตอร์ LIKE จะระบุต่อท้ายชื่อคอลัมน์ที่เป็นเงื่อนไข โดยจะใช้สัญลักษณ์ที่เป็นตัวค้นหาช่วยในการค้นหาข้อมูลที่เรียกว่า วิน การ์ด (WILD Card) สัญลักษณ์ดังกล่าวประกอบด้วย % และ _(เครื่องหมายขีดเส้นใต้) โดยข้อมูลบางส่วนที่ใช้ในการค้นหาพร้อมกับสัญลักษณ์ทั้งสองนี้ จะต้องมีเครื่องหมาย ‘ ‘ กำกับเสมอ ความหมายของสัญลักษณ์ทั้งสองเป็นดังนี้คือ

– สัญลักษณ์ % ใช้แทนจำนวนอักษรได้หลายตัว เช่น พนักงานขายที่ขึ้นต้นด้วยตัว T จะเขียนเงื่อนไขว่า WHERE SALENAME LIKE ‘T%’

– สัญลักษณ์ _ ใช้แทนจำนวนที่ไม่ทราบค่า 1 ตัว เช่น พนักงานขายที่มีชื่อขึ้นต้น S และมีความยาว 7 ตัวอักษร เช่น WHERE SALENAME LIKE ‘S______’

SELECT PAYEE, AMOUNT, REMARKS

FROM CHECKS

WHERE PAYEE LIKE (‘CA%’);

ผลลัพธ์

PAYEE

AMOUNT

REMARKS

Cash
25
Wild Night Out

Cash
60
Trip to Saraburi

Cash
34
Trip to Nonthaburi

กับคำสั่ง LIKE ดังตัวอย่างข้างต้น เปรียบเทียบกับคำสั่ง WITH

SELECT PAYEE, AMOUNT, REMARKS

FROM CHECKS

WHERE PAYEE STARING WITH (‘Ca’);

ผลลัพธ์

PAYEE

AMOUNT

REMARKS

Cash
25
Wild Night Out

Cash
60
Trip to Saraburi

Cash
34
Trip to Nonthaburi

จะเห็นว่าได้ผลลัพธ์เช่นเดียวกัน

ตัวอย่าง ถ้าต้องการให้แสดงคอลัมน์ PAYEE ที่ขึ้นต้นด้วยอักษร Ca หรือ คอลัมน์ REMARKS ที่ขึ้นต้นด้วยอักษร G จะใช้คำสั่งดังนี้

SELECT PAYEE, AMOUNT, REMARKS

FROM CHECKS

WHERE PAYEE STARTING WITH(‘Ca’)

OR

REMARKS LIKE ‘G%’;

 

 

ผลลัพธ์

PAYEE

AMOUNT

REMARKS

Surasit Utilities
98
Gas

Jintana $ Mitree
150
Groceries

Cash
25
Wild Night Out

Benjawan Gas
251
Gas

Cash
60
Trip to Saraburi

Cash
34
Trip to Nonthaburi

Benjawan Gas
1575
Gas

5.4 โอเปอรเรเตอร์ตรรกะ (Logical Operator) เป็นตัวโอเปอเรเตอร์ที่ใช้ในการเปรียบเทียบ เชื่อมโยงค่า 2 ค่า

ตัวอย่าง ตาราง VACATION

LASTNAME

EMPLOYEENUM

YEARS

LEAVETAKEN

ARLEE
101
2
4

AMPORNI
104
5
23

JINTANA
107
8
45

BOLIVAR
233
4
80

TANACHOTE
210
15
100

TAWATCHI
211
10
78

จากตัวอย่างสมมุติว่าบริษัทให้พนักงานแต่ละคนสามารถหยุดงานได้ โดยพิจารณาจากจำนวนปีที่พนักงานทำงาน พนักงานจะหยุดงานได้ 12 วัน ในอายุการทำงานแต่ละปี ถ้าต้องการหาว่าพนักงานที่มีชื่อตัวหน้าว่า B และยังสามารถหยุดงานได้อีก 50 วัน จะใช้คำสั่ง ดังนี้

SELECT * LASTNAME, YEARS * 12 – LEAVETAKEN REMAINING

FROM VACATION

WHERE LASTNAME LIKE ‘B%’

AND

YEARS * 12 – LEAVETAKEN > 50;

ผลลัพธ์

LASTNAME

REMAINING

JINTANA
51

TANACHOTE
80

จากคำสั่งเราจะใช้คำสั่ง YEARS * 12 – LEAVETAKEN เพื่อหาวันหยุดที่พนักงานยังเหลือ

– ตัวโอเปอเรเตอร์ AND เป็นตัวโอเปอเรเตอร์ ที่ใช้เชื่อมโยงค่า 2 ค่า โดยถ้าค่าหนึ่งเป็น TURE อีกค่าหนึ่งเป็น TURE จะให้ค่า TRUE ออกมา แต่ถ้าค่าหนึ่งเป็น TURE อีกค่าหนึ่งเป็น FALSE จะให้ค่าเป็น FALSE ตัวอย่างเช่น ถ้าต้องการหาว่ามีพนักงานที่ทำงานมากกว่า 5 ปี และเหลือวันหยุดมากกว่า 50% จะใช้คำสั่ง ดังนี้

SELECT LASTNAME WORKAHOLICS

FROM VACATION

WHERE YEARS >=5

AND

((YEARS *12) – LEAVETAKEN)/(YEARS *12) >=0.50;

ผลลัพธ์

WORKAHOLICS

AMPORNI

JINTANA

ตัวโอเปอเรเตอร์ OR ใช้ในการเปรียบเทียบถ้าสิ่งที่นำมาเปรียบเทียบสิ่งใดสิ่งหนึ่งเป็นจริง จะได้ผลลัพธ์ออกมาเป็นจริง

SELECT LASTNAME WORKAHOLICS

FROM VACATION

WHERE YEARS >=5

OR

((YEARS *12) – LEAVETAKEN)/(YEARS *12)>=0.50;

ผลลัพธ์

WORKAHOLICS

ARLEE

AMPORNI

JINTANA

TANACHOTE

TAWATCHI

– ตัวโอเปอเรเตอร์ NOT ในการเปรียบเทียบถ้าสิ่งที่นำมาเปรียบเทียบเป็นจริงจะได้ผลลัพธ์ออกมาเป็นเท็จ แต่ถ้าสิ่งที่นำมาเปรียบเทียบเป็นเท็จผลที่ได้ออกมาจะเป็นจริง ดังตัวอย่าง

SELECT *

FORM VACATION

WHERE LASTNAME NOT LIKE ‘B%’;

 

 

ผลลัพธ์

LASTNAME

EMPLOYEENUM

YEARS

LEAVETAKEN

ARLEE
101
2
4

COSTALES
211
10
78

– ตัวโอเปอเรเตอร์ NOT ยังใช้กับ NULL ได้ ถ้านำ not กับ null มารวมกันแล้วจะใช้สำหรับค่าที่ไม่ว่าง

ตัวอย่างตารางPRICE

ITEM

WHOLESALE

TOMATOES
34

POTATOES
51

BANANAS
67

TURNIPS
45

CHEESE
89

APPLES
23

ORANGES

 

ตัวอย่าง ถ้าต้องการให้แสดงเฉพาะข้อมูลที่มีค่าเท่านั้นจะใช้คำสั่ง not nullมาร่วมกับ null เพื่อแสดงเฉพาะข้อมูลที่มีค่าดังคำสั่งต่อไปนี้

SELECT *

FROM PRICE

WHERE wholesale is not null;

ผลลัพธ์

ITEM

WHOLESALE

TOMATOES
34

POTATOES
51

BANANAS
67

TURNIPS
45

CHEESE
89

APPLES
23

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

SELECT *

FROM FRIENDS

WHERE STATE= ‘Chiangmai’

OR

STATE = ‘Bangkok’

OR

STATE = ‘Puket’;

ผลลัพธ์

LASTNAME

FIRSTNAME

PHONE

ADDRESS

SIRIWAN
ARLEEWAN
555-6666
Bangkok

SURASIT
CHAIYO
555-6767
Puket

WICHAI
AMPORNWAN
555-3116
Chiangmai

SELECT *

FROM FRIENDS

WHERE STATE IN (‘Chiangmai ’, ‘Bangkok ’, ‘Puket ’);

ผลลัพธ์

LASTNAME

FIRSTNAME

PHONE

ADDRESS

SIRIWAN
ARLEEWAN
555-6666
Bangkok

SURASIT
CHAIYO
555-6767
Puket

WICHAI
AMPORNWAN
555-3116
Chiangmai

– ตัวโอเปอเรเตอร์ BETWEEN…AND… เป็นการกำหนดเงื่อนไขของคอลัมน์ระหว่างค่าสองค่า ซึ่งค่าสองที่ออยู่ระหว่างคำสั่ง BETWEEN…AND…นั้นจะมีความหมายว่าเท่ากับหรือมากกว่าและเท่ากับหรือน้อยกว่า

SELECT *

FROM PRICE

WHERE WHOLESALE >25

AND

WHOLESALE < 75;

ผลลัพธ์

ITEM

WHOLESALE

TOMATOES
34

POTATOES
51

BANANAS
67

TURNIPS
45

ถ้าใช้คำสั่ง BETWEEN จะเป็นดังนี้

SELECT *

FROM PRICE

WHERE WHOLESALE BETWEEN 25 AND 75;

ผลลัพธ์

ITEM

WHOLESALE

TOMATOES
34

POTATOES
51

BANANAS
67

TURNIPS
45

การเรียกค้นข้อมูล :

ฟังก์ชัน

ฟังก์ชันที่ใช้ในภาษา SQLเป็นฟังก์ชัน ซึ่งเก็บประจำไว้กับภาษา SQL ภาษา SQL มีฟังก์ชันอยู่ 6 ประเภทคือ

1.ฟังก์ชันในการรวม (Aggregate functions)

2.ฟังก์ชันวันและเวลา (Date and tune functions)

3.ฟังก์ชันคณิตศาสตร์ (Arithmetic functions)

4.ฟังก์ชันตัวอักขระ (Character functions)

5.ฟังก์ชันการแปลง (Conversion functions)

6.ฟังก์ชันอื่นๆ (Miscellaneous functions)

1. ฟังก์ชันในการรวม(Aggregate Functions)

เป็นกลุ่มฟังก์ชันที่ให้ผลของคำสั่งออกมาเพียง 1 คอลัมน์ ฟังก์ชันในการรวม(Aggregate Functions) เป็นกลุ่มฟังก์ชันที่ใช้กับข้อมูลที่เป็นตัวเลข ได้แก่ COUNT,SUM,AVG,MAXและ MIN

การใช้ฟังก์ชันในการรวมค่าต่าง ๆในภาษา SQL ดำเนินตามคำสั่งที่มีฟังก์ชันในการรวมค่า ผลของคำสั่งจะแสดงค่าเพียงค่าเดียว ฟังก์ชันเหล่านี้ได้แก่

COUNT เป็นคำสั่งที่สามารถใช้กับตารางหรือคอลัมน์ใด ๆ เพื่อนับจำนวนของแถวหรือคอลัมน์ซึ่งมีการใช้งาน 2 แบบดังนี้คือ

COUNT (*)

เป็นคำสั่งใช้นับจำนวนแถวทั้งหมดในตารางซึ่งจะรวมจำนวนแถวที่ไม่มีค่า ( NULL) ด้วย

 

COUNT (DISTINCT คอลัมน์)

เป็นคำสั่งใช้นับจำนวนแถวในตาราง จะไม่รวมค่าซ้ำและตำแหน่งที่ไม่มีค่า( NULL)

 

SUM เป็นคำสั่งการหาผลรวมของคอลัมน์ใดคอลัมน์หนึ่ง

AVG เป็นคำสั่งการหาค่าเฉลี่ยของข้อมูลในคอลัมน์ใดคอลัมน์หนึ่งโดยในคอลัมน์ที่ไม่มีค่าใดบรรจุอยู่ (NULL VALUE)จะไม่นำมาบรรจุอยู่ในการคำนวณ การใช้ฟั่งก์ชั่น AVG จะนำค่าทุกตัวในคอลัมน์มาคำนวณรวมทั้งตัวที่มีค่าซ้ำกันด้วย(ถ้าไม่ต้องการนำค่านั้นมาคำนวณสามารถใช้ DISTINCT ได้เช่น AVG (DISTINCT ชื่อคอลัมน์) เพื่อหาค่าเฉลี่ยโดยไม่ต้องนำค่าซ้ำกันมาคำนวณ

MAX เป็นคำสั่งในการหาค่าสูงสุดของข้อมูลของคอลัมน์ใดคอลัมน์หนึ่ง

MIN เป็นคำสั่งในการหาค่าต่ำสุดของข้อมูลของคอลัมน์ใดคอลัมน์หนึ่ง

1)  ฟังก์ชัน COUNT (X) เป็นฟังก์ชันที่ใช้ในการนับจำนวนแถวในคอลัมน์ (X)

ตัวอย่างตารางTEAMGAME

NAME

AB

HITS

WALKS

SINGLES

DOUBLES

TRIPLES

HR

JONES
145
45
34
31
8
1
5

DONKNOW
175
65
50
50
10
1
4

WORLEY
157
49
35
35
8
3
3

DAVID
187
70
48
48
4
0
17

HAMHOCKER
50
12
10
10
2
0
0

CASEY
1
0
0
0
0
0
0

ตัวอย่างถ้าต้องการนับจำนวนแถวทั้งหมดในตาราง TEAMGAMEโดยนับเฉพาะแถวที่ HIT หารด้วย AB แล้วมีค่าน้อยกว่า 0.35 จะใช้คำสั่งดังนี้

SELECT COUNT(*)

FROM TEAMGAME

WHERE HITS/AB < .35;

ผลของคำสั่ง จะได้ผลลัพธ์เป็นจำนวนแถวที่ HIT หารด้วย AB แล้วมีค่าน้อยกว่า 0.35

COUNT (*)

4

 

ตัวอย่าง ถ้าต้องการให้แสดงคอลัมน์ที่นับได้ชื่อ NUM_BELOW_350

SELECT COUNT(*) NUM_BELOW_350

FROM TEAMGAME

WHERE HITS/AB < .35;

ผลของคำสั่ง

NUM_BELOW_350

4

 

ตัวอย่าง ถ้าต้องการนับจำนวนคนที่มีเงื่อนไขให้ HIT หารด้วย AB แล้วมีค่าน้อยกว่า 0.35

SELECT COUNT(NAME) NUM_BELOW_350

FROM TEAMGAME

WHERE HITS/AB < .35;

ผลของคำสั่ง

NUM_BELOW_350

4

 

ตัวอย่าง ถ้าต้องการนับว่าข้อมูลในตาราง TEAMGAME มีจำนวนทั้งหมดกี่แถวจะใช้

SELECT COUNT(*)

FROM TEAMGAME;

ผลของคำสั่ง

COUNT(*)

6

2)  ฟังก์ชัน SUM (X) เป็นฟังก์ชันที่ใช้ในการหาค่ารวมของคอลัมน์ (X) ที่เก็บข้อมูลประเภทตัวเลข

ตัวอย่าง ถ้าต้องการหาผลรวมของคอลัมน์ SINGLES จากตาราง TEAMGAME โดยให้แสดงคอลัมน์ของผลรวมที่ได้ในชื่อ TOTAL….SINGLES

SELECT SUM(SINGLES) TOTAL_SINGLES

FROM TEAMGAME;

ผลของคำสั่ง

TOTAL_SINGLES

174

ตัวอย่าง ถ้าต้องการหาผลรวมของคอลัมน์ SINGLES, DOUBLES, TRIPLES, HR จากตาราง TEAMGAME โดยให้แสดงคอลัมน์ของผลรวมที่ได้ในชื่อ TOTAL.SIGLES, TOTAL_DOUBLES, TOTAL_TRIPLES, TOTAL_HR ตามลำดับ

SELECT SUM(SINGLES) TOTAL_SINGLES, SUM(DOUBLES) TOTAL_DOUBLES,

SUM(TRIPLES) TOTAL_TRIPLES, SUM(HR) TOTAL_HR

FROM TEAMGAME;

ผลของคำสั่งที่ได้จะทำการรวมคะแนนทั้งหมดในคอลัมน์ SINGLES, DOUBLES, TRIPLES, HR แล้วแสดงออกมาเป็นคอลัมน์ TOTAL_SIGLES TOTAL_DOUBLES, TOTAL_TRIPLES, TOTAL_HR ตามลำดับดังนี้

TOTAL_SINGLES

TOTAL_DOUBLES

TOTAL_TRIPLES

TOTAL_HR

174
32
5
29

 

ตัวอย่าง ถ้าต้องการหาผลรวมของคอลัมน์ SINGLES, DOUBLES, TRIPLES, HR จากตาราง TEAMGAME ที่มีเงื่อนไขว่า HITS หารด้วย AB มากกว่าหรือเท่ากับ .300 โดยให้แสดงคอลัมน์ของผลรวมที่ได้ในชื่อ TOTAL_SIGLES, TOTAL_DOUBLES, TOTAL_TRIPLES, TOTAL_HR ตามลำดับ

SELECT SUM(SINGLES) TOTAL_SINGLES, SUM(DOUBLES) TOTAL_DOUBLES,

SUM(TRIPLES) TOTAL_TRIPLES, SUM(HR) TOTAL_HR

FROM TEAMGAME;

WHERE HITS/AB > = .300;

ผลของคำสั่งที่ได้จะทำให้รวมคะแนนทั้งหมดในคอลัมน์ต่าง ๆ เฉพาะแถวที่มีค่า HITS หารด้วย AB มากกว่าหรือเท่ากับ .300 แล้วแสดงผลในชื่อ TOTAL_SIGLES, TOTAL_DOUBLES, TOTAL_TRIPLES, TOTAL_HR ตามลำดับ

TOTAL_SINGLES

TOTAL_DOUBLES

TOTAL_TRIPLES

TOTAL_HR

164
30
5
29

 

ตัวอย่าง ถ้าต้องการผลรวมในคอลัมน์ NAME

SELECT SUM(NAME)

FROM TEAMGAME;

ผลของคำสั่งจะเกิด ERROR ขึ้นเนื่องจากในคอลัมน์ NAME มีประเภทของข้อมูลเป็นตัวอักขระฟังก์ชัน SUM จะใช้กับตัวเลขเท่านั้น ถ้าใช้ SUM กับตัวอักษรจะเกิด ERROR ดังตัวอย่าง

ERROR:

ORA-01722: invalid number

No rows selected

3)  ฟังก์ชัน AVG (X) เป็นฟังก์ชันที่ใช้ในการหาค่าเฉลี่ยของคอลัมน์ (X) ที่เก็บข้อมูลประเภทตัวเลข

ตัวอย่าง ถ้าต้องการหาเฉลี่ยของ HITS ให้แสดงในชื่อ HIT_AVERAGE

SELECT AVG(HITS) HITS_AVERAGE

FROM TEAMGAME;

ผลของคำสั่งที่ได้จะแสดงค่าเฉลี่ยของ HITS ที่เกิดจากการนำค่าในแถวต่าง ๆ ในคอลัมน์ HIT มาบวกกันแล้วหารด้วยจำนวนแถว คือ 6

HITS_AVERAGE

40.166666

4)  ฟังก์ชัน MAX (X) เป็นฟังก์ชันที่ใช้ในการคำนวณหาค่าสูงสุดของคอลัมน์ (X)

ตัวอย่าง ถ้าต้องการหาว่าในคอลัมน์ HITS มีค่าสูงสุดเท่าใด

SELECT MAX(HITS)

FROM TEAMGAME;

ผลของคำสั่งที่ได้จะได้ว่า HITS มีค่าสูงสุดคือ 70 ดังนี้

MAX(HITS)

70

 

ตัวอย่าง ถ้าต้องการหาว่าใครเป็นผู้ที่ได้ HITS สูงที่สุดโดยใช้คำสั่งดังนี้

SELECT NAME

FROM TEAMGAME

WHERE HITS = MAX(HITS);

ผลของคำสั่งจะเกิด ERROR เนื่องจากฟังก์ชันในการรวม (Aggregate function) มาใช้ในเงื่อนไขอนุประโยค WHERE ไม่ได้จะเกิด ERROR ขึ้นจากตัวอย่าง WHERE HITS = MAX(HITS); MAX(HITS) จะมาใช้ในเงื่อนไขอนุประโยค WHERE ไม่ได้ จากคำถามข้อนี้จะสามารถใช้ได้กับคำสั่ง CROUP BY และ HAVING ที่จะได้ศึกษาต่อไป

ERROR at line 3:

ORA – 00934: group function is not allowed here

 

ตัวอย่าง การใช้ MAX กับประเภทของข้อมูลที่เป็นตัวอักขระ

SELECT MAX (NAME)

FROM TEAMGAME;

ผลของคำสั่งจากคำสั่งจะทำการหาชื่อของผู้ที่มีอักษร (A-Z) ตามลำดับใครที่มีอักษรลำดับมากที่สุดจะถูกแสดงออกมาเพียงแถวเดียว

MAX(NAME)

WORLEY

5)  ฟังก์ชัน MIN (X) เป็นฟังก์ชันที่ใช้ในการหาค่าต่ำสุดของคอลัมน์ (X)

ตัวอย่าง ถ้าต้องการหาค่าต่ำสุดในคอลัมน์ AB

SELECT MIN(AB)

FROM TEAMGAME;

ผลของคำสั่งที่ได้จะได้ค่าต่ำสุดในคอลัมน์ AB ดังนี้

MIN (AB)

1

 

ตัวอย่าง การใช้ MIN กับประเภทของข้อมูลที่เป็นตัวอักขระ

SELECT MIN(NAME)

FROM TEAMGAME;

ผลของคำสั่งจากคำสั่งจะทำการหาชื่อของผู้ที่มีอักษร (A-Z) ตามลำดับใครที่มีอักษรลำดับน้อยที่สุดจะถูกแสดงออกมาเพียงแถวเดียว

MIN (NAME)

CASEY

 

ตัวอย่าง ถ้าต้องการหาค่าต่ำสุดและสูงสุดในคอลัมน์ AB

SELECT MIN(AB), MAX(AB)

FROM TEAMGAME;

ผลของคำสั่งจะได้ค่าต่ำสุดและสูงสุดในคอลัมน์ AB ดังนี้

MIN (AB)

MAX (AB)

1
187

6) ฟังก์ชัน VARIANC (X) เป็นฟังก์ชันในการหาค่าส่วนเบี่ยงเบนมาตราฐานยกกำลัง2(S2) ในคอลัมน์ X

ตัวอย่าง ถ้าต้องการหาค่า VARIANC ของ คอลัมน์ HITS

SELECT VARIANCE(HITS)

FROM TEAMGAME;

ผลของคำสั่งที่ได้จะได้ค่า VARIANCE ในคอลัมน์ HITS

VARIANCE(HITS)

802.96667

 

ตัวอย่าง ถ้าต้องการหาค่า VARIANCE ของคอลัมน์ NAME

SELECT VARIANCE(NAME)

FROM TEAMGAME;

ผลของคำสั่งจะเกิด ERRORขึ้นเนื่องจากฟังก์ชัน VARIANCE ไม่สามารถใช้กับข้อมูลที่เป็นตัวอักษรได้ดังนี้

ERROR:

ORA-01722: invalid number

No rows selected

7) ฟังก์ชัน STDDEV (X) หรือฟังก์ชันส่วนเบี่ยงเบนมาตราฐาน ส่วนเบี่ยงเบนมาตราฐาน คือ การหาค่ารากที่สองของผลรวมของความแตกต่างระหว่างข้อมูลดิบกับค่าเฉลี่ย ยกกำลังสอง (sum of squaresของผลต่าง) หารด้วยจำนวนข้อมูลทั้งหมดของคอลัมน์ X

ตัวอย่าง ถ้าต้องการหาส่วนเบี่ยงเบนมาตรฐานของคอลัมน์ HITS

SELECT STDDEV(HITS)

FROM TEAMGAME;

ผลของคำสั่งจะได้ส่วนเบี่ยงเบนมาตรฐานของคอลัมน์ HITS ดังนี้

STDDEV(HITS)

28.336666

SELECT STDDEV(NAME)

FROM TEAMGAME;

ผลของคำสั่งจะเกิด ERROR ได้เนื่องจากฟังก์ชัน STDDEV ไม่สามารถใช้กับข้อมูลที่เป็นตัวอักษรได้

ERROR:

ORA-01722: invalid number

no rows selected

ตัวอย่าง ถ้าต้องการนับจำนวนแถวในคอลัมน์ หาค่าเฉลี่ยหาค่าสูงสุด ต่ำสุด หาค่าส่วนเบี่ยงเบนมาตรฐาน หาค่าว่าเรียน และหาผลรวมของคอลัมน์ AB

SELECT COUNT(AB),

AVG(AB),

MIN(AB),

MAX(AB),

STDEV(AB),

VARIANCE(AB),

SUM(AB),

FROM TEAMGAME;

ผลของคำสั่งที่ได้ค่าต่าง ๆ ตามลำดับดังนี้

COUNT(AB)

AVG(AB)

MIN(AB)

MAX(AB)

STDDEV(AB)

VARIANCE(AB)

SUM(AB)

6
119.167
1
187
75.589
5712.97
715

2.  ฟังก์ชันวันและเวลา (Date and tune functions)

เป็นกลุ่มฟังก์ชันที่แสดงข้อมูลออกมาเป็นวันและเวลา

 

ตัวอย่าง ตารางPROJECT

TASK

STARTDATE

ENDDATE

KICKOFF MTG
01-APR-2001
01-APR-2001

TECH SURVEY
02-APR-2001
01-MAY-2001

USER MTGS
15-MAY-2001
30-MAY-2001

DESIGN WIDGET
01-JUN-2001
30-JUN-2001

CODE WIDGET
01-JUL-2001
02-SEP-2001

TESTING
03-SEP-2001
17-JAN-2002

2.1 ฟังก์ชัน ADD_MONTHS (X,Y) เป็นฟังก์ชันที่ต้องการบวกจำนวนเดือน (Y) เข้าไปในข้อมูล คอลัมน์ X

ตัวอย่าง ถ้าต้องการให้เลื่อนเวลาในคอลัมน์ ENDDATE ให้มีกำหนดเวลาเพิ่มขึ้นอีก 2 เดือน โดยให้ผลลัพธ์แสดงคอลัมน์ TASK, STARTDATE และคอลัมน์ ENDDATE ให้แสดงเป็นคอลัมน์ ORIGINALEND ส่วนกำหนดเวลาที่บวกเพิ่มไปอีก 2 เดือน ให้แสดงในคอลัมน์ ADD_MONTH

SELECT TASK,STARTDATE, ENDDATE ORIGINAL_END,

ADD_MONTHS(ENDDATE,2)

FROM PROJECT;

ผลของคำสั่งจะได้ ADD_MONTHS เพิ่มมาอีก 1 คอลัมน์ ซึ่งเกิดจากข้อมูลในคอลัมน์ ENDDATE บวกอีก 2 เดือน

TASK

STARTDATE

ORIGINAL

ADD_MONTH

KICKOFF MTG
01-APR-2001
01-APR-2001
01-JUN-2001

TECH SURVEY
02-APR-2001
01-MAY-2001
01-JUN-2001

USER MTGS
15-MAY-2001
30-MAY-2001
30-JUN-2001

DESIGN WIDGET
01-JUN-2001
30-JUN-2001
31-AUG-2001

CODE WIDGET
01-JUL-2001
02-SEP-2001
02-NOV-2001

TESTING
03-SEP-2001
17-JAN-2002
17-MAR-2002

 

ตัวอย่าง ถ้าต้องการหาว่างานใดบ้างที่มีระยะการทำงานไม่เกิน 1 เดือนจะใช้คำสั่งดังนี้

SELECT TASK, TASKS_SHORTER_THAN_ONE_MONTH

FROM PROJECT

WHERE ADD_MONTHS(STARTDATE, 1) > ENDDATE;

ผลของคำสั่งจะได้คอลัมน์ TASKS_SHORTER_THAN_ONE_MONTH ที่แสดงงานที่มีระยะเวลาการทำงานไม่เกิน 1 เดือน

TASKS_SHORTER_THAN_ONE_MONTH

KICKOFF MTG

TECH SURVEY

USER MTGS

DESIGN WIDGET

2.2 ฟังก์ชัน LAST_DAY (X) เป็นฟังก์ชันที่แสดงวันสุดท้ายของเดือนในคอลัมน์ (X)

ตัวอย่าง เช่นต้องการแสดงวันสุดท้ายของเดือนจะใช้คำลั่งดังนี้

SELECT ENDDATE, LAST_DAY(ENDDATE)

FROM PROJECT;

ผลของคำสั่งที่ได้จะแสดงในคอลัมน์ LAST_DAY (ENDDATE) ที่แสดงวันสุดท้ายของเดือนในคอลัมน์ ENDDATE

ENDDATE

LAST_DAY(ENDDATE)

01-APR-2001
30-APR-2001

01-MAY-2001
31-MAY-2001

30-MAY-2001
31-MAY-2001

30-JUN-2001
30-JUN-2001

02-SEP-2001
30-SEP-2001

17-JAN-2002
31-JAN-2002

2.3 ฟังก์ชัน MONTHS_BETWEEN (X,Y) เป็นฟังก์ชันที่คำนวณค่าระหว่าง X และ Y โดยมีหน่วยเป็นเดือน

ถ้าต้องการคำนวณหาค่าระหว่างคอลัมน์ STARIDATE กับคอลัมน์ ENDDATE ว่ามีระยะเวลาห่างกันกี่เดือน

SELECT TASK, STARTDATE, ENDDATE, MONTHS_BETWEEN(STARTDATE, ENDDATE)

DURATION

FROM PROJECT;

ผลของคำสั่งที่ได้คอลัมน์ DURATION ที่ติดค่าลบเนื่องจากใช้คอลัมน์ STARTDATE ซึ่งมีค่าน้อยกว่าคอลัมน์ ENDDATE เป็นค่าเริ่มต้น

TASK

STARTDATE

ENDDATE

DURATION

KICKOFF MTG
01-APR-2001
01-APR-2001
0

TECH SURVEY
02-APR-2001
01-MAY-2001
-.9677419

USER MTGS
15-MAY-2001
30-MAY-2001
-.483871

DESIGN WIDGET
01-JUN-2001
30-JUN-2001
-.9354839

CODE WIDGET
01-JUL-2001
02-SEP-2001
-2.032258

TESTING
03-SEP-2001
17-JAN-2002
-4.451613

เป็นการหาค่าเดือนเหมือนดังตัวอย่างข้างต้น แต่จะนำคอลัมน์ ENDDATE มาเป็นค่าเริ่มต้น

SELECT TASK, STARTDATE, ENDDATE,

MONTHS_BETWEEN(ENDDATE ,STARTDATE) DURATION

FROM PROJECT;

ผลของคำสั่งที่ได้คอลัมน์ DURATION เป็นบวกเพราะคอลัมน์ ENDDATE ที่เป็นค่าเริ่มต้นมีค่ามากกว่าคอลัมน์ STARIDATE

TASK

STARTDATE

ENDDATE

DURATOPN

KICKOFF MTG

01-APR-2001

01-APR-2001

0

TECH SURVEY

02-APR-2001

01-MAY-2001

.96774194

USER MTGS

15-MAY-2001

30-MAY-2001

.48387097

DESIGN WIDGET

01-JUN-2001

30-JUN-2001

.93548387

CODE WIDGET

01-JUL-2001

02-SEP-2001

2.0322581

TESTING

03-SEP-2001

17-JAN-2002

4.4516129

 

ตัวอย่าง ถ้าต้องการหาว่าค่าที่เริ่มก่อนวันที่ 15 MAY 2001

SELECT *

FROM PROJECT

WHERE MONTHS_BETWEEN(’19 MAY 2001’,STARTDATE) > 0;

ผลของคำสั่งที่ได้จะแสดงงานโครงการที่เริ่มก่อน วันที่ 19 MAY 2001

TASK

STARTDATE

ENDDATE

KICKOFF MTG
01-APR-2001
01-APR-2001

TECH SURVEY
02-APR-2001
01-MAY-2001

USER MTGS
15-MAY-2001
30-MAY-2001

3. ฟังก์ชันคณิตศาสตร์ (Arithmetic functions)

เป็นกลุ่มคำสั่งที่เกี่ยวกับการคำนวณทางเลขคณิต

ตัวอย่าง ตารางNUMBERS;

A

B

3.1415
4

-45
.707

5
9

-57.667
42

15
55

-7.2
5.3

3.1  ฟังก์ชัน ABS(X)เป็นฟังก์ชันในการหาค่าสมบูรณ์ของ X

ต้องการหาค่าสมบูรณ์ในคอลัมน์ A

SELECT ABS(A) ABSOLUTE_VALUE

FROM NUMBERS;

ผลของคำสั่ง

ABSOLUTE_VALUE

3.1415

45

5

57.667

15

7.2

3.2  ฟังก์ชัน CEIL(X) and FLOOR(X)

ฟังก์ชัน CEIL (X) เป็นฟังก์ชันที่ให้ค่าตัวเลขจำนวนเต็มที่มีค่ามากว่าหรือเท่ากับค่าในคอลัมน์ (X)

ฟังก์ชัน FLOORเป็นฟังก์ชันที่ให้ค่าตัวเลขจำนวนเต็มที่พิจารณาจากค่าในคอลัมน์ X ถ้าหลังจุดทศนิยมมีค่ามากว่า 5 ก็จะให้ค่าเลขจำนวนเต็มที่มากขึ้น แต่ถ้าหลังจุดทศนิยมมีค่าน้อยกว่า 5 จะให้ค่าตัวเลขที่มีค่าน้อยลง

ตัวอย่าง ถ้าต้องการหาค่าตัวเลขจำนวนเต็มที่มีค่ามากกว่าหรือเท่ากับค่าในคอลัมน์ B

SELECT B, CEIL(B) CEILING

FROM NUMBERS;

ผลของคำสั่งจะได้คอลัมน์ CEILING ที่แสดงตัวเลขจำนวนเต็มที่มีค่ามากกว่าหรือเท่ากับค่าในคอลัมน์ B

B

CEILING

4

4

.707

1

9

9

42

42

55

55

5.3

6

 

ตัวอย่าง ถ้าต้องการหาค่าตัวเลขจำนวนเต็มในคอลัมน์ A โดยถ้าหลังจุดทศนิยมมีอยู่มากกว่า 5 ก็จะให้ค่าเลขจำนวนเต็มที่มากขึ้น แต่ถ้าหลังจุดทศนิยมมีค่าน้อยกว่า 5 ก็จะให้ค่าตัวเลขที่มีค่าน้อยลง

SELECT A, FLOOR(A) FLOOR

FROM NUMBERS;

ผลของคำสั่งจะได้คอลัมน์ FLOOR ที่มีค่ามากกว่า

A

FLOOR

3.1415
3

.45
-45

5
5

-57.667
-58

15
15

-7.2
-8

3.3 ฟังก์ชัน COS(X), COSH(X), SIN(X), SINH(X), TAN(X), และ TANH(X) เป็นฟังก์ชันทางตรีโกณที่หาค่า cosine,hyperbolic cosine,sine,hyperbolic sine,tangent,hyperbolic tangent ที่มีค่า X เป็นองศาเรเดียน(radians,) โดย 360 degrees = 2 pile radians

ตัวอย่าง ถ้าต้องการหาค่า COS ของมุมในคอลัมน์ A

SELECT A, COS(A)

FROM NUMBERS;

ผลของคำสั่งจะได้ของ (A) ที่มีค่าดังนี้

A

COS(A)

3.1415
-1

-45
.52532199

5
.28366219

-57.667
.437183

15
-.7596879

.7.2
.60835131

3.4 ฟังก์ชัน EXP (X)เป็นฟังก์ชันหาค่า e ยกกำลัง X

ตัวอย่าง ถ้าต้องการหาค่า e ยกกำลังของข้อมูลในคอลัมน์ A

SELECT A, EXP(A)

FROM NUMBERS;

ผลของคำสั่งจะได้คอลัมน์ EXP(A) ที่เป็นข้อมูลในข้อมูลคอลัมน์ A e ยกกำลังตัวเลข

A

EXP(A)

3.1415
23.138549

-45
2.863E-20

5
148.41316

-57.667
9.027E-26

15
3269017.4

.7.2
.00074659

3.5 ฟังก์ชัน LN(X) และ LOG(X)

ฟังก์ชัน LN เป็นการหาค่า natural log ของ X

ฟังก์ชัน LOG เป็นการหาค่า log ฐาน10 ของ X

ตัวอย่าง ถ้าต้องการหา natural log ของคอลัมน์ A

SELECT A, LN(A)

FROM NUMBERS;

ผลของคำสั่งจะเกิด ERROR ขึ้นเนื่องจากแถวที่ 2 และ 4 ของตาราง NUMBERS มีค่าเป็นลบ ซึ่งถ้าข้อมูลมีค่าเป็นลบจะหาค่าไม่ได้

ERROR:

ORA-01428: argument ‘-45’ is out of range

จากตัวอย่างถ้าทำการยกกำลัง 2 ข้อมูลในคอลัมน์ A ค่าของข้อมูลที่เป็นลบอยู่เมื่อถูกยกกำลัง 2 จะกลายเป็นบวกจากนั้นจึงทำการหาค่า LN ข้อมูลในคอลัมน์ A

SELECT A, LN(ABS(A))

FROM NUMBERS;

ผลของคำสั่งในคอลัมน์ LN (ABS(A) จะได้ค่า natural log ที่เกิดจากคอลัมน์ A ยกกำลัง 2

A

LN (ABS(A))

3.1415
1.1447004

-45
3.8066625

5
1.6094379

-57.667
4.0546851

15
2.7080502

.7.2
1.974081

จะหาค่า Log ฐาน 10 ในคอลัมน์ B จากตาราง NUBMERS

SELECT B, LOG(B, 10)

FROM NUMBERS;

ผลของคำสั่งในคอลัมน์ LOG(B,10) จะให้ค่า log ฐาน 10 ของคอลัมน์ B

B

LOG(B,10)

4
1.660964

.707
-6.640962

9
1.0479506

42
.61604832

55
.57459287

5.3
1.3806894

3.6 ฟังก์ชัน MOD(X,Y) เป็นฟังก์ชันที่แสดงเศษที่เกิดข้อมูล X หารด้วย Y

ตัวอย่าง ถ้าต้องการหาเศษของ A หารด้วย B โดยแสดงคอลัมน์ A,B และคอลัมน์เศษที่เหลือ

SELECT A, B, MOD(A,B)

FROM NUMBERS;

ผลของคำสั่งจะได้คอลัมน์ MOD(A,B) เป็นคอลัมน์ที่แสดงเศษที่เกิดจากข้อมูลในคอลัมน์ A หารด้วย B

A

B

MOD(A,B)

3.1415
4
3.1415

-45
.707
-.459

5
9
5

-57.667
42
-15.667

15
55
15

-7.2
5.3
-1.9

3.7 ฟังก์ชัน POWER (X,Y) เป็นฟังก์ชันในการยกกำลัง โดย X เป็นเลขฐานและ Y จะเป็นเลขยกกำลัง

SELECT A, B, POWER(A,B)

FROM NUMBERS;

ผลของคำสั่งจะเกิด ERROR เพราะargument ในแถวที่ 2 ตัวที่เป็นเลขยกกำลังต้องมีค่าเป็นจำนวนเต็ม

ERROR:

ORA-01428: ARGUMENT ‘-45’ is out of range

จะทำให้เลขยกกำลังมีค่าเป็นเลขจำนวนเต็มบวกโดยใช้ฟังก์ชัน CEILก่อนแล้วจึงจะนำมายกกำลัง

SELECT A, CEIL(B), POWER(A,CEIL(B))

FROM NUMBERS;

ผลของคำสั่งในคอลัมน์ CELI (B) เป็นค่าของข้อมูลในคอลัมน์ B ที่มีค่าเป็นจำนวนเต็มและเมื่อยกกำลังแล้วจะมีค่าปรากฎในคอลัมน์ POWER (A,CEIL(B)

A

CEIL(B)

POWER(A,CEIL(B))

3.1415
4
97.3976

-45
1
-45

5
9
1953125

-57.667
42
9.098E+73

15
55
4.842E+64

-7.2
6
139314.07

3.8 ฟังก์ชัน SIGN (X) เป็นฟังก์ชันที่

– ให้ค่าเป็น –1 ถ้า X มีค่าน้อยกว่า 0

– ให้ค่าเป็น 0 ถ้า X มีค่าเท่ากับ 0

– ให้ค่าเป็น 1 ถ้า X มีค่ามากกว่า 0

ตัวอย่าง ถ้าต้องการหาฟังก์ชัน SIGN ในการหาค่าข้อมูลในคอลัมน์ A

SELECT A, SIGN(A)

FROM NUMBERS;

ผลของคำสั่ง

A

SIGN (A)

3.1415
1

-45
-1

5
1

-57.667
-1

15
1

-7.2
-1

0
0

ถ้าต้องการใช้ฟังก์ชัน SIGN ที่มีค่า 1 ในคอลัมน์ A

SELECT A

FROM NUMBERS

WHERE SIGN(A) =1;

ผลของคำสั่งจะแสดงข้อมูลในคอลัมน์ A ที่เมื่อใช้ฟังก์ชัน SIGN แล้วมีค่าเป็น 1

A

3.1415

5

15

3.9 ฟังก์ชัน SQRT (X) เป็นฟังก์ชันในการหาค่ารากที่ 2 ของ X

ตัวอย่าง ถ้าต้องการหารากที่ที่ 2 ของข้อมูลในคอลัมน์ A

SELECT A, SQRT(A)

FROM NUMBERS;

ผลของคำสั่งจะเกิด ERROR เนื่องจากไม่สามารถหาค่ารากที่ 2 ของตัวเลขที่มีค่าเป็นลบได้ดังนี้

ERROR:

ORA-01428: ARGUMENT ‘-45’ is out of range

 

ตัวอย่าง ถ้านำข้อมูลในคอลัมน์ A มาหาค่าสมบูรณ์แล้วจึงนำไปหาค่ารากที่ 2

SELECT ABS(A), SQRT(ABS(A))

FROM NUMBERS;

ผลของคำสั่งที่ได้จะได้ค่าสมบูรณ์ของข้อมูลในคอลัมน์ A และได้ค่ารากที่ 2 ของค่าสมบูรณ์ในคอลัมน์ A

ABS(A)

SQRT(ABS(A))

3.1415
1.7724277

45
-16.7082039

5
12.236068

57.667
7.5938791

15
3.8729833

7.2
2.6832816

0
0

4. ฟังก์ชันตัวอักขระ (Character functions)

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

ตัวอย่างตาราง CHARACTERS

LASTNAME

FIRSTNAME

M

CODE

PURVIS
KELLY
A
32

TAYLOR
CHUCK
J
67

CHRISTINE
LAURA
C
65

ADAMS
FESTER
M
87

COSTALES
ARMANDO
A
77

KONG
MAJOR
G
52

4.1 ฟังก์ชัน CHR เป็นฟังก์ชันสำหรับเปลี่ยนนิพจน์อักขระให้เป็นรหัส ASCII ค่าที่ได้จากฟังก์ชันนี้จะเป็นค่ารหัส ASCII

ตัวอย่าง ถ้าต้องการเปลี่ยนค่าตัวเลขในคอลัมน์ CODE ให้เป็นตัวอักษร

SELECT CODE, CH(CODE)

FROM CHARACTERS;

ผลของคำสั่ง

CODE

CH

32

67

C

65

A

87

W

77

M

52

4

4.2 ฟังก์ชัน CONCAT (X,Y) เป็นฟังก์ชันในการรวมอักขระ (X และ Y) เข้าด้วยกัน

ตัวอย่าง ถ้าต้องการรวมคอลัมน์ FIRSINAME กับ LASTNAME ไว้ด้วยกัน

SELECT CONCAT(FIRSTNAME, LASTNAME) “FIRST AND LAST NAMES”

FROM CHARACTERS;

ผลของคำสั่งจะได้นำคอลัมน์ FIRSTNAME และ LASTNAME มารวมกันแสดงให้เห็นในคอลัมน์ FIRST AND LASTNAMES

FIRST AND

LAST NAMES

KELLY
PURVIS

CHUCK
TAYLOR

LAURA
CHRISTINE

FESTER
ADAMS

ARMANDO
COSTALES

MAJOR
KONG

4.3 ฟังก์ชัน INITCAP (<string>) เป็นฟังก์ชันที่เปลี่ยนค่าตัวอักขระ (string) ให้ตัวแรกเป็นอักขระตัวใหญ่แล้วตามด้วยอักขระตัวเล็ก

ถ้าต้องการเปลี่ยนให้เป็นอักษรตัวใหญ่ในคอลัมน์ FIRSTNAME

SELECT FIRSTNAME BEFORE, INITCAP(FIRSTNAME) AFTER

FROM CHARACTERS;

ผลของคำสั่งจะทำการเปลี่ยน

BEFORE

AFTER

KELLY
Kelly

CHUCK
Chuck

LAURA
Laura

FESTER
Fester

ARMANDO
Armando

MAJOR
Major

4.4 ฟังก์ชัน LOWER (<string>) and UPPER (<string>)

ฟังก์ชัน LOWER (<string>) เป็นฟังก์ชัน ที่เปลี่ยนตัวอักขระ (<string>) เป็นอักขระตัวเล็ก

ฟังก์ชัน UPPER (<string>) เป็นฟังก์ชัน ที่เปลี่ยนตัวอักขระ (<string>) เป็นอักขระตัวใหญ่

ตัวอย่าง ถ้าต้องการเปลี่ยนแปลงตัวอักขระในคอลัมน์ FIRSTNAME จากอักขระตัวเล็กให้เป็น

อักขระตัวใหญ่ทุกแถว ถ้าใช้คำสั่ง UPDATE ดังนี้

UPDATE CHARACTERS

SET FIRSTNAME = ‘kelly’

WHERE FIRSTNAME = ‘KELLY’;

ผลของคำสั่งจะทำการเปลี่ยนแปลงข้อมูลได้คำสั่งละ 1 แถวเท่านั้น

1 rows update.

จากตัวอย่างถ้าใช้ฟังก์ชัน LOWER หรือ UPPER ในการเปลี่ยนแปลงตัวอักขระจะใช้คำสั่งเพียงครั้งเดียวก็สามารถเปลี่ยนแปลงข้อมูลได้ทุกแถวดังนี้

SELECT FIRSTNAME, UPPER(FIRSTNAME), LOWER(FIRSTNAME)

FROM CHARACTERS;

ผลของคำสั่งจะทำการเปลี่ยนแปลงข้อมูลในคอลัมน์ FIRSTNAME ให้เป็นอักษรตัวใหญ่และเล็กตามลำดับดังนี้

FIRSTNAME

UPPER(FIRSTNAME)

LOWER(FIRSTNAME}

Kelly
KELLY
kelly

CHUCK
CHUCK
chuck

LAURA
LAURA
laura

FESTER
FESTER
fester

ARMANDO
ARMANDO
armando

MAJOR
MAJOR
major

4.7 ฟังก์ชัน REPLACE (<string>,X,Y) เป็นฟังก์ชันในการแทนค่าอักขระ X โดยการค้นหาตัวอักขระที่ต้องการแทนที แล้วแทนที่ด้วยอักขระ Y ที่ต้องการ

ตัวอย่าง ถ้าต้องการค้นหาอักขระ ST โดยไม่แทนที่ด้วยอักขระใดๆ

คำสั่งต้องการหาตัวอักษร ST ในคอลัมน์ LASTNAME โดยไม่ต้องแทนที่ด้วยตัวอักษรใด

SELECT LASTNAME, REPLACE(LASTNAME, ‘ST’) REPLACEMENT

FROM CHARACTERS;

ผลของคำสั่งจะทำให้ในแถวที่ 3 และแถวที่ 6 ที่มีคอลัมน์ LASTNAME ที่มีอักษร ST อยู่จะถูกตัดทิ้งไป

LASTNAME

REPLACEMENT

PURVIS
PURVIS

TAYLOR
TAYLOR

CHRISTINE
CHRIINE

ADAMS
ADAMS

COSTALES
COALES

KONG
KONG

 

ตัวอย่าง ถ้าต้องการหาตัวอักษร ST ในคอลัมน์ LASTNAME แล้วแทนที่ด้วย **

SELECT LASTNAME, REPLACE(LASTNAME, ‘ST’, ‘**’) REPLACEMENT

FROM CHARACTERS;

ผลของคำสั่งจะทำให้ในแถวที่ 3 และแถวที่ 6 ในคอลัมน์ LASTNAME ที่มีอักษร ST อยู่จะถูกแทนที่ด้วย **

LASTNAME

REPLACEMENT

PURVIS
PURVIS

TAYLOR
TAYLOR

CHRISTINE
CHRI**INE

ADAMS
ADAMS

COSTALES
CO**ALES

KONG
KONG

4.8 ฟังก์ชัน SUBSTR (<string>,x,y) เป็นฟังก์ชันที่นำตัวอักษร (<string>) ในตำแหน่งที่ x

ตัวอย่าง ถ้าต้องกแสดงอักษรตั้งแต่ตำแหน่งที่ 2 มาแสดง 3 ตำแหน่ง ของคอลัมน์ FIRSTNAME

SELECT FIRSTNAME, SUBSTR(FIRSTNAME,2,3)

FROM CHARACTERS;

ผลของคำสั่งจะเห็นว่าในคอลัมน์ FIRSTNAME จะแสดงอักษรออกมา 3 ตัว แม้แต่ชื่อคอลัมน์ก็จะแสดงเพียง 3 ตัวเช่นเดียวกัน

FIRSTNAME

SUB

Kelly
Ell

CHUCK
HUC

LAURA
AUR

FESTER
EST

ARMANDO
RMA

MAJOR
AJO

 

ตัวอย่าง ถ้าต้องการให้แสดงตั้งแต่ตัวอักษรในตำแหน่งที่ 3 โดยไม่จำกัดว่าให้แสดงก็ตัวอักษร

SELECT FIRSTNAME, SUBSTR(FIRSTNAME,3)

FROM CHARACTERS;

ผลของคำสั่งจะแสดงอักษรในคอลัมน์ FIRSTNAME ตั้งแต่ตัวที่ 3 ทั้งหมด

FIRSTNAME

SUBSTR(FIRSTN

Kelly
Lly

CHUCK
UCK

LAURA
URA

FESTER
STER

ARMANDO
MANDO

MAJOR
JOR

5.ฟังก์ชันการแปลง (Conversion functions)

5.1 ฟังก์ชัน TO_CHAR จะทำการแลง data type ที่เป็นตัวเลขให้เป็นตัวอักษร

SELECT TESTNUM, TO_CHAR(TESTNUM)

FROM CONVERSIONS;

ผลของคำสั่ง

TESTNUM

TO_CHAR(TESTNUM)

95
95

23
23

68
68

SELECT TESTNUM, LENGTH(TO_CHAR(TESTNUM))

FROM CONVERSIONS;

ผลของคำสั่งจะทำการนับความยาวของตัวเลขที่แปลงเป็นตัวอักษรแล้ว

TESTNUM

LEGTH(TO_CHAR(TESTNUM))

95
2

23
2

68
2

การเรียกดูข้อมูลในรูปแบบต่างๆ

1. การเรียกดูข้อมูลโดยใช้ฟั่งก์ชันในการรวม

การเรียกดูข้อมูลโดยใช้ฟังก์ชันในการรวมมีรูปแบบดังนี้

SELECT <column 1, column 2,…>

FROM <table name>

[WHERE<condition>]

[GROUP BY < grouping column>…]

[HAVING<condition>];

โดย

SELECT                                                คำสั่งที่ต้องมีทุกครั้งที่ต้องการเรียกค้นข้อมูล

column 1, column 2,…                       คอลัมน์ที่ต้องการเรียกค้น

FROM                                                     การกำหนดว่าให้เรียกดูข้อมูล ได้จากตารางใดบ้าง

table name                                           ชื่อตารางที่ต้องการเรียกค้นข้อมูล

WHERE<condition>                           ส่วนของคำสั่งที่บอกเงื่อนไขที่จะใช้ในการค้นหาข้อมูล

GROUP BY < grouping column>… ส่วนของคำสั่งที่บอกเงื่อนไขการจัดกลุ่ม

HAVING<condition>                          ใช้ควบคู่กันกับ GROUP BY เสมอ เพื่อต้องการให้ได้ข้อมูลที่จัดกลุ่มตาม GROUP BY

การเรียกดูข้อมูลโดยใช้อนุประโยค GROUP BY อนุประโยค GROUP BY เป็นคำสั่งในการกำหนดค่าต่าง ๆ ในคอลัมน์ใดคอลัมน์หนึ่งโดยเฉพาะในรูปของอีกคอลัมน์หนึ่ง ซึ่งใช้จัดเรียงข้อมูลที่มีความสัมพันธ์กันตามเงื่อนไข ข้อมูลที่ต้องการจัดกลุ่มนั้นและ ต้องสามารถรวมกลุ่มกันได้ด้วย คำสั่ง GROUP BY เป็นคำสั่งที่ใช้ในการจัดแถวข้อมูลตามคอลัมน์ที่ระบุหลัง GROUP BY โดยข้อมูลที่เหมือนกันจะจัดให้อยู่ในหมู่เดียวกัน

ตัวอย่างตาราง CHECKS

CHECK#

PAYEE

AMOUNT

REMARKS

1
Malee Benjanee
150
Have sons next time

2
Reading R.R.
24534
Train to Chiangmai

3
Malee Benjanee
20032
Cellular Phone

4
Surasit Utilities
98
Gas

5
Jintana $ Mitree
150
Groceries

16
Cash
25
Wild Night Out

17
Benjawan Gas
251
Gas

9
Arun Cleaners
2435
X-Tra Starch

20
Arun Cleaners
105
All Dry clean

8
Cash
60
Trip to Saraburi

21
Cash
34
Trip to Nonthaburi

30
Surasit Utilities
875
Water

31
Surasit Utilities
34
Sewer

25
Benjawan Gas
1575
Gas

 

ตัวอย่าง ถ้าต้องการหาผลรวมในคอลัมน์ AMOUNT ของตาราง CHECKS จะใช้คำสั่งดังนี้

SELECT PAYEE, SUM(AMOUNT)

FROM CHECKS;

ถ้าไม่ใช่ GROUP BY ในการรวมคอลัมน์ AMOUNT ของแต่ละคน จะเกิด ERROR ดังนี้

ผลลัพธ์

Dynamic SQL Error

-SQL error code = -104

-invalid column reference

จากตัวอย่างข้างตัน ถ้าต้องการนับว่า PAYEE แต่ละคนมีจำนวนค่าใช้จ่ายกี่ครั้งจะใช้คำสั่งดังนี้

SELECT PAYEE, SUM(AMOUNT), COUNT(PAYEE)

FROM CHECKS

GROUP BY PAYEE;

ผลลัพธ์

PAYEE

SUM

COUNT

Arun Cleaners
2540
2

Cash
119
3

Benjawan Gas
1826
2

Jintana $ Mitree
150
1

Surasit Utilities
1007
3

Malee Benjanee
10182
2

Reading R.R.
24534
1

ตัวอย่างตาราง ORGCHART

NAME

TEAM

SALARY

SICKLEAVE

ANNUALLEAVE

ASAMS
RESEARCH
34000.00
34
12

WILKES
MARKETING
31000.00
40
9

STOKES
MARKETING
36000.00
20
19

MEZA
COLLECTIONS
40000.00
30
27

SIRIWAN
RESEARCH
45000.00
20
17

RICHARDSON
MARKETING
42000.00
25
18

FURY
COLLECTIONS
35000.00
22
14

PRECOURT
PR
37500.00
24
24

ถ้าต้องการหาค่าเฉลี่ยของ SALARY ของ TEAM งานแต่ละTEAM จะใช้คำสั่งดังนี้

SELECT TEAM, AVG(SALARY)

FROM ORGCHART

GROUP BY TEAM;

ผลลัพธ์

TEAM

AVG

COLLECTIONS
37500.00

MARKETING
36333.33

PR
37500.00

RESEARCH
39500.00

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

จากตัวอย่างที่ผ่านมาถ้าต้องการดูเงินเดือนเฉลื่ยของทีมงานที่มีค่าน้อยกว่า 38000 จะใช้คำสั่งดังนี้

SELECT TEAM, AVG(SALARY)

FROM ORGCHART

GROUP BY TEAM

HAVING AVG(SALARY) < 38000;

ผลลัพธ์

TEAM

AVG

PR
37500.00

 

ตัวอย่าง การใช้ GROUP BY และ HAVING ร่วมกับคำสั่ง AND คือดูว่าทีมงานใดมีค่าเฉลี่ยของ SICKLEAVE มากกว่า 25 และ มีค่าเฉลี่ยของ ANNUALLEAVE น้อยกว่า 20 จะใช้คำสั่งดังนี้

SELECT TEAM, AVG(SICKLEAVE), AVG(ANNUALLEAVE)

FROM ORGCHART

GROUP BY TEAM

HAVING AVG(SICKLEAVE) >25 AND

AVG(ANNUALLEAVE) <20;

ผลลัพธ์

TEAM

AVG

AVG

MARKETING
28
15

RESEARCH
27
15

 

ตัวอย่าง ถ้าต้องการหาค่าเฉลี่ยของ SICKLEAVE และค่าเฉลี่ยของ ANNUALLEAVE ของจำนวนทีมที่มีจำนวน row มากกว่า 1 จะใช้คำสั่งดังนี้

SELECT TEAM, AVG(SICKLEAVE), AVG(ANNUALLEAVE)

FROM ORGCHART

GROUP BY TEAM

HAVING COUNT(TEAM) > 1;

ผลลัพธ์

TEAM

AVG

AVG

COLLECTIONS
26
21

MARKETING
28
15

RESEARCH
27
15

2.การเรียกค้นข้อมูลจากหลายตาราง

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

การเรียกค้นข้อมูลจากหลายตารางของภาษา SQL เป็นการกำหนดความสัมพันธ์ระหว่างตารางทั้งหลาย โดยสามารถเอาข้อมูลในตารางกี่ตารางก็ได้ให้มาสัมพันธ์กัน ดังนั้นจึงสามารถเชื่อมต่อข้อมูลที่แตกต่างกันได้โดยการใช้คำสั่ง WHERE คำสั่ง WHERE เป็นคำสั่งในการกำหนดเงื่อนไขในการเรียกดูข้อมูลใช้คู่กับคำสั่ง SELECT และ FROM

ตัวอย่างTABLE1

ROW

REMARK

Row 1
Table 1

Row 2
Table 1

Row 3
Table 1

Row 4
Table 1

Row 5
Table 1

Row 6
Table 1

ตัวอย่าง TABLE 2

ROW

REMARK

Row 1
Table 2

Row 2
Table 2

Row 3
Table 2

Row 4
Table 2

Row 5
Table 2

Row 6
Table 2

ถ้าต้องการรวมทั้ง 2 ตารางเข้าด้วยกัน

SELECT * FROM TABLE1, TABLES2

ผลลัพธ์

ROW

REMARK

ROW

REMARK

Row 1
Table 1
Row 1
Table 2

Row 1
Table 1
Row 2
Table 2

Row 1
Table 1
Row 3
Table 2

Row 1
Table 1
Row 4
Table 2

Row 1
Table 1
Row 5
Table 2

Row 1
Table 1
Row 6
Table 2

Row 2
Table 1
Row 1
Table 2

Row 2
Table 1
Row 2
Table 2

Row 2
Table 1
Row 3
Table 2

Row 2
Table 1
Row 4
Table 2

Row 2
Table 1
Row 5
Table 2

Row 2
Table 1
Row 6
Table 2

Row 3
Table 1
Row 1
Table 2

Row 3
Table 1
Row 2
Table 2

Row 3
Table 1
Row 3
Table 2

Row 3
Table 1
Row 4
Table 2

Row 3
Table 1
Row 5
Table 2

Row 3
Table 1
Row 6
Table 2

Row 4
Table 1
Row 1
Table 2

Row 4
Table 1
Row 2
Table 2

Row 4
Table 1
Row 3
Table 2

Row 4
Table 1
Row 4
Table 2

Row 4
Table 1
Row 5
Table 2

Row 4
Table 1
Row 6
Table 2

Row 5
Table 1
Row 1
Table 2

Row 5
Table 1
Row 2
Table 2

Row 5
Table 1
Row 3
Table 2

Row 5
Table 1
Row 4
Table 2

Row 5
Table 1
Row 5
Table 2

Row 5
Table 1
Row 6
Table 2

Row 6
Table 1
Row 1
Table 2

Row 6
Table 1
Row 2
Table 2

Row 6
Table 1
Row 3
Table 2

Row 6
Table 1
Row 4
Table 2

Row 6
Table 1
Row 5
Table 2

Row 6
Table 1
Row 6
Table 2

3. การเรียกดูข้อมูลแบบซ้อนกัน

การเรียกดูข้อมูลแบบซ้อนกัน(subqueies) เป็นการสร้างคำสั่ง SELECT ซ้อนกัน การเรียกดูข้อมูลแบบซ้อนกันมีจุดประสงค์เพื่อลดภาระในการเชื่อมตารางที่ต้องใช้ในหน่วยความจำเป็นจำนวนมาก คำสั่งย่อยนี้สามารถสร้างหลังคำสั่ง WHERE มีรูปแบบดังนี้

SELECT [*] <column 1, column 2,…>

FROM <table name>

[WHERE<column list = <Select Statement>]

โดย

SELECT                                คำสั่งที่ต้องมีทุกครั้งที่ต้องการเรียกค้นข้อมูล

column 1, column 2,…       คอลัมน์ที่ต้องการเรียกค้น

FROM                                     การกำหนดว่าให้เรียกดูข้อมูล ได้จากตารางใดบ้าง

table name                           ชื่อตารางที่ต้องการเรียกค้นข้อมูล

WHERE<condition>           ส่วนของคำสั่งที่บอกเงื่อนไขที่จะใช้ในการค้นหาข้อมูล

Select Statement                 ส่วนของคำสั่งที่เรียกค้นข้อมูลตามเงื่อนไข

การทำงานของคำสั่งย่อยที่ใช้ในการระบุเงื่อนไขหรือเรียกข้อมูลจะทำจากคำถามย่อยด้านในสุดผลที่ได้จะเป็นค่ากลับมาให้กับค่าที่อยู่หน้าเครื่องหมายเท่ากับ เพื่อเรียกค้นข้อมูล( SELECT )ตามต้องการ

ตัวอย่าง ถ้าต้องการหาคำสั่งซื้อของพนักงานขายที่อาศัยอยู่ใน Bangkok

SELECT *

FROM ORDERSTAB

WHERE SALENO IN

(SELECT SALENO

FROM SALETAB

WHERE ADDRESS = ‘Bangkok’);

ผลของคำสั่งจะได้ตารางดังนึ้

ตารางคำสั่งซึ้อสินค้า

ORDERNO

AMT

ORDERDATE

CUSNO

SALENO

3001
1869
6/03/2000
2008
1007

3003
76719
6/03/2000
2001
1001

3002
190010
6/03/2000
2007
1004

3005
516045
6/03/2000
2003
1002

3006
109816
6/03/2000
2008
1007

3009
171323
6/04/2000
2002
1003

3007
7573
6/04/2000
2004
1002

3008
472300
6/05/2000
2006
1001

3010
130995
6/06/2000
2004
1002

3011
989198
6/06/2000
2006
1001

ตารางพนักงานขาย

SALENO

SALENAME

ADDRESS

SALECOM

1001
Chaiwat
Bangkok
0.12

1002
Mitree
Puket
0.13

1004
Benjawan
Bangkok
0.11

1007
Kanjana
Chiangmai
0.15

1003
Ternjai
Nonthaburi
0.10

ORDERNO

AMT

ORDERDATE

CUSNO

SALENO

3003
76719
6/03/2000
2001
1001

3002
190010
6/03/2000
2007
1004

3008
472300
6/05/2000
2006
1001

3011
989198
6/06/2000
2006
1001

จากตัวอย่างนี้สามารถใช้คำสั่งที่ง่ายกว่าและได้ผลลัพธ์เหมือนกันคือ

SELECT ORDERNO AMT ORDERDATE CUSNO ORDERSTAB. SALENO

FROM ORDERSTAB, SALETAB

WHERE ORDERSTAB.SALENO SALETAB.SALENO

AND SALETAB.ADDRESS = ‘Bangkok’;

ตัวอย่าง ตาราง PART

PARTNUM

DESCRIPTION

PRICE

54
PEDALS
54.25

42
SEATS
24.50

46
TIRES
15.25

23
MOUNTAIN BIKE
350.45

76
ROAD BIKE
530.00

10
TANDEM
1200.00

ตัวอย่างตาราง ORDERS

ORDEREDON

NAME

PARTNUM

QUANTITY

REMARKS

15-MAY-2001
TRUE WHEEL
23
6
PAID

19-MAY-2001
TRUE WHEEL
76
3
PAID

2-SEP-2001
TRUE WHEEL
10
1
PAID

30-JUN-2001
BIKE SPEC
54
10
PAID

30-MAY-2001
BIKE SPEC
10
2
PAID

30-MAY-2001
BIKE SPEC
23
8
PAID

17-JAN-2001
BIKE SPEC
76
11
PAID

17-JAN-2001
LE SHOPPE
76
5
PAID

1-JUN-2001
LE SHOPPE
10
3
PAID

1-JUN-2001
AAA BIKE
10
1
PAID

1-JUN-2001
AAA BIKE
76
4
PAID

1-JUN-2001
AAA BIKE
46
14
PAID

11-JUN-2001
JACKS BIKE
76
14
PAID

SELECT *

FROM ORDERS

WHERE PARTNUM =

(SELECT PARTNUM

FROM PART

WHERE DESCRIPTION LIKE “ROAD%”)

ผลลัพธ์

Share this:

Like this:

ถูกใจ

กำลังโหลด…

[Update] บทที่ 13 การสร้างแบบจำลองข้อมูล | พนักงาน คีย์ ข้อมูล คือ – NATAVIGUIDES

แบบจำลองข้อมูล (Data Modeling)

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

การสร้างแบบจำลองฐานข้อมูลจะเป็นกระบวนการทำซ้ำแบบค่อยเป็นค่อยไป โดยในตอนเริ่มต้นเรา อาจเริ่มต้นจากความเข้าอย่างๆง่ายๆเกี่ยวกับขอบเขตปัญหาและสามารถทำการสร้างแบบจำลองฐานข้อมูล อย่างง่ายตามความเข้าใจที่มี แต่หลังจากทำการติดต่อสื่อสารกับผู้ใช้และการพิจารณาเกี่ยวกับข้อมูลและ ขั้นตอนในการดำเนินธุรกิจต่างๆซ้ำแล้วซ้ำเล่าจะทำให้เรามีความเข้าใจเกี่ยวกับของเขตของปัญหามากยิ่งขึ้น และจะช่วยให้เราสามารถเพิ่มเติมรายละเอียดของแบบจำลองฐานข้อมูลได้มากขึ้น ในท้ายสุด เราจะได้ แบบจำลองฐานข้อมูลที่สามารถตอบสนองต่อความต้องการของผู้ใช้ที่ซึ่งจะมีลักษณะคล้ายกับพิมพ์เขียวที่ บรรจุไปด้วยวิธีการในการสร้างฐานข้อมูล โดยพิมพ์เขียวที่ได้จะมีลักษณะเป็นแผนภาพที่จะประกอบไปด้วย 1) ค าอธิบายเกี่ยวกับโครงสร้างของข้อมูลที่ใช้ในการจัดเก็บข้อมูลที่ผู้ใช้ต้องการ 2) กฎที่เกี่ยวข้องกับการการัน ตีความสมบูรณ์ของข้อมูล (data integrity) และ 3) วิธีการในการจัดการข้อมูลที่ซึ่งจะสนับสนุนการ เปลี่ยนแปลง/เปลี่ยนรูปข้อมูล ตามลำดับ จากที่ได้กล่าวข้างต้น แบบจำลองข้อมูลทำหน้าที่เสมือนกับเครื่องมือที่ใช้ในการติดต่อสื่อสารระหว่างผู้ออกแบบฐานข้อมูล ผู้เขียนโปรแกรม และผู้ใช้ระบบฐานข้อมูล ถ้าเรา สามารถสร้างแบบจำลองข้อมูลที่ดี แบบจำลองนี้จะช่วยเพิ่มความเข้าใจและจะสามารถสะท้อนถึงโครงสร้างที่ เหมาะสมสำหรับจัดเก็บข้อมูลตามแนวทางในการดำเนินธุรกิจ (หมายเหตุ ในการออกแบบฐานข้อมูล ผู้ออกแบบฐานข้อมูลควรที่จะต้องมีการตัดสินใจที่ดีที่ซึ่งจะช่วยให้สามารถสร้างแบบจำลองฐานข้อมูลที่ดีได้ การตัดสินใจที่ดีมักจะได้มาจากการทดลองและการประสบความล้มเหลว ดังนั้น ถ้าเราต้องการที่จะมีการ ตัดสินใจที่ดี เราจำเป็นที่จะต้องฝึกฝนเกี่ยวกับการออกแบบฐานข้อมูลบ่อยๆเพื่อที่จะได้รับประสบการณ์ เพิ่มขึ้นจากการออกแบบฐานข้อมูลในแต่ละครั้ง)

ลำดับชั้นข้อมูล(Data Hierarchy)

1. บิต (bit : binary digit) เป็นหน่วยที่เล็กที่สุดของข้อมูล

2. ไบต์ (byte) เป็นการรวมกลุ่มของบิตหลาย ๆ บิตเข้าด้วยกันเพื่อใช้แทนอักขระ 1 ตัวเรียกว่า ไบต์ (byte) ซึ่งแทนหนึ่งตัวอักขระ ในการแทนรหัสข้อมูลด้วยเลขฐาน 2 เมื่อ n เป็นจำนวนบิตที่ใช้ในการแทนรหัสข้อมูล 1 อักขระ เช่น รหัสเอบซีดิก(EBCDIC : Extended Binary Code Decimal Interchange Code) รหัสแอสกี(ASCII : American Standard Code for Internation Interchange) ใช้ 8 บิตรวมเป็น 1 ไบต์สามารถมีอักขระได้ 256 อักขระ เช่น ใช้รหัส 1100-0001 แทน 1A เป็นต้น

3. ฟิลด์ (filed) เป็นการนำอักขระหลาย ๆ ตัวรวมกันโดยมีความหมายอย่างใดอย่างหนึ่งเราจะเรียกว่า เขตข้อมูลหรือฟิลด์ (filed) เช่น การรวมของตัวอักษรและตัวเลขเพื่อใช้แทนรหัสลูกค้า เช่น ‘C0100001’ เป็นต้น

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

1. ฟิลด์ตัวเลข (numeric field) ประกอบด้วย อักขระที่เป็นตัวเลข ซึ่งอาจเป็นเลขจำนวนเต็มหรือทศนิยมและอาจมีเครื่องหมายลบหรือบวก เช่น ยอดคงเหลือในบัญชีเป็นกลุ่มของตัวเลข

2. ฟิลด์ตัวอักษร (alphabetic field) ประกอบด้วย อักขระที่เป็นตัวอักษรหรือช่องว่าง (blank) เช่น ชื่อลูกค้าเป็นกลุ่มของตัวอักษร

3. ฟิลด์อักขระ (character field หรือ alphanumeric field) ประกอบด้วย อักขระซึ่งอาจจะเป็นตัวเลขหรือตัวอักษรก็ได้ เช่น ที่อยู่ของลูกค้า

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

4. เรคคอร์ด (record) หรือ ระเบียน คือ กลุ่มของฟิลด์ที่สัมพันธ์กัน ประกอบขึ้นมาจากข้อมูลพื้นฐานต่างประเภทกันรวมขึ้นมาเป็น 1 ระเบียน ระเบียนจะประกอบด้วย ฟิลด์ ต่างประเภทกันอยู่รวมกันเป็นชุด เช่น ระเบียนของเช็คแต่ละระเบียน จะประกอบด้วยฟิลด์ ชื่อธนาคาร เช็คเลขที่ วันที่ สั่งจ่าย จำนวนเงิน สาขา เลขที่ เลขที่บัญชี ข้อมูลเช็คธนาคารประกอบด้วยฟิลด์ต่าง ๆ ระเบียนแต่ละระเบียนจะมีฟิลด์ที่ใช้อ้างอิงถึงข้อมูลในระเบียนนั้น ๆ อย่างน้อย 1 ฟิลด์เสมอ ฟิลด์ที่ใช้อ้างอิงนี้เรียกว่าคีย์ฟิลด์ (key field) ในทุกระเบียนจะมีฟิลด์หนึ่งที่ถูกใช้เป็นคีย์ฟิลด์ ฟิลด์ที่ถูกใช้เป็นคีย์จะเป็นฟิลด์ที่มีค่าไม่ซ้ำกันในแต่ละระเบียน (unique) เพื่อสะดวกในการจัดเรียงระเบียนในแฟ้มข้อมูลและการจัดโครงสร้างของแฟ้มข้อมูล เช่น ระเบียนของเช็คธนาคาร จะใช้เลขที่บัญชีเป็นคีย์ฟิลด์ ระเบียนแฟ้มข้อมูลพนักงานใช้เลขประจำตัวพนักงานเป็นคีย์ฟิลด์

5. ฐานข้อมูล (database) หมายถึง กลุ่มของข้อมูลที่ถูกเก็บรวบรวมไว้ โดยมีความสัมพันธ์ซึ่งกันและกัน โดยไม่ได้บังคับว่าข้อมูลทั้งหมดนี้จะต้องเก็บไว้ในแฟ้มข้อมูลเดียวกันหรือแยกเก็บหลาย ๆ แฟ้มข้อมูลนั่นก็คือการเก็บข้อมูลในฐานข้อมูลนั้นเราอาจจะเก็บทั้งฐานข้อมูล โดยใช้แฟ้มข้อมูลเพียงแฟ้มข้อมูลเดียวกันได้ หรือจะเก็บไว้ในหลาย ๆ แฟ้มข้อมูล ที่สำคัญคือจะต้องสร้างความสัมพันธ์ระหว่างระเบียนและเรียกใช้ความสัมพันธ์นั้นได้ มีการกำจัดความซ้ำซ้อนของข้อมูลออกและเก็บแฟ้มข้อมูลเหล่านี้ไว้ที่ศูนย์กลาง เพื่อที่จะนำข้อมูลเหล่านี้มาใช้ร่วมกัน ควบคุมดูแลรักษาเมื่อผู้ต้องการใช้งานและผู้มีสิทธิ์จะใช้ข้อมูลนั้นสามารถดึงข้อมูลที่ต้องการออกไปใช้ได้ ข้อมูลบางส่วนอาจใช้ร่วมกับผู้อื่นได้ แต่บางส่วนผู้มีสิทธิ์เท่านั้นจึงจะสามารถใช้ได้โดยทั่วไปองค์กรต่าง ๆ จะสร้างฐานข้อมูลไว้ เพื่อเก็บข้อมูลต่าง ๆ ของตัวองค์กร โดยเฉพาะอย่างยิ่งข้อมูลในเชิงธุรกิจ เช่น ข้อมูลของลูกค้า ข้อมูลของสินค้า ข้อมูลของลูกจ้าง และการจ้างงาน เป็นต้น การควบคุมดูแลการใช้ฐานข้อมูลนั้น เป็นเรื่องที่ยุ่งยากกว่าการใช้แฟ้มข้อมูลมาก เพราะเราจะต้องตัดสินใจว่าโครงสร้างในการจัดเก็บข้อมูลควรจะเป็นเช่นไร การเขียนโปรแกรมเพื่อสร้างและเรียกใช้ข้อมูลจากโครงสร้างเหล่านี้ ถ้าโปรแกรมเหล่านี้เกิดทำงานผิดพลาดขึ้นมา ก็จะเกิดความเสียหายต่อโครงสร้างของข้อมูลทั้งหมดได้ เพื่อเป็นการลดภาวะการทำงานของผู้ใช้ จึงได้มีส่วนของฮาร์ดแวร์และโปรแกรมต่าง ๆ ที่สามารถเข้าถึงและจัดการข้อมูลในฐานข้อมูลนั้น เรียกว่า ระบบจัดการฐานข้อมูล หรือDBMS (data base management system) ระบบจัดการฐานข้อมูล คือ ซอฟต์แวร์ที่เปรียบเสมือนสื่อกลางระหว่างผู้ใช้และโปรแกรมต่าง ๆ ที่เกี่ยวข้องกับการใช้ฐานข้อมูล ซึ่งมีหน้าที่ช่วยให้ผู้ใช้เข้าถึงข้อมูลได้ง่ายสะดวกและมีประสิทธิภาพ การเข้าถึงข้อมูลของผู้ใช้อาจเป็นการสร้างฐานข้อมูล การแก้ไขฐานข้อมูล หรือการตั้งคำถามเพื่อให้ข้อมูลมา โดยผู้ใช้ไม่จำเป็นต้องรับรู้เกี่ยวกับรายละเอียดภายในโครงสร้างของฐานข้อมูล เปรียบเสมือนเป็นสื่อกลางระหว่างผู้ใช้และโปรแกรมต่าง ๆ ที่เกี่ยวข้องกับการใช้ฐานข้อมูล

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

ลักษณะของระบบแฟ้มข้อมูล

1. ระเบียนขนาดคงที่ (fixed length record)โดยปกติแล้วภายในแฟ้มข้อมูลจะจัดเก็บระเบียนอยู่ในรูปแบบใดแบบหนึ่งโดยเฉพาะ ทุกระเบียนจะประกอบด้วยหน่วยข้อมูลย่อยที่เหมือน ๆ กัน นั่นคือ โครงสร้างของทุกระเบียนในแฟ้มข้อมูลจะเป็นแบบเดียวกันหมด ถ้าขนาดของระเบียนมี จำนวนตัวอักขระเท่ากันหมดในทุก ๆ ระเบียนของแฟ้มข้อมูล ระเบียนนั้นจะถูกเรียกว่าระเบียนขนาดคงที่ (fixed length record)

2. ระเบียนที่มีความยาวแปรได้ (variable length record) คือทุกเรคคอร์ดอาจจะมีจำนวนฟิลด์ต่างกัน และแต่ละฟิลด์ก็อาจจะมีความยาวต่างกันได้ แฟ้มข้อมูลประเภทนี้มีลักษณะโครงสร้างแบบพิเศษที่ช่วยให้คอมพิวเตอร์สามารถบอกได้ว่าแต่ละเรคคอร์ดมีความยาวเท่าใด และแต่ละฟิลด์เริ่มต้นตรงไหนและจบตรงไหนตัวอย่างของแฟ้มประเภทนี้ได้แก่ แฟ้มบันทึกรายการใบสั่งซื้อสินค้า แต่ละเรคคอร์ดจะแทนใบสั่งสินค้าหนึ่งใบและใบสั่งสินค้าแต่ละใบอาจจะมีรายการสินค้าที่สั่งซื้อไม่เท่ากัน

การจัดการแฟ้มข้อมูล

1. การสร้างแฟ้มข้อมูล (file creating) คือ การสร้างแฟ้มข้อมูลเพื่อนำมาใช้ในการประมวลผล ส่วนใหญ่จะสร้างจากเอกสารเบื้องต้น (source document) การสร้างแฟ้มข้อมูลจะต้องเริ่มจากการพิจารณากำหนดสื่อข้อมูลการออกแบบฟอร์มของระเบียน การกำหนดโครงสร้างการจัดเก็บแฟ้มข้อมูล (file organization) บนสื่ออุปกรณ์

2. การปรับปรุงรักษาแฟ้มข้อมูล แบ่งออกได้ 2 ประเภท คือ

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

2. การปรับเปลี่ยนข้อมูล (updating) เมื่อมีแฟ้มข้อมูลที่จะนำมาใช้ในการประมวลผลก็จำเป็นที่จะต้องทำหรือรักษาแฟ้มข้อมูลนั้นให้ทันสมัยอยู่เสมอ อาจจะต้องมีการเพิ่มบางระเบียนเข้าไป (adding) แก้ไขเปลี่ยนแปลงค่าฟิลด์ใดฟิลด์หนึ่ง (changing) หรือลบบางระเบียนออกไป (deleting)

ประเภทของแฟ้มข้อมูล

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

2. แฟ้มข้อมูลรายการเปลี่ยนแปลง (transaction file)แฟ้มข้อมูลรายการเปลี่ยนแปลงเป็นแฟ้มข้อมูลที่ประกอบด้วยระเบียนข้อมูลที่มีการเคลื่อนไหว ซึ่งจะถูกรวบรวมเป็นแฟ้มข้อมูลรายการเปลี่ยนแปลงที่เกิดขึ้นในแต่ละงวดในส่วนที่เกี่ยวข้องกับข้อมูลนั้น แฟ้มข้อมูลรายการเปลี่ยนแปลงนี้จะนำไปปรับรายการในแฟ้มข้อมูลหลัก ให้ได้ยอดปัจจุบัน ตัวอย่างเช่น แฟ้มข้อมูลลงทะเบียนเรียนของนักศึกษา

3. แฟ้มข้อมูลตาราง (table file)แฟ้มข้อมูลตารางเป็นแฟ้มข้อมูลที่มีค่าคงที่ ซึ่งประกอบด้วยตารางที่เป็นข้อมูลหรือชุดของข้อมูลที่มีความเกี่ยวข้องกันและถูกจัดให้อยู่รวมกันอย่างมีระเบียบ โดยแฟ้มข้อมูลตารางนี้จะถูกใช้ในการประมวลผลกับแฟ้มข้อมูลอื่นเป็นประจำอยู่เสมอ เช่น ตารางอัตราภาษี ตารางราคาสินค้าตัวอย่าง

4. แฟ้มข้อมูลเรียงลำดับ (sort file) แฟ้มข้อมูลเรียงลำดับเป็นการจัดเรียงระเบียนที่จะบรรจุในแฟ้มข้อมูลนั้นใหม่ โดยเรียงตามลำดับค่าของฟิลด์ข้อมูลหรือค่าของข้อมูลค่าใดค่าหนึ่งในระเบียนนั้นก็ได้ เช่น จัดเรียงลำดับตาม วันเดือนปี ตามลำดับตัวอักขระเรียงลำดับจากมากไปหาน้อยหรือจากน้อยไปหามาก เป็นต้นแฟ้มข้อมูลรายงาน (report file) เป็นแฟ้มข้อมูลที่ถูกจัดเรียงระเบียบตามรูปแบบของรายงานที่ต้องการแล้วจัดเก็บไว้ในรูปของแฟ้มข้อมูล ตัวอย่าง เช่น แฟ้มข้อมูลรายงานควบคุมการปรับเปลี่ยนข้อมูลที่เกิดขึ้นในขณะปฏิบัติงานแต่ละวัน

การจัดโครงสร้างแฟ้มข้อมูล (file organization) เป็นการกำหนดวิธีการที่ระเบียนถูกจัดเก็บอยู่ในแฟ้มข้อมูลบนอุปกรณ์ที่ใช้เก็บข้อมูล ซึ่งลักษณะโครงสร้างของระเบียนจะถูกจัดเก็บไว้เป็นระบบ โดยมีวัตถุประสงค์เพื่อให้การจัดเก็บข้อมูลและการเข้าถึงข้อมูลมีความสะดวกรวดเร็ว การจัดโครงสร้างของแฟ้มข้อมูลอาจแบ่งได้เป็น 3 ลักษณะคือ

1. โครงสร้างของแฟ้มข้อมูลแบบลำดับ (sequential file) เป็นการจัดแฟ้มข้อมูซึ่งระเบียนภายในแฟ้มข้อมูลจะถูกบันทึกโดยเรียงตามลำดับคีย์ฟิลด์ หรืออาจจะไม่เรียงลำดับตามคีย์ฟิลด์ก็ได้ ข้อมูลจะถูกบันทึกลงในสื่อบันทึกข้อมูลโดยจะถูกบันทึกไว้ในตำแหน่งที่อยู่ติด ๆ กัน การนำข้อมูลมาใช้ของโครงสร้างแฟ้มข้อมูลแบบลำดับจะต้องอ่านข้อมูลไปตามลำดับจะเข้าถึงข้อมูลโดยตรงไม่ได้ ส่วนการจัดโครงสร้างแฟ้มข้อมูลแบบลำดับตามดัชนี เป็นการจัดข้อมูลแบ่งตามหมวดหมู่ สรุปเป็นตารางซึ่งมีลักษณะคล้ายสารบาญของหนังสือ การจัดข้อมูลแบบนี้ทำให้สามารถเข้าถึงข้อมูลได้ง่าย โดยตรงไปที่ตารางซึ่งเป็นดัชนี จะทำให้ทราบตำแหน่งของข้อมูลนั้น โดยไม่ต้องอ่านข้อมูลทีละระเบียน การจัดโครงสร้างของแฟ้มข้อมูลแบบสัมพัทธ์ แฟ้มข้อมูลแบบสัมพัทธ์นี้ข้อมูลจะถูกบันทึกโดยอาศัยกลไกการกำหนดตำแหน่งของข้อมูล ซึ่งจะช่วยให้สามารถตรงไปถึงหรือบันทึกข้อมูลที่ต้องการได้โดยไม่ต้องอ่านหรือผ่านข้อมูลที่อยู่ในลำดับก่อนหน้าระเบียนที่ต้องการ การดึงหรือการบันทึกข้อมูลจะสามารถทำได้อย่างรวดเร็ว ในโครงสร้างแฟ้มข้อมูลแบบลำดับประกอบด้วยระเบียนที่จัดเรียงไปตามลำดับอย่างต่อเนื่องเมื่อจัดสร้างแฟ้มข้อมูลโดยจะบันทึกระเบียนเรียงตามลำดับการบันทึกระเบียนจะถูกเขียนต่อเนื่องไปตามลำดับจากระเบียนที่ 1 ถึงระเบียน n และการอ่านระเบียนภายในแฟ้มข้อมูลก็ต้องใช้วิธีการอ่านแบบต่อเนื่องตามลำดับคือ อ่านตั้งแต่ต้นแฟ้มข้อมูลไปยังท้ายแฟ้มข้อมูล โดยอ่านระเบียนที่ 1,2,3 และ 4 มาก่อน ตัวอย่างเช่น ถ้าต้องการอ่านระเบียนที่ 8 ก็ต้องอ่านระเบียนลำดับที่ 1,2,3,4,5,6,7 ก่อน

2. โครงสร้างของแฟ้มข้อมูลแบบลำดับตามดัชนี (index sequential file) เป็นวิธีการเก็บข้อมูลโดยแต่ละระเบียนในแฟ้มข้อมูลจะมีค่าของคีย์ฟิลด์ที่ใช้เป็นตัวระบุระเบียนนั้น ค่าคีย์ฟิลด์ของแต่ละระเบียนจะต้องไม่ซ้ำกับค่าคีย์ฟิลด์ในระบบอื่น ๆ ในแฟ้มข้อมูลเดียวกัน เพราะการจัดโครงสร้างแฟ้มข้อมูลแบบนี้จะใช้คีย์ฟิลด์เป็นตัวเข้าถึงข้อมูล การเข้าถึงข้อมูลหรือการอ่านระเบียนใด ๆ จะเข้าถึงได้อย่างสุ่ม การจัดโครงสร้างแฟ้มข้อมูลต้องบันทึกลงสื่อข้อมูลที่เข้าถึงข้อมูลได้โดยตรง เช่น จานแม่เหล็ก การสร้างแฟ้มข้อมูลประเภทนี้ไม่ว่าจะสร้างครั้งแรกหรือสร้างใหม่ ข้อมูลแต่ละระเบียนต้องมีฟิลด์หนึ่งใช้เป็นคีย์ฟิลด์ของข้อมูล ระบบปฏิบัติการจะนำคีย์ฟิลด์ของข้อมูลไปสร้างเป็นตารางดัชนีทำให้สามารถเข้าถึงระเบียนได้เร็ว นอกจากจะเข้าถึงระเบียนใด ๆ ได้เร็วขึ้นแล้วยังมีประโยชน์สามารถเพิ่มระเบียนเข้าในส่วนใด ๆ ของแฟ้มข้อมูลได้ ในแต่ละแฟ้มข้อมูลที่ถูกบันทึกลงสื่อข้อมูลจะมีตารางดัชนีทำให้เข้าถึงระเบียนใด ๆ ได้รวดเร็วขึ้น

โครงสร้างแฟ้มข้อมูลแบบลำดับตามดัชนีประกอบด้วย

1. ดัชนี (index) ของแฟ้มข้อมูลจะเก็บค่าคีย์ฟิลด์ของข้อมูล และที่อยู่ในหน่วยความจำ (address) ที่ระเบียนนั้นถูกนำไปบันทึกไว้ ซึ่งดัชนีนี้จะต้องเรียงลำดับจากน้อยไปมาก หรือจากมากไปน้อยโดยที่ส่วนของดัชนีจะมีตัวบ่งชี้ไปยังที่อยู่ในหน่วยความจำ เพื่อจะได้นำไปถึงระเบียนข้อมูลในข้อมูลหลัก

2. ข้อมูลหลัก (data area) จะเก็บระเบียนข้อมูล ซึ่งระเบียนนั้นอาจจะเรียงตามลำดับจากน้อยไปมากหรือจากมากไปน้อย ในการจัดลำดับของข้อมูลหลักอาจจะจัดข้อมูลออกไปกลุ่ม ๆ โดยจะเว้นที่ไว้เพื่อให้มีการปรับปรุงแฟ้มข้อมูลได้

3. โครงสร้างของแฟ้มข้อมูลแบบสัมพัทธ์ (relative file) เป็นโครงสร้างที่สามารถเข้าถึงข้อมูลหรืออ่านระเบียนใด ๆ ได้โดยตรง วิธีนี้เป็นการจัดเรียงข้อมูลเข้าไปในแฟ้มข้อมูลโดยอาศัยฟิลด์ข้อมูลเป็นตัวกำหนดตำแหน่งของระเบียนนั้น ๆ โดยค่าของคีย์ฟิลด์ข้อมูลในแต่ละระเบียนของแฟ้มข้อมูลจะมีความสัมพัทธ์กับตำแหน่งที่ระเบียนนั้นถูกจัดเก็บไว้ในหน่วยความจำ ค่าความสัมพัทธ์นี้ เป็นการกำหนดตำแหน่ง (mapping function) ซึ่งเป็นฟังก์ชั่นที่ใช้ในการเปลี่ยนแปลงคีย์ฟิลด์ของระเบียนให้เป็นตำแหน่งในหน่วยความจำ โดยที่การจัดเรียงลำดับที่ของระเบียนไม่จำป็นต้องมีความสัมพันธ์กับการจัดลำดับที่ของระเบียนที่ถูกจัดเก็บไว้ในหน่วยความ การจัดเก็บข้อมูลลงแฟ้มข้อมูลแบบสัมพัทธ์ (relative file) จะถูกจัดเก็บอยู่บนสื่อที่สามารถเข้าถึงได้โดยตรง เช่น แผ่นจานแม่เหล็ก ลักษณะโครงสร้างแฟ้มข้อมูลแบบสัมพัทธ์จะประกอบด้วยตำแหน่งในหน่วยความจำ ซึ่งเกิดจากนำคีย์ฟิลด์ของระเบียนมาทำการกำหนดตำแหน่ง ซึ่งการกำหนดตำแหน่งนี้จะทำการปรับเปลี่ยนค่าคีย์ฟิลด์ของระเบียนให้เป็นตำแหน่งในหน่วยความจำที่คำนวณได้ แฟ้มข้อมูลหลัก แฟ้มข้อมูลนี้ประกอบด้วยระเบียนที่จัดเรียงตามตำแหน่งในหน่วยความจำโดยจะเรียงจากระเบียนที่ 1 จนถึง N แต่จะไม่เรียงลำดับตามค่าของคีย์ฟิลด์

โครงสร้างบันทึกและ บันทึกคีย์

เขตข้อมูลเฉพาะในแต่ละระเบียนของคอมพิวเตอร์ ไฟล์เป็นส่วนหนึ่งของโครงสร้างบันทึก

Record Keys เป็นตัวระบุสำหรับบันทึก:

คีย์หลักไม่ซ้ำกันสำหรับแต่ละระเบียน ปุ่มรองคือ

– ตัวระบุเฉพาะสำหรับบันทึกและ

– ใช้สำหรับค้นหาไฟล์เพื่อหาข้อมูลเฉพาะ คีย์ต่างประเทศเปิดใช้งานบันทึกฐานข้อมูล อ้างอิงหนึ่งรายการขึ้นไปในไฟล์อื่น

การบริหารและเอกสาร (Administration and Documentation)

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

แนวทางการประเมินผู้บริหารนั้น สามารถพิจารณาผ่าน 3 ทางได้แก่

1.โครงสร้าง ให้ดูที่ความสัมพันธ์ระหว่างผู้บริหารและผู้ใต้บังคับบัญชาตามลำดับขั้นตอนของสายงาน ตามการจัดองค์การ

2.หน้าที่ ผู้บริหารที่ดีสามารถระบุหน้าที่ บทบาท ความรับผิดชอบตลอดจนสนับสนุนทรัพยากรให้แก่ผู้ปฏิบัติงานได้ดี

3.ทางปฏิบัติ ผู้บริหารที่ดีทำให้ผู้ปฏิบัติงานพร้อมและเต็มใจทำงานอย่างเต็มความสามารถ

เอกสาร (Documentation) คือ เอกสารที่เขียนอธิบายขั้นตอนเกี่ยวกับการใช้ชุดคำสั่ง หรือรายละเอียดต่าง ๆ เกี่ยวกับการใช้คอมพิวเตอร์ประมวลผลงานหนึ่ง ๆ โดยปกติ ชุดคำสั่งทุกชุดควรมีเอกสารประกอบ เพื่อสะดวกในการนำมาใช้ใหม่ภายหลัง

ความเห็นสำรองและรักษาความปลอดภัย (Concurrency Backup and Security)

การควบคุมภาวะพร้อมกันเป็นสิ่งจำเป็น

-ป้องกันการเข้าถึงไฟล์เดียวกันของผู้ใช้หลายคน

-ทำธุรกรรมตามลำดับ

ข้อมูลในฐานข้อมูลการบัญชีจำนวนมากจะต้องได้รับการคุ้มครอง

– ถูกจัดเก็บโดยขั้นตอนการสำรองข้อมูลเพื่อดึง

– ได้รับการปกป้องจากการเข้าถึงโดยไม่ได้รับอนุญาตโดยการใช้รหัสผ่าน เทคนิคการเข้ารหัส

ขั้นตอนในการสร้างฐานข้อมูล REA (Steps in Creating Databases with REA)

บันทึกระบบบัญชีตามเหตุการณ์ (EBA) คือ กิจกรรมที่เกิดขึ้นจริง

REA เป็นเครื่องมือสำหรับการออกแบบฐานข้อมูล

AlS รวบรวมข้อมูลเกี่ยวกับองค์กร

– ทรัพยากรเหตุการณ์และตัวแทน (REA)

– ทรัพยากรเป็นทรัพย์สินขององค์กร

– กิจกรรมเป็นกิจกรรมที่ระบุตัวตนได้

– กระบวนการทางธุรกิจ

– ตัวแทนคือบุคคลที่เกี่ยวข้องกับธุรกิจกิจกรรม

ระบุเหตุการณ์และหน่วยงาน (Identify Events and Entities)

กระบวนการทางธุรกิจเกี่ยวข้องกับเหตุการณ์สองประเภท:

กิจกรรมทางเศรษฐกิจที่

– ส่งผลกระทบต่องบการเงินขององค์กร

กิจกรรมทางธุรกิจที่

– ส่งผลกระทบต่อองค์กรด้วยวิธีการเพิ่มมูลค่า

Entity-Relationship Model (E-R Model)

E-R Model เป็นโมเดลที่ใช้ในการออกแบบฐานข้อมูล ในระดับ conceptual ประกอบด้วยชุดของ object (Entity) และความสัมพันธ์ (relationship) ระหว่าง object E-R diagram สร้างขึ้นเพื่อสื่อความหมายของข้อมูลในระบบและแสดงให้เห็นความสัมพันธ์กันของข้อมูล

Entity & Entity Set

Entity คือ “สิ่งๆหนึ่ง” หรือ object ที่มีอยู่ ซึ่งแต่ละ object ก็แตกต่างกันไป

Entity Set คือ กลุ่มของ entity หรือ object ที่เป็น “ชนิดเดียวกัน” คือมีคุณสมบัติร่วมกันบางประการ เช่น นักศึกษาแต่ละคน ถือเป็น entity , กลุ่มของนักศึกษาในคณะวิศวกรรมศาสตร์ ถือเป็นหนึ่ง Entity Set ของนักศึกษา ซึ่งต่างจาก Entity Set ของ “วิชา” ซึ่งเก็บรวบรวม รายวิชาต่างๆ เป็นต้น

Properties or Attributes of an Entity

Entity หนึ่งๆ ประกอบด้วยคุณสมบัติ หรือ ลักษณะที่ต่างกันไป ข้อมูลที่แสดงถึงคุณลักษณะของ Entity เรียกว่าAttribute เช่น ข้อมูลนักศึกษาคนหนึ่ง ประกอบไปด้วย ชื่อ, รหัส, คณะ, วันเกิด, เพศ, ส่วนสูง, น้ำหนัก, ฯลฯ

ตัวอย่าง ข้อมูลของนักศึกษา ( Student )

โครงสร้างของ Student ประกอบด้วย attribute Student_Code, Student_Name, Faculty, Birthdate

ชนิดของ Attribute

Simple attribute คือ attribute ที่ประกอบด้วยค่าข้อมูลเดียว ซึ่งต่างจาก Composite attribute ที่ประกอบด้วยข้อมูลย่อย เช่น ข้อมูล Name ประกอบด้วย first name, middle name, lastname , address ประกอบด้วย เลขที่, ถนน, ตำบล, อำเภอ, จังหวัด, รหัสไปรษณีย์ เป็นต้น ส่วนข้อมูล เช่น เพศ, อายุ, ส่วนสูง, น้ำหนัก ถือเป็น simple attribute เพราะประกอบด้วยค่าข้อมูลเดียว

Single-valued Attribute คือ attribute ที่ entity หนึ่งๆ มีการเก็บค่าได้เพียงค่าเดียว เช่น ชื่อ, วันเกิด, รหัสประจำตัว แต่ละคนก็มีค่าข้อมูลเหล่านี้เพียงค่าเดียว แต่ Multivalued attribute คือ attribute ที่มีค่าได้มากกว่าหนึ่ง เช่น ข้อมูลของโรงเรียนที่นักศึกษา

เรียนจบมา บางคนอาจเรียนมาจากหลายโรงเรียน (เช่น ระดับ ประถม เรียนโรงเรียนหนึ่ง, ม.ต้น เรียนอีกโรงเรียนหนึ่ง, ม.ปลายได้เรียนอีกโรงเรียนหนึ่ง) , ข้อมูลเบอร์โทรศัพท์ ของบุคคล บางคนอาจมีเบอร์โทรติดต่อได้ มากกว่าหนึ่งหมายเลข เป็นต้น

Derived attribute คือ คุณสมบัติของ Entity ที่เป็นค่าข้อมูลที่สามารถ ได้มาจากข้อมูลอื่น เช่น รายได้รวมของ salesman ได้จากการรวมเงินเดือน และค่านายหน้า (commission) ที่ได้จากยอดขายที่ทำได้ในแต่ละเดือน เป็นต้น

Relationship และ Relationship set

Relationship คือ ความสัมพันธ์ระหว่าง Entity

Relationship Set คือ ชุดของ Relationship ชนิดเดียวกัน ซึ่งเป็นความสัมพันธ์ระหว่าง Entity Set

เช่น Relationship นักศึกษา Jim Jackson เข้าเรียนในวิชา Math 2, นักศึกษา John Harris เข้าเรียนในวิชา Physics 1 เป็น relationship และ Relationship set คือ ความสัมพันธ์ “การเข้าเรียน” (Attend) ระหว่าง นักศึกษา กับ วิชาเรียน (course)

หมายเหตุ โดยทั่วไปมักกล่าวถึง Entity หมายรวมถึง Entity Set กับ Relationship หมายถึง Relationship set ด้วย

รูปแบบความสัมพันธ์ ระหว่าง Entity Set

การแบ่งประเภทของ relationship โดยใช้ Mapping Cardinality คือ จำนวนการจับคู่กันในความสัมพันธ์ แบ่งออกเป็น 4 ประเภทดังนี้

1. One-to-One คือ ความสัมพันธ์ 1 ต่อ 1 นั่นคือ ในความสัมพันธ์จาก Entity Set A ไปยัง B สมาชิกของ A แต่ละตัวจับคู่กับ B ตัวเดียวเท่านั้น และ B หนึ่งตัวจับคู่กับ A เพียงตัวเดียว เช่น สมมติการมีบัญชีเงินฝากของธนาคารแห่งหนึ่ง กำหนดให้ลูกค้ามีบัญชีได้เพียง 1 เดียว และหนึ่งบัญชีมีเจ้าของเพียงคนเดียว ความสัมพันธ์ ” การเป็นเจ้าของบัญชี ” นี้ จัดเป็นแบบ 1-to-1

2. One-to-Many คือ ความสัมพันธ์ 1 ต่อ หลาย นั่นคือ ในความสัมพันธ์จาก Entity Set A ไปยัง B สมาชิกของ A แต่ละตัวจับคู่กับ B ได้มากกว่าหนึ่ง แต่ B หนึ่งตัวจับคู่กับ A เพียงตัวเดียวเท่านั้น เช่น หากธนาคารกำหนดให้ลูกค้า (Entity A) หนึ่งคนเปิดบัญชี ได้มากกว่าหนึ่ง แต่ บัญชีหนึ่งๆ มีเจ้าของเพียงหนึ่งเดียว ความสัมพันธ์ ” การเป็นเจ้าของบัญชี ” นี้ จัดเป็นแบบ 1-to-M

3. Many-to-One คือ ความสัมพันธ์ หลายต่อ 1 นั่นคือ ในความสัมพันธ์จาก Entity Set A ไปยัง B สมาชิกของ A แต่ละตัวจับคู่กับ B ได้ตัวเดียว แต่อาจซ้ำกันได้ คือ B ตัวเดียวกัน จะจับคู่กับ A ได้มากกว่าหนึ่ง เช่น ในความสัมพันธ์ การเป็นแม่ลูก แม่(Entity B) คนหนึ่งอาจมีลูกได้หลายคน แต่ลูก (Entity A) แต่ละคน มีแม่เพียงหนึ่งเดียว ซึ่ง ลูกหลายคนอาจมีแม่คนเดียวกันได้ ความสัมพันธ์นี้ จัดเป็น M-to-1

4. Many-to-Many คือ ความสัมพันธ์ หลายต่อหลาย นั่นคือ ในความสัมพันธ์จาก Entity Set A ไปยัง B สมาชิกของ A แต่ละตัวจับคู่กับ B ได้มากกว่าหนึ่ง และ B ก็จับคู่กับ A ได้มากกว่าหนึ่ง เช่นกัน เช่น การลงทะเบียนเรียน ในเทอมหนึ่งๆ นักศึกคนหนึ่งสามารถลงเรียนได้ มากกว่าหนึ่งวิชา (course) และ แต่ละ course ก็มีนักศึกษามาเข้าเรียนมากกว่าหนึ่งคน

ความสำคัญของการประมวลผลแบบระบบฐานข้อมูล

การจัดเก็บข้อมูลรวมเป็นฐานข้อมูลจะก่อให้เกิดประโยชน์ด้วยกันหลายประการ พอสรุปได้ดังนี้
1. สามารถลดความซ้ำซ้อนของข้อมูลได้
2. หลักเลี่ยงความขัดแย้งของข้อมูลได้
3. สามารถใช้ข้อมูลร่วมกันได้
4. สามารถรักษาความถูกต้องเชื่อถือได้ของข้อมูล
5. สามารถกำหนดความเป็นมาตรฐานเดียวกันของข้อมูลได้
6. สามารถกำหนดระบบความปลอดภัยของข้อมูลได้
7. เกิดความเป็นอิสระของข้อมูล

Key , Super key, Candiante key, Primary Key

ใน Entity set แต่ละ entity ย่อมแตกต่างกัน สิ่งที่ระบุได้ถึง Entity ที่แตกต่างกันแต่ละตัว ใน Entity set เรียกว่า Key

Super key คือ attribute หรือ กลุ่มของ attribute (attribute set ) ที่สามารถระบุถึง entity ที่แต่ละตัวได้ เช่น ชื่อ-สกุล และที่อยู่ของ นักศึกษา เป็น super key เพราะ สามารถบ่งชี้ถึง นักศึกษาทุกคนที่แตกต่างกันได้ทั้งหมด

Candidate key คือ attribute หรือ attribute set ที่เป็น minimal นั่นคือ ไม่มี subset ของ key นี้ ที่มีคุณสมบัติเป็น key อีก หรือ หากมีการเอา attribute หนึ่งใด ออกไปก็จะไม่ใช่ key เช่น รหัสนักศึกษา (นศ. ทุกคนมีรหัสเพียงรหัสเดียว ที่แตกต่างกัน) เป็น candidate key , แต่ รหัสนักศึกษากับชื่อ หรือ รหัสนักศึกษา, อายุ, เพศ และคณะ ไม่ใช่ candidate key เพราะไม่ minimal เพราะเพียงแค่ รหัสนักศึกษา อย่างเดียว ก็เป็น key ได้แล้ว

Primary key คือ candidate key ตัวหนึ่ง ที่ถูกเลือกให้เป็น key ที่ใช้อ้างอิงถึงแต่ละ entity ใน entity set เช่น อาจเลือก รหัสนักศึกษาเป็น Primary key สำหรับ entity set นักศึกษา ได้

ข้อสังเกต :

– ทุก attribute ของ Entity รวมกัน จัดเป็น super key เสมอ เพราะไม่มี entity ใด ที่มีข้อมูลซ้ำกันหมด

– key ที่ประกอบด้วย attribute เพียงหนึ่งเดียว จัดเป็น candidate เสมอ (minimal แล้ว)

– ทุก Candidate key จัดเป็น Super key แต่ มี Super key บางตัวที่ไม่ใช่ candidate key ( Candidate key Í Super key )

Entity – Relationship Diagram ( E-R Diagram )

ขั้นตอนการสร้าง E-R diagram

1. จากการวิเคราะห์ ข้อมูลในระบบ ค้นหา Entity ทั้งหมด

2. ระบุ Attribute ของ Entity และ Primary key

3. ระบุความสัมพันธ์ ระหว่าง Entity

ตัวอย่าง E-R Diagram แสดงข้อมูลของพนักงาน (EMPLOYEE) และ หน่วยงานหรือแผนก ( Department) ในองค์กรแห่งหนึ่ง

สัญลักษณ์ที่ใช้ใน E-R Diagram

ประเภทของ Entity

1. Regular Entity (หรือ strong entity) คือ entity ที่มี attribute ของ entity นั้นเอง กำหนดเป็น Key (หรือ identify ) ได้

2. Weak Entity คือ entity ที่ ต้องใช้ attribute จาก Entity อื่น ร่วมด้วย เพื่อกำหนด เป็น key ให้กับ entity นี้

Regular Entity เขียนแทนด้วยสี่เหลียมผืนผ้า มีชื่อ Entity ข้างใน
Weak Entity เขียนแทนด้วยรูปสี่เหลี่ยมผืนผ้าซ้อนกัน (มีกรอบสองชั้น) และความสัมพันธ์ ที่เป็นเป็นตัวอ้างถึง attribute จาก entity อื่น ที่นำมากำหนดร่วมเป็น key เรียกว่า Identifying Relation เขียนแทนด้วย รูปสี่เหลี่ยมข้าวหลามตัวซ้อนกันสองชั้น

ตัวอย่าง Weak Entity การเก็บเวลา เข้า-ออก ของพนักงาน เนื่องจาก เป็นไปได้ที่ พนักงานเข้า และ เลิกงาน พร้อมกัน ได้ ดังนั้นการจะระบุถึงเวลาเข้า-ออก ต้องอ้างถึงตัวพนักงานด้วย ว่าเป็นเวลาเข้า-ออก ของพนักงานคนไหน

Attribute ของ Entity

Simple Attribute เขียนชื่อ attribute อยู่ในรูปวงรี ลากเส้นเชื่อมโยงไปยัง Entity

Composite Attribute เขียน attribute ซึ่งเป็นส่วนประกอบย่อย เชื่อมโยงไปยัง composite attribute

Key Attribute ขีดเส้นใต้ attribute ที่กำหนดให้เป็น Primary key ของ Entity

Single-value Attribute วงรีของ attribute มีกรอบชั้นเดียว เส้นเชื่อมไปยัง Entity มีเส้นเดียว

Multi valued Attribute วงรีของ attribute มีกรอบชั้น 2 ชั้น หรือ ใช้เส้นคู่ ลากเชื่อมโยงไปยัง Entity

Derived Attribute วงรีของ attribute มีกรอบเป็นเส้นประ หรือ ใช้เส้นประลากเชื่อมโยงไปยัง Entity

ความสัมพันธ์ Relationship

Relationship คือความสัมพันธ์ ระหว่าง Entity set เขียนแทนด้วย รูปสี่เหลี่ยมข้าวหลามตัด (diamond) และมีเส้นเชื่อมโยงไปยัง Entity ที่มีความสัมพันธ์กัน ภายในรูปสี่เหลี่ยมข้าวหลามตัด ระบุชื่อของความสัมพันธ์ (คำนาม หรือ กริยา หรือ บุพบท)

คุณสมบัติ(attribute) ของความสัมพันธ์ ให้ลากเส้นเชื่อมระหว่าง Relationship กับ attribute นั้น

ประเภทของ Relationship ( แบ่งตาม Entity ที่มาเกี่ยวข้อง )

1. Binary Relationship คือ ความสัมพันธ์ระหว่าง 2 Entity

2. N-ary Relationship คือความสัมพันธ์ระหว่าง N Entity ( N มากกว่าหรือเท่ากับ 3 ) เช่น การฝากเงิน เข้าบัญชีธนาคาร มีความสัมพันธ์ระหว่าง ผู้ฝาก, เงิน และ บัญชีธนาคาร เป็นต้น

3. Recursive Relationship คือความสัมพันธ์ ใน Entity เดียวกัน เช่น ความสัมพันธ์ระหว่างบุคคล เช่น การเป็นเจ้านาย-ลูกน้อง ใน Entity พนักงาน เป็นต้น อาจมีการเขียนบทบาท (Role indicator) กำกับ ที่เส้นเชื่อมโยงความสัมพันธ์

Generalization Hierarchy

Generalization Hierarchy คือโครงสร้าง แสดงลักษณะของ Entity ที่เป็น Super type (super class) และ Sub type (subclass) นั่นคือ Entity ที่มีลักษณะบางอย่างร่วมกัน หรือมีความเป็นทั่วไป ก็จะเป็น Super class และ Entity ที่เป็นสมาชิกของ super class นั้นอาจมีลักษณะพิเศษเฉพาะอย่างแตกต่างกัน

Attribute Inheritance

ทุก subclass จะมีทุก attribute ของ super class แต่หาก subclass ใด มี attribute เป็นของตัวเองที่ต่างจาก subclass อื่น ก็จะถูกเขียนที่ Entity ของ subclass นั้น

Coverage Property

คือ คุณสมบัติความครอบคลุม นั่นคือความสัมพันธ์ของ Entity ใน Super class และ Subclass ต่างๆ ซึ่งแบ่งออกเป็น 4 ลักษณะคือ

1. Total Coverage คือ สมาชิกทุกตัวของ Super class ถูกจัดใน subclass ใด subclass หนึ่ง นั่นคือ สมาชิกทุกตัวของsubclass รวมกัน จะได้เป็น super class เช่น ในมหาวิทยาลัย นักศึกษา (ทั่วไป) อาจแบ่งได้เป็นสองประเภทคือ นักศึกษาระดับปริญญาตรี ( undergraduate student) กับนักศึกษาที่สูงกว่าระดับปริญญาตรี (graduate student) ซึ่งการแบ่งนี้ครอบคลุมทั่วถึง นั่นคือ นักศึกษาทุกคน จะต้องจัดอยู่ในประเภทใดประเภทหนึ่ง

2. Partial Coverage คือ มีสมาชิกเพียงบางส่วนเท่านั้น ของ Super class ที่ถูกจัดแบ่งเป็น subclassได้ มีสมาชิกบางส่วนของ Super class ที่ไม่เป็นสมาชิกของ subclass ใด เช่น ในบริษัทแห่งหนึ่ง มีพนักงานจำนวนหนึ่ง มีการแบ่งพนักงาน ตามตำแหน่งงาน ดังนี้ Engineer, Salesman, Accountant และ Programmer จะพบว่ามีพนักงานส่วนหนึ่งที่ไม่ได้เป็นสมาชิกของ subclass ดังกล่าว ก็ถือเป็นพนักงานทั่วไป

3. Exclusive coverage คือ การไม่มีสมาชิกที่ซ้ำซ้อนกันระหว่าง subclass เช่น การแบ่ง นักศึกษา ออกเป็น graduate student และ undergraduate student ไม่มีนักศึกษาคนใดที่เป็นได้สองอย่างพร้อมกัน

4. Overlapping coverage คือ การที่ subclass มีสมาชิกบางส่วนซ้ำกันได้ เช่น หากแบ่งพนักงานออกเป็น Engineer, Salesman, Accountant และ Programmer อาจมีพนักงานบางคน ที่เป็นได้ทั้ง Engineer และ Programmer หรือ บางคนเป็น Salesman และ Engineer ได้

ตัวอย่าง E-R Diagram ของมหาวิทยาลัยแห่งหนึ่ง

โครงสร้างแบบลำดับขั้น (Hierarchical Structure)

เป็นวิธีที่ดีที่สุดวิธีหนึ่งในการจัดระบบโครงสร้างที่มีความซับซ้อนของข้อมูล โดยแบ่งเนื้อหา ออกเป็นส่วนต่างๆ และมีรายละเอียดย่อยๆ ในแต่ละส่วนลดหลั่นกันมาในลักษณะแนวคิดเดียวกับ แผนภูมิองค์กร จึงเป็นการง่ายต่อการทำความเข้าใจกับโครงสร้างของเนื้อหาในเว็บลักษณะนี้ ลักษณะเด่นเฉพาะของ เว็บประเภทนี้คือการมีจุดเริ่มต้นที่จุดร่วมจุดเดียว นั่นคือ โฮมเพจ (Homepage) และเชื่อมโยงไปสู่เนื้อหา ในลักษณะเป็นลำดับจากบนลงล่าง

การสร้างบันทึกและ ความสัมพันธ์ของฐานข้อมูล (Creating Records and Database Relationships)

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

อ้างอิง

http://introduction-database.blogspot.com/p/blog-page_45.html

https://staff.informatics.buu.ac.th/~komate/886301/DB-Chapter-2.pdf

https://sites.google.com/site/phonchai14/xe-nthi-ti-xaeth-thri-biwth

http://www.geocities.ws/dbms/chapter1.html

http://iiiagee.blogspot.com/2018/11/hierarchy-of-data.html

http://www.anantakul.net/learning/E-R%20Model.pdf


EP6. วิธีสร้างบัญชี เงินเดือนพนักงาน ด้วยโปรแกรม excel | สอน excel


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

นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูความรู้เพิ่มเติมที่นี่

EP6. วิธีสร้างบัญชี เงินเดือนพนักงาน ด้วยโปรแกรม excel | สอน excel

ZENTYARB x PUNYARB – โทษที (ToT T) feat. Ben Bizzy (Prod. By TRILOGY)「Official Music Video」


\”เรื่องที่เกิดคืนนั้นน่ะต้องขอโทษที\”
Title โทษที
Artist: ZENTYARB x PUNYARB
Featuring Artist: Ben Bizzy
Music Producer: TRILOGY
Mixed/Mastered: TRILOGY
Music Video Director: Sillycooly
Graphic Art Designer: Lephong Numnawongsuk
🎧 รับฟังได้แล้วทาง Music Streaming: https://li.sten.to/e9RymzF
Follow:
🎤 [Music Artist]
ig: zentyarb
ig: sornawat_p
ig: lnwben

🎼 [Producer, Director, Designer]
ig: trilogy.yarb
ig: sillycooly
ig: lephong16

📌 [YARBCREW]
ig: yarbcrew
fb: https://www.facebook.com/yarbcrewz​​​​
Line: @391ajivp
Tiktok: yarbcrewofficial
YARBCREW​​​​ โทษที DIGITALLUV ZENTYARB PUNYARB BENBIZZY

ZENTYARB x PUNYARB - โทษที (ToT T) feat. Ben Bizzy (Prod. By TRILOGY)「Official Music Video」

ถ้าเขาสิฮัก(จั่งใด๋กะฮัก) – พิณห่าว x สาวโอม【Official MV ต้นฉบับ】


เพลง : ถ้าเขาสิฮัก(จั่งใด๋กะฮัก)
ศิลปิน : พิณห่าว x สาวโอม
เนื้อร้อง / ทำนอง : มอส สุฎเขฏฐ์ ภูเวียง
เรียบเรียง : มุมคันนา The Project
บันทึกเสียงร้อง : สุเทพ หะขุนทด
MV CREW
Creators : มุมคันนา The Project
Music composion : มุมคันนา The Project
Production : มุมคันนา The Project ร่วมกับ เกิบเสียสตูดิโอ
ขอขอบคุณ
ผจก.อ๊อฟ
วงดนตรี ร็อคเกิบเสีย ชัยภูมิ
ทีมงาน มุมคันนา The Project

ติดต่อการแสดง/0848212652
1ในมาแรงตอนนี้

ถ้าเขาสิฮัก(จั่งใด๋กะฮัก) - พิณห่าว x สาวโอม【Official MV ต้นฉบับ】

พลังงานจน Feat. เปาวลี พรพิมล – LABANOON「Official MV」


MV พลังงานจน feat.เปาวลี พรพิมล
LABANOON
New Single 2015
available on iTunes: http://smarturl.it/powerofthepoor
genie records , Mango
http://www.FB.com/Labanoon | http://www.genierecords.com
Instagram @Labanoonband
LABANOON
เมธี อรุณ กีตาร์,ร้องนำ @metee_arun
อนันต์ สะมัน เบส @ananlabanoon
ณัฐนนท์ ทองอ่อน กลอง @maylabanoon

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

Produced by พงศศรัณย์ พุ่มทิพย์
Lyrics Directors : ขจรเดช พรมรักษา , Mango Team
Recorded at Grand’s Studio
Sound Engineer : วรวรรธน์ วิวรรธน์วณิชย์ , อัครพงศ์ ศรีเกื้อกูล
Assistant Engineer : เสาวณีย์ ป้อมถาวร , พชร รัตนอรุณ , วสวัตติ์ หาญลำยวง
Drum Technician : ประมวล ล้อเจริญ

Mixed by Shane Edwards at Karma Sound studios
Mastered by Ted Jensen at Sterling Sound, NY

Executive Producer : พูนศักดิ์ จตุระบุล , ขจรเดช พรมรักษา
Mango : โป โปษยะนุกูล , สุรชัย พรพิมานแมน , อภิชาติ พรมรักษา , พูนศักดิ์ จตุระบุล , เหนือวงศ์ , ขจรเดช พรมรักษา , วิรชา ดาวฉาย

♪ Download on iTunes : $0.69 Buy http://smarturl.it/powerofthepoor
♪ KKBOX Music : http://kkbox.fm/wc30Dx
♪ Digital download : กด 123 1039685 3

พลังงานจน Feat. เปาวลี พรพิมล - LABANOON「Official MV」

เจ้าหน้าที่ธุรการ เล่าประสบการณ์ทำงานที่แรกในชีวิต | IAMIORI 🔖


เพื่อเป็นประโยชน์แก่น้องๆจบใหม่
หรือคนที่อยากทราบว่า คำว่าธุรการ เค้าจะทำงานประมาณไหน
ซึ่งอ้อก็เคยได้รับคำถามนี้มาบ่อยๆ จึงอยากบอกเล่านะคะ
ว่าหน้าที่มีประมาณไหนบ้าง น่าจะเป็นประโยชน์กับผู้ที่กำลังศึกษาข้อมูลนะคะ
ขอบคุณที่มารับชมคลิปอ้อนะคะ ฝากกดไลค์กดติดตามเป็นกำลังใจให้กันด้วยนะคะ
https://fb.me/g/eKOZbqo6A/8JUNiwQU

เจ้าหน้าที่ธุรการ เล่าประสบการณ์ทำงานที่แรกในชีวิต | IAMIORI 🔖

นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูวิธีอื่นๆLEARN TO MAKE A WEBSITE

ขอบคุณที่รับชมกระทู้ครับ พนักงาน คีย์ ข้อมูล คือ

Leave a Reply

Your email address will not be published. Required fields are marked *