วันอาทิตย์ที่ 14 ธันวาคม พ.ศ. 2557

ตัวอย่างคำสั่ง SQL

SQL เปนภาษาที่ทําใหผูใชสามารถทํางานกับขอมูลที่เก็บบนฐานขอมูลเชิงสัมพันธ โดย SQL ไดรับ
การออกแบบใหมีการดําเนินการกับขอมูลแบบโตตอบระหวางผูใชกับคอมพิวเตอรโดยตรง ดวยการพิมพคําสั่ง SQL ในหนาจอโปรแกรมที่ใชจัดการฐานขอมูล และผลลัพธของขอมูลก็จะปรากฏบนหนาจอในทันที นอกจากนี้โปรแกรมเมอรยังสามารถนําคําสั่ง SQL แทรกเขาไปในสวนของโปรแกรมคอมพิวเตอรที่เขียนมาเชนกัน




คําสั่งในการเปลี่ยนแปลงโครงสรางตาราง 
รูปแบบ 

ALTER <TABLENAME>
[ALTER COLUMN <column_name>]
[DROP COLUM <colum name>]
[ADD] [<column_name> <data_type>]


 SQL1 


ALTER TABLE customer
ALTER COLUMN cust_fname varchar(50)

จากตัวอยาง เปนการเปลี่ยนแปลงโครงสรางของตาราง customer โดยเปลี่ยนขนาดความกวางของเขตขอมูลเพิ่มขึ้นเปน 50

SQL2 

ALTER TABLE customer 
DROP COLUMN curr_bal 

จากตัวอยาง เปนการเปลี่ยนแปลงโครงสรางของตาราง customer โดยเปนการลบ Colum curr_bal ออกจากตาราง customer 


คําสั่งในการแทรกขอมูลเขาสูตาราง 
รูปแบบ 

 INSERT INTO <Table Name> 
 ([COLUMN NAME1, COLUMN NAME2]) 
 VALUSE ( valuse1,valuse2) 


ตัวอยางคําสั่งสําหรับแทรกขอมูลสินคา 

INSERT INTO product 
(product_id,product_name,unitprice,onhand,reorder_pt,reorder_qty) 
 VALUES 
('po-001','คูมือเรียน Visual Basic 6,150,80,10,50) 
INSERT INTO product 
(product_id,product_name,unitprice,onhand,reorder_pt,reorder_qty) 
 VALUES 
('po-002' ,'คูมือเรียน SQL SERVER 2008,290,100,10,50) 
INSERT INTO product 
(product_id,product_name,unitprice,onhand,reorder_pt,reorder_qty) 
 VALUES  
('po-003','คูมือเรียน ASP.NET,120,290,10,50) 
INSERT INTO 
product(product_id,product_name,unitprice,onhand,reorder_pt,reorde
r_qty) 
 VALUES  
('po-004','การพัฒนาระบบเทคโนโลยี.NET,380,50,10,50) 
INSERT INTO product 
(product_id,product_name,unitprice,onhand,reorder_pt,reorder_qty) 
 VALUES 
('po-005','การจัดการฐานขอมูล Oracle,599,20,10,50) 
 INSERT INTO product 
(product_id,product_name,unitprice,onhand,reorder_pt,reorder_qty) 
 VALUES 
('po-006','คูมือเรียน SQL ดวยตัวเอง',130,30,10,50) 


คําสั่งในการลบตาราง
รูปแบบ 
 DROP TABLE <Table Name>

SQL1

DROP TABLE customer
จากตัวอยางเปนคําสั่งสําหรับลบตาราง customer

การสอบถามขอมูลแบบงาย 

สอบถามขอมูลดวย SELECT 
SQL1
 SELECT * FROM customer 
การจัดรียงขอมูลดวย Order By  
SQL2
 select * from customer order by cust_id
เลือกแสดงบางคอลัมน 
 SQL3
select cust_id,cust_fname,cust_lname from customer 
เปลี่ยนหัวคอลัมนเปนขอความอื่นดวย SELECT... AS 
 SQL4
select cust_id AS A,cust_fname AS B from customer 
แสดงขอมูลที่ไมซ้ํากันดวย DISTINCT 
 SQL5
select distinct(province) as ‘จังหวัด’ from customer

ฟงกชั่นที่ใชกับตัวอักษร +,LEN,TRIM,SUBSTRING 
การตออักษร 

select UPPER(emp_id) from employee 
select LOWER(product_name) from product 
การนับความยาวอักษร 
select cust fname+cust lname from customer 
การนับความยาวอักษร
select LEN(cust fname) from customer 

ารแสดงผลข้อมูลที่ได้จากการคิวรี่


ดึงข้อมูลแบบ cell เดียว

1$query "SELECT filed_name1 FROM table_name where filed_name2='xxx'";
2$rs = mysql_query($query);
3$cell_data = mysql_result($rs,0,0);


แบบใช้ mysql_fetch_array( )
01$sql ="select * from table_name";
02$result = mysql_db_query($dbname,$sql);
03while($rs=mysql_fetch_array($result)) {
04    $variable1 $rs["filed_name1"];
05    $variable2 $rs["filed_name2"];
06    $variable3 $rs["filed_name3"];
07    echo $variable1;
08    echo $variable2;
09    echo $variable3;
10}

แบบใช้ mysql_fetch_assoc( )
01$sql ="select * from table_name";
02$result = mysql_db_query($dbname,$sql);
03while($rs=mysql_fetch_assoc($result)) {
04    $variable1 $rs["filed_name1"];
05    $variable2 $rs["filed_name2"];
06    $variable3 $rs["filed_name3"];
07    echo $variable1;
08    echo $variable2;
09    echo $variable3;
10}
ทั้ง 2 คำสั่งนี้มีความแตกต่างตรงค่่าใน Array ที่ถูกเก็บไว้ โดยที่ mysql_fetch_assoc( ) จะทำให้ประหยัด memory มากกว่า

การคืน memory จากการ query ให้กับระบบ

1$sql ="select * from table_name";
2$result = mysql_db_query($dbname,$sql);
3...
4...
5...
6mysql_free_result($result);



CR. http://www.snru.ac.th/tblog/wp-content/uploads/2010/03/SQT_WONGVIANL.pdf