January 22, 2014

[tut]SQL Basic Part 1[/tut]

ဒါကေတာ့ SQL Injection မဟုတ္ပါဘူး SQL သီးသန္႔ပါ
SQL injection ထိုးမယ္ဆိုတဲ့သူေတြအတြက္သိကိုသိထားသင့္တယ္ က်ဴတိုတခုပါ
ဘာလို႔ဆို ကုိယ့္ကိုယ္ပိုင္ query ေတြလည္းထိုးတတ္လာေအာင္ပါ။ က်ေနာ္ လည္းေလ့လာေနဆဲပါ
ခုေတာ့ တတ္သေလာက္ေဖာထားတာပါ။
SQL ဆိုတာ Structured Query Language လို႕ေခၚပါတယ္။ Query ေတြနဲ႕ တည္ေဆာက္ထားတဲ့ computer ဘာသာစကားတခုလို႔ပဲလြယ္လြယ္မွတ္ထားတာေပါ့။ Database ဆိုတာ web အပိုင္းကိုေလ့လာတဲ့သူဆိုရင္ဘယ္ေလာက္အေရးပါလဲဆိုတာသိမွာပါ။
ဒီေတာ့ သူ႔မွာရွိတဲ့ query ေလးေတြကို က်ေနာ္ ေအာက္မွာ တခုခ်င္းရွင္းျပထားပါတယ္
####################################################
Some of The Most Important SQL Commands

    SELECT - extracts data from a database
    UPDATE - updates data in a database
    DELETE - deletes data from a database
    INSERT INTO - inserts new data into a database
    CREATE DATABASE - creates a new database
    ALTER DATABASE - modifies a database
    CREATE TABLE - creates a new table
    ALTER TABLE - modifies a table
    DROP TABLE - deletes a table
    CREATE INDEX - creates an index (search key)
    DROP INDEX - deletes an index

SQL SELECT STATEMENT
ွSQL SELECT ကိုဘယ္လိုေနရာေတြမွာသံုးမလဲ
က်ေနာ္ တို႔ data ေတြကို extract လုပ္တဲ့ေနရာမွာသံုးပါတယ္
ပံုစံကေတာ့
SELECT (ဒီေနရာမွာ ကိုယ္လိုခ်င္တဲ့  data name)
FROM   (ဒီေနရာမွာ table name )
WHERE (ဒါကေတာ့ condition ကိုထည့္ရမယ္) ;
Condition ဆိုတာကေတာ့ data ဟာ ဘယ္လိုျဖစ္ရမယ္ ဘာညာကိုေျပာခ်င္တာပါ
တကယ္လို႔ SELECT ရဲ႕ေနာက္မွာ *ေလးထည့္လိုက္မယ္ဆိုရင္ေတာ့ ရွိသမွ်အားလံုးကို extract လုပ္မယ္ဆိုတဲ့ သေဘာပါ။

ဟုတ္ၿပီ ေနာက္တခုက DISTINCT ဒီေကာင္ကို ဘယ္လိုသံုးမလဲ
သူ႕ကိုေတာ့ က်ေနာ္ တို႕ SELECT ရဲ႕ ေနာက္မွာ ထည့္ၿပီးသံုးပါတယ္
သေဘာတရားကေတာ့ Different နဲ႕တူပါတယ္။
ပံုစံက
SELECT DISTINCT column_name FROM (column); ဒီလိုမ်ိဳးပါ

WHERE အေၾကာင္းေျပာမယ္ သူက condition ထည့္တာလို႕ အေပၚမွာ ေျပာထားပါတယ္
ဘယ္လိုထည့္တာလဲ ဆိုရင္
SELECT * FROM (table_name) WHERE column_name="value";
ဥပမာ user table ထဲက password ဆိုတဲ့ column ရွိမယ္ အဲ့ထဲက mgmg ဆိုတဲ့ data ကိုဆြဲထုတ္မယ္ဆိုပါေတာ့။
SELECT * FROM user WHERE password='mgmg';
ဒီလိုပံုစဲမ်ိဳးေလးျဖစ္သြားမယ္ character ဆိုရင္ ' ' ထဲမွာ ထည့္ေရးပီး numeric ဆိုရင္ေတာ့ မလိုပါဘူး။

AND/OR ကိုဘယ္လိုသံုးမလဲ
ဒါကိုေတာ့ က်ေနာ္ တို႕ က WHERE ရဲ႕ေနာက္က condition စစ္တဲ့ေနရာမွာသံုးပါတယ္။
AND ရဲ႕သေဘာက condition 2 ခုရွိမယ္ အဲ့ condition 2ခုလံုးနဲ႔ မွန္တဲ့ data ကိုဘဲထုတ္မယ္။
OR ကေတာ့ condition 2 ခုမွာ တခုမွန္ခဲ့မယ္ဆိုရင္ထုတ္ေပးမယ္။
AND ကိုသံုးတဲ့ ပံုုစံက
SELECT *
FROM table_name
WHERE column_name=1
AND column_name=2;

OR ကိုသံုးတဲ့ ပံုစံက
SELECT *
FROM table_name
WHERE column_name=1
OR column_name=2;

ၿပီးေတာ့ ၂ ခုစလံုးကို သံုးၿပီး condition စစ္မယ္
SELECT *
FROM table_name
WHERE column_name=1
AND (column_name=2 OR column_name=3);
ဒီလိုမ်ိဳးေပါ့ ဆိုလိုတာကေတာ့ column_name က 1 နဲ႕ညီေနရမယ္ ေနာက္ 3 ဒါမွမဟုတ္ 4 နဲ႕ ညီေနတဲ့ data ကိုဆြဲထုတ္မယ္ဆိုတဲ့သေဘာပါ။

ORDER BY
ORDER BY ကိုေတာ့ sorted data ေတြကိုဆြဲထုတ္တဲ့ အခါမွာသံုးမယ္
ပံုစံကေတာ့
SELECT column_name
FROM table_name
ORDER BY column_name;
ဒါကိုနားလည္ေအာင္ၾကည့္မယ္။ user table ရွိတယ္ ေနာက္ column အေနနဲ႔ username ရယ္ id ရယ္ရွိမယ္။
ဒါဆိုရင္က်ေနာ္တို႕ က username ကို id နဲ႕ sort လုပ္ထားတဲ့ data ကိုျမင္ခ်င္တယ္ဆိုပါစို႔။
SELECT username
FROM user
ORDER BY id ASC/DESC; ကိုသံုးမယ္။ ASC ဆိုတာက asecending DESC ကေတာ့ descending ကိုေျပာခ်င္တာပါ။

INSERT
ဒါကိုနားလည္ၾကည့္ၾကတာေပါ့ INSERT ရဲ႕လုပ္ေဆာင္ခ်က္ကေတာ့ ထပ္ေပါင္းထည့္တာေပါ့
ဘယ္လိုထပ္ေပါင္းလဲသိရေအာင္ ေအာက္ကသူ႕ရဲ႕ ပံုစံေလးကိုအရင္ၾကည့္လိုက္မယ္
INSERT
INTO        table_name(column_name1,column_name2)
VALUE  (value1,value2);
ဒါကို ျပန္ၾကည့္မယ္။ INSERT ရဲ႕ေနာက္မွာ ဘာမွထည့္စရာမလိုပါဘူး။
INTO က ဘယ္ကိုထည့္မွာလဲ column_name ကိုထည့္ေပးမယ္။ေနာက္ဆံုးက VALUE ကေတာ့ ကိုယ့္ထည့္ခ်င္တဲ့ data ေပါ့
database ထဲမွာ user ဆိုတဲ့ table ထဲက username နဲ႕ password ေကာ္လံရွိတယ္ဆိုပါစို႕။က်ေနာ္ တို႔ ကထပ္ေပါင္းထည့္ခ်င္တယ္။ထည့္ခ်င္တာက username=4Rd4m-injector , password=msf
ဒီေတာ့ က်ေနာ္ တို႕ query ကဒီလိုျဖစ္သြားမယ္
INSERT
INTO user(username,password)
VALUE ('4Rd4m-injector','msf');

UPDATE
modify လုပ္မယ္
ေအာက္က code ကိုအရင္ၾကည့္ပါ
UPDATE table_name
SET column_name1='value1',column_name2='value2'
WHERE column_name3='condition';
နားလည္ေအာင္ၾကည့္မယ္
UPDATE ေနာက္က ကိုယ္modify လုပ္မယ့္ table name ထည့္မယ္
SET ျပင္မယ္ ဘယ္လိုျပင္မလဲဆိုတာထည့္ေပးရမယ္
WHERE ဘယ္ေနရာက ဟာကိုျပင္မယ္ဆိုတာထည့္္ေပးမယ္
Database ထဲမွာ user table ရွိမယ္ အဲ့ထဲမွာ username,password နဲ႕ id ဆိုတဲ့ ေကာ္လံေတြရွိမယ္
က်ေနာ္တို႔ျပင္ၾကည့္မယ္ဒါဆို
UPDATE  user
SET     username='4Rd4m-injector',password='msf'
WHERE id=1;

ေက်းဇူးတင္ပါတယ္ ခုလိုအခ်ိန္ယူၿပီးဖတ္ေပးလို႔
ဆက္ေရးပါဦးမယ္ ေနာက္အပိုင္းေတြကို
မၾကာမီလာမည္

No comments:

Post a Comment