SlideShare a Scribd company logo
1 of 54
Download to read offline
Mr. Phonepaseuth PHONHDALA 1
SQL Server 2000
ພາກທີ 3
ການຈດການັ SQL Server 2000 ໃນລະດບຖານຂມູນັ ໍ້
3.1. ມາຮູຈກກບ້ ັ ັ Transact-SQL
SQL ( Structured Query Language ) ເປນພາສາທໃຊໃນການຄວຣັ ີ ິ ີ່ ້
ແລະຈດການຖານຂມູນັ ໍ້
ສາມາດແບງອອກເປນ່ ັ 2 ປະເພດ ຕາມລກສະນະການໃຊວຽກດງນັ ັ ີ້ ່ ້:
Mr. Phonepaseuth PHONHDALA 2
3.1.1. DDL ( Data Definition Language )
3.1.2. DML ( Data Manipulation Language )
ເປນຄາສງທໃຊໃນການກາໜດັ ໍ ັ ີ ໍ ົ່ ່ ້ ແລະຈດການກບອອບເຈກຕາງໆຂອງຖານຂມູນັ ັ ັ ໍ່ ້
ເຊງໄດແກຄາສງິ ໍ ັ່ ່້ ່ :
CREATE TABLE
ALTER TABLE
DROP TABLE
ເປນຄາສງທໃຊໃນການຈດການກບຂມູນທເກບຢູໃນຖານຂມູນັ ໍ ັ ີ ັ ັ ໍ ີ ັ ໍ່ ່ ້ ່ ້້ ່ ຄາສງໄດແກໍ ັ່ ້ ່:
SELECT
INSERT
UPDATE
DELETE
Mr. Phonepaseuth PHONHDALA 3
3.2. ການເລອກໃຊເຄອງມໃນການຄວຣຂມູນື ື ື ິ ີ ໍ້ ່ ້
3.2.1. ISQL
3.2.2. OSQL
ໄດເພມຄວາມສາມາດໃນສວນການສະໜບສະໜູນກບທຸກຄາສງຂອງ້ ່ີ ັ ັ ໍ ັ່ ່ SQL
Server 2000 ໂດຍມການຕດຕຜານທາງີ ິ ໍ່ ່ ODBC
ສາມາດແລນ່ (Run) ຄາສງໍ ັ່ Transact-SQL, Stored Procedure ແລະ
ສຄບຕໄຟລິ ໌ ໌( Script File) ໄດໃນທຸກຮູບແບບ້ .
ເຄອງມທື ື ີ່ ່ SQL Server 2000 ຕຽມໄວໃຫສາລບການຄວຣຂມູນມດງນ້ ້ ໍ ັ ິ ີ ໍ ີ ັ ີ້ ່ ້:
ໃຊວຽກໃນລກສະນ້ ັ ະ Text Mode ຂອງ DOS Prompt
ເປນການສສານແບບເກາທມຢູໃນເວເຊນັ ື ົ ີ ີ ີ ີ່ ່ ່ ່ 6.5
ບສາມາດໃຊຄາສງເພອຄວຣຂມູນປະເພດໍ ໍ ັ ື ິ ີ ໍ່ ່ ່ ້້ ntex
Mr. Phonepaseuth PHONHDALA 4
ວທການໃຊມຂກາໜດດງນິ ີ ີ ໍ ໍ ົ ັ ີ້ ້ ່ ້:
ຮູບແບບຄາສງການເອນໃຊໍ ັ ີ່ ້ ້
osql –Sservername –Uusername -Ppassword
ກອນການຄວຣຂມູນໃຫເລມດວຍຄາສງ່ ້ ້ິ ີ ໍ ີ ໍ ັ້ ່ ່ use databasename
ຫາກມການພມຄວຣໃນແຖວທຜານມາຜດພາດີ ິ ິ ີ ີ ິ່ ່ , ສາມາດໃຊຄາສງ້ ໍ ັ່ reset ເພອື່
ຍກເລກແຖວຄາສງທງໝດົ ີ ໍ ັ ັ ົ່ ແລວຈງເລມພມຄາສງໃໝອກເທອໜງ້ ່ິ ີ ິ ໍ ັ ີ ື ຶ່ ່ ່ ່ ່
ແຖວສຸດທາຍຂອງຄາສງໃຫກາໜດເປນ້ ້ໍ ັ ໍ ົ ັ່ go ເພອເລມການຄວຣຂມູນື ີ ິ ີ ໍ່ ່ ້
ຖາຕອງການອອກຈາກການເຮດວຽກໃຫຄາສງ້ ້ ້ັ ໍ ັ່ quit ຫຼື exit
Mr. Phonepaseuth PHONHDALA 5
ຮູບທີ 3.1
ການໃຊ້ OSQL ເພອຄວຣຂມູນື ິ ີ ໍ່ ້
Mr. Phonepaseuth PHONHDALA 6
ເປນເຄອງມທມລກສະນະໃຊວຽກງາຍັ ື ີ ີ ີ ັ່ ່ ້ ່ ເພາະເປນແບບັ Graphic Mode ສາ
ມາດເອນໃຊໄດຫາຍວທດງນີ ິ ີ ັ ີ້ ່ ້້ ້ ຼ :
3.2.3. Query Analizer
ວທທິ ີ ີ່ 1: ພມຄາສງິ ໍ ັ່ isqlw ທີ່ DOS Prompt ຫຼື ຈາກເມນູ Start > Run
ວທທິ ີ ີ່ 2: ກດປຸມົ ່ Start > Programs > Microsoft SQL Server >
Query Analizer
ວທທິ ີ ີ່ 3: ຂະນະທຢູໃນີ່ ່ Enterprise Manager ໃຫເລອກເມນູ້ ື Tool >
Query Analizer
Mr. Phonepaseuth PHONHDALA 7
3.3. ການ SELECT ເພອສະແດງຂມູນື ໍ່ ້
ຄາສງໃນການຄວຣເພອສະແດງຂມູນມຮູບແບບດງນໍ ັ ິ ີ ື ໍ ີ ັ ີ່ ່ ້ ່ ້:
SELECT select_list [INTO new_table]
FROM table_ssource
[WHERE search_condition]
GROUP BY group_by_expression]
[ORDER BY order_expression [ASC | DESC] ]
ຄເວດີ ີ ( Keyword ) ແຕລະຕວທມຄວາມກຽວຂອງກບການເລອກຂມູນມດງນ່ ່ ້ົ ີ ີ ັ ື ໍ ີ ັ ີ່ ້ ່ ້:
SELECT ເລອກຖນຂມູນທຕອງການສະແດງື ັ ໍ ີ້ ່ ້
FROM ກາໜດຕາຕະລາງຂມູນທກຽວຂອງໍ ົ ໍ ີ້ ່ ່
WHERE ເລອກແຖວທກງກບເງອນໄຂື ີ ົ ັ ື່ ່ ທໄດກາໜດໄວີ ໍ ົ່ ້ ້
GROUP BY ຈດກຸມຂມູນທຜນໄດຮບສະແດງຄກນັ ໍ ີ ົ ັ ື ັ່ ້້ ່
Mr. Phonepaseuth PHONHDALA 8
HAVING ຄກນກບື ັ ັ WHERE ໃຊເມອມ້ ື ີ່ GROUP BY
ORDER BY ກາໜດການລຽນລາດບຂອງຂມູນຜນໄດຮບໍ ົ ໍ ັ ໍ ົ ັ້ ້
3.3.1. ການເລອກແຕລະຖນຂອງຕາຕະລາງມາສະແດງື ັ່
ຮູບທີ 3.2 ການເລອກແຕລະຖນຂອງຕາຕະລາງມາສະແດງື ັ່
Mr. Phonepaseuth PHONHDALA 9
3.3.2. ການປຽນຊຂອງຖນໃນການສະແດງຜນ່ ື ັ ົ່
ຮູບທີ 3.3 ການປຽນຊຂອງຖນ່ ື ັ່
Mr. Phonepaseuth PHONHDALA 10
ການປຽນຊຖນນສາມາດເຮດໂດອກວທໜງດງນ່ ້ື ັ ີ ັ ີ ິ ີ ຶ ັ ີ່ ້ ່ ່ ້:
ຮູບທີ 3.4 ການປຽນຊຂອງຖນ່ ື ັ່
ຈາກຮູບທີ 3.3 ແລະ 3.4 ເຮາສາມາດໃຊຮູບແບບໄວຍາກອນຂອງົ ້ ANSI ໂດຍໃຊ້
ຄເວດີ ີ ດງຮູບທັ ີ່ 3.5 ເຊງຈະໃຫຜນໄດຮບຄກນິ ົ ັ ື ັ່ ້ ້
ຮູບທີ 3.5 ໃຊຮູບແບບໄວຍາກອນຂອງ້ ANSI ໃນການປຽນຊຂອງຖນ່ ື ັ່
Mr. Phonepaseuth PHONHDALA 11
3.3.3. ການເພມຂຄວາມເຂາລະຫວາງການສະແດງຜນີ ໍ ົ ົ່ ້ ້ ່
ຮູບທີ 3.6 ເພມຂຄວາມລະຫວາງການສະແດງຜນີ ໍ ົ່ ້ ່
Mr. Phonepaseuth PHONHDALA 12
3.4.1. ການປຽບທຽບດວຍໂຕດາເນນການ້ ໍ ີ ( Comparison Operators )
ຕາຕະລາງທີ 3.1 ໂຕດາເນນການໍ ີ ( Operators )
ໂຕດາເນນການໍ ີ ຄວາມໝາຍ
= ເທາກບົ ັ່ ( Equal )
> ຫາຍກວຼ ່ າ ( Greater Then )
< ໜອຍກວ້ ່ າ ( Less Then )
>= ຫາຍກວຼ ່ າ ຫເທາກບຼື ົ ັ່ ( Greater then or Equal To )
<= ໜອຍກວ້ ່ າ ຫເທາກບຼື ົ ັ່ ( Less Then or Equal )
<> ບເທາກບໍ ົ ັ່ ່ ( Not Equal )
!= ບເທາກບໍ ົ ັ່ ່ ( ບແມນມາດຕະຖານໍ່ ່ SQL-92 )
!> ໜອຍກວ້ ່ າ ( ບແມນມາດຕະຖານໍ່ ່ SQL-92 )
!< ຫາຍກວຼ ່ າ ( ບແມນມາດຕະຖານໍ່ ່ SQL-92 )
3.4. ການເລອກສະເພາະແຖວທຕອການມາສະແດງຂມູນື ີ ໍ່ ້້
Mr. Phonepaseuth PHONHDALA 13
ຮູບທີ 3.7 ຕວຢາງການໃຊໂຕດາເນນການົ ໍ ີ່ ້ ເທາກບົ ັ່ ( = )
Mr. Phonepaseuth PHONHDALA 14
3.4.2. ການເລອກແຖວໃນຊວງທຕອງການື ີ່ ້່ ( Ranges )
ຮູບທີ 3.8 ເລອກສະເພາະແຖວທຢູໃນຊວງທຕອງການື ີ ີ່ ່່ ່ ້
Mr. Phonepaseuth PHONHDALA 15
3.4.3. ການເລອກສະເພາະແຖວທຢູໃນລາຍການື ີ່ ່ ( Lists )
ຮູບທີ 3.9 ເລອກສະເພາະແຖວທຢູໃນລາຍການື ີ່ ່
Mr. Phonepaseuth PHONHDALA 16
ຮູບທີ 3.10 ເລອກສະເພາະແຖວທບຢູໃນລາຍການື ີ ໍ່ ່ ່
3.4.4. ການເລອກແຖວທຮູຂມູນພຽງບາງສວນື ີ ໍ່ ້້ ່
ເປນການໃຊຄເວດັ ີ ີ້ Like ຮວມກບ່ ັ Wildcards
Mr. Phonepaseuth PHONHDALA 17
Wildcards ຄວາມໝາຍ
% ສະຕງທມອກຂະຣະຕງແຕິ ີ ີ ັ ັ່ ້ ່ 0 ຕວົ ເປນຕນໄປັ ົ້ .
_ ( underscore ) ແທນຕວອກສອນພຽງຕວດຽວົ ັ ົ .
[ ] ແທນອກຂະຣະໜງຕວັ ຶ ົ່ ເຊງຢູໃນຊວງທກາໜດໃຫິ ີ ໍ ົ່ ່່ ່ ້ ເຊນັ່ : [A-M]
[ ^ ] ມຄວາມໝາຍກງກນຂາມກບີ ົ ັ ັ້ [ ]
ຕາຕະລາງທີ 3.2 ປະເພດຂອງ Wildcards
ຕວຢາງົ ່ 3.1 ສະແດງສະເພາະຊນກສກສາທມຄາວື ັ ຶ ີ ີ ໍ່ ່ ່າ pa ລວມຢູນາ່ ໍ
Mr. Phonepaseuth PHONHDALA 18
ຕວຢາງົ ່ 3.2 ສະແດງສະເພາະນກສກສາທມຊຂນຕນດວຍຄາວັ ຶ ີ ີ ື ື ົ ໍ່ ່ ້ ້ ້ ່າ: Phone
ຕວຢາງົ ່ 3.3 ສະແດງສະເພາະນກສກສາທມຊລງທາຍຕນດວຍຄາວັ ຶ ີ ີ ື ົ ົ ໍ່ ່ ້້ ້ ່າ: Vanh
Mr. Phonepaseuth PHONHDALA 19
ຕວຢາງົ ່ 3.4 ສະແດງສະເພາະນກສກສາທມຊັ ຶ ີ ີ ື່ ່ 4 ຕວອກສອນົ ັ ໂດຍອກສອນທາອດຈະເປນຫຍງັ ໍ ິ ັ ັ
ກໄດໍ່ ້ ແຕອກ່ ີ 3 ຕວທເຫອຕອງລງທາຍດວຍົ ີ ື ົ່ ຼ ້ ້ ້ one
ຕວຢາງົ ່ 3.5 ສະແດງສະເພາະນກສກສາທຕວອກສອນຕວທາອດຂອງຊຢູລະຫວາງັ ຶ ີ ົ ັ ົ ໍ ິ ື່ ່ ່ ່ E ຫາ M ຕຈາກໍ່
ນນຈະເປນຕວໃດກໄດັ ັ ົ ໍ້ ່ ້
Mr. Phonepaseuth PHONHDALA 20
ຕວຢາງົ ່ 3.7 ສະແດງສະເພາະນກສກສາທຕວອກສອນັ ຶ ີ ົ ັ່ 2 ຕວທາອດຂອງຊແມນົ ໍ ິ ື່ ່ Ph ແຕອກສອນ່ ັ
ຕວທົ ີ່ 3 ຕອງບແມນຕວ້ ່ໍ ົ່ o ສວນທເຫອຈະມຫບມຕວອກສອນຕາມມາກໄດ່ ້ີ ື ີ ື ໍ ີ ົ ັ ໍ່ ່ ່ຼ ຼ
ຕວຢາງົ ່ 3.6 ສະແດງສະເພາະນກສກສາທຕວອກສອນຕວທາອດຂອງຊບຢູລະຫວາງັ ຶ ີ ົ ັ ົ ໍ ິ ື ໍ່ ່ ່ ່ ່ E ຫາ P ຕໍ່
ຈາກນນຈະເປນຕວໃດກໄດັ ັ ົ ໍ້ ່ ້
Mr. Phonepaseuth PHONHDALA 21
3.4.5. ການເລອກແຖວທມຄາຫວາງເກບຢູື ີ ີ ັ່ ່ ່ ່ ( NULL = Unknown Value )
ຮູບທີ 3.11 ເລອກສະເພາະແຖວທມຄາຫວາງເກບຢູໃນຖນື ີ ີ ັ ັ່ ່ ່ ່ Region
Mr. Phonepaseuth PHONHDALA 22
3.4.6. ການເລອກແຖວໂດຍກາໜດຫາຍໆເງອນໄຂຮວມກນື ໍ ົ ື ັຼ ່ ່
ຕາຕະລາງ 3.3 ຄາຄວາມຈງໃນທາງຕກກະສາດ່ ິ ັ
ຈະເປນການໃຊໂຕດາເນນການທາງຕກກະສານັ ໍ ີ ັ້ ( Logical Operator ) ເຂາົ້
ຊວຍ່ ເຊງໄດແກິ່ ້ ່ AND, OR ແລະ NOT
AND True False NULL
True True False NULL
False False False False
NULL NULL False NULL
OR True False NULL
True True True True
False True False NULL
NULL True NULL NULL
NOT
True False
False True
NULL NULL
Mr. Phonepaseuth PHONHDALA 23
ຮູບທີ 3.12 ການໃຊໂຕດາເນນການທາງຕກກະສາດ້ ໍ ີ ັ AND
ຮູບທີ 3.13 ການໃຊໂຕດາເນນການທາງຕກກະສາດ້ ໍ ີ ັ NOT
Mr. Phonepaseuth PHONHDALA 24
ຮູບທີ 3.14 ການໃຊໂຕດາເນນການທາງຕກກະສາດ້ ໍ ີ ັ OR
Mr. Phonepaseuth PHONHDALA 25
3.4.7. ການກາຈດຜນໄດຮບຂອງແຖວຂມູນທຄກນໍ ັ ົ ັ ໍ ີ ື ັ້ ້ ່
ຮູບທີ 3.15 ຜນໄດຮບທບໃຊົ ັ ີ ໍ້ ້່ ່ ແລະໃຊ້ DISTINCT
ຜນໄດຮບທບໄດົ ັ ີ ໍ້ ້່ ່ ໃຊ້
DISTINCT
ຜນໄດຮບທໃຊົ ັ ີ້ ້່
DISTINCT
Mr. Phonepaseuth PHONHDALA 26
3.4.8. ການເລອກສະເພື າະ n ແຖວຂມູນທາອດໍ ໍ ິ້
ຮູບທີ 3.17 ການໃຊຄເວດ້ ີ ີ PERCENT
ຮູບທີ 3.16 ເລອກສະເພສື ະ 3 ແຖວທາອດໍ ິ
Mr. Phonepaseuth PHONHDALA 27
3.4.9. ການລຽນລາດບຜນໄດຮບຂອງຂມູນທຖກນາມາສະແດງໍ ັ ົ ັ ໍ ີ ື ໍ້ ້ ່
ຮູບທີ 3.18 ການລຽນລາດບແຕໃຫຍຫານອຍດວຍໍ ັ ່ ່ ້ ້ DESC ຖາຕອງການລຽນ້ ້
ແຕນອຍຫາໃຫຍໃຫໃຊ່ ້ ່ ້ ້ ASC
Mr. Phonepaseuth PHONHDALA 28
3.5. ການຈດກຸມຂມູນເພອສະແດງຜນັ ໍ ື ົ່ ້ ່
3.5.1. Aggregate Function
ເປນຟງເຊນຊຸດໜງທໃຊສາລບຄດໄລຄາຜນບວກຂອງຂມູນໃນຕາຕະລາງັ ັ ີ ຶ ີ ໍ ັ ິ ົ ໍ່ ່ ້້ ່ ່ ຫຼື
ພຽງບາງກຸມຂອງແຖວທມຂມູນດຽວກນໄດ່ ້ີ ີ ໍ ັ່ ້ .
ຈະເປນການໃຊວຽກຮວມກບຄເວດັ ັ ີ ີ້ ່ GROUPE BY ແລະ HAVING
ຟງເຊນັ ີ ຜນໄດຮບົ ັ້
AVG ( [ ALL | DISTINCT ] Column_name) ຊອກຄາສະເລຍຂອງຖນ່ ່ ັ ເຊງກາໜດໂດຍິ ໍ ົ່ ALL ຫຼື DISTINCT
COUNT(*) ນບຈານວນແຖວຂອງຜນໄດຮບທງໝດັ ໍ ົ ັ ັ ົ້
COUNT( ALL | DISTINCT ) Column_name ນບຈານວນແຖວຂອງຖນັ ໍ ັ ເຊງກາໜດໂດຍິ ໍ ົ່ ALL ຫຼື DISTINCT
COUNT_BIG
ຄກນກບື ັ ັ COUNT ແຕຈະໄດປະເພດຂອງຂມູນກບມາເປນ່ ້ ໍ ັ ັ້ bigint
ແທນທຈະເປນີ ັ່ int
MAX (Column_name) ຊອກຄາໃຫຍສຸດຂອງຖນ່ ່ ັ
Mr. Phonepaseuth PHONHDALA 29
ຟງເຊນັ ີ ຜນໄດຮບົ ັ້
MIN (Column_name) ຊອກຄານອຍສຸດຂອງຖນ່ ້ ັ
SUM ( ALL | DISTINCT ) Column_name ຊອກຜນບວກຂອງຖນົ ັ ເຊງກາໜດໂດຍິ ໍ ົ່ ALL ຫຼື DISTINCT
ຕາຕະລາງ 3.4 ລາຍລະອຽດຂອງ Aggregate Function
ຮູບທີ 3.19 ຕວຢາງການໃຊົ ່ ້ ຟງເຊນັ ີ COUNT(*)
ຮູບທີ 3.20 ຕວຢາງການໃຊົ ່ ້ ຟງເຊນັ ີ MAX(column_name)
Mr. Phonepaseuth PHONHDALA 30
ຮູບທີ 3.21 ຕວຢາງການໃຊົ ່ ້ ຟງເຊນັ ີ SUM(column_name)
3.5.2. GROUP BY ແລະ HAVING
ຄເວດີ ີ GROUP BY ມລກສະນະການເຮດວຽກຄາຍກນກບີ ັ ັ ັ ັ້ SELECT ແຕ່
ໃຊໃນກລະນທເປນການຈດກຸມຕາມແຖວຂອງຜນໄດຮບ້ ່ ້ໍ ີ ີ ັ ັ ົ ັ່ .
ສວນ່ HAVING ມລກສະນະການເຮດວຽກຄາຍກນກບີ ັ ັ ັ ັ້ WHERE ເຊງຈິ່ ະ
ຖກໃຊຮວມກບື ັ້ ່ GROUP BY ເຊງມຮູບແບບດງນິ ີ ັ ີ່ ່ ້:
GROUP BY [ALL] non_aggregate_expression(s)
HAVING seach_criterial
Mr. Phonepaseuth PHONHDALA 31
+ = 60
+ = 60
+ = 49
+ = 49
+ = 27
+ = 27
ຮູບທີ 3.22 ຕວຢາງການໃຊົ ່ ້ ຄເວດີ ີ GROUP BY
Mr. Phonepaseuth PHONHDALA 32
>250>250
ຮູບທີ 3.23 ຕວຢາງການໃຊົ ່ ້ ຄເວດີ ີ HAVING ຮວມກບ່ ັ GROUP BY
Mr. Phonepaseuth PHONHDALA 33
ນອກຈາກນເຮາຍງສາມາດໃຊີ ົ ັ້ ້ WHERE ເພອກອງສະເພາະແຖວຂມູນທຕອງການື ໍ ີ່ ້ ່ ້
ກອນທຈະນາມາຈດກຸມດວຍ່ ່ ້ີ ໍ ັ່ GROUP BY ແລະສະແດງຜນໄດຮບຕາມເງອນໄຂຂອງົ ັ ື້ ່
HAVING
ຮູບທີ 3.24 ຕວຢາງການໃຊົ ່ ້ ຄເວດີ ີ WHERE ຮວມກບ່ ັ GROUP BY
Mr. Phonepaseuth PHONHDALA 34
3.5.2. COMPUTE ແລະ COMPUTE BY
COMPUTE ໃຊໃນການສະຫລຸບຂມູນທໄດຈາກຜນໄດຮບຈາກການຄວຣ້ ້ ້ໍ ີ ົ ັ ິ ີ້ ່
ດວຍ້ Aggregate Function.
ສວນ່ COMPUTE BY ຈະເປນການສະຫລຸບຂມູນໃນແຕລະກຸມຂອງຖນັ ໍ ັ້ ່ ່
ດຽວກນັ .
ໂດຍມຮູບແບບການໃຊວຽກດງນີ ັ ີ້ ່ ້:
COMPUTE aggregate_expression(s) [BY column_list]
Mr. Phonepaseuth PHONHDALA 35
ຮູບທີ 3.25 ຕວຢາງການໃຊົ ່ ້ ຄເວດີ ີ COMPUTE
Mr. Phonepaseuth PHONHDALA 36
ຮູບທີ 3.25 ຕວຢາງການໃຊົ ່ ້ ຄເວດີ ີ COMPUTE BY
Mr. Phonepaseuth PHONHDALA 37
3.6. ການ JOIN ເພອຄວຣຂມູນຈາກຫາຍຕາຕະລາງື ິ ີ ໍ່ ້ ຼ
3.6.1. INNER JOINs
ແບງອອກເປນ່ ັ 2 ແບບຄື: Equi JOIN ແລະ Natural JOIN
Equi JOIN
ຖນທນາມາປຽບທຽບກນຂອງັ ີ ໍ ັ່ 2 ຕາຕະລາງ ຈະມການຊາໃຫເຫນີ ໍ້ ້ ັ
ຮູບທີ 3.26 Equi JOIN ( SQL Server Syntax )
Mr. Phonepaseuth PHONHDALA 38
Natural JOIN
ຮູບທີ 3.27 Equi JOIN ( ANSI Syntax )
ຜນໄດຮບຈະຄາຍກນກບົ ັ ັ ັ້ ້ Equi JOIN ແຕຈະບສະແດງຖນທໃຊປຽບທຽບຊາໃຫເຫນ່ ້ ້ໍ ັ ີ ໍ່ ່ ້ ັ
ຮູບທີ 3.28 Natural JOIN ( SQL Server Syntax )
Mr. Phonepaseuth PHONHDALA 39
ຮູບທີ 3.29 Natural JOIN ( ANSI Syntax )
3.6.2. OUTER JOINs
ANSI SQL Server ຜນໄດຮບົ ັ້
LEFT OUTER JOIN *=
=*
ບມໍ ີ່
ຂມູນຂອງແຕລະລາຍການຈະຍດຂມູນທມາຈາກຕາຕະລາງທາອດເປນຫກໍ ຶ ໍ ີ ໍ ິ ັ ັ້ ້ ່່ ຼ
ໂດຍລວມກບຂມູນຈາກຕາຕະລາງທສອງເມອມຂມູນກງຕາມເງອນໄຂັ ໍ ີ ື ີ ໍ ົ ື້ ່ ່ ້ ່
RIGHT OUTER JOIN
ຂມູນຂອງແຕລະລາຍການຈະຍດຂມູນທມາຈາກຕາຕະລາງທໍ ຶ ໍ ີ ີ້ ້ ່ ່່ 2 ເປນຫກັ ັຼ
ໂດຍລວມກບຂມູນຈາກຕາຕະລາງທທາອດເມອມຂມູນກງຕາມເງອນໄຂັ ໍ ີ ໍ ິ ື ີ ໍ ົ ື້ ່ ່ ້ ່
FULL OUTER JOIN
ຂມູນຂອງແຕລະລາຍການເກດຈາກຜນໄດຮບຈາກໍ ີ ົ ັ້ ່ ້ LEFT JOIN ແລະ
LIGHT JOIN ລວມກນັ
ຕາຕະລາງ 3.5 ປະເພດຂອງ OUTER JOIN
Mr. Phonepaseuth PHONHDALA 40
ຈາກຕາຕະລາງທີ 3.5 ພບວາການຍດຫກຈາກຕາຕະລາງທາອດົ ຶ ັ ໍ ິ່ ຼ ຫຕາຕຼື ະ
ລາງທີ່ 2 ຈະໃຫຜນໄດຮບຄກນ້ ້ົ ັ ື ັ ເມອມການສະຫບກນລະຫວາງປະເພດຂອງື ີ ັ ັ່ ຼ ່
OUTER JOIN ເຊນັ່ :
FROM Customers LEFT OUTER JOIN Orders ON
Customers.CustomerID =Order.CustomerID
FROM Orders RIGHT OUTER JOIN Customers ON
Customers.CustomerID =Order.CustomerID
FROM Orders RIGHT OUTER JOIN Customers ON
Order.CustomerID =Customers.CustomerID
Mr. Phonepaseuth PHONHDALA 41
ຮູບທີ 3.30 ປຽບທຽບຜນໄດຮບຈາກົ ັ້ LEFT OUTER JOIN ແລະ RIGHT OUTERJOIN
Mr. Phonepaseuth PHONHDALA 42
ຮູບທີ 3.30 ຕວຢາງການໃຊົ ່ ້ FULL OUTER JOIN
Mr. Phonepaseuth PHONHDALA 43
3.7. ການໃຊ້ SUB QUERIES
3.7.1. Nested Subqueries
ປະເພດຂອງ Sub queries ເມອແບງຕາມລກສະນະການເຮດວຽກແລວມດງນື ັ ັ ີ ັ ີ່ ່ ້່ ້ :
ເປນຄວຣຍອຍທແຝງຕວຢູໃນຄວຣຫກັ ິ ີ ີ ົ ິ ີ ັ່ ່່ ຼ , ມໜາທຊອກຜນໄດຮບພາຍໃນຂອງຕວີ ີ ົ ັ ົ້ ້່
ເອງ ກອນທຈະຖກນາໄປປຽບທຽບກບເງອນໄຂທກຽວຂອງກບຜນໄດຮບ່ ່ ້ ້ີ ື ໍ ັ ື ີ ັ ົ ັ່ ່ ່ ເຊງຈະຖກິ ື່
ນາມາສະແດງຈາກຄວຣຫກໍ ິ ີ ັຼ
ຫກການກາໜດເງອນໄຂຼັ ໍ ົ ື່ຫກການກາໜດເງອນໄຂຼັ ໍ ົ ື່
1. ຫາກຜນໄດຮບຈາກຄວຣຍອຍເປນຄາດຽວໆອອກມົ ັ ິ ີ ັ້ ່ ່ ່ າ ສາມາດນາມາປຽບທຽບໍ
ກບໂອເປເຣເຕັ ີ ີ ( Operator ) ຕາງ່ ໆ ເຊນັ່ : <, =, >, <=, >=, <>, !>, <!
ພາຍໃນຄວຣໄດິ ີ ້.
2. ຖາຫາກຜນໄດຮບອອກມາເປນຖນດຽວ້ ້ົ ັ ັ ັ , ແຕມຫາຍໆຄ່ ່ີ ຼ າ ສາມາດໃຊຄເວດ້ ີ ີ
[ NOT ] IN ເຊງໝາຍເຖງມຄາຂມູນຢູພາຍໃນຖນນິ ິ ີ ໍ ັ ີ່ ້ ້່ ່ ນາມາປຽບທຽບຮວມກບໍ ັ່
ຄເວດີ ີ WHERE ໄດ້.
Mr. Phonepaseuth PHONHDALA 44
ຂກາໜດກຽວກບການໃຊໍ ໍ ົ ັ້ ່ ້ຂກາໜດກຽວກບການໃຊໍ ໍ ົ ັ້ ່ ້ Sub queriesSub queries
3. ຖາຜນໄດຮບອອກມາເປນຫາຍໆຖນ້ ້ົ ັ ັ ັຼ ສາມາດໃຊຄເວດ້ ີ ີ [ NOT ] EXISTS
ເພອປຽບທຽບື່ ເຊງໝາຍເຖງມຄາຂມູນຢູພາຍໃນຜນໄດຮບທມຢູນິ ິ ີ ໍ ົ ັ ີ ີ ີ່ ້ ່ ້່ ່ ້ ່ ໂດຍໃຊວຽກ້
ຮວມກບຄເວດ່ ັ ີ ີ WHERE ເພອກາໜດເງອນໄຂໄດເຊນກນື ໍ ົ ື ັ ັ່ ່ ່້ .
1. ຕອງກາໜດໃຫຢູພາຍໃນວງເລບ້ ້ ່ໍ ົ ົ ັ ເພອສະແດງໃຫເຫນສວນຂອງຄວຣຍອຍື ິ ີ່ ້ ່ ່ັ
ໄວຢາງຊດເຈນ້ ່ ັ .
2. ຖາມການນາໄປປຽບທຽບກນຄາດຽວ້ ່ ່ີ ໍ ັ ໆ ດງນນຜນໄດຮບຈາກຄວຣຍອຍຕອງັ ັ ົ ັ ິ ີ່ ້ ້ ່ ້
ອອກມາເປນຄາດຽວໆເຊນກນັ ັ ັ່ ່ ່ .
3. ບສາມາດໃຊຄເວດໍ ີ ີ່ ້ ORDER BY, COMPUTE ຫຼື SELECT INTO
ຮວມພາຍໃນຄວຣຍອຍໄດ່ ່ ້ິ ີ .
4. ການໃຊຄເວດ້ ີ ີ IN ເພອປຽບທຽບຜນໄດຮບຈາກຄວຣຍອຍຕອງອອກມາເປນື ົ ັ ິ ີ ັ່ ້ ່ ້
ຄາດຽວ່ ່ ໆ ເທານນົ ັ່ ້ .
Mr. Phonepaseuth PHONHDALA 45
5. ການໃຊຄເວດ້ ີ ີ EXISTS ເພອປຽບທຽບກບຄວຣຍອຍຕອງກາໜດເປນື ັ ິ ີ ໍ ົ ັ່ ່ ້ SELECT *
6. ຖນທປະເພດຂອງຂມູນເປນັ ີ ໍ ັ່ ້ Text ແລະ Image ບສາມາດນາມາໃຊໃນຄວໍ ໍ ິ່ ້ ຣຍອຍໄດີ ່ ້.
ຮູບທີ 3.30 ຕວຢາງົ ່ Nested Subqueries with IN
Mr. Phonepaseuth PHONHDALA 46
ຮູບທີ 3.31 ຕວຢາງົ ່ Nested Subqueries with EXISTS
ຈະເຫນວັ ່າ ຜນໄດຮບຈາກຮູບທົ ັ ີ້ ່ 3.31 ຈະກນກບຜນໄດຮບໃນຮູບທັ ັ ົ ັ ີ້ ່ 3.30
ນອກຈາກການໃຊ້ IN ແລະ EXISTS ໃນການປຽບທຽບແລວ້ ຍງມຄເວດອນທມັ ີ ີ ີ ື ີ ີ່ ່
ລກສະນະການເຮດວຽກໃກຄຽງກນດງນັ ັ ັ ັ ີ້ ່ ້:
1. ANY ສາມາດໃຊຮວມກບໂອເປເຣເຕຕາງ້ ່ ່ັ ີ ີ ໆ(=, <, >, <=, >=, <>, !>, <!)
ເພອກາໜດຂອບເຂດຂອງຜນໄດຮບຈາກື ໍ ົ ົ ັ່ ້ Subqueries ໄດເຊນ້ ັ່ : ANY(4,5,6)
ໝາຍເຖງມຄາຫາຍກວາຕວໃດຕວໜງພາຍໃນວງິ ີ ົ ົ ຶ ົ່ ່ຼ ່ ຫເວາງາຍໆກຄມຄາຫາຍກວຼ ຼື ົ ໍ ື ີ້ ່່ ່ ່ າ 4
2. SOME ໃຊວຽກເຊນດຽວກນກບ້ ັ ັ ັ່ ANY ພຽງແຕເປນໄວຍາກອນຂອງ່ ັ ANSI
Mr. Phonepaseuth PHONHDALA 47
3. ALL ການເຮດວຽກຄາຍກບັ ັ້ ANY ຫຼື SOME ແຕພຈາລະນາເປນຜນຂອງທງ່ ິ ັ ົ ັ
ໝດແທນົ ເຊນັ່ : >ALL(4,5,6) ໝາຍເຖງມຄາຫາຍກວາຄາທງໝດໃນວງເລບິ ີ ັ ົ ົ ັ່ ່ ່ຼ ຫຼື
ເວາໃຫເຂາໃຈງາຍໆຄົ ົ ື້ ້້ ່ ມຄາຫູາຍກວີ ່ ່ າ 6.
ຮູບທີ 3.32 ຕວຢາງົ ່ Subqueries with ANY
Mr. Phonepaseuth PHONHDALA 48
ຮູບທີ 3.33 ຕວຢາງົ ່ Nested Subqueries with ALL
ສງເກດຜນໄດຮບຈາກຮູບທັ ົ ັ ີ້ 3.32 ເຊງເປນການໃຊິ ັ່ ້ = ANY(2,4,7,10,12,20,24)
ຈະໃຫຜນໄດຮບຄກນກບການໃຊ້ ້ ້ົ ັ ື ັ ັ IN.
ສວນຮູບທ່ ີ່ 3.33 ເປນການໃຊັ ້ > ALL (2,4,7,10,12,20,24) ດງນນຜນໄດຮບຈງັ ັ ົ ັ ິ່ ້ ່້
ມຄາຫາຍກວີ ່ ່ຼ າ 24
Mr. Phonepaseuth PHONHDALA 49
3.7.2. Correlated Subqueries
ຈະເປນການນາຄາຂອງແຕລະແຖວຈາກຄວຣພາຍນອກັ ໍ ິ ີ່ ່ ເຂາມາຮວມພຈາລະນົ ິ້ ່ າ
ນາກບຄວຣພາຍໃນໍ ັ ິ ີ ເຊງຕາງຈາກິ່ ່ Nested Subqueries ທຜນໄດຮບຂອງຄວຣີ ົ ັ ິ ີ່ ້
ພາຍນອກ ແລະຄວຣພາຍໃນບມຄວາມກຽວຂອງກນິ ີ ໍ ີ ັ່ ່ ້ .
ຄວາມແຕກຕາງອກປະການໜງຄ່ ີ ຶ ື່ Correlated Subqueries ຈະມການເຮດີ ັ
ຈາກຄວຣພາຍນອກໄປສູຄວຣພາຍໃນິ ີ ິ ີ່ ສວນ່ Nested Subqueries ຈະເຮດໃນັ
ທາງກງກນຂາມົ ັ ້ .
ຮູບທີ 3.34 Correlated Subqueries with EXISTS
Mr. Phonepaseuth PHONHDALA 50
ກອນຈະອະທບາຍຫກການເຮດວຽກຂອງຮູບທ່ ິ ັ ັ ີຼ ່ 3.34 ໃຫພຈາລະນາຂມູນຈາກ້ ິ ໍ້
ຕາຕະລາງ order details ທມຜນບວກຂອງຈານວນີ ີ ົ ໍ່ quantity ໃນແຕລ່ ະ order
ຍອຍໆທງໝດລວມກນຫາຍກວ່ ່ັ ົ ັ ຼ າ 250 ກອນ່ ຈາກຮູບທີ 3.35
ຮູບທີ 3.35 ພຈາລະນາຂມູນຈາກຕາຕະລາງິ ໍ້ order details
Mr. Phonepaseuth PHONHDALA 51
ຮູບທີ 3.36 ການນາເອາຂມູນຈາກຄວຣພາຍນອກມາປຽບທຽບກບຄວຣພາຍໃນໍ ົ ໍ ິ ີ ັ ິ ີ້
ຮູບທີ 3.36 ເປນການນາຄັ ໍ ່າ orderid ເທາກບົ ັ່ 10895 ຈາກຕາຕະລາງ
orders ມາແທນຄ່າ orders.orderid ຄວຣພາຍໃນິ ີ
ຈາກຮູບທີ 3.36 ຖານາຄ້ ່ໍ າ orderid ເທາກບົ ັ່ 10515 ມາແທນຄາໃນຄວຣ່ ິ ີ
ພາຍໃນ ຈະບເຮດໃຫຮູບທໍ ັ ີ່ ້ 3.34 ເປນຈງໄດັ ິ ້( ພຈາລະນາຈາກຮູບທິ ີ 3.35 ) ດງັ່
ນນຂມູນຈາກັ ໍ້ ້ orderid ເທາົ່ 10515 ຈງບຖກນາມາສະແດງິ ໍ ື ໍ່ ່ .
Mr. Phonepaseuth PHONHDALA 52
3.8. ການລວມຂມູນດວຍໍ້ ້ UNION
ເປນການນາຂມູນຈາກຜນໄດຮບທເກດຈາກຕາງຄວຣັ ໍ ໍ ົ ັ ີ ີ ິ ີ້ ່້ ່ ແຕມລກສະນະການສ່ ີ ັ ະ
ແດງຕາມລາດບຂອງຖນຄາຍໆກນໍ ັ ັ ັ້ ມາຈດສະແດງພອມກນັ ັ້ .
select_statement1 UNION [ALL] select_statement2
ຂກາໜດກຽວກບການໃຊໍ ໍ ົ ັ້ ່ ້ຂກາໜດກຽວກບການໃຊໍ ໍ ົ ັ້ ່ ້ UNIONUNION
1. ການສະແດງຜນໄດຮບຂອງຖນໃນແຕລະຄວຣຕອງມຈານວນເທາກນົ ັ ັ ິ ີ ີ ໍ ົ ັ້ ່ ້ ່ ລວມ
ທງຕອງມລາດບັ ີ ໍ ັ້ ແລະປະເພດຂອງຂມູນທຄກນໍ ີ ື ັ້ ່ .
2. ຫາກມການຝຊວຽກຮວມກບຄເວດີ ັ ີ ີ້ ່ INTO ສາມາດກາໜດໄວໄດພາຍໃນຄວຣໍ ົ ິ ີ້ ້
ຫກເທານນຼັ ົ ັ່ ້
3. ໃນແຕລະຄວຣສາມາດໃຊຄເວດ່ ້ິ ີ ີ ີ GROUP BY ແລະ HAVING ໄດ້
Mr. Phonepaseuth PHONHDALA 53
4. ຫາກມການໃຊຄເວດີ ີ ີ້ ORDER BY ແລະ COMPUTE ຕອງວາງໄວຫງ້ ້ ຼັ
ສຸດຕຈາກໍ່ select_statement2 ເທານນົ ັ່ ້ ເພາະເຮດໜາທໃນການລຽນລາດບັ ີ ໍ ັ້ ່
ຫຄານວນຜນໄດຮບໃຫກບຂມູນທໄດຈາກຼື ໍ ົ ັ ັ ໍ ີ້ ້ ້້ ່ UNION.
5. ຊຖນຂອງຜນໄດຮບທຖກນາມາສະແດງຈະເປນໄປຕາມື ັ ົ ັ ີ ື ໍ ັ່ ່້ select_statement1
6. ຫາກກາໜດໃຫເປນໍ ົ ັ້ UNION ALL ຜນໄດຮບທໄດຈະນາແຖວຂມູນທເກດົ ັ ີ ໍ ໍ ີ ີ້ ້່ ້ ່
ຈາກຄວຣທງສອງມາສະແດງທງໝດິ ີ ັ ັ ົ ໂດຍບຄານງເຖງຂມູນທຄກນໍ ໍ ຶ ິ ໍ ີ ື ັ່ ້ ່ .
Mr. Phonepaseuth PHONHDALA 54
ຮູບທີ 3.37 ຕວຢາງການໃຊົ ່ ້ UNION
===== =====

More Related Content

More from Phonepaseuth Phonhdala

ການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນ
ການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນ
ການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນPhonepaseuth Phonhdala
 
ການກະກຽມຂໍ້ມູນ (Prepare data)
ການກະກຽມຂໍ້ມູນ (Prepare data)ການກະກຽມຂໍ້ມູນ (Prepare data)
ການກະກຽມຂໍ້ມູນ (Prepare data)Phonepaseuth Phonhdala
 
ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ
ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ
ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ Phonepaseuth Phonhdala
 
ພາກປະຕິບັດ 8 (Lab 8)
ພາກປະຕິບັດ 8 (Lab 8)ພາກປະຕິບັດ 8 (Lab 8)
ພາກປະຕິບັດ 8 (Lab 8)Phonepaseuth Phonhdala
 
ພາກປະຕິບັດ 7 (Lab 7)
ພາກປະຕິບັດ 7 (Lab 7)ພາກປະຕິບັດ 7 (Lab 7)
ພາກປະຕິບັດ 7 (Lab 7)Phonepaseuth Phonhdala
 
ພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBox
ພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBoxພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBox
ພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBoxPhonepaseuth Phonhdala
 
ພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButton
ພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButtonພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButton
ພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButtonPhonepaseuth Phonhdala
 
ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່
ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່
ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່Phonepaseuth Phonhdala
 
ຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipse
ຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipseຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipse
ຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipsePhonepaseuth Phonhdala
 
ບົດທີ 7 ການຈັດການຖານຂໍ້ມູນ
ບົດທີ 7 ການຈັດການຖານຂໍ້ມູນບົດທີ 7 ການຈັດການຖານຂໍ້ມູນ
ບົດທີ 7 ການຈັດການຖານຂໍ້ມູນPhonepaseuth Phonhdala
 

More from Phonepaseuth Phonhdala (20)

Lab 12 Firebase Authentication
Lab 12 Firebase AuthenticationLab 12 Firebase Authentication
Lab 12 Firebase Authentication
 
Lab 11 qr and bar code
Lab 11 qr and bar codeLab 11 qr and bar code
Lab 11 qr and bar code
 
Lab 10 gride view
Lab 10 gride viewLab 10 gride view
Lab 10 gride view
 
Lab 9 list view
Lab 9 list viewLab 9 list view
Lab 9 list view
 
Lab 3 date picker dialog
Lab 3 date picker dialogLab 3 date picker dialog
Lab 3 date picker dialog
 
Lab 2 time picker dialog
Lab 2 time picker dialogLab 2 time picker dialog
Lab 2 time picker dialog
 
ການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນ
ການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນ
ການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນ
 
ການກະກຽມຂໍ້ມູນ (Prepare data)
ການກະກຽມຂໍ້ມູນ (Prepare data)ການກະກຽມຂໍ້ມູນ (Prepare data)
ການກະກຽມຂໍ້ມູນ (Prepare data)
 
ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ
ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ
ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ
 
ພາກປະຕິບັດ 8 (Lab 8)
ພາກປະຕິບັດ 8 (Lab 8)ພາກປະຕິບັດ 8 (Lab 8)
ພາກປະຕິບັດ 8 (Lab 8)
 
ພາກປະຕິບັດ 7 (Lab 7)
ພາກປະຕິບັດ 7 (Lab 7)ພາກປະຕິບັດ 7 (Lab 7)
ພາກປະຕິບັດ 7 (Lab 7)
 
ພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBox
ພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBoxພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBox
ພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBox
 
ພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButton
ພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButtonພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButton
ພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButton
 
Chapter2
Chapter2Chapter2
Chapter2
 
Chapter1
Chapter1Chapter1
Chapter1
 
ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່
ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່
ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່
 
ຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipse
ຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipseຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipse
ຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipse
 
ບົດທີ 7 ການຈັດການຖານຂໍ້ມູນ
ບົດທີ 7 ການຈັດການຖານຂໍ້ມູນບົດທີ 7 ການຈັດການຖານຂໍ້ມູນ
ບົດທີ 7 ການຈັດການຖານຂໍ້ມູນ
 
ບົດທີ 6 Client/Server
ບົດທີ 6 Client/Serverບົດທີ 6 Client/Server
ບົດທີ 6 Client/Server
 
ບົດທີ 5 Condition and Loop
ບົດທີ 5 Condition and Loopບົດທີ 5 Condition and Loop
ບົດທີ 5 Condition and Loop
 

Chapter3

  • 1. Mr. Phonepaseuth PHONHDALA 1 SQL Server 2000 ພາກທີ 3 ການຈດການັ SQL Server 2000 ໃນລະດບຖານຂມູນັ ໍ້ 3.1. ມາຮູຈກກບ້ ັ ັ Transact-SQL SQL ( Structured Query Language ) ເປນພາສາທໃຊໃນການຄວຣັ ີ ິ ີ່ ້ ແລະຈດການຖານຂມູນັ ໍ້ ສາມາດແບງອອກເປນ່ ັ 2 ປະເພດ ຕາມລກສະນະການໃຊວຽກດງນັ ັ ີ້ ່ ້:
  • 2. Mr. Phonepaseuth PHONHDALA 2 3.1.1. DDL ( Data Definition Language ) 3.1.2. DML ( Data Manipulation Language ) ເປນຄາສງທໃຊໃນການກາໜດັ ໍ ັ ີ ໍ ົ່ ່ ້ ແລະຈດການກບອອບເຈກຕາງໆຂອງຖານຂມູນັ ັ ັ ໍ່ ້ ເຊງໄດແກຄາສງິ ໍ ັ່ ່້ ່ : CREATE TABLE ALTER TABLE DROP TABLE ເປນຄາສງທໃຊໃນການຈດການກບຂມູນທເກບຢູໃນຖານຂມູນັ ໍ ັ ີ ັ ັ ໍ ີ ັ ໍ່ ່ ້ ່ ້້ ່ ຄາສງໄດແກໍ ັ່ ້ ່: SELECT INSERT UPDATE DELETE
  • 3. Mr. Phonepaseuth PHONHDALA 3 3.2. ການເລອກໃຊເຄອງມໃນການຄວຣຂມູນື ື ື ິ ີ ໍ້ ່ ້ 3.2.1. ISQL 3.2.2. OSQL ໄດເພມຄວາມສາມາດໃນສວນການສະໜບສະໜູນກບທຸກຄາສງຂອງ້ ່ີ ັ ັ ໍ ັ່ ່ SQL Server 2000 ໂດຍມການຕດຕຜານທາງີ ິ ໍ່ ່ ODBC ສາມາດແລນ່ (Run) ຄາສງໍ ັ່ Transact-SQL, Stored Procedure ແລະ ສຄບຕໄຟລິ ໌ ໌( Script File) ໄດໃນທຸກຮູບແບບ້ . ເຄອງມທື ື ີ່ ່ SQL Server 2000 ຕຽມໄວໃຫສາລບການຄວຣຂມູນມດງນ້ ້ ໍ ັ ິ ີ ໍ ີ ັ ີ້ ່ ້: ໃຊວຽກໃນລກສະນ້ ັ ະ Text Mode ຂອງ DOS Prompt ເປນການສສານແບບເກາທມຢູໃນເວເຊນັ ື ົ ີ ີ ີ ີ່ ່ ່ ່ 6.5 ບສາມາດໃຊຄາສງເພອຄວຣຂມູນປະເພດໍ ໍ ັ ື ິ ີ ໍ່ ່ ່ ້້ ntex
  • 4. Mr. Phonepaseuth PHONHDALA 4 ວທການໃຊມຂກາໜດດງນິ ີ ີ ໍ ໍ ົ ັ ີ້ ້ ່ ້: ຮູບແບບຄາສງການເອນໃຊໍ ັ ີ່ ້ ້ osql –Sservername –Uusername -Ppassword ກອນການຄວຣຂມູນໃຫເລມດວຍຄາສງ່ ້ ້ິ ີ ໍ ີ ໍ ັ້ ່ ່ use databasename ຫາກມການພມຄວຣໃນແຖວທຜານມາຜດພາດີ ິ ິ ີ ີ ິ່ ່ , ສາມາດໃຊຄາສງ້ ໍ ັ່ reset ເພອື່ ຍກເລກແຖວຄາສງທງໝດົ ີ ໍ ັ ັ ົ່ ແລວຈງເລມພມຄາສງໃໝອກເທອໜງ້ ່ິ ີ ິ ໍ ັ ີ ື ຶ່ ່ ່ ່ ່ ແຖວສຸດທາຍຂອງຄາສງໃຫກາໜດເປນ້ ້ໍ ັ ໍ ົ ັ່ go ເພອເລມການຄວຣຂມູນື ີ ິ ີ ໍ່ ່ ້ ຖາຕອງການອອກຈາກການເຮດວຽກໃຫຄາສງ້ ້ ້ັ ໍ ັ່ quit ຫຼື exit
  • 5. Mr. Phonepaseuth PHONHDALA 5 ຮູບທີ 3.1 ການໃຊ້ OSQL ເພອຄວຣຂມູນື ິ ີ ໍ່ ້
  • 6. Mr. Phonepaseuth PHONHDALA 6 ເປນເຄອງມທມລກສະນະໃຊວຽກງາຍັ ື ີ ີ ີ ັ່ ່ ້ ່ ເພາະເປນແບບັ Graphic Mode ສາ ມາດເອນໃຊໄດຫາຍວທດງນີ ິ ີ ັ ີ້ ່ ້້ ້ ຼ : 3.2.3. Query Analizer ວທທິ ີ ີ່ 1: ພມຄາສງິ ໍ ັ່ isqlw ທີ່ DOS Prompt ຫຼື ຈາກເມນູ Start > Run ວທທິ ີ ີ່ 2: ກດປຸມົ ່ Start > Programs > Microsoft SQL Server > Query Analizer ວທທິ ີ ີ່ 3: ຂະນະທຢູໃນີ່ ່ Enterprise Manager ໃຫເລອກເມນູ້ ື Tool > Query Analizer
  • 7. Mr. Phonepaseuth PHONHDALA 7 3.3. ການ SELECT ເພອສະແດງຂມູນື ໍ່ ້ ຄາສງໃນການຄວຣເພອສະແດງຂມູນມຮູບແບບດງນໍ ັ ິ ີ ື ໍ ີ ັ ີ່ ່ ້ ່ ້: SELECT select_list [INTO new_table] FROM table_ssource [WHERE search_condition] GROUP BY group_by_expression] [ORDER BY order_expression [ASC | DESC] ] ຄເວດີ ີ ( Keyword ) ແຕລະຕວທມຄວາມກຽວຂອງກບການເລອກຂມູນມດງນ່ ່ ້ົ ີ ີ ັ ື ໍ ີ ັ ີ່ ້ ່ ້: SELECT ເລອກຖນຂມູນທຕອງການສະແດງື ັ ໍ ີ້ ່ ້ FROM ກາໜດຕາຕະລາງຂມູນທກຽວຂອງໍ ົ ໍ ີ້ ່ ່ WHERE ເລອກແຖວທກງກບເງອນໄຂື ີ ົ ັ ື່ ່ ທໄດກາໜດໄວີ ໍ ົ່ ້ ້ GROUP BY ຈດກຸມຂມູນທຜນໄດຮບສະແດງຄກນັ ໍ ີ ົ ັ ື ັ່ ້້ ່
  • 8. Mr. Phonepaseuth PHONHDALA 8 HAVING ຄກນກບື ັ ັ WHERE ໃຊເມອມ້ ື ີ່ GROUP BY ORDER BY ກາໜດການລຽນລາດບຂອງຂມູນຜນໄດຮບໍ ົ ໍ ັ ໍ ົ ັ້ ້ 3.3.1. ການເລອກແຕລະຖນຂອງຕາຕະລາງມາສະແດງື ັ່ ຮູບທີ 3.2 ການເລອກແຕລະຖນຂອງຕາຕະລາງມາສະແດງື ັ່
  • 9. Mr. Phonepaseuth PHONHDALA 9 3.3.2. ການປຽນຊຂອງຖນໃນການສະແດງຜນ່ ື ັ ົ່ ຮູບທີ 3.3 ການປຽນຊຂອງຖນ່ ື ັ່
  • 10. Mr. Phonepaseuth PHONHDALA 10 ການປຽນຊຖນນສາມາດເຮດໂດອກວທໜງດງນ່ ້ື ັ ີ ັ ີ ິ ີ ຶ ັ ີ່ ້ ່ ່ ້: ຮູບທີ 3.4 ການປຽນຊຂອງຖນ່ ື ັ່ ຈາກຮູບທີ 3.3 ແລະ 3.4 ເຮາສາມາດໃຊຮູບແບບໄວຍາກອນຂອງົ ້ ANSI ໂດຍໃຊ້ ຄເວດີ ີ ດງຮູບທັ ີ່ 3.5 ເຊງຈະໃຫຜນໄດຮບຄກນິ ົ ັ ື ັ່ ້ ້ ຮູບທີ 3.5 ໃຊຮູບແບບໄວຍາກອນຂອງ້ ANSI ໃນການປຽນຊຂອງຖນ່ ື ັ່
  • 11. Mr. Phonepaseuth PHONHDALA 11 3.3.3. ການເພມຂຄວາມເຂາລະຫວາງການສະແດງຜນີ ໍ ົ ົ່ ້ ້ ່ ຮູບທີ 3.6 ເພມຂຄວາມລະຫວາງການສະແດງຜນີ ໍ ົ່ ້ ່
  • 12. Mr. Phonepaseuth PHONHDALA 12 3.4.1. ການປຽບທຽບດວຍໂຕດາເນນການ້ ໍ ີ ( Comparison Operators ) ຕາຕະລາງທີ 3.1 ໂຕດາເນນການໍ ີ ( Operators ) ໂຕດາເນນການໍ ີ ຄວາມໝາຍ = ເທາກບົ ັ່ ( Equal ) > ຫາຍກວຼ ່ າ ( Greater Then ) < ໜອຍກວ້ ່ າ ( Less Then ) >= ຫາຍກວຼ ່ າ ຫເທາກບຼື ົ ັ່ ( Greater then or Equal To ) <= ໜອຍກວ້ ່ າ ຫເທາກບຼື ົ ັ່ ( Less Then or Equal ) <> ບເທາກບໍ ົ ັ່ ່ ( Not Equal ) != ບເທາກບໍ ົ ັ່ ່ ( ບແມນມາດຕະຖານໍ່ ່ SQL-92 ) !> ໜອຍກວ້ ່ າ ( ບແມນມາດຕະຖານໍ່ ່ SQL-92 ) !< ຫາຍກວຼ ່ າ ( ບແມນມາດຕະຖານໍ່ ່ SQL-92 ) 3.4. ການເລອກສະເພາະແຖວທຕອການມາສະແດງຂມູນື ີ ໍ່ ້້
  • 13. Mr. Phonepaseuth PHONHDALA 13 ຮູບທີ 3.7 ຕວຢາງການໃຊໂຕດາເນນການົ ໍ ີ່ ້ ເທາກບົ ັ່ ( = )
  • 14. Mr. Phonepaseuth PHONHDALA 14 3.4.2. ການເລອກແຖວໃນຊວງທຕອງການື ີ່ ້່ ( Ranges ) ຮູບທີ 3.8 ເລອກສະເພາະແຖວທຢູໃນຊວງທຕອງການື ີ ີ່ ່່ ່ ້
  • 15. Mr. Phonepaseuth PHONHDALA 15 3.4.3. ການເລອກສະເພາະແຖວທຢູໃນລາຍການື ີ່ ່ ( Lists ) ຮູບທີ 3.9 ເລອກສະເພາະແຖວທຢູໃນລາຍການື ີ່ ່
  • 16. Mr. Phonepaseuth PHONHDALA 16 ຮູບທີ 3.10 ເລອກສະເພາະແຖວທບຢູໃນລາຍການື ີ ໍ່ ່ ່ 3.4.4. ການເລອກແຖວທຮູຂມູນພຽງບາງສວນື ີ ໍ່ ້້ ່ ເປນການໃຊຄເວດັ ີ ີ້ Like ຮວມກບ່ ັ Wildcards
  • 17. Mr. Phonepaseuth PHONHDALA 17 Wildcards ຄວາມໝາຍ % ສະຕງທມອກຂະຣະຕງແຕິ ີ ີ ັ ັ່ ້ ່ 0 ຕວົ ເປນຕນໄປັ ົ້ . _ ( underscore ) ແທນຕວອກສອນພຽງຕວດຽວົ ັ ົ . [ ] ແທນອກຂະຣະໜງຕວັ ຶ ົ່ ເຊງຢູໃນຊວງທກາໜດໃຫິ ີ ໍ ົ່ ່່ ່ ້ ເຊນັ່ : [A-M] [ ^ ] ມຄວາມໝາຍກງກນຂາມກບີ ົ ັ ັ້ [ ] ຕາຕະລາງທີ 3.2 ປະເພດຂອງ Wildcards ຕວຢາງົ ່ 3.1 ສະແດງສະເພາະຊນກສກສາທມຄາວື ັ ຶ ີ ີ ໍ່ ່ ່າ pa ລວມຢູນາ່ ໍ
  • 18. Mr. Phonepaseuth PHONHDALA 18 ຕວຢາງົ ່ 3.2 ສະແດງສະເພາະນກສກສາທມຊຂນຕນດວຍຄາວັ ຶ ີ ີ ື ື ົ ໍ່ ່ ້ ້ ້ ່າ: Phone ຕວຢາງົ ່ 3.3 ສະແດງສະເພາະນກສກສາທມຊລງທາຍຕນດວຍຄາວັ ຶ ີ ີ ື ົ ົ ໍ່ ່ ້້ ້ ່າ: Vanh
  • 19. Mr. Phonepaseuth PHONHDALA 19 ຕວຢາງົ ່ 3.4 ສະແດງສະເພາະນກສກສາທມຊັ ຶ ີ ີ ື່ ່ 4 ຕວອກສອນົ ັ ໂດຍອກສອນທາອດຈະເປນຫຍງັ ໍ ິ ັ ັ ກໄດໍ່ ້ ແຕອກ່ ີ 3 ຕວທເຫອຕອງລງທາຍດວຍົ ີ ື ົ່ ຼ ້ ້ ້ one ຕວຢາງົ ່ 3.5 ສະແດງສະເພາະນກສກສາທຕວອກສອນຕວທາອດຂອງຊຢູລະຫວາງັ ຶ ີ ົ ັ ົ ໍ ິ ື່ ່ ່ ່ E ຫາ M ຕຈາກໍ່ ນນຈະເປນຕວໃດກໄດັ ັ ົ ໍ້ ່ ້
  • 20. Mr. Phonepaseuth PHONHDALA 20 ຕວຢາງົ ່ 3.7 ສະແດງສະເພາະນກສກສາທຕວອກສອນັ ຶ ີ ົ ັ່ 2 ຕວທາອດຂອງຊແມນົ ໍ ິ ື່ ່ Ph ແຕອກສອນ່ ັ ຕວທົ ີ່ 3 ຕອງບແມນຕວ້ ່ໍ ົ່ o ສວນທເຫອຈະມຫບມຕວອກສອນຕາມມາກໄດ່ ້ີ ື ີ ື ໍ ີ ົ ັ ໍ່ ່ ່ຼ ຼ ຕວຢາງົ ່ 3.6 ສະແດງສະເພາະນກສກສາທຕວອກສອນຕວທາອດຂອງຊບຢູລະຫວາງັ ຶ ີ ົ ັ ົ ໍ ິ ື ໍ່ ່ ່ ່ ່ E ຫາ P ຕໍ່ ຈາກນນຈະເປນຕວໃດກໄດັ ັ ົ ໍ້ ່ ້
  • 21. Mr. Phonepaseuth PHONHDALA 21 3.4.5. ການເລອກແຖວທມຄາຫວາງເກບຢູື ີ ີ ັ່ ່ ່ ່ ( NULL = Unknown Value ) ຮູບທີ 3.11 ເລອກສະເພາະແຖວທມຄາຫວາງເກບຢູໃນຖນື ີ ີ ັ ັ່ ່ ່ ່ Region
  • 22. Mr. Phonepaseuth PHONHDALA 22 3.4.6. ການເລອກແຖວໂດຍກາໜດຫາຍໆເງອນໄຂຮວມກນື ໍ ົ ື ັຼ ່ ່ ຕາຕະລາງ 3.3 ຄາຄວາມຈງໃນທາງຕກກະສາດ່ ິ ັ ຈະເປນການໃຊໂຕດາເນນການທາງຕກກະສານັ ໍ ີ ັ້ ( Logical Operator ) ເຂາົ້ ຊວຍ່ ເຊງໄດແກິ່ ້ ່ AND, OR ແລະ NOT AND True False NULL True True False NULL False False False False NULL NULL False NULL OR True False NULL True True True True False True False NULL NULL True NULL NULL NOT True False False True NULL NULL
  • 23. Mr. Phonepaseuth PHONHDALA 23 ຮູບທີ 3.12 ການໃຊໂຕດາເນນການທາງຕກກະສາດ້ ໍ ີ ັ AND ຮູບທີ 3.13 ການໃຊໂຕດາເນນການທາງຕກກະສາດ້ ໍ ີ ັ NOT
  • 24. Mr. Phonepaseuth PHONHDALA 24 ຮູບທີ 3.14 ການໃຊໂຕດາເນນການທາງຕກກະສາດ້ ໍ ີ ັ OR
  • 25. Mr. Phonepaseuth PHONHDALA 25 3.4.7. ການກາຈດຜນໄດຮບຂອງແຖວຂມູນທຄກນໍ ັ ົ ັ ໍ ີ ື ັ້ ້ ່ ຮູບທີ 3.15 ຜນໄດຮບທບໃຊົ ັ ີ ໍ້ ້່ ່ ແລະໃຊ້ DISTINCT ຜນໄດຮບທບໄດົ ັ ີ ໍ້ ້່ ່ ໃຊ້ DISTINCT ຜນໄດຮບທໃຊົ ັ ີ້ ້່ DISTINCT
  • 26. Mr. Phonepaseuth PHONHDALA 26 3.4.8. ການເລອກສະເພື າະ n ແຖວຂມູນທາອດໍ ໍ ິ້ ຮູບທີ 3.17 ການໃຊຄເວດ້ ີ ີ PERCENT ຮູບທີ 3.16 ເລອກສະເພສື ະ 3 ແຖວທາອດໍ ິ
  • 27. Mr. Phonepaseuth PHONHDALA 27 3.4.9. ການລຽນລາດບຜນໄດຮບຂອງຂມູນທຖກນາມາສະແດງໍ ັ ົ ັ ໍ ີ ື ໍ້ ້ ່ ຮູບທີ 3.18 ການລຽນລາດບແຕໃຫຍຫານອຍດວຍໍ ັ ່ ່ ້ ້ DESC ຖາຕອງການລຽນ້ ້ ແຕນອຍຫາໃຫຍໃຫໃຊ່ ້ ່ ້ ້ ASC
  • 28. Mr. Phonepaseuth PHONHDALA 28 3.5. ການຈດກຸມຂມູນເພອສະແດງຜນັ ໍ ື ົ່ ້ ່ 3.5.1. Aggregate Function ເປນຟງເຊນຊຸດໜງທໃຊສາລບຄດໄລຄາຜນບວກຂອງຂມູນໃນຕາຕະລາງັ ັ ີ ຶ ີ ໍ ັ ິ ົ ໍ່ ່ ້້ ່ ່ ຫຼື ພຽງບາງກຸມຂອງແຖວທມຂມູນດຽວກນໄດ່ ້ີ ີ ໍ ັ່ ້ . ຈະເປນການໃຊວຽກຮວມກບຄເວດັ ັ ີ ີ້ ່ GROUPE BY ແລະ HAVING ຟງເຊນັ ີ ຜນໄດຮບົ ັ້ AVG ( [ ALL | DISTINCT ] Column_name) ຊອກຄາສະເລຍຂອງຖນ່ ່ ັ ເຊງກາໜດໂດຍິ ໍ ົ່ ALL ຫຼື DISTINCT COUNT(*) ນບຈານວນແຖວຂອງຜນໄດຮບທງໝດັ ໍ ົ ັ ັ ົ້ COUNT( ALL | DISTINCT ) Column_name ນບຈານວນແຖວຂອງຖນັ ໍ ັ ເຊງກາໜດໂດຍິ ໍ ົ່ ALL ຫຼື DISTINCT COUNT_BIG ຄກນກບື ັ ັ COUNT ແຕຈະໄດປະເພດຂອງຂມູນກບມາເປນ່ ້ ໍ ັ ັ້ bigint ແທນທຈະເປນີ ັ່ int MAX (Column_name) ຊອກຄາໃຫຍສຸດຂອງຖນ່ ່ ັ
  • 29. Mr. Phonepaseuth PHONHDALA 29 ຟງເຊນັ ີ ຜນໄດຮບົ ັ້ MIN (Column_name) ຊອກຄານອຍສຸດຂອງຖນ່ ້ ັ SUM ( ALL | DISTINCT ) Column_name ຊອກຜນບວກຂອງຖນົ ັ ເຊງກາໜດໂດຍິ ໍ ົ່ ALL ຫຼື DISTINCT ຕາຕະລາງ 3.4 ລາຍລະອຽດຂອງ Aggregate Function ຮູບທີ 3.19 ຕວຢາງການໃຊົ ່ ້ ຟງເຊນັ ີ COUNT(*) ຮູບທີ 3.20 ຕວຢາງການໃຊົ ່ ້ ຟງເຊນັ ີ MAX(column_name)
  • 30. Mr. Phonepaseuth PHONHDALA 30 ຮູບທີ 3.21 ຕວຢາງການໃຊົ ່ ້ ຟງເຊນັ ີ SUM(column_name) 3.5.2. GROUP BY ແລະ HAVING ຄເວດີ ີ GROUP BY ມລກສະນະການເຮດວຽກຄາຍກນກບີ ັ ັ ັ ັ້ SELECT ແຕ່ ໃຊໃນກລະນທເປນການຈດກຸມຕາມແຖວຂອງຜນໄດຮບ້ ່ ້ໍ ີ ີ ັ ັ ົ ັ່ . ສວນ່ HAVING ມລກສະນະການເຮດວຽກຄາຍກນກບີ ັ ັ ັ ັ້ WHERE ເຊງຈິ່ ະ ຖກໃຊຮວມກບື ັ້ ່ GROUP BY ເຊງມຮູບແບບດງນິ ີ ັ ີ່ ່ ້: GROUP BY [ALL] non_aggregate_expression(s) HAVING seach_criterial
  • 31. Mr. Phonepaseuth PHONHDALA 31 + = 60 + = 60 + = 49 + = 49 + = 27 + = 27 ຮູບທີ 3.22 ຕວຢາງການໃຊົ ່ ້ ຄເວດີ ີ GROUP BY
  • 32. Mr. Phonepaseuth PHONHDALA 32 >250>250 ຮູບທີ 3.23 ຕວຢາງການໃຊົ ່ ້ ຄເວດີ ີ HAVING ຮວມກບ່ ັ GROUP BY
  • 33. Mr. Phonepaseuth PHONHDALA 33 ນອກຈາກນເຮາຍງສາມາດໃຊີ ົ ັ້ ້ WHERE ເພອກອງສະເພາະແຖວຂມູນທຕອງການື ໍ ີ່ ້ ່ ້ ກອນທຈະນາມາຈດກຸມດວຍ່ ່ ້ີ ໍ ັ່ GROUP BY ແລະສະແດງຜນໄດຮບຕາມເງອນໄຂຂອງົ ັ ື້ ່ HAVING ຮູບທີ 3.24 ຕວຢາງການໃຊົ ່ ້ ຄເວດີ ີ WHERE ຮວມກບ່ ັ GROUP BY
  • 34. Mr. Phonepaseuth PHONHDALA 34 3.5.2. COMPUTE ແລະ COMPUTE BY COMPUTE ໃຊໃນການສະຫລຸບຂມູນທໄດຈາກຜນໄດຮບຈາກການຄວຣ້ ້ ້ໍ ີ ົ ັ ິ ີ້ ່ ດວຍ້ Aggregate Function. ສວນ່ COMPUTE BY ຈະເປນການສະຫລຸບຂມູນໃນແຕລະກຸມຂອງຖນັ ໍ ັ້ ່ ່ ດຽວກນັ . ໂດຍມຮູບແບບການໃຊວຽກດງນີ ັ ີ້ ່ ້: COMPUTE aggregate_expression(s) [BY column_list]
  • 35. Mr. Phonepaseuth PHONHDALA 35 ຮູບທີ 3.25 ຕວຢາງການໃຊົ ່ ້ ຄເວດີ ີ COMPUTE
  • 36. Mr. Phonepaseuth PHONHDALA 36 ຮູບທີ 3.25 ຕວຢາງການໃຊົ ່ ້ ຄເວດີ ີ COMPUTE BY
  • 37. Mr. Phonepaseuth PHONHDALA 37 3.6. ການ JOIN ເພອຄວຣຂມູນຈາກຫາຍຕາຕະລາງື ິ ີ ໍ່ ້ ຼ 3.6.1. INNER JOINs ແບງອອກເປນ່ ັ 2 ແບບຄື: Equi JOIN ແລະ Natural JOIN Equi JOIN ຖນທນາມາປຽບທຽບກນຂອງັ ີ ໍ ັ່ 2 ຕາຕະລາງ ຈະມການຊາໃຫເຫນີ ໍ້ ້ ັ ຮູບທີ 3.26 Equi JOIN ( SQL Server Syntax )
  • 38. Mr. Phonepaseuth PHONHDALA 38 Natural JOIN ຮູບທີ 3.27 Equi JOIN ( ANSI Syntax ) ຜນໄດຮບຈະຄາຍກນກບົ ັ ັ ັ້ ້ Equi JOIN ແຕຈະບສະແດງຖນທໃຊປຽບທຽບຊາໃຫເຫນ່ ້ ້ໍ ັ ີ ໍ່ ່ ້ ັ ຮູບທີ 3.28 Natural JOIN ( SQL Server Syntax )
  • 39. Mr. Phonepaseuth PHONHDALA 39 ຮູບທີ 3.29 Natural JOIN ( ANSI Syntax ) 3.6.2. OUTER JOINs ANSI SQL Server ຜນໄດຮບົ ັ້ LEFT OUTER JOIN *= =* ບມໍ ີ່ ຂມູນຂອງແຕລະລາຍການຈະຍດຂມູນທມາຈາກຕາຕະລາງທາອດເປນຫກໍ ຶ ໍ ີ ໍ ິ ັ ັ້ ້ ່່ ຼ ໂດຍລວມກບຂມູນຈາກຕາຕະລາງທສອງເມອມຂມູນກງຕາມເງອນໄຂັ ໍ ີ ື ີ ໍ ົ ື້ ່ ່ ້ ່ RIGHT OUTER JOIN ຂມູນຂອງແຕລະລາຍການຈະຍດຂມູນທມາຈາກຕາຕະລາງທໍ ຶ ໍ ີ ີ້ ້ ່ ່່ 2 ເປນຫກັ ັຼ ໂດຍລວມກບຂມູນຈາກຕາຕະລາງທທາອດເມອມຂມູນກງຕາມເງອນໄຂັ ໍ ີ ໍ ິ ື ີ ໍ ົ ື້ ່ ່ ້ ່ FULL OUTER JOIN ຂມູນຂອງແຕລະລາຍການເກດຈາກຜນໄດຮບຈາກໍ ີ ົ ັ້ ່ ້ LEFT JOIN ແລະ LIGHT JOIN ລວມກນັ ຕາຕະລາງ 3.5 ປະເພດຂອງ OUTER JOIN
  • 40. Mr. Phonepaseuth PHONHDALA 40 ຈາກຕາຕະລາງທີ 3.5 ພບວາການຍດຫກຈາກຕາຕະລາງທາອດົ ຶ ັ ໍ ິ່ ຼ ຫຕາຕຼື ະ ລາງທີ່ 2 ຈະໃຫຜນໄດຮບຄກນ້ ້ົ ັ ື ັ ເມອມການສະຫບກນລະຫວາງປະເພດຂອງື ີ ັ ັ່ ຼ ່ OUTER JOIN ເຊນັ່ : FROM Customers LEFT OUTER JOIN Orders ON Customers.CustomerID =Order.CustomerID FROM Orders RIGHT OUTER JOIN Customers ON Customers.CustomerID =Order.CustomerID FROM Orders RIGHT OUTER JOIN Customers ON Order.CustomerID =Customers.CustomerID
  • 41. Mr. Phonepaseuth PHONHDALA 41 ຮູບທີ 3.30 ປຽບທຽບຜນໄດຮບຈາກົ ັ້ LEFT OUTER JOIN ແລະ RIGHT OUTERJOIN
  • 42. Mr. Phonepaseuth PHONHDALA 42 ຮູບທີ 3.30 ຕວຢາງການໃຊົ ່ ້ FULL OUTER JOIN
  • 43. Mr. Phonepaseuth PHONHDALA 43 3.7. ການໃຊ້ SUB QUERIES 3.7.1. Nested Subqueries ປະເພດຂອງ Sub queries ເມອແບງຕາມລກສະນະການເຮດວຽກແລວມດງນື ັ ັ ີ ັ ີ່ ່ ້່ ້ : ເປນຄວຣຍອຍທແຝງຕວຢູໃນຄວຣຫກັ ິ ີ ີ ົ ິ ີ ັ່ ່່ ຼ , ມໜາທຊອກຜນໄດຮບພາຍໃນຂອງຕວີ ີ ົ ັ ົ້ ້່ ເອງ ກອນທຈະຖກນາໄປປຽບທຽບກບເງອນໄຂທກຽວຂອງກບຜນໄດຮບ່ ່ ້ ້ີ ື ໍ ັ ື ີ ັ ົ ັ່ ່ ່ ເຊງຈະຖກິ ື່ ນາມາສະແດງຈາກຄວຣຫກໍ ິ ີ ັຼ ຫກການກາໜດເງອນໄຂຼັ ໍ ົ ື່ຫກການກາໜດເງອນໄຂຼັ ໍ ົ ື່ 1. ຫາກຜນໄດຮບຈາກຄວຣຍອຍເປນຄາດຽວໆອອກມົ ັ ິ ີ ັ້ ່ ່ ່ າ ສາມາດນາມາປຽບທຽບໍ ກບໂອເປເຣເຕັ ີ ີ ( Operator ) ຕາງ່ ໆ ເຊນັ່ : <, =, >, <=, >=, <>, !>, <! ພາຍໃນຄວຣໄດິ ີ ້. 2. ຖາຫາກຜນໄດຮບອອກມາເປນຖນດຽວ້ ້ົ ັ ັ ັ , ແຕມຫາຍໆຄ່ ່ີ ຼ າ ສາມາດໃຊຄເວດ້ ີ ີ [ NOT ] IN ເຊງໝາຍເຖງມຄາຂມູນຢູພາຍໃນຖນນິ ິ ີ ໍ ັ ີ່ ້ ້່ ່ ນາມາປຽບທຽບຮວມກບໍ ັ່ ຄເວດີ ີ WHERE ໄດ້.
  • 44. Mr. Phonepaseuth PHONHDALA 44 ຂກາໜດກຽວກບການໃຊໍ ໍ ົ ັ້ ່ ້ຂກາໜດກຽວກບການໃຊໍ ໍ ົ ັ້ ່ ້ Sub queriesSub queries 3. ຖາຜນໄດຮບອອກມາເປນຫາຍໆຖນ້ ້ົ ັ ັ ັຼ ສາມາດໃຊຄເວດ້ ີ ີ [ NOT ] EXISTS ເພອປຽບທຽບື່ ເຊງໝາຍເຖງມຄາຂມູນຢູພາຍໃນຜນໄດຮບທມຢູນິ ິ ີ ໍ ົ ັ ີ ີ ີ່ ້ ່ ້່ ່ ້ ່ ໂດຍໃຊວຽກ້ ຮວມກບຄເວດ່ ັ ີ ີ WHERE ເພອກາໜດເງອນໄຂໄດເຊນກນື ໍ ົ ື ັ ັ່ ່ ່້ . 1. ຕອງກາໜດໃຫຢູພາຍໃນວງເລບ້ ້ ່ໍ ົ ົ ັ ເພອສະແດງໃຫເຫນສວນຂອງຄວຣຍອຍື ິ ີ່ ້ ່ ່ັ ໄວຢາງຊດເຈນ້ ່ ັ . 2. ຖາມການນາໄປປຽບທຽບກນຄາດຽວ້ ່ ່ີ ໍ ັ ໆ ດງນນຜນໄດຮບຈາກຄວຣຍອຍຕອງັ ັ ົ ັ ິ ີ່ ້ ້ ່ ້ ອອກມາເປນຄາດຽວໆເຊນກນັ ັ ັ່ ່ ່ . 3. ບສາມາດໃຊຄເວດໍ ີ ີ່ ້ ORDER BY, COMPUTE ຫຼື SELECT INTO ຮວມພາຍໃນຄວຣຍອຍໄດ່ ່ ້ິ ີ . 4. ການໃຊຄເວດ້ ີ ີ IN ເພອປຽບທຽບຜນໄດຮບຈາກຄວຣຍອຍຕອງອອກມາເປນື ົ ັ ິ ີ ັ່ ້ ່ ້ ຄາດຽວ່ ່ ໆ ເທານນົ ັ່ ້ .
  • 45. Mr. Phonepaseuth PHONHDALA 45 5. ການໃຊຄເວດ້ ີ ີ EXISTS ເພອປຽບທຽບກບຄວຣຍອຍຕອງກາໜດເປນື ັ ິ ີ ໍ ົ ັ່ ່ ້ SELECT * 6. ຖນທປະເພດຂອງຂມູນເປນັ ີ ໍ ັ່ ້ Text ແລະ Image ບສາມາດນາມາໃຊໃນຄວໍ ໍ ິ່ ້ ຣຍອຍໄດີ ່ ້. ຮູບທີ 3.30 ຕວຢາງົ ່ Nested Subqueries with IN
  • 46. Mr. Phonepaseuth PHONHDALA 46 ຮູບທີ 3.31 ຕວຢາງົ ່ Nested Subqueries with EXISTS ຈະເຫນວັ ່າ ຜນໄດຮບຈາກຮູບທົ ັ ີ້ ່ 3.31 ຈະກນກບຜນໄດຮບໃນຮູບທັ ັ ົ ັ ີ້ ່ 3.30 ນອກຈາກການໃຊ້ IN ແລະ EXISTS ໃນການປຽບທຽບແລວ້ ຍງມຄເວດອນທມັ ີ ີ ີ ື ີ ີ່ ່ ລກສະນະການເຮດວຽກໃກຄຽງກນດງນັ ັ ັ ັ ີ້ ່ ້: 1. ANY ສາມາດໃຊຮວມກບໂອເປເຣເຕຕາງ້ ່ ່ັ ີ ີ ໆ(=, <, >, <=, >=, <>, !>, <!) ເພອກາໜດຂອບເຂດຂອງຜນໄດຮບຈາກື ໍ ົ ົ ັ່ ້ Subqueries ໄດເຊນ້ ັ່ : ANY(4,5,6) ໝາຍເຖງມຄາຫາຍກວາຕວໃດຕວໜງພາຍໃນວງິ ີ ົ ົ ຶ ົ່ ່ຼ ່ ຫເວາງາຍໆກຄມຄາຫາຍກວຼ ຼື ົ ໍ ື ີ້ ່່ ່ ່ າ 4 2. SOME ໃຊວຽກເຊນດຽວກນກບ້ ັ ັ ັ່ ANY ພຽງແຕເປນໄວຍາກອນຂອງ່ ັ ANSI
  • 47. Mr. Phonepaseuth PHONHDALA 47 3. ALL ການເຮດວຽກຄາຍກບັ ັ້ ANY ຫຼື SOME ແຕພຈາລະນາເປນຜນຂອງທງ່ ິ ັ ົ ັ ໝດແທນົ ເຊນັ່ : >ALL(4,5,6) ໝາຍເຖງມຄາຫາຍກວາຄາທງໝດໃນວງເລບິ ີ ັ ົ ົ ັ່ ່ ່ຼ ຫຼື ເວາໃຫເຂາໃຈງາຍໆຄົ ົ ື້ ້້ ່ ມຄາຫູາຍກວີ ່ ່ າ 6. ຮູບທີ 3.32 ຕວຢາງົ ່ Subqueries with ANY
  • 48. Mr. Phonepaseuth PHONHDALA 48 ຮູບທີ 3.33 ຕວຢາງົ ່ Nested Subqueries with ALL ສງເກດຜນໄດຮບຈາກຮູບທັ ົ ັ ີ້ 3.32 ເຊງເປນການໃຊິ ັ່ ້ = ANY(2,4,7,10,12,20,24) ຈະໃຫຜນໄດຮບຄກນກບການໃຊ້ ້ ້ົ ັ ື ັ ັ IN. ສວນຮູບທ່ ີ່ 3.33 ເປນການໃຊັ ້ > ALL (2,4,7,10,12,20,24) ດງນນຜນໄດຮບຈງັ ັ ົ ັ ິ່ ້ ່້ ມຄາຫາຍກວີ ່ ່ຼ າ 24
  • 49. Mr. Phonepaseuth PHONHDALA 49 3.7.2. Correlated Subqueries ຈະເປນການນາຄາຂອງແຕລະແຖວຈາກຄວຣພາຍນອກັ ໍ ິ ີ່ ່ ເຂາມາຮວມພຈາລະນົ ິ້ ່ າ ນາກບຄວຣພາຍໃນໍ ັ ິ ີ ເຊງຕາງຈາກິ່ ່ Nested Subqueries ທຜນໄດຮບຂອງຄວຣີ ົ ັ ິ ີ່ ້ ພາຍນອກ ແລະຄວຣພາຍໃນບມຄວາມກຽວຂອງກນິ ີ ໍ ີ ັ່ ່ ້ . ຄວາມແຕກຕາງອກປະການໜງຄ່ ີ ຶ ື່ Correlated Subqueries ຈະມການເຮດີ ັ ຈາກຄວຣພາຍນອກໄປສູຄວຣພາຍໃນິ ີ ິ ີ່ ສວນ່ Nested Subqueries ຈະເຮດໃນັ ທາງກງກນຂາມົ ັ ້ . ຮູບທີ 3.34 Correlated Subqueries with EXISTS
  • 50. Mr. Phonepaseuth PHONHDALA 50 ກອນຈະອະທບາຍຫກການເຮດວຽກຂອງຮູບທ່ ິ ັ ັ ີຼ ່ 3.34 ໃຫພຈາລະນາຂມູນຈາກ້ ິ ໍ້ ຕາຕະລາງ order details ທມຜນບວກຂອງຈານວນີ ີ ົ ໍ່ quantity ໃນແຕລ່ ະ order ຍອຍໆທງໝດລວມກນຫາຍກວ່ ່ັ ົ ັ ຼ າ 250 ກອນ່ ຈາກຮູບທີ 3.35 ຮູບທີ 3.35 ພຈາລະນາຂມູນຈາກຕາຕະລາງິ ໍ້ order details
  • 51. Mr. Phonepaseuth PHONHDALA 51 ຮູບທີ 3.36 ການນາເອາຂມູນຈາກຄວຣພາຍນອກມາປຽບທຽບກບຄວຣພາຍໃນໍ ົ ໍ ິ ີ ັ ິ ີ້ ຮູບທີ 3.36 ເປນການນາຄັ ໍ ່າ orderid ເທາກບົ ັ່ 10895 ຈາກຕາຕະລາງ orders ມາແທນຄ່າ orders.orderid ຄວຣພາຍໃນິ ີ ຈາກຮູບທີ 3.36 ຖານາຄ້ ່ໍ າ orderid ເທາກບົ ັ່ 10515 ມາແທນຄາໃນຄວຣ່ ິ ີ ພາຍໃນ ຈະບເຮດໃຫຮູບທໍ ັ ີ່ ້ 3.34 ເປນຈງໄດັ ິ ້( ພຈາລະນາຈາກຮູບທິ ີ 3.35 ) ດງັ່ ນນຂມູນຈາກັ ໍ້ ້ orderid ເທາົ່ 10515 ຈງບຖກນາມາສະແດງິ ໍ ື ໍ່ ່ .
  • 52. Mr. Phonepaseuth PHONHDALA 52 3.8. ການລວມຂມູນດວຍໍ້ ້ UNION ເປນການນາຂມູນຈາກຜນໄດຮບທເກດຈາກຕາງຄວຣັ ໍ ໍ ົ ັ ີ ີ ິ ີ້ ່້ ່ ແຕມລກສະນະການສ່ ີ ັ ະ ແດງຕາມລາດບຂອງຖນຄາຍໆກນໍ ັ ັ ັ້ ມາຈດສະແດງພອມກນັ ັ້ . select_statement1 UNION [ALL] select_statement2 ຂກາໜດກຽວກບການໃຊໍ ໍ ົ ັ້ ່ ້ຂກາໜດກຽວກບການໃຊໍ ໍ ົ ັ້ ່ ້ UNIONUNION 1. ການສະແດງຜນໄດຮບຂອງຖນໃນແຕລະຄວຣຕອງມຈານວນເທາກນົ ັ ັ ິ ີ ີ ໍ ົ ັ້ ່ ້ ່ ລວມ ທງຕອງມລາດບັ ີ ໍ ັ້ ແລະປະເພດຂອງຂມູນທຄກນໍ ີ ື ັ້ ່ . 2. ຫາກມການຝຊວຽກຮວມກບຄເວດີ ັ ີ ີ້ ່ INTO ສາມາດກາໜດໄວໄດພາຍໃນຄວຣໍ ົ ິ ີ້ ້ ຫກເທານນຼັ ົ ັ່ ້ 3. ໃນແຕລະຄວຣສາມາດໃຊຄເວດ່ ້ິ ີ ີ ີ GROUP BY ແລະ HAVING ໄດ້
  • 53. Mr. Phonepaseuth PHONHDALA 53 4. ຫາກມການໃຊຄເວດີ ີ ີ້ ORDER BY ແລະ COMPUTE ຕອງວາງໄວຫງ້ ້ ຼັ ສຸດຕຈາກໍ່ select_statement2 ເທານນົ ັ່ ້ ເພາະເຮດໜາທໃນການລຽນລາດບັ ີ ໍ ັ້ ່ ຫຄານວນຜນໄດຮບໃຫກບຂມູນທໄດຈາກຼື ໍ ົ ັ ັ ໍ ີ້ ້ ້້ ່ UNION. 5. ຊຖນຂອງຜນໄດຮບທຖກນາມາສະແດງຈະເປນໄປຕາມື ັ ົ ັ ີ ື ໍ ັ່ ່້ select_statement1 6. ຫາກກາໜດໃຫເປນໍ ົ ັ້ UNION ALL ຜນໄດຮບທໄດຈະນາແຖວຂມູນທເກດົ ັ ີ ໍ ໍ ີ ີ້ ້່ ້ ່ ຈາກຄວຣທງສອງມາສະແດງທງໝດິ ີ ັ ັ ົ ໂດຍບຄານງເຖງຂມູນທຄກນໍ ໍ ຶ ິ ໍ ີ ື ັ່ ້ ່ .
  • 54. Mr. Phonepaseuth PHONHDALA 54 ຮູບທີ 3.37 ຕວຢາງການໃຊົ ່ ້ UNION ===== =====