07 sql

25
คำสั่ง SQL http://www.flickr.com/photos/zawtowers/

Upload: opas-kaewtai

Post on 29-May-2015

1.338 views

Category:

Education


2 download

TRANSCRIPT

Page 1: 07 sql

คำสง SQL

http://www.flickr.com/photos/zawtowers/

Page 2: 07 sql

ภาษา SQL (Structured Query Language)

● เปนภาษาทใชในการสอบถาม (Query) ขอมลจากฐานขอมล ภาษานถกพฒนาโดยบรษท IBM โดยมรปแบบทเขาใจงาย และนยมใชอยางแพรหลาย

● การเรยกใชงานภาษา SQL นน อาจจะเปนการเรยกใชคำสง SQL ทมการโตตอบระหวางคอมพวเตอรกบผใช และแสดงผลลพธโดยทนท เรยกวา Interactive SQL หรออาจจะเปนการแทรกคำสง SQL เขาไปในสวนของ โปรแกรมภาษาตางๆ เรยกวา Embedded SQL

Page 3: 07 sql

ประเภทของคำสงภาษา SQL

● ภาษาสำหรบการนยามขอมล (Data Defnition Language : DDL)● ภาษาสำหรบการจดการขอมล (Data Menipulation Language : DML)● ภาษาสำหรบการควบคม (Data Control Language : DCL)

Page 4: 07 sql

ภาษาสำหรบการนยามขอมล(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,

Page 5: 07 sql

CREATE DATABASE

● รปแบบคำสง CREATE DATABASE databaseName;

Page 6: 07 sql

CREATE TABLE

● รปแบบคำสง CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, .... )

Page 7: 07 sql

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

Page 8: 07 sql

DROP TABLE

● ยกเลกตาราง DROP TABLE table_name● ยกเลกฐานขอมล

DROP DATABASE database_name● ลางขอมลภายในตารางของฐานขอมล

TRUNCATE TABLE table_name

Page 9: 07 sql

ภาษาสำหรบการจดการขอมล(Data Manipulation Language : DML)

● เปนภาษาทใชในการจดการขอมลภายในตารางฐานขอมล ซงอาจเปนการเพมขอมล (Insert) การแกไขขอมล (Update) การลบขอมล (Delete) การเรยกดขอมล (Select)

Page 10: 07 sql

INSERT

● เพมขอมลลงในตารางฐานขอมล INSERT INTO table_name VALUES (value1, value2, value3,...)

Page 11: 07 sql

SELECT

● เรยกดขอมลจากตารางฐานขอมล SELECT column_name(s) FROM table_name● และ

SELECT * FROM table_name

Page 12: 07 sql

WHERE Clause

● ใชในการกำหนดเงอนไขในการจดการขอมลภายในฐานขอมล● รปแบบคำสง

SELECT column_name(s) FROM table_name WHERE column_name operator value● ตวอยางเชน

SELECT * FROM student WHERE stdName = 'Steve';*ถาขอมลทตองการกำหนดเงอนไขเปนตวอกษรใหอยภายใตเครองหมาย “ ” หรอ ' ' เสมอ แตถาเปนตวเลขอาจไมตองใสกได

Page 13: 07 sql

WHERE Clause

เครองหมายทใชใน WHERE● = เทากบ● <>, != ไมเทากบ● > มากกวา● < นอยกวา● >= มากกวาหรอเทากบ● <= นอยกวาหรอเทากบ

● BETWEEN ระหวางคาทตองการ● LIKE เหมอนกบรปแบบทตองการ● IN ในหลายๆ ขอมลของคอลมท

ตองการ เชน SELECT * FROM table WHERE 'color' IN ('red','black','white') คอใหเลอกแถวของขอมลทคอลม color มคาเปน red black หรอ white เปนตน

Page 14: 07 sql

WHERE Clause

● เราสามารถใชเครองหมาย AND, OR เพอกำหนดเงอนไขได● ตวอยางเชน

SELECT * FROM Persons WHERE FirstName='Tove' AND LastName='Svendson' หรอ SELECT * FROM Persons WHERE FirstName='Tove' OR FirstName='Ola'

Page 15: 07 sql

ORDER BY

● ใชในการเรยงลำดบขอมลททำการเรยกด แบงเปนสองแบบคอ ASC (นอยไปมาก) และ DESC (มากไปนอย)

● รปแบบคำสง SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC

Page 16: 07 sql

ORDER BY

● ตวอยางเชน SELECT * FROM Persons ORDER BY LastName DESC● โดยปกตคำสง sql จะเรยงลำดบจากนอยไปหามากอยแลว ดงนนในการเรยกด

ขอมลในการเรยงลำดบนอยไปหามากอาจไมตองใสคำสง ASC กได ใหใสแตชอคอลมทตองการเทานน เชน

SELECT * FROM Persons ORDER BY LastName

Page 17: 07 sql

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'

Page 18: 07 sql

UPDATE

● ขอควรระวง UPDATE Persons SET Address='Nissestien 67', City='Sandnes' !!!!!!● ในการเรยกใชคำสง UPDATE ควรใสเงอนไข WHERE เพอระบแถวหรอเรคคอรดท

ตองการแกไขดวย● มเชนนนจะเปนการเปลยนแปลงขอมลทงหมดของตาราง

Page 19: 07 sql

DELETE

● ใชในการลบแถวหรอเรคคอรดของตารางฐานขอมล● รปแบบคำสง

DELETE FROM table_name WHERE some_column=some_value● ลบแถวทงหมดของตารางใชคำสง

DELETE FROM table_name หรอ DELETE * FROM table_name

Page 20: 07 sql

ภาษาสำหรบการควบคม(Data Control Language : DCL)

● เปนภาษาหรอกลมของคำสงทใชในการควบคมการเขาถงฐานขอมลของระบบดวยการกำหนดระบบรกษาความปลอดภยของฐานขอมล เชน คำสง GRANT, REVOKE

Page 21: 07 sql

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 ...]

Page 22: 07 sql

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;

Page 23: 07 sql

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';

Page 24: 07 sql

REVOKE

● หากตองการยกเลกสทธทกอยางของผใชใหใชคำสง REVOKE ALL PRIVILEGES, GRANT OPTION

FROM user [, user] ...

● ตวอยางเชน REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'jeffrey'@'localhost';

Page 25: 07 sql

แหลงเรยนรเพมเตม

● http://www.w3schools.com/sql/default.asp● http://dev.mysql.com/doc/refman/5.0/en/sql-syntax.html