07 sql
TRANSCRIPT
คำสง SQL
http://www.flickr.com/photos/zawtowers/
ภาษา SQL (Structured Query Language)
● เปนภาษาทใชในการสอบถาม (Query) ขอมลจากฐานขอมล ภาษานถกพฒนาโดยบรษท IBM โดยมรปแบบทเขาใจงาย และนยมใชอยางแพรหลาย
● การเรยกใชงานภาษา SQL นน อาจจะเปนการเรยกใชคำสง SQL ทมการโตตอบระหวางคอมพวเตอรกบผใช และแสดงผลลพธโดยทนท เรยกวา Interactive SQL หรออาจจะเปนการแทรกคำสง SQL เขาไปในสวนของ โปรแกรมภาษาตางๆ เรยกวา Embedded SQL
ประเภทของคำสงภาษา SQL
● ภาษาสำหรบการนยามขอมล (Data Defnition Language : DDL)● ภาษาสำหรบการจดการขอมล (Data Menipulation Language : DML)● ภาษาสำหรบการควบคม (Data Control Language : DCL)
ภาษาสำหรบการนยามขอมล(Data Definition Language : DDL)
● เปนภาษาทใชนยามโครงสรางขอมล หรอเปลยนแปลงโครงสราง หรอยกเลกโครงสรางขอมล
● ประกอบดวย 3 กลมคำสงคอ● คำสงทใชในการสรางหรอกำหนดโครงสรางฐานขอมล
– CREATE TABLE, CREATE VIEW, CREATE SCHEMA, CREATE DOMAIN● คำสงทใชในการเปลยนแปลงโครงสรางฐานขอมล
– ALTER TABLE, ALTER DOMAIN● คำสงทใชในการยกเลกฐานขอมล
– DROP TABLE, DROP VIEW, DROP SCHEMA, DROP DOMAIN,
CREATE DATABASE
● รปแบบคำสง CREATE DATABASE databaseName;
CREATE TABLE
● รปแบบคำสง CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, .... )
ALTER TABLE
● รปแบบคำสง ALTER TABLE table_name ADD column_name datatype● เมอตองการลบคอลม
ALTER TABLE table_name DROP COLUMN column_name● ตองการเปลยนแปลง datatype
ALTER TABLE table_name ALTER COLUMN column_name datatype
DROP TABLE
● ยกเลกตาราง DROP TABLE table_name● ยกเลกฐานขอมล
DROP DATABASE database_name● ลางขอมลภายในตารางของฐานขอมล
TRUNCATE TABLE table_name
ภาษาสำหรบการจดการขอมล(Data Manipulation Language : DML)
● เปนภาษาทใชในการจดการขอมลภายในตารางฐานขอมล ซงอาจเปนการเพมขอมล (Insert) การแกไขขอมล (Update) การลบขอมล (Delete) การเรยกดขอมล (Select)
INSERT
● เพมขอมลลงในตารางฐานขอมล INSERT INTO table_name VALUES (value1, value2, value3,...)
SELECT
● เรยกดขอมลจากตารางฐานขอมล SELECT column_name(s) FROM table_name● และ
SELECT * FROM table_name
WHERE Clause
● ใชในการกำหนดเงอนไขในการจดการขอมลภายในฐานขอมล● รปแบบคำสง
SELECT column_name(s) FROM table_name WHERE column_name operator value● ตวอยางเชน
SELECT * FROM student WHERE stdName = 'Steve';*ถาขอมลทตองการกำหนดเงอนไขเปนตวอกษรใหอยภายใตเครองหมาย “ ” หรอ ' ' เสมอ แตถาเปนตวเลขอาจไมตองใสกได
WHERE Clause
เครองหมายทใชใน WHERE● = เทากบ● <>, != ไมเทากบ● > มากกวา● < นอยกวา● >= มากกวาหรอเทากบ● <= นอยกวาหรอเทากบ
● BETWEEN ระหวางคาทตองการ● LIKE เหมอนกบรปแบบทตองการ● IN ในหลายๆ ขอมลของคอลมท
ตองการ เชน SELECT * FROM table WHERE 'color' IN ('red','black','white') คอใหเลอกแถวของขอมลทคอลม color มคาเปน red black หรอ white เปนตน
WHERE Clause
● เราสามารถใชเครองหมาย AND, OR เพอกำหนดเงอนไขได● ตวอยางเชน
SELECT * FROM Persons WHERE FirstName='Tove' AND LastName='Svendson' หรอ SELECT * FROM Persons WHERE FirstName='Tove' OR FirstName='Ola'
ORDER BY
● ใชในการเรยงลำดบขอมลททำการเรยกด แบงเปนสองแบบคอ ASC (นอยไปมาก) และ DESC (มากไปนอย)
● รปแบบคำสง SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC
ORDER BY
● ตวอยางเชน SELECT * FROM Persons ORDER BY LastName DESC● โดยปกตคำสง sql จะเรยงลำดบจากนอยไปหามากอยแลว ดงนนในการเรยกด
ขอมลในการเรยงลำดบนอยไปหามากอาจไมตองใสคำสง ASC กได ใหใสแตชอคอลมทตองการเทานน เชน
SELECT * FROM Persons ORDER BY LastName
UPDATE
● ใชในการแกไขหรอเปลยนแปลงขอมลทมอยในฐานขอมล● รปแบบคำสง
UPDATE table_name SET column1=value, column2=value2,... WHERE some_column=some_value● ตวอยาง
UPDATE Persons SET Address='Nissestien 67', City='Sandnes' WHERE LastName='Tjessem' AND FirstName='Jakob'
UPDATE
● ขอควรระวง UPDATE Persons SET Address='Nissestien 67', City='Sandnes' !!!!!!● ในการเรยกใชคำสง UPDATE ควรใสเงอนไข WHERE เพอระบแถวหรอเรคคอรดท
ตองการแกไขดวย● มเชนนนจะเปนการเปลยนแปลงขอมลทงหมดของตาราง
DELETE
● ใชในการลบแถวหรอเรคคอรดของตารางฐานขอมล● รปแบบคำสง
DELETE FROM table_name WHERE some_column=some_value● ลบแถวทงหมดของตารางใชคำสง
DELETE FROM table_name หรอ DELETE * FROM table_name
ภาษาสำหรบการควบคม(Data Control Language : DCL)
● เปนภาษาหรอกลมของคำสงทใชในการควบคมการเขาถงฐานขอมลของระบบดวยการกำหนดระบบรกษาความปลอดภยของฐานขอมล เชน คำสง GRANT, REVOKE
GRANT
● เปนคำสงทใชในการกำหนดสทธในการเขาถงขอมลใหแกผใช โดยเปนการกำหนดวาผใชแตละคนมสทธกระทำการใดบางกบขอมลในฐานขอมล เชน การเพมขอมล การลบขอมล การแกไขขอมล ฯลฯ
● รปแบบคำสง GRANT priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type] priv_level
TO user_specifcation [, user_specifcation] ...
[REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}]
[WITH with_option ...]
GRANT
● ตวอยางเชน CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
GRANT ALL ON db1.* TO 'jeffrey'@'localhost';
GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';
GRANT USAGE ON *.* TO 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90;
REVOKE
● เปนคำสงใหยกเลกสทธการเขาถงขอมลทระบบไดมอบใหผใชแตละคนหลงจากทได GRANT แลว
● รปแบบคำสง REVOKE priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type] priv_level
FROM user [, user] ...
● ตวอยางเชน REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost';
REVOKE
● หากตองการยกเลกสทธทกอยางของผใชใหใชคำสง REVOKE ALL PRIVILEGES, GRANT OPTION
FROM user [, user] ...
● ตวอยางเชน REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'jeffrey'@'localhost';
แหลงเรยนรเพมเตม
● http://www.w3schools.com/sql/default.asp● http://dev.mysql.com/doc/refman/5.0/en/sql-syntax.html