ฝึกใช้คำสั่งเบื้องต้นในการทำ database โดยเรียนรู้จากเว็บ http://www.w3schools.com/sql/default.asp
SQL Home
SQLเป็นภาษาพื้นฐานในการเข้าถึงฐานข้อมูล การฝึก SQL ในเว็บ w3schools จะสอนวิธีการใช้ SQL การเข้าถึงและจัดการข้อมูลใน: MySQL, SQL Server, Access, Oracle, Sybase, DB2 และระบบฐานข้อมูลอื่น ๆ
SQL Intro
SQL คืออะไร? SQL เป็นพื้นฐานมาจากโครงสร้างของ Query Language ช่วยให้เข้าถึงและจัดการข้อมูลได้ง่าย และ เป็นมาตรฐาน ANSI (American National Standards Institute)
SQL ทำอะไรได้บ้าง?
1. สามารถสอบถามข้อมูลกับฐานข้อมูล
2. สามารถดึงข้อมูลจากฐานข้อมูล
3. สามารถเพิ่มบันทึกลงฐานข้อมูล
4. สามารถปรับปรุงเปลี่ยนแปลงฐานข้อมูล
5. สามารถลบข้อมูลบนฐานข้อมูล
6. สามารถสร้างฐานข้อมูลใหม่
7. สามารถสร้างตารางใหม่ในฐานข้อมูล
8. สามารถสร้างกระบวนการการจัดเก็บในฐานข้อมูล
9. สามารถสร้างมุมมองในฐานข้อมูล
10. สามารถกำหนดสิทธิ์ในการเข้าใช้ต่างๆ
SQL Syntax
ใน Database Tables ส่วนใหญ่จะเก็บข้อมูลไว้ 1 ตารางหรือมากกว่า 1 ส่วนในรูปด้านล่างจะเป็นตารางของ Customers
รูปแสดงตารางข้อมูลของตาราง Customers |
ซึ่งในตัวอย่างของ SQL Statements จะมีให้เราเลือกว่าจะดึงข้อมูลจาก tableไหนออกมาดูโดยใช้คำสั่ง SELECT * FROM [tableที่เราต้องการในฐานข้อมูลที่เรามี]; ซึ่งในตัวอย่างจะมี table ให้เลือกอยู่ 8 อย่าง ดังภาพที่แสดงด้านล่าง
ภาพตัวอย่างการดึงข้อมูลจากตารางCategories |
SQL Select
วิธีการเลือกดูหัวข้อของข้อมูลที่เราต้องการจะใช้คำสั่ง
SELECT column_name,column_name
FROM table_name;
ภาพแสดงตัวอย่างในการดึงข้อมูลออกมาเพียง 3 Column |
จากภาพจะเห็นว่าเราเลือกมาเพียง 3 Column คือ CustomerID,CustomerName,Address
ส่วนการใช้ SELECT * FROM table_name; นั้นตัว '*' เป็นตัวบ่งบอกว่าเราจะเอาทุก Column ในตารางนั้นๆ
ภาพแสดงการเลือกทุก Column ในตาราง |
SQL Distinct
เป็นคำสั่งที่ใช้ดึงเฉพาะข้อมูลที่ไม่ซ้ำกันออกมา โดยใช้คำสั่ง
SELECT DISTINCT column_name,column_name
FROM table_name;
ภาพแสดงการดึงเฉพาะข้อมูลที่ไม่ซ้ำจากตาราง Orders |
จากภาพเราต้องการรู้ข้อมูลที่ไม่ซ้ำกันในตารางของ Orders จากหัวข้อ EmployeeID
SQL Where
เป็นคำสั่งที่ต้องการค้นหาข้อมูลที่ระบุไว้
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
ภาพแสดงการค้นหาคำว่า Mexico |
จากภาพเราต้องการค้นหาคำว่า Mexico ใน Country ข้อมูลที่ได้ก็จะแสดงออกมาแต่ประเทศ Mexico
ส่วน Operators ที่ใช้ใน Where ก็สามารถใช้ได้หลายรูปแบบดังนี้
ภาพแสดง Operators ที่มีให้เลือกใช้ |
SQL And & Or
เป็นคำสั่งที่ใช้แสดงเมื่อเราใส่เงื่อนไขเป็นจริง เช่น
SELECT * FROM Customers
WHERE Country='Germany'
AND City='Berlin';
เราจะแสดง Customers ที่อยู่ในประเทศ Germany และ เมือง Berlin เท่านั้น ส่วน
SELECT * FROM Customers
WHERE City='Berlin'
OR City='München';
เราจะแสดง Customers ที่อยู่ในเมือง Berlin หรือเมือง München ทั้ง2เมือง
หรือเราจะใช้การเขียนผสมกันของ And & Or เช่น
SELECT * FROM Customers
WHERE Country='Germany'
AND (City='Berlin' OR City='München');
WHERE Country='Germany'
AND (City='Berlin' OR City='München');
เราจะแสดง Customers ที่อยู่ในประเทศ Germany และ เมือง Berlin หรือ München
ภาพตัวอย่างการใช้ And และ Or ผสมกัน |
SQL Order By
เป็นคำสั่งที่ไว้ใช้เรียงข้อมูล จากน้อยไปมาก และ จากมากไปน้อยโดยใช้คำสั่ง
SELECT column_name, column_name
FROM table_name
ORDER BY column_name ASC|DESC, column_name ASC|DESC;
ภาพตัวอย่างการใช้ ASC และ DESC |
SQL Insert Into
เป็นการเพิ่มข้อมูลเข้าไปในฐานข้อมูลเดิมโดยใช้คำสั่ง
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
โดยเราจะลองใช้คำสั่ง
INSERT INTO Shippers (ShipperName, Phone)
VALUES ('Test','0123456789');
ภาพแสดงผลลัพธ์ที่ได้จากการใช้คำสั่ง Insert Into |
SQL Update
เป็นการแก้ไขข้อมูลที่มีอยู่แล้วในฐานข้อมูล โดยใช้คำสั่ง
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
update ตามด้วยชื่อของตารางที่เราต้องการ , set คือการจะแก้ไขเป็นชื่ออะไร , where เพื่อบอกว่าแก้ไขแทนที่ตรงไหนในฐานข้อมูล
ข้อควรระวัง ถ้าลืมใส่ where ลงในคำสั่งจะทำให้เกิดการเปลี่ยนแปลงทุก Column ดังภาพด้านล่าง
ภาพแสดงผลลัพธ์ที่ได้เมื่อไม่ใส่ Where |
SQL Delete
เป็นการลบข้อมูลใน row ออกจาก table นั้นๆ โดยใช้คำสั่ง
DELETE FROM table_name
WHERE some_column=some_value;
ภาพแสดงผลลัพธ์ที่ได้จากการใช้คำสั่ง Delete |
หากต้องการลบข้อมูลทั้ง Table ก็ให้ใช้คำสั่ง DELETE FROM table_name; หรือ DELETE * FROM table_name;
ข้อควรระวัง หลังจากลบข้อมูลทิ้งไปแล้ว เราไม่สามารถยกเลิกได้
หลักจากทดลองคำสั่งเบื้องต้นแล้ว ได้ทำการโหลดโปรแกรมการจัดการฐานข้อมูลมาใช้ โดยตัวที่เลือกคือ Mysql เพราะเป็น Open Source License โดย download จาก http://dev.mysql.com/downloads/windows/installer/ เป็น version 5.7.10
เมื่อลงโปรแกรมเสร็จเรียบร้อยแล้วเราจะเปิดโปรแกรม เป็นแบบ command line ใส่ passwordและเริ่มการใช้งานได้ทันที
รูปภาพหลังจากใส่รหัสผ่านแล้ว |
จากนั้นใช้คำสั่ง CREATE DATABASE movie; จะสร้าง Database ขึ้นมาใหม่ และพิมพ์คำสั่ง show databases; เพื่อให้แสดงข้อมูลใน database ที่เรามี
รูปภาพแสดงข้อมูล database ที่เรามี |
เมื่อเราต้องการเข้าไปแก้ไขข้อมูลใน movie ให้ใช้คำสั่ง use movie;
จากนั้นทำการสร้าง Table โดยใช้คำสั่ง
CREATE TABLE horror (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
time_minutes int,
rate float);
โดยค่าของ id จะไม่มีทางเป็น NULL และจะเพิ่มขึ้นที่ละ 1
จากนั้นพิมคำสั่ง show tables; เพื่อดูตารางที่เราสร้าง
รูปภาพแสดงชื่อ Table ใน Database Movie |
เราสามารถดูรายละเอียดของชนิดตัวแปรที่เรากำหนดใน tableได้ด้วยคำสั่ง describe horror;
รูปภาพรายละเอียดของ Table horror |
หลังจากนั้นได้ทดลองใส่ข้อมูล โดยใช้คำสั่ง Insert Into
ผลลัพธ์ที่ได้หลังจากใส่ข้อมูลลง Table |
ปัญหาที่พบ
เนื่องจากเวลาที่เราใส่ข้อมูลลงไปใน Table เลข id จะเพิ่มขึ้นเรื่อยๆที่ละ 1 เมื่อเราลบข้อมูลทิ้งไป เลข id ที่โดนลบไปนั้นจะไม่ถูกแทนที่ด้วยข้อมูลใหม่ ทำให้เลข id นั้นถูกข้ามไปเลย ซึ่งวิธีแก้ไขคือ ตอนเราจะใส่ข้อมูลแทนที่เลข id ที่หายไปนั้น ให้ใช้คำสั่ง
insert into horror (id,name,time_minutes,rate)
value ('เลขที่หายไป','name','time','rate');
เพื่อที่จะทำให้ id ที่หายไปเติมเต็มด้วยข้อมูลอื่นแทน สำหรับคนที่ต้องการให้เลข id มีการเรียงติดต่อกัน
ไม่มีความคิดเห็น:
แสดงความคิดเห็น