មេរៀន SQLកម្រិត​ខ្ពស់

SQL TOP Clause
TOP Clause ត្រូវ​បាន​ប្រើ​ដើម្បី​បញ្ជាក់​ចំនួន​នៃ​ការ​កត់ត្រា​ដើម្បី​ត្រឡប់​មក​វិញ​។ អាច​ជា​មាន​ប្រយោជន៍​ខ្លាំង​ណាស់​នៅ​លើ​តុ​ធំ​ជាមួយ​នឹង​កំណត់​ត្រា​នៃ​ការ​រាប់​ពាន់​នាក់​។ ត្រឡប់​មក​មួយ​ចំនួន​ធំ​នៃ​ការ​កត់ត្រា​អាច​ប៉ះ​ពាល់​ដល់​លើ​ការ​អនុវត្ត​។
QL Server Syntax
SELECT TOP number|percent column_name(s)
FROM table_name
SQL SELECT TOP ​ស្មើការប្រើ MySQL និង Oracle
MySQL Syntax

SELECT column_name(s)
FROM table_name
LIMIT number

ឧ​ទា​ហរ​ណ៏
SELECT *
FROM Persons
LIMIT 5
Oracle Syntax
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number

ឧ​ទា​ហរ​ណ៏
SELECT *
FROM Persons
WHERE ROWNUM <=5
មូលដ្ឋាន​ទិន្នន័យ​សាកល្បង
ខាងក្រោម​នេះ​ជា​ការ​ជ្រើសរើស​ពី “អតិថិជន​” តារាង​មួយ​គឺ​:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

stament SQL មួយ​ដូច​ខាង​ក្រោម​នេះ​ជ្រើសរើស​តែ​ពីរ​កំណត់ត្រា​លើក​ដំបូង​នៅ​ក្នុង “ប្ដូរ​តាម​បំណង​” តារាង​:
ឧ​ទា​ហរ​ណ៏
SELECT TOP 2 * FROM Customers;
stament SQL មួយ​ដូច​ខាង​ក្រោម​ជ្រើសរើស​កំពូល 50​% នៃ​ការ​ការ​កត់ត្រា​ក្នុង “ប្ដូរ​តាម​បំណង​” តារាង​:
ឧ​ទា​ហរ​ណ៏
SELECT TOP 50 PERCENT * FROM Customers;

SQL LIKE Operator

LIKE operator ប្រតិបត្តិការ​ដូច​ត្រូវ​បាន​ប្រើ​ដើម្បី​ស្វែងរក​សម្រាប់​លំនាំ​ដែល​បាន​បញ្ជាក់​នៅ​ក្នុង​ជួរ​ឈរ​មួយ​។
SQL LIKE Syntax
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

មូលដ្ឋាន​ទិន្នន័យ​សាកល្បង

នៅ​ក្នុង​ឯកសារ​បង្រៀន​នេះ​យើង​នឹង​ប្រើ​មូលដ្ឋាន​ទិន្នន័យ​ល្បី​សំណាក​គំរូ Northwind ។

ខាងក្រោម​នេះ​ជា​ការ​ជ្រើសរើស​ពី “អតិថិជន​” តារាង​មួយ​គឺ​:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

សេចក្តី​ថ្លែងការណ៍ SQL ដែល​បាន​ជ្រើសរើស​ដូច​ខាងក្រោម​អតិថិជន​នៅ​ក្នុង​ទី​ក្រុង​ចាប់​ផ្តើ​ម​ជា​មួយ​នឹង msgstr “” ពី “ប្ដូរ​តាម​បំណង​” តារាង​:
ឧ​ទា​ហរ​ណ៏
SELECT * FROM Customers
WHERE City LIKE ‘s%’;
សេចក្តី​ថ្លែងការណ៍ SQL ដែល​បាន​ជ្រើសរើស​ដូច​ខាងក្រោម​អតិថិជន​នៅ​ក្នុង​ទីក្រុង​មួយ​ដែល​បញ្ចប់​ដោយ  “s” បាន​” ពី “ប្ដូរ​តាម​បំណង​” តារាង​មួយ​:
ឧ​ទា​ហរ​ណ៏
SELECT * FROM Customers
WHERE City LIKE ‘%s’;

សេចក្តី​ថ្លែងការណ៍ SQL ដែល​បាន​ជ្រើសរើស​ដូច​ខាងក្រោម​អតិថិជន​នៅ​ក្នុង​ប្រទេស​ដែល​មាន​លំនាំ “den” ពី “ប្ដូរ​តាម​បំណង​” តារាង​មួយ​:
ឧ​ទា​ហរ​ណ៏
SELECT * FROM Customers
WHERE Country LIKE ‘%den%’;

សេចក្តី​ថ្លែងការណ៍ SQL ដែល​បាន​ជ្រើសរើស​ដូច​ខាងក្រោម​អតិថិជន​នៅ​ក្នុង​ប្រទេស​មិន​ដែល​មាន​លំនាំ “den” ពី “ប្ដូរ​តាម​បំណង​” តារាង​មួយ​:

ឧ​ទា​ហរ​ណ៏

SELECT * FROM Customers
WHERE Country NOT LIKE ‘%den%’;

SQL Wildcards
SQL wildcards SQL មួយ​សម្រាប់​តួ​អក្សរ​មួយ​ឬ​ច្រើន​នៅ​ពេល​ស្វែង​រក​ទិន្នន័យ​នៅ​ក្នុង​មូលដ្ឋាន​ទិន្នន័យ​។

Wildcard Description
% A substitute for zero or more characters
_ A substitute for exactly one character
[charlist] Any single character in charlist
[^charlist]or

[!charlist]

Any single character not in charlist

យើង​មាន​ដូច​ខាង​ក្រោម “មនុស្ស​” តារាង​:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

ការ​ប្រើ​តួអក្សរ​ជំនួស ​%
ឥឡូវ​នេះ​យើង​ចង់​ជ្រើស​មនុស្ស​ដែល​រស់នៅ​ក្នុង​ទីក្រុង​ដែល​ចាប់ផ្តើម​ជាមួយ “SA​” ពី “មនុស្ស​” តារាង​មួយ​។
យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:
SELECT * FROM Persons
WHERE City LIKE ‘sa%’

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

បន្ទាប់​មក​ទៀត​យើង​ចង់​ជ្រើស​រើស​មនុស្ស​ដែល​រស់នៅ​ក្នុង​ទីក្រុង​ដែល​មាន​លំនាំ “​មុខរបរ​” ពី “ផ្ទាល់​ខ្លួន​” តារាង​។យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:

SELECT * FROM Persons
WHERE City LIKE ‘%nes%’

 

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

 

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

 

ដោយ​ប្រើ​តួ​អក្សរ​ជំនួស ​,

ឥឡូវ​នេះ​យើង​ចង់​ជ្រើស​រើស​មនុស្ស​ដែល​មាន​ឈ្មោះ​ដំបូង​ដែល​ចាប់​ផ្តើ​ម​ជាមួយ​នឹង​តួអក្សរ​ណា​មួយ​អម​ដោយ “La​” ពី “មនុស្ស​” តារាង​។ យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:
SELECT * FROM Persons
WHERE FirstName LIKE ‘_la’
លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes

យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:

SELECT * FROM Persons
WHERE LastName LIKE ‘S_end_on’

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes

ដោយ​ប្រើ​តួ​អក្សរ​ជំនួស [charlist​]

ឥឡូវ​នេះ​យើង​ចង់​ជ្រើស​រើស​មនុស្ស​ដែល​មាន​ឈ្មោះ​ចុង​ក្រោយ​ដែល​ចាប់​ផ្តើ​ម​ជាមួយ​នឹង​ជា “b​” ឬ “s ‘” ឬ “P​” ពី “មនុស្ស​” តារាង​។ យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:

SELECT * FROM Persons
WHERE LastName LIKE ‘[bsp]%’

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

បន្ទាប់​មក​ទៀត​យើង​ចង់​ជ្រើស​រើស​មនុស្ស​ដែល​មាន​ឈ្មោះ​ចុង ​ក្រោយ​មួយ​ដែល​មិន​បាន​ចាប់​ផ្តើ​ម​ជាមួយ​នឹង​ជា “b​” ឬ “s ‘” ឬ “P​” ពី “មនុស្ស​” តារាង​។ យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:

SELECT * FROM Persons
WHERE LastName LIKE ‘[!bsp]%’

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes

ប្រមាណវិធី SQL IN Operator

ប្រមាណវិធី អនុញ្ញាត​ឱ្យ​អ្នក​បញ្ជាក់​ពី​តម្លៃ​ជា​ច្រើន​ក្នុង​មួយ​ឃ្លា​ដែល​កន្លង​។
SQL IN Syntax
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,…)

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

ឥឡូវ​នេះ​យើង​ចង់​ជ្រើស​រើស​មនុស្ស​ដែល​មាន​ឈ្មោះ​ចុង​ក្រោយ​មួយ​ដែល​ស្មើ​នឹង “Hansen​” ឬ “Pettersen​” ពី​តារាង​ខាង​លើ​។យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:
SELECT * FROM Persons
WHERE LastName IN (‘Hansen’,’Pettersen’)

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

ប្រមាណវិធី SQL BETWEEN Operator

ប្រមាណវិធី BETWEEN operator ត្រូវ​បាន​ប្រើ​នៅ​ក្នុង​មួយ​ឃ្លា​ដែល​កន្លែង​ដែល​ត្រូវ​ជ្រើស​ជួរ​ទិន្នន័យ​រវាង​ពីរ​តម្លៃ​មួយ​។
ប្រមាណវិធី BETWEEN operator ជ្រើស​ជួរ​ទិន្នន័យ​រវាង​ពីរ​តម្លៃ​មួយ​។ តម្លៃ​វា​អាច​ជា​លេខ​អត្ថបទ​ឬ​កាល​បរិច្ឆេទ​។
SQL BETWEEN Syntax
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

ឥឡូវ​នេះ​យើង​ចង់​ជ្រើស​រើស​មនុស្ស​ដែល​មាន​ឈ្មោះ​ចុង​ក្រោយ ​តាម​លំដាប់​តួអក្សរ​មួយ​រវាង “Hansen​” និង “Pettersen​” ពី​តារាង​ខាង​លើ​។

យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:

SELECT * FROM Persons
WHERE LastName
BETWEEN ‘Hansen’ AND ‘Pettersen’

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes

ចំណាំ​: រវាង​ប្រតិបត្តិ​ករ​ត្រូវ​បាន​គោរព​តាម​ភាព​ខុសគ្នា​នៅ​ក្នុង​មូលដ្ឋាន​ទិន្នន័យ​ផ្សេង​គ្នា​!

ឧ​ទា​ហរ​ណ៏ 2

ដើម្បី​បង្ហាញ​មនុស្ស​ដែល​នៅ​ខាង​ក្រៅ​ជួរ​នៅ​ក្នុង​ឧទាហរណ៍​មុន​ប្រើ​មិន​រវាង​:

SELECT * FROM Persons
WHERE LastName
NOT BETWEEN ‘Hansen’ AND ‘Pettersen’

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

SQL Alias

អ្នក​អាច​ផ្ដល់​នូវ​តារាង​មួយ​ឬ​ជួរឈរ​ឈ្មោះ​មួយ​ផ្សេង​ទៀត​ដោយ​ប្រើ​ឈ្មោះ​ក្លែងក្លាយ​​​មួយ​។ នេះ​អាច​ជា​រឿង​មួយ​ដ៏​ល្អ​ដើម្បី​ធ្វើ​ប្រសិន​បើ​អ្នក​មាន​ឈ្មោះ​តារាង​ណាស់​វែង​ឬ​ស្មុគស្មាញ​ឬ​ឈ្មោះ​ជួរ​ឈរ​។
ជា​ឈ្មោះ​ឈ្មោះ​ក្លែងក្លាយ​​​អាច​ជា​អ្វី​នោះ​ទេ​ប៉ុន្តែ​ជា​ធម្មតា​វា​មាន​រយៈពេល​ខ្លី​។
SQL Alias Syntax for Tables

SELECT column_name(s)
FROM table_name
AS alias_name

SQL Alias Syntax ​​​ជួរ​ឈរ
SELECT column_name AS alias_name
FROM table_name

យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:

SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p,
Product_Orders AS po
WHERE p.LastName=’Hansen’ AND p.FirstName=’Ola’

សេចក្តី​ថ្លែងការណ៍​ដែល​បាន​ជ្រើស​ដូចគ្នា​ដោយ​មិន​ចាំបាច់​ឈ្មោះ​ក្លែងក្លាយ​​​:

SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName
FROM Persons,
Product_Orders
WHERE Persons.LastName=’Hansen’ AND Persons.FirstName=’Ola’
SQL Joins
ត្រូវ​បាន​ប្រើ​ដើម្បី​ទិន្នន័យ​សំណួរ​ពី​ពីរ​ឬ​ច្រើន​ជាង​នេះ​ក្នុង​តារាង​ដោយ​ផ្អែក​លើ​ទំនាក់​ទំនង​រវាង​ជួរឈរ​ជាក់លាក់​នៅ​ក្នុង​តារាង​នេះ​។ ពាក្យ​គន្លឹះ​គឺ​ត្រូវ​បាន​ប្រើ​នៅ​ក្នុង​សេចក្តី​ថ្លែងការណ៍ SQL ដើម្បី​ទិន្នន័យ​សំណួរ​ពី​ពីរ​ឬ​ច្រើន​ជាង​នេះ​ក្នុង​តារាង​ដោយ​ផ្អែក​លើ​ទំនាក់​ទំនង​រវាង​ជួរឈរ​ជាក់លាក់​នៅ​ក្នុង​តារាង​នេះ​តារាង​ក្នុង​មូលដ្ឋាន​ទិន្នន័យ​មួយ​ដែល​ត្រូវ​បាន​ទាក់ទង​នឹង​ទៅ​ជា​ញឹកញាប់​គ្នា​ជា​មួយ​គ្រាប់ចុច​។ជា​កូនសោ​សំខាន់​គឺ​ជួរ​ឈរ​មួយ (ឬ​ការ​បញ្ចូល​គ្នា​នៃ​ជួរ​ឈរ​មួយ​) ដែល​មាន​តម្លៃ​តែ​មួយ​គត់​សម្រាប់​ជួរ​នីមួយ​។ រាល់​តម្លៃ​កូន​សោ​សំខាន់​ត្រូវ​តែ​មាន​តែ​មួយ​គត់​នៅ​ក្នុង​តារាង​។ គោលបំណង​គឺ​ដើម្បី​ចង​ទិន្នន័យ​រួម​គ្នា​នៅ​ទូទាំង​តុ​ដោយ​មិន​ធ្វើ​ដដែល​ទាំងអស់​នៃ​ទិន្នន័យ​ក្នុង​តារាង​រាល់​។
មើល​នៅ “មនុស្ស​” តារាង​:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

ចំណាំ​ថា​ជួរឈរ “P_Id​” គឺ​ជា​កូនសោ​ចម្បង​នៅ​ក្នុង “មនុស្ស​” តារាង​។ នេះ​មាន​ន័យ​ថា គ្មាន ពីរ​ជួរ​ដេក​ដែល​អាច​មាន P_Id ដូចគ្នា​។ P_Id បាន​ស្គាល់​មនុស្ស​ពីរ​នាក់​សូម្បី​តែ​ប្រសិន​បើ​ពួក​គេ​មាន​ឈ្មោះ​ដូច​គ្នា​។ បន្ទាប់​មក​ទៀត​យើង​មាន “ការ​បញ្ជាទិញ​” តារាង​:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

SQL INNER JOIN Keyword

ពាក្យគន្លឹះ​ខាងក្នុង​ត្រឡប់​ចូល​រួម​ក្នុង​ជួរ​ដេក​នៅ​ពេល​ដែល​មាន​យ៉ាង​ហោច​ណាស់​ក៏​មួយ​ប្រកួត​ក្នុង​តារាង​ទាំង​ពីរ​។
SQL INNER JOIN Syntax
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

“ការ​បញ្ជាទិញ​” តារាង​:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

ឥឡូវ​នេះ​យើង​ចង់​រាយ​មនុស្ស​ទាំង​អស់​ជាមួយ​នឹង​ការ​បញ្ជា​ណា​មួយ​។

យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678

SQL LEFT JOIN Keyword

ពាក្យគន្លឹះ​ខាង​ឆ្វេង​ត្រឡប់​ចូល​រួម​ក្នុង​ជួរ​ដេក​ទាំងអស់​ពី​តារាង​ខាង​ឆ្វេង (table_name1​) ប្រសិន​បើ​ទោះ​បី​ជា​មាន​ការ​ប្រកួត​គ្មាន​នៅ​ក្នុង​តារាង​ខាង​ស្ដាំ (table_name2​) ។
SQL LEFT JOIN Syntax
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

“ការ​បញ្ជាទិញ​” តារាង​:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

ឥឡូវ​នេះ​យើង​ចង់​រាយ​មនុស្ស​ទាំងអស់​និង​ការ​បញ្ជា​ទិញ​របស់​ពួក​គេ – ប្រសិន​បើ​ណា​មួយ​ពី​តារាង​ខាង​លើ​។

យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678
Svendson Tove

SQL RIGHT JOIN Keyword

ពាក្យគន្លឹះ​ចូល​រួម​ក្នុង​សិ​ទិ​ត្រឡប់​ជួរ​ដេក​ទាំងអស់​ពី​តារាង​ខាង​ស្ដាំ (table_name2​) ប្រសិន​បើ​ទោះ​បី​ជា​មាន​ការ​ប្រកួត​គ្មាន​នៅ​ក្នុង​តារាង​ខាង​ឆ្វេង (table_name1​) ។

SQL RIGHT JOIN Syntax
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
PS​: នៅ​ក្នុង​មូលដ្ឋាន​ទិន្នន័យ​មួយ​ចំនួន​ដែល​ចូល​រួម​ក្នុង​សិ​ទិ​ត្រូវ​បាន​ហៅ​ថា​សិ​ទិ Outer ចូលរួម​។

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

“ការ​បញ្ជាទិញ​” តារាង​:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

ឥឡូវ​នេះ​យើង​ចង់​រាយ​ការ​បញ្ជា​ទិញ​ទាំង​អស់​ដោយ​បុគ្គល​ណា​ដែល​មាន​ផ្ទុក – ប្រសិន​បើ​ណា​មួយ​ពី​តារាង​ខាង​លើ​។

យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678
34764

SQL FULL JOIN Keyword

FULL JOIN keyword ​ជួរ​ដេក​ត្រឡប់​មក​វិញ​នៅ​ពេល​ដែល​មាន​ពាក្យ​គន្លឹះ​គឺ​ជា​ការ​ប្រកួត​ក្នុង​មួយ​នៃ​តារាង​។
SQL FULL JOIN Syntax
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name

ថា “មនុស្ស​” តារាង​:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

“ការ​បញ្ជាទិញ​” តារាង​:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

ឥឡូវ​នេះ​យើង​ចង់​រាយ​មនុស្ស​ទាំងអស់​និង​ការ​បញ្ជា​ទិញ​របស់​ពួក​គេ​និង​ការ​បញ្ជា​ទិញ​ទាំង​អស់​នោះ​ជាមួយ​នឹង​មនុស្ស​របស់​ពួក​គេ​។

យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678
Svendson Tove
34764

ប្រមាណវិធី SQL UNION Operator

ប្រមាណវិធី SQL UNION operator ត្រូវ​បាន​ប្រើ​ដើម្បី​បញ្ចូល​គ្នា​នូវ​លទ្ធផល​សំណុំ​នៃ​ចំនួន​ពីរ​ឬ​ច្រើន​ជាង​នេះ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​។

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

SQL UNION ALL Syntax

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

រក​មើល​នៅ​ក្នុង​តារាង​ខាង​ក្រោម​:

“Employees_Norway​” :

E_ID E_Name
01 Hansen, Ola
02 Svendson, Tove
03 Svendson, Stephen
04 Pettersen, Kari

“Employees_USA​” :

E_ID E_Name
01 Turner, Sally
02 Kent, Clark
03 Svendson, Stephen
04 Scott, Stephen

ឥឡូវ​នេះ​យើង​ចង់​រាយ ទាំង​អស់​ផ្សេង​គ្នា និយោជិត​នៅ​ក្នុង​ប្រទេស​ន័រវែស​និង​សហរដ្ឋ​អាមេរិក​។

យើង​ប្រើ​សេចក្តី​ថ្លែង​ការណ៍​ដែល​បាន​ជ្រើស​ដូច​ខាង​ក្រោម​:

SELECT E_Name FROM Employees_Norway
UNION
SELECT E_Name FROM Employees_USA

លទ្ធផល​ដែល​បាន​កំណត់​នឹង​មើល​ទៅ​ដូច​នេះ​:

E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Scott, Stephen

ឥឡូវ​នេះ​យើង​ចង់​រាយ ទាំងអស់ និយោជិត​នៅ​ក្នុង​ប្រទេស​ន័រវែស​និង​សហរដ្ឋ​អាម​រិ​ក​:

SELECT E_Name FROM Employees_Norway
UNION ALL
SELECT E_Name FROM Employees_USA

ល​ទ​ធ​ផល

E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Svendson, Stephen
Scott, Stephen

ការប្រកាស SQL SELECT INTO Statement

ការប្រកាស SQL SELECT INTO statement សេចក្តី​ថ្លែងការណ៍ SQL មួយ​ដែល​បាន​ជ្រើស​អាច​ត្រូវ​បាន​ប្រើ​ដើម្បី​បង្កើត​ច្បាប់​ចម្លង​បម្រុង​ទុក​នៃ​តារាង​។
ចូល​ទៅ​ក្នុង​សេចក្តី​ថ្លែងការណ៍​ដែល​បាន​ជ្រើស​ជ្រើស​ទិន្នន័យ​ពី​តារាង​មួយ​ហើយ​បញ្ចូល​វា​ទៅ​ក្នុង​តារាង​ខុស​គ្នា​។
ចូល​ទៅ​ក្នុង​សេចក្តី​ថ្លែងការណ៍​ដែល​បាន​ជ្រើស​នឹង​ត្រូវ​បាន​ប្រើ​ជា​ញឹកញាប់​បំផុត​ដើម្បី​បង្កើត​ច្បាប់​ចម្លង​បម្រុង​ទុក​នៃ​តារាង​។

SQL SELECT INTO Syntax

We can select all columns into the new table:
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename

Or we can select only the columns we want into the new table:

SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename
បង្កើតទិន្នន័យ SQL CREATE DATABASE Statement

សេចក្តី​ថ្លែងការណ៍​ នេះ​បាន​បង្កើត​មូលដ្ឋាន​ទិន្នន័យ
សេចក្តី​ថ្លែងការណ៍​នេះ​បាន​បង្កើត​មូលដ្ឋាន​ទិន្នន័យ​ត្រូវ​បាន​ប្រើ​ដើម្បី​បង្កើត​ឃ្លាំង​ទិន្នន័យ​មួយ​។

SQL CREATE DATABASE Syntax

CREATE DATABASE database_name

បង្កើត​មូលដ្ឋាន​ទិន្នន័យ
ឥឡូវ​នេះ​យើង​ចង់​បង្កើត​មូលដ្ឋាន​ទិន្នន័យ​ដែល​គេ​ហៅ​ថា “m​​y_db​” ​។
យើង​ប្រើ​បាន​បង្កើត​សេចក្តី​ថ្លែង​ការណ៍​ដូច​ខាង​ក្រោម​មូលដ្ឋាន​ទិន្នន័យ​:

CREATE DATABASE my_db

សេចក្តី​ថ្លែងការណ៍​​បង្កើត​តារាង SQL CREATE TABLE Statement

សេចក្តី​ថ្លែងការណ៍​​បង្កើត​តារាង CREATE TABLE Statement
សេចក្តី​ថ្លែងការណ៍​តារាង​បង្កើត​ត្រូវ​បាន​ប្រើ​ដើម្បី​បង្កើត​តារាង​ក្នុង​មូលដ្ឋាន​ទិន្នន័យ​មួយ​។

SQL CREATE TABLE Syntax
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
….
)
ឩ​ទា​ហរ​ណ៍​តារាង
ឥឡូវ​នេះ​យើង​ចង់​បង្កើត​តារាង​មួយ​ដែល​គេ​ហៅ​ថា “Persons​” ដែល​មាន​រយៈ​ពេល​ប្រាំ​ជួរឈរ​: P_Id​, LastName​, អាស​​័យ​ដ្ឋាន​, FirstName​, និង​ទីក្រុង​។

យើង​ប្រើ​បាន​បង្កើត​សេចក្តី​ថ្លែង​ការណ៍​ដូច​ខាង​ក្រោម​តារាង​:
CREATE TABLE Persons
(
P_Id int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

តារាង​ឥឡូវ​នេះ​នឹង​មើល​ទៅ​ដូច​នេះ​:

P_Id LastName FirstName Address City

SQL Constraints

Constraints ប្រើ​ដើម្បី​កំណត់​ប្រភេទ​ទិន្នន័យ​ដែល​អាច​ចូល​ទៅ​ទៅ​ក្នុង​តារាង​មួយ​។
អាច​ត្រូវ​បាន​បញ្ជាក់​នៅ​ពេល​ដែល​ត្រូវ​បាន​បង្កើត​តារាង​មួយ (ជាមួយ​នឹង​សេចក្តី​ថ្លែងការណ៍​តារាង​បង្កើត​) ឬ​បន្ទាប់​ពី​តារាង​ត្រូវ​បាន​បង្កើត​ឡើង (ដោយ​មាន​សេចក្តី​ថ្លែងការណ៍​តារាង​ផ្លាស់​ប្តូ​រ​) ។
យើង​នឹង​ផ្តោ​ត​ទៅ​លើ​ឧបសគ្គ​ដូច​ខាង​ក្រោម​:

NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT

SQL NOT NULL Constraint

តាម​លំនាំ​ដើម​ជួរឈរ​តារាង​មួយ​អាច​រក្សា​តម្លៃ NULL ។
SQL NOT NULL Constraint
enforces វាល​ទៅ​តែងតែ​មាន​តម្លៃ​មួយ​។ នេះ​មាន​ន័យ​ថា​អ្នក​មិន​អាច​បញ្ចូល​មួយ​កំណត់​ត្រា​ថ្មី​ឬ​ធ្វើ​ឱ្យ​ទាន់​សម័យ​កំណត់ត្រា​មួយ​ដោយ​មិន​បន្ថែម​តម្លៃ​មួយ​ទៅ​វាល​នេះ​។

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
SQL UNIQUE Constraint

UNIQUE constraint ណត់​ត្រា​ក្នុង​តារាង​មូលដ្ឋាន​ទិន្នន័យ​តែមួយគត់
​សំខាន់​ដោយ​ស្វ័យ​ប្រវត្តិ​មាន​កម្រិត​តែ​មួយ​គត់​ដែល​បាន​កំណត់​នៅ​លើ​វា​។

A PRIMARY KEY constraint automatically has a UNIQUE constraint defined on it.

Note that you can have many UNIQUE constraints per table, but only one PRIMARY KEY constraint per table.
SQL UNIQUE Constraint on CREATE TABLE

ដូច​​​ខាងក្រោម SQL មួយ​បង្កើត​មួយ​កម្រិត​តែ​មួយ​គត់​នៅ​លើ​ជួរ​ឈរ “P_Id​” នៅ​ពេល​ដែល “មនុស្ស​” តារាង​ត្រូវ​បាន​បង្កើត​:

កម្មវិធី MySQL​:
MySQL:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)

SQL មួយ​ម៉ាស៊ីន​បម្រើ / Oracle / ថា MS ចូល​ដំណើរ​ការ​:

CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

ដើម្បី​អនុញ្ញាត​ឱ្យ​ដាក់​ឈ្មោះ​តែ​មួយ​គត់​នៃ​ការ​កម្រិត​មួយ​និង​សម្រាប់​ការ​កំណត់​កម្រិត​មួយ​ដែល​មាន​តែ​មួយ​គត់​នៅ​លើ​ជួរ​ឈរ​ច្រើន​ប្រើ​វាក្យ​សម្ព័ន្ធ SQL មួយ​ដូច​ខាង​ក្រោម​:

កម្មវិធី MySQL SQL / ម៉ាស៊ីន​បម្រើ / Oracle / ថា MS ចូល​ដំណើរ​ការ​:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)

SQL UNIQUE Constraint on ALTER TABLE

To create a UNIQUE constraint on the “P_Id” column when the table is already created, use the following SQL:

MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD UNIQUE (P_Id)

To allow naming of a UNIQUE constraint, and for defining a UNIQUE constraint on multiple columns, use the following SQL syntax:

កម្មវិធី MySQL SQL / ម៉ាស៊ីន​បម្រើ / Oracle / ថា MS ចូល​ដំណើរ​ការ​:
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

To DROP a UNIQUE Constraint

To drop a UNIQUE constraint, use the following SQL:

MySQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID

SQL PRIMARY KEY Constraint

SQL PRIMARY KEY Constraint
សំខាន់​តែ​មួយ​គត់​កំណត់​ត្រា​ក្នុង​តារាង​មូលដ្ឋាន​ទិន្នន័យ​។  ជួរ​ឈរ​មួយ​កូនសោ​សំខាន់​មិន​អាច​មាន​តម្លៃ NULL

Primary keys must contain unique values.

A primary key column cannot contain NULL values.

Each table should have a primary key, and each table can have only ONE primary key.
SQL PRIMARY KEY Constraint on CREATE TABLE

The following SQL creates a PRIMARY KEY on the “P_Id” column when the “Persons” table is created:

កម្មវិធី MySQL​: :
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)

SQL មួយ​ម៉ាស៊ីន​បម្រើ / Oracle / ថា MS ចូល​ដំណើរ​ការ​::
CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

ដើម្បី​អនុញ្ញាត​ឱ្យ​មាន​ការ​ដាក់ឈ្មោះ​កម្រិត​នៃ​ការ​ចុច​គ្រាប់ចុច​មួយ​បឋមសិក្សា​និង​សម្រាប់​កំណត់​មួយ​កម្រិត​កូនសោ​សំខាន់​នៅ​លើ​ជួរ​ឈរ​ច្រើន​ប្រើ​វាក្យ​សម្ព័ន្ធ SQL មួយ​ដូច​ខាង​ក្រោម​:

កម្មវិធី MySQL SQL / ម៉ាស៊ីន​បម្រើ / Oracle / ថា MS ចូល​ដំណើរ​ការ​:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)

ចំណាំ​: នៅ​ក្នុង​ឧទាហរណ៍​ខាង​លើ​មាន​តែ​មួយ​ប៉ុណ្ណោះ​គឺ​ជា​កូន​សោ​សំខាន់ (pk_PersonID​) ។ ទោះ​ជា​យ៉ាង​ណា​តម្លៃ​នៃ pk_PersonID ត្រូវ​បាន​បង្កើត​ឡើង​ដោយ​ពីរ​ជួរ​ឈរ (P_Id និង LastName​) ។

To create a PRIMARY KEY constraint on the “P_Id” column when the table is already created, use the following SQL:

MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)

To allow naming of a PRIMARY KEY constraint, and for defining a PRIMARY KEY constraint on multiple columns, use the following SQL syntax:

MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

Note: If you use the ALTER TABLE statement to add a primary key, the primary key column(s) must already have been declared to not contain NULL values (when the table was first created).
To DROP a PRIMARY KEY Constraint

To drop a PRIMARY KEY constraint, use the following SQL:

MySQL:
ALTER TABLE Persons
DROP PRIMARY KEY

SQL មួយ​ម៉ាស៊ីន​បម្រើ / Oracle / ថា MS ចូល​ដំណើរ​ការ​:
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID