Posts Tagged ‘ sql

SQL:Structured Query Language

Note ไว้เพื่อเตือนความจำ เนื่องจากมีโอกาสได้ไปอบรม การใช้งาน SQL มา SQL แบ่งเป็นกลุ่มได้ 3 กลุ่มดังนี้
1. DDL (Data Definition Language) เป็นคำสั่งที่ใช้ในการจัดการโครงสร้างตาราง เช่น
– CREATE
– DROP
– ALTER
2. DCL (Data Control Language) เป็นคำสั่งที่ใช้ในการจัดการสิทธิ์ การใช้งานต่างๆ เช่น
– GRANT
– REVOKE
3. DML (Data Manipulation Language) เป็นคำสั่งที่ใช้ในการ จัดการข้อมูลในตาราง เช่น ดึงข้อมูลมาแสดง ลบ แก้ไข เช่น
– SELECT
– INSERT
– DELETE
– UPDATE
สรุปคร่าวๆตามเอกสารที่อาจารย์ สอนมาครับ

ข้อมูลอ้างอิง :
What are the difference between DDL, DML and DCL commands?

Using dynamic SQL in PL/SQL

เวลาที่ต้องการใช้คำสั่ง SQL ใน PL/SQL แบบ Dynamic นั้นสามารถทำได้โดยใช้คำสั่ง

EXECUTE IMMEDIATE

ดังเช่นตัวอย่างนี้

CREATE OR REPLACE PROCEDURE DELETE_DATA IS
    V_DEL   NUMBER := 0;
    V_I     NUMBER := 0;
    V_SQL   VARCHAR(1000);
    
BEGIN
    --Create sql statement
    V_SQL := 'DELETE FROM TMP WHERE ID = :1';
    
    --Loop for delete data
    FOR V_I IN 1..5 LOOP
        EXECUTE IMMEDIATE V_SQL USING V_I;
        V_DEL := V_DEL+SQL%ROWCOUNT;
    END LOOP;
    
    DBMS_OUTPUT.PUT_LINE('Delete1 : '||V_DEL||' Record(s)');    
    
    ROLLBACK;
EXCEPTION
    WHEN NO_DATA_FOUND THEN
        ROLLBACK;
        NULL;
    WHEN OTHERS THEN
        ROLLBACK;
        RAISE;
END DELETE_DATA;
/

คำสั่ง Backup และ Restore mysql

การ Backup ฐานข้อมูล

mysqldump -u[user] -p[password] -h[host] [dbnam] > [path to sql]

การ Restore ฐานข้อมูล

mysql -u[user] -p[password] -h[host] [dbname] < [path to sql]

-u : username
-p : password (ห้ามกรอกในบรรทัด ให้เว้นไว้ เมื่อ กด enter ระบบจะให้ใส่เอง)
-h : host หรือ ip เครื่อง server (กรอกหรือไม่ก็ได้ หากใช้ localhost)

สำหรับ option อื่นในคำสั่ง mysqldump สามารถดูได้จาก

mysqldump --help

ตัวอย่าง
ต้องการสำรองฐานข้อมูลชื่อ dbtest ไปเว็บยัง C:\MySQL\simple.sql จะใช้คำสั่งดังนี้

C:\mysql5.0\bin>mysqldump -uroot -pjava -hlocalhost dbtest > C:\MySQL\simple.sql

ข้อควรจำ :
ในการใช้คำสั่ง mysqldump เพื่อทำการ backup และ mysql เพื่อ restore ให้ใช้คำสั่งทั้งสองโดยที่ไม่ต้อง Login เข้า console ของ database ครับ
อ้างอิง :
mysqldump — A Database Backup Program