Myanmar IT Resource Forum
Myanmar IT Resource Forum

You are not connected. Please login or register

View previous topic View next topic Go down  Message [Page 1 of 1]

ET


Moderator



Moderator
basic SQL အေၾကာင္းသိေကာင္းစရာ.....................





basic SQL

ဒီေနရာေလးမွာ SQL နဲ ့ ပတ္သက္တာေလးေတြကို ၀င္ေရာက္ေဆြးေႏြးနိုင္ပါတယ္ခင္ဗ်ာ .. ..




SQL မိတ္ဆက္
SQL ဆိုတာ structured query language
ရဲ ့ အတိုေကာက္ စကားလံုးၿဖစ္ပါတယ္ ။ sql က database ကို
ကၽြမ္းက်င္စြာအသံုးၿပဳနိုင္ေအာင္အေထာက္အကူေပးပါလိမ္ ့မယ္ ။ SQL ဟာ ANSI
(american national standards institute ) အဖြဲ ့ရဲ ့ စံ
စနစ္တခုၿဖစ္ပါတယ္။



SQL ဟာ ဘာေတြလုပ္နိုင္သလဲဆိုရင္...

  • SQL ဟာ database တခုကို ေမးၿမန္းစူးစမ္းမွဳေတြလုပ္နိုင္ပါတယ္
  • SQLဟာ database တခုက data ေတြကိုၿပန္လည္ရယူနိုင္ပါတယ္
  • SQL ဟာ database တခုအတြင္းကိုမွတ္တမ္း (records ) ေတြေရးသားထည့္သြင္းနိုင္ပါတယ္
  • SQL ဟာ database တခုအတြင္းက record ေတြကို update လုပ္နိုင္ပါတယ္
  • SQL ဟာdatabase တခုအတြင္းက record ေတြကို delete လုပ္နိုင္ပါတယ္
  • SQL ဟာ database အသစ္တခုကိုလဲဖန္တီးၿပဳလုပ္နိုင္ပါတယ္
  • SQL ဟာ database အတြင္းမွာ produres ေတြကိုလဲသိုေလွာင္သိမ္းထားနိုင္ပါတယ္
  • SQL ဟာ database အတြင္းမွာ views ေတြကိုလဲထည္ ့သြင္းနိုင္ပါတယ္
  • SQL ဟာ TABLE , PROCEDURES,VIEWS ေတြအေပၚမွာ ခြင့္ၿပဳခ်က္ permissions ေတြကိုလဲစီစဥ္နိုင္ပါတယ္

SQL ဟာANSIရဲ ့
စံစနစ္တခုၿဖစ္ေသာ္လည္းအမ်ိဳးကြဲေတြမ်ားစြာရွိပါတယ္…different versions
ေတြေပါ့ေနာ္..။ဒါေပမယ္ ့အဲဒီမ်ိဳးကြဲေတြဟာလဲ….ANSI စနစ္နဲ
့လိုက္ေလ်ာညီေထြၿဖစ္ေစရန္ အနဲဆံုးေတာ့ major commands ေတြၿဖစ္တဲ ့
SELECT , UPDATE , DELETE , INSERT, WHERE
စတာေတြကိုေထာက္ခံၾကပါတယ္..တူညီၾကတယ္ ။ SQL DATABASE PROGRAMS
အမ်ားစုကေတာ့ သူတို ့ရဲ ့ကိုယ္ပိုင္မူပိုင္စနစ္ေတြကို SQL STANDARD
မွာ ေပါင္းထည္ ့ထားတတ္ပါတယ္ ။

website တခုတည္ေဆာက္ေတာ့မယ္ဆိုရင္..ဒါေတြကိုလဲေလ ့လာထားရမွာပါ…..

  • AN RDBMS database program ( i.e.MS access , SQL server , my SQL )
  • A server-side scripting language, like : php or asp
  • SQL
  • HTML/CSS

RDBMS
RDBMS ဆိုတာက ( relational database
management system ) ကိုေခၚတာပါ ။အဲဒါကေတာ့ SQL အတြက္သာမက ေခတ္မွီ
database system ေတြအားလံုးရဲ ့ အေၿခခံပါ ။ ဥပမာ…MS SQL SERVER , IBM
DB2 , ORACLE , MY SQL , MICROSOFT ACCESS အဲဒါေတြေပါ့ ။ database
objects အတြင္းသိုေလွာင္ထားတဲ ့RDBMS အတြင္းက data ေတြကိုေတာ ့ TABLE
လို ့ေခၚပါတယ္ ။ table တခုအတြင္းမွာ columns ေတြ ၊ rows ေတြပါ၀င္ပါတယ္ ။

DATABASE TABLE အေၾကာင္းေလ ့လာၾကည့္ရေအာင္ဗ်ာ….
database တခုမွာ table
ေတြဟာတခု၊ဒါမွမဟုတ္..တခုထက္ပိုၿပီးပါ၀င္ၾကပါတယ္ ။ table တခုစီမွာသူရဲ ့
ပိုင္ဆိုင္ထားတဲ ့နာမည္ေတြရွိပါတယ္….ဥပမာ…” customers” ဒါဆိုရင္
customers table လို ့ေခၚပါတယ္ ၊ “person” ဒါဆိုရင္ persons table ပါ
။ table တခုမွာ records (rows ) ေတြပါရွိပါတယ္…rows ေတြမွာ data
ေတြရွိပါတယ္ ။
ဥပမာေလး…ၾကည္ ့ၾကည္ ့ဗ်ာ…
p_ID lastname firstname address city
1 linn mr 166 mdy
2 moe dr 167 npt
3 phyo tc 168 ygn
4 ispy tc 169 ccp

အထက္မွာ ေဖာ္ၿပထားတဲ ့ table ေလးကို persons table လို ့ပဲေခၚၾကရေအာင္ဗ်ာ.။
( p_id , lastname , firstname ,address , city ) အဲဒါေတြကို column name လို ့ေခၚတယ္ ။
အဲဒီေအာက္က အတန္းေတြကေတာ့ row လို ့ေခၚတယ္ ။အဲဒီrow ေတြထဲမွာထည္ ့ထားတာက data ေတြေပါ့ ။

SQL statements
(1) SELECT statement
SELECT column_name(s)
FROM table_name
ဒါေလးကေတာ့ table က ကိုလိုခ်င္တဲ ့ အခ်က္ေတြကိုၿပမယ္ ့ပံုစံပါ ။ column_name ဆိုတဲ ့ေနရာမွာ columnname ေတြထည္ ့ရမွာပါ ။
ဥပမာ။ ။

SELECT lastname, firstname
FROM persons

အဲလိုေရးရင္ table လံုးမေပၚပဲ..lastname column နဲ ့ firstname column ပဲေပၚမွာၿဖစ္ပါတယ္ ။ ဒီလိုေပၚမွာမွာ
LASTNAME FIRSTNAME
lin mr
moe dr
phyo tc
ispy tc
ဒီ SQL statement ကေတာ့ table
တခုလံုးကိုၿပတဲ ့ ဟာၿဖစ္ပါတယ္.. column name ေတြမေရြးပဲ…( * )
ခေရပြင့္ေလးထည္ ့မယ္ဆိုရင္ေတာ့အားလံုးေပၚပါလိမ့္မယ္ ။

SELECT *
FROM persons

SQL SELECT DISTINCT STATEMENT
table တခု အတြင္းမွာ တခ်ိဳ ့ column
name ေတြမွာပါ၀င္တဲ ့အခ်က္ေတြဟာ တူညီေနတတ္ပါတယ္ ။ ဒါဟာၿပႆနာမဟုတ္ေပမယ္ ့
တခါတရံ table အတြင္းမွာ ကြဲၿပားၿခားနားတဲ ့ different values
ေတြကိုပဲ..ေဖာ္ၿပခ်င္တဲ ့ ဆႏၵၿဖစ္လာတဲ ့အခါမွာ…ဒီ STATEMENT ကို
အသံုးၿပဳရမွာၿဖစ္ပါတယ္ ။

SELECT DISTINCT column_name(s)
FROM table_name

ကၽြန္ေတာ္တို ့ဟာ firstname တူေနတဲ ့ အခ်က္ေတြကိုမလိုခ်င္ဘူး ၊ ကြဲၿပားၿခားနားတဲ ့အခ်က္ေတြကိုပဲယူမယ္ဆိုပါဆို ့ ။
select distinct firstname
from persons

အဲလိုေရးလိုက္မယ္ဆိုရင္ ေအာက္ပါအတိုင္းေတြ ့ရမွာၿဖစ္ပါတယ္………………..
firstname
mr
dr
tc


အဲဒီမွာ ေတြ ့ရမွာက မူလ table မွာ firstname ” tc ” နွစ္ထပ္ေနတဲ ့အတြက္
အခုတခုပဲေဖာ္ၿပေတာ့တာေတြ ့ရမွာပါ ။ တူေနတာေတြ၊ထပ္ေနတဲ
့dataေတြကိုမေဖာ္ၿပခ်င္ရင္၊ table ထဲမွာ ကြဲၿပားၿခားနားတဲ ့ data
ေတြကိုပဲ သိခ်င္တယ္ဆိုရင္ ဒီ statement ကိုသံုးရမွာၿဖစ္ပါတယ္ ။

SQL WHERE clause
ဒါကေတာ့ coloumn name တခုက data
ေတြကို ေကာက္နုတ္ေရြးခ်ယ္နိုင္ပါတယ္ ။ ဥပမာ ။ ။ ကၽြန္ေတာ္တို ့ဟာ
အထက္မွာၿပထားတဲ ့ person table ထဲက column firstname မွာရွိတဲ ့ data
ေတြၿဖစ္တဲ ့ mr ,dr ,tc,tc ေတြက dr
မွစၿပီး.ေအာက္ပိုင္းေတြပဲလိုခ်င္တယ္၊ dr ရဲ ့အေပၚဘက္မွာရွိတဲ ့ data
ေတြကိုမလိုခ်င္ဘူးဆိုရင္ ဒီလိုေရးရပါလိမ္ ့မယ္ ။

SELECT *
FROM persons
WHERE firstname>’dr’

အဲဒီလိုေရးရင္ဒီလိုေပၚလာမွာၿဖစ္ပါတယ္။
p_id lastname fristname address city
2 moe dr 167 npt
3 phyo tc 168 ygn
4 ispy tc 169 ccp


အဲဒီမွာ firstname “ dr “ ရဲ ့အေပၚ က firstname ” mr “ ပါ တဲ ့
row တခုလံုးမပါေတာ့ တာေတြ ့ရမွာပါ ။ ဘာလို ့လဲဆိုေတာ့ ေရးထားတာကိုက dr
မွစၿပီး ေအာက္ပိုင္းေတြကိုပဲေဖာ္ၿပရန္လို ့ commend ေပးထားလို ့ပါ ။
> ဒီသေကၤတေလးေတာ့ ထည္ ့ဖို ့ေမ ့မသြားပါနဲ ့ ။ တကယ္လို ့ dr
မွစၿပီး အေပၚပိုင္းေတြပဲလိုခ်င္တယ္ဆိုရင္ေတာ ့ <
ေလးေၿပာင္းလိုက္ပါ ။ဒါဆိ္ုရင္ ဒါဆိုရင္ firstname “mr” နဲ ့ ” dr”
ပါတဲ ့ rows ေတြပဲေတြ ့ရမွာၿဖစ္ပါတယ္ ။ ဥပမာ ။ ။
SELECT *
FROM persons
where firstname<’dr’

အဲဒီလိုေရးမယ္ဆိုရင္ေတာ့ ဒီလိုေပၚလာမွာၿဖစ္ပါတယ္ ။

p_id lastname fristname address city

1 linn mr 166 mdy
2 moe dr 167 npt
သတိထားရမယ္ ့အခ်က္ေလးတခ်က္ေတာ့ရွိပါတယ္ ။
အဲဒါကဘာလဲဆိုေတာ့ ( ‘ ’ ) အဲဒီ quotes ဆိုတဲ ့ဟာေလးပါ ။ ဒါေလးက
စာသားေတြမွာဆိုရင္ ခံေပးရမွာပါ ။ဥပမာ ။ ။

SELECT *
FROM person
WHERE firstname> ‘ mr ‘
အဲလိုေရးမွမွန္မွာပါ ။
SELECT *
FROM person
WHERE firstname> mr
ဒီလိုေရးရင္မွားပါတယ္ ။
အဲ…ဂဏန္း ေတြဆိုရင္ေတာ့ quotes ခံစရာမလိုပါဘူး ……….ဥပမာ ။ ။
SELECT *
FROM person
WHERE address> 166
ဒီလိုေရးရင္မွန္ပါတယ္ ။
SELECT *
FROM person
WHERE firstname> ‘166′
ဒီလိုေရးရင္မွားပါတယ္ ။
OPERATORS allowed in the WHERE clause
operator description
= equal
< > not equal
> greater than
< lesstthan
> = greater than or equal
< = less than or equal
BETWEEN between an inclusive range
LIKE search for a pattern
IN
if you know to return for at least one of the columns

တခုသတိေပးခ်င္တာက < > အဲဒီ operator ကို တခ်ိဳ ့ SQL versions ေတြမွာ ! = အဲဒီလိုေရးပါတယ္ ။(နည္းပညာျပန္႕ပြားေရးအတြက္ က်ေန္ာသူငယ္ခ်င္း G0DH@ND ဆီမွ ျပန္လည္ေဖာ္ျပပါတယ္၊)

http://alinkarnya.blogspot.com/

သီရိ


MITR New User



ကၽြန္ေတာ္နည္းနည္းေလးဆက္လိုက္မယ္.... Smile

date/month/year နဲ႔ query စစ္ခ်င္သူေတြအတြက္ပါ....

SELECT column_name FROM table_name WHERE month(order_receiving_date) ='09'

month ေနရာမွာ date/year ၾကိဳက္တာထည့္စစ္လို႔ရတယ္...
order_receiving_date ဆိုတာကေတာ့ ကိုယ္စစ္ခ်င္တဲ့ column_name ပါ
'09' ကေတာ့ condition စစ္တာပါ...


Character String Comparison Operator


SELECT * FROM customer WHERE customer_name LIKE '%John'


ဒါကေတာ့ character ကိုစစ္တာပါ
LIKE ဆိုတာကေတာ့ အနီးစပ္ဆံုးကိုယူတာပါ
% ကေတာ့ John ဆိုတဲ့ စကားလံုးေရွ႔က ဘာပဲရွိရွိ ယူမယ္ဆိုတဲ့သေဘာပါ... John နဲ႔ဆံုးတဲ့ records ေတြအကုန္လံုးကိုယူမယ္လို႔ဆိုလိုတယ္
% ကို ၾကိဳတ္တဲ့ ေနရာမွာထားသံုးႏို္င္ပါတယ္... 'Smith%' , 'Joe%Paul'

ေနာက္တစ္မ်ဳိးေရးလို႔ရေသးတယ္..ဒီတစ္ခုကေတာ့ ကိုယ္အတိအက်သိမွရမွာ


SELECT customer_name FROM customer WHERE customer_name LIKE '_ _ _ _ _ John'


ဒါကေတာ့ John ရဲ႔ေရွ႔မွာ စာလံုးငါးလံုးရွိတဲ့ customer_name ေတြကို ထုတ္ယူမယ္လို႔ဆိုလုိတာပါ...


သီရိ

sHa92


Founder



Founder
မသီရိ ရဲ႕ Database အေၾကာင္း Thread အရွည္ၾကီးကို ဒီမွာလာမွ်ပါဦးလား။
က်ေနာ္လည္း အခု Project က အဲ့ဘက္ပိုင္းေတြပါလာၿပီဆုိေတာ့ ၿပန္ေလ့လာရေအာင္လို႔ပါ။



Change We Need!
http://www.myanmaritresource.info

soezaw2008


MITR New User



basic အေၾကာင္း ရွင္းျပေပးလို႕႔ ေက်းဇူးတင္ပါတယ္
ကၽြန္ေတာ္က sqlserver2005 နဲ႔ vb.net ကုိ တြဲျပီး program ေရးေနတဲ့သူပါ ကြ်န္ေတာ္အေနနဲ႔ sql stored procedured ေရးထားတဲ့ ebooks လိုခ်င္ပါတယ္ link မေပးပါနဲ့ ebooks ကုိဘဲ ျဖစ္နုိင္ရင္ လိုခ်င္ပါတယ္...

Smith


MITR New User



Hi! SQL na pak tak pi thi chin tar lay she lo par..............Relationla Algebra nar ma lo kuu nyi pi shin pya pay lo ya yin explain load pay par.....Thanks a lot!

Sponsored content


View previous topic View next topic Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum

 

Free forum | © PunBB | Free forum support | Contact | Report an abuse | Free forum