งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

CHAPTER 12 SQL.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "CHAPTER 12 SQL."— ใบสำเนางานนำเสนอ:

1 CHAPTER 12 SQL

2 Agenda ความเป็นมาของภาษา SQL คำสั่งเพื่อการจัดการฐานข้อมูล

3 Structured Query Language (SQL)
- ในการสอบถามข้อมูลจากฐานข้อมูลนั้น คำถามของผู้ใช้ เรียกว่า “Query” และภาษาที่ใช้ในการสอบถามข้อมูล เรียกว่า “Query Language” - ในปัจจุบัน มีภาษาที่ใช้ในการสอบถามหลายภาษาที่ได้รับการพัฒนาต่างกันไปตาม DBMS แต่ละตัว - อย่างไรก็ตาม SQL (Structural Query Language) ซึ่งพัฒนา โดยบริษัท IBM เป็นที่รู้จักและใช้กันอย่างแพร่หลาย - SQL ถือเป็นมาตรฐานที่ใช้ใน RDBMS หลายตัวที่มีใช้กันใน ปัจจุบัน

4 SQL เป็นภาษาที่ใช้ในการติดต่อกับฐานข้อมูล หรือเป็นภาษาที่ใช้ในการสั่งให้ฐานข้อมูลกระทำการใด ๆ ตามคำสั่งที่เราสั่ง ซึ่งในการติดต่อฐานข้อมูลนั้น ไม่ว่าจะเป็น SQL Server , Microsoft Access , MySQL ,DB2 หรือแม้แต่ Oracle ก็จะต้องใช้คำสั่งภาษา SQL ในการควบคุมทั้งสิ้น

5 คำสั่งในภาษา SQL ประกอบด้วยชุดคำสั่งหลัก ๆ 3 ประเภท
DDL (Data Definition Language) เป็นชุดคำสั่งที่ใช้ในการนิยาม กำหนด หรือ การสร้างข้อมูลบนฐานข้อมูล เช่น table, index, view ได้แก่ คำสั่ง CREATE TABLE, ALTER, DROP, CREATE VIEW เป็นต้น DML (Data Manipulation Language) เป็นชุดคำสั่งที่ใช้ในการประมวลผลหรือจัดการกับข้อมูลในฐานข้อมูล ได้แก่ คำสั่ง SELECT, INSERT, DELETE, UPDATE เป็นต้น DCL (Data Control Language) เป็นคำสั่งที่ใช้ในการควบคุมสิทธิ์ของผู้ใช้ในการใช้ข้อมูล รวมทั้งส่วนที่ควบคุมการใช้งานฐานข้อมูลจากผู้ใช้หลาย ๆ คนพร้อมกัน ได้แก่ คำสั่ง GRANT, REVOKE เป็นต้น

6 CREATE DATABASE คำสั่ง CREATE TABLE ใช้ในการสร้าง database รูปแบบ
CREATE DATABASE databasename โดย databasename คือชื่อของฐานข้อมูลที่จะสร้าง DBMS เช่น mysql sqlserver oracle ms-access

7 DROP DATABASE คำสั่ง DROP DATABASE ใช้ในการลบ database รูปแบบ
DROP DATABASE databasename โดย databasename คือชื่อของฐานข้อมูลที่จะลบ DBMS เช่น mysql sqlserver oracle ms-access

8 CREATE TABLE คำสั่ง CREATE TABLE ใช้ในการสร้าง table รูปแบบ
CREATE TABLE tablename ( field1 type (size)[NOT NULL][UNIQUE], field2 type (size) [NOT NULL][UNIQUE], ..., [PRIMARY KEY (field)]); tablename    ชื่อของตารางที่จะทำการสร้าง field             ชื่อของฟิลด์ที่ต้องการสร้างในตาราง อย่างน้อยต้องมี 1 ฟิลด์ขึ้นไป type             ชนิดของข้อมูลที่ทำการกำหนดให้ โดยชนิดของข้อมูลที่มีให้ใช้ จะขึ้นอยู่กับ DBMS size               ขนาดของข้อมูลหรือขอบเขต NOT NULL การกำหนดให้ฟิลด์นั้นจะต้องมีค่าเสมอ UNIQUE การกำหนดให้ข้อมูลในฟิลด์ต้องไม่ซ้ำกันในแต่ละแถว PRIMARY KEY การกำหนดฟิลด์ที่จะเป็นคีย์หลัก DBMS เช่น mysql sqlserver oracle ms-access

9 DROP TABLE คำสั่ง DROP TABLE ใช้ในการลบ table รูปแบบ
DROP TABLE tablename โดย tablename คือชื่อของ table ที่จะลบ DBMS เช่น mysql sqlserver oracle ms-access

10 CREATE TABLE ตัวอย่าง CREATE TABLE Author (Author_ID Integer NOT NULL,
   CREATE TABLE Author (Author_ID Integer NOT NULL, Author_UserName  Text (15) NOT NULL, Author_PassWord  Text (20) NOT NULL,   Author_   Text (35) NOT NULL, Author_JoinDate  DateTime NOT NULL,   Author_LastVisit   DateTime NOT NULL , Author_Login Integer, PRIMARY KEY (Author_ID));

11 ALTER TABLE.. ADD คำสั่ง ALTER TABLE ADD ใช้ในการเพิ่มฟิลด์ให้กับ table ที่ได้สร้างไว้แล้ว รูปแบบ ALTER TABLE tablename ADD (field1 type (size), field2 type (size), ...); ตัวอย่าง ALTER TABLE Author ADD (Author_RealName text(15), Author_Gander  BIT);

12 ALTER TABLE ..DROP COLUMN
คำสั่ง ALTER TABLE DROP ใช้ในการลบฟิลด์ให้กับ table ที่ได้สร้างไว้แล้ว รูปแบบ ALTER TABLE tablename DROP COLUMN (field1, field2 , ...); ตัวอย่าง ALTER TABLE Author DROP COLUMN (Author_RealName , Author_Gander);

13 DROP TABLE คำสั่ง DROP TABLE ใช้ในการลบ table ออกจากฐานข้อมูล รูปแบบ
DROP TABLE tablename; ตัวอย่าง DROP TABLE Author;

14 SELECT คำสั่ง SELECT เป็นคำสั่งที่ใช้ในการค้นหาข้อมูลในฐานข้อมูล
รูปแบบ SELECT select_list [INTO new_table] FROM table_name [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC|DESC]]; select_list    หมายถึงชื่อของฟิลด์ที่ต้องการจะเลือก new_table   หมายถึงเปลี่ยนชื่อตารางที่ค้นเป็นชื่อใหม่ table_source  หมายถึงชื่อของตารางที่จะทำการค้น search_condition              หมายถึงเงื่อนไขในการค้นหา group_by_expression        หมายถึงการจัดกลุ่มของข้อมูลที่ถูกคำนวณ order_expression  หมายถึงการเรียงลำดับผลการค้นหา ASC = น้อยไปมาก , DESC = มากไปน้อย

15 SELECT โดยที่ select_list หมายถึงชื่อของฟิลด์ที่ต้องการจะเลือก
new_table   หมายถึงเปลี่ยนชื่อตารางที่ค้นเป็นชื่อใหม่ table_name หมายถึงชื่อของตารางที่จะทำการค้น search_condition   หมายถึงเงื่อนไขในการค้นหา group_by_expression หมายถึงการจัดกลุ่มของข้อมูลที่ถูกคำนวณ order_expression  หมายถึงการเรียงลำดับผลการค้นหา ASC = น้อยไปมาก , DESC = มากไปน้อย select_list    หมายถึงชื่อของฟิลด์ที่ต้องการจะเลือก new_table   หมายถึงเปลี่ยนชื่อตารางที่ค้นเป็นชื่อใหม่ table_source  หมายถึงชื่อของตารางที่จะทำการค้น search_condition              หมายถึงเงื่อนไขในการค้นหา group_by_expression        หมายถึงการจัดกลุ่มของข้อมูลที่ถูกคำนวณ order_expression  หมายถึงการเรียงลำดับผลการค้นหา ASC = น้อยไปมาก , DESC = มากไปน้อย

16 SELECT, FROM, TOP, ORDER BY
ตัวอย่าง 1) SELECT Author_ID, Author_UserName, Author_ FROM Author ORDER BY Author_ID ASC; เลือกฟิลด์ Author_ID, Author_UserName, Author_ จากตาราง Author โดยให้เรียงลำดับตาม Author_ID จากน้อยไปมา SELECT* FROM Author  ORDER BY Author_ID ASC; เลือกทุกฟิลด์จากตาราง Author โดยเรียงลำดับตาม Author_ID จากน้อยไปมาก 1. เลือกฟิลด์ตามที่กำหนด 2. ถ้าเราต้องการที่จะดูทุกฟิลด์ในฐานข้อมูลเราสามารถใช้เครื่องหมาย * แทนการเรียกชื่อแต่ละฟิลด์ได้เช่น 3. ผลที่ได้ของการเลือก 10 Record ของตาราง Author 4. ผลที่ได้ของการเลือก 10% Record ของตาราง Author เพราะตาราง Author มีแค่ 10 Record ดังนั้น 10% จึงเท่ากับ 1 Record

17 SELECT, FROM, TOP, ORDER BY
ตัวอย่าง 3) SELECT TOP 10 Author_ID, Author_UserName, Author_ FROM Author; เลือกฟิลด์ Author_ID, Author_UserName, Autho_ จากตาราง Author โดยเลือก 10 record แรก 4) SELECT TOP 10 PERCENT Author_ID, Author_UserName, Author_ FROM Author; เลือกฟิลด์ Author_ID, Author_UserName, Autho_ จากตาราง Author โดยเลือก 10% ของจำนวน record ทั้งหมด 1. เลือกฟิลด์ตามที่กำหนด 2. ถ้าเราต้องการที่จะดูทุกฟิลด์ในฐานข้อมูลเราสามารถใช้เครื่องหมาย * แทนการเรียกชื่อแต่ละฟิลด์ได้เช่น 3. ผลที่ได้ของการเลือก 10 Record ของตาราง Author 4. ผลที่ได้ของการเลือก 10% Record ของตาราง Author เพราะตาราง Author มีแค่ 10 Record ดังนั้น 10% จึงเท่ากับ 1 Record

18 SELECT DISTINCT ตัวอย่าง ผลลัพธ์
ให้แสดงเพียงแค่ค่าเดียว ตัวอย่าง SELECT DISTINCT Profile_Location FROM Profile; Profile_ID Profile_Name Profile_Location 1 user1 Hongkong 2 user2 Jagata 3 user3 4 user4 5 user5 6 user6 7 user7 8 user8 9 user9 Bangkok 10 user10 London Profile_Location Bangkok Hongkong Jagata London ผลลัพธ์

19 SELECT.. AS คำสั่ง SELECT.. AS เป็นคำสั่งที่ใช้ในการเปลี่ยนชื่อให้กับคอลัมน์ ในการเรียกดู ตัวอย่าง    SELECT Profile_ID AS No, Profile_Name AS Name Profile_Location AS Address FROM Profile; ผลลัพธ์ Profile_ID Profile_Name Profile_Location 1 user1 Hongkong 2 user2 Jagata 3 user3 4 user4 5 user5 6 user6 7 user7 8 user8 9 user9 Bangkok 10 user10 London No Name Address 1 user1 Hongkong 2 user2 Jagata 3 user3 4 user4 5 user5 6 user6 7 user7 8 user8 9 user9 Bangkok 10 user10 London

20 SELECT.. WHERE, AND, OR, NOT, IN, LIKE
- ส่วนแรกเป็น โอเปอเรเตอร์ที่ใช้ในการเชื่อมเงื่อนไขหลาย ๆเงื่อนไข ไว้ด้วยกัน โอเปอเรเตอร์ คำอธิบาย NOT มีความหมายเป็น "ไม่" ใช้ในการเปลี่ยนค่าความจริงของ search_condition ให้เป็นตรงกันข้าม OR มีความหมายเป็น "หรือ" โดย Record ที่เลือกมาขอแค่ให้ตรงตามเงื่อนไขเพียง 1 เงื่อนไขก็พอ AND มีความหมายเป็น "และ" โดย Record ที่เลือกมาต้องให้ตรงตามเงื่อนไขทุกเงื่อนไข

21 SELECT.. WHERE, AND, OR, NOT, IN, LIKE
- ส่วนที่2 เป็นโอเปอเรเตอร์ที่ใช้เพื่อกำหนดเงื่อนไขของ Record ที่ถูกเลือกขึ้นมาโดยมีโอเปอเรเตอร์ที่ใช้ดังนี้ โอเปอเรเตอร์ คำอธิบาย = เท่ากับ <> ไม่เท่ากับ > มากกว่า >= มากกว่าหรือเท่ากับ !> ไม่มากกว่า < น้อยกว่า <= น้อยกว่าหรือเท่ากับ !< ไม่น้อยกว่า [NOT] BETWEEN ... AND ระหว่าง [NOT] IN เลือกเฉพาะในค่าที่กำหนด [NOT] LIKE ใช้ในการเปรียบเทียบคำในรูปแบบ String เพื่อหาคำที่ต้องการ [NOT] NULL เลือกข้อมูลมี่ค่าเป็น NULL

22 SELECT.. WHERE ผลลัพธ์ ตัวอย่าง
  SELECT Profile_ID, Profile_Name, Profile_Location FROM Profile WHERE Profile_ID >= 4 AND Profile_ID <= 10; Profile_ID Profile_Name Profile_Location 4 user4 Hongkong 5 user5 6 user6 7 user7 8 user8 9 user9 Bangkok 10 user10 London ผลลัพธ์

23 SELECT.. WHERE.. IN ผลลัพธ์ ตัวอย่าง
 SELECT Profile_ID, Profile_Name, Profile_Age FROM Profile  WHERE Profile_Age IN (23, 34);  Profile_ID Profile_Name Profile_Age 1 user4 23 5 user5 34 7 user7 9 user9 ผลลัพธ์

24 SELECT.. WHERE.. LIKE เราสามารถใช้งานโอเปอเรเตอร์ LIKE ร่วมกับ Wildcards ซึ่งเป็น สัญลักษณที่ใช้แทนตัวอักษรต่างๆ เพียงบางส่วนในข้อมูล String ในการเลือกได้ โดยสัญลักษณและความหมายต่างๆของ Wildcards มีดังนี้ Wildcards คำอธิบาย _ (ขีดล่าง) ใช้แทนตัวอักษรตัวใดตัวหนึ่งของ String % ใช้แทนข้อความอะไรก็ได้ [ ] ใช้แทนตัวอักษรเฉพาะบางตัวเช่น [abcde] หรือเป็นช่วงก็ได้เช่น [a - e] [^] มีความหมายตรงกันข้ามกับ [ ]

25 SELECT.. WHERE.. LIKE ผลลัพธ์ ตัวอย่าง
SELECT Author_ID, Author_UserName, Author_Password FROM Author WHERE Author_Password LIKE '4[0-5]%';  Author_ID Author_UserName Author_Password 1 user1 402041 6 user6 441468 8 user8 433481 9 user9 446119 10 user10 404030 ผลลัพธ์

26 SELECT.. GROUP BY.. HAVING วลี GROUP BY จะถูกใช้เมื่อต้องการจัดกลุ่มที่ถูกคำนวณด้วย aggregate function ซึ่ง aggregate function คือฟังก์ชัน ที่ใช้ในการคำนวณค่าของข้อมูลหลายๆ คอลัมน์และคืนค่าออกมา เพียงค่าเดียวโดย aggregate function มีฟังก์ชันต่างๆ ดังนี้ aggregate function คำอธิบาย AVG ใช้ในการหาค่าเฉลี่ยในคอลัมน์ที่กำหนด MAX หาค่าสูงสุดในคอลัมน์ที่กำหนด MIN หาค่าต่ำสุดในคอลัมน์ที่กำหนด SUM หาผลรวมในคอลัมน์ที่กำหนด COUNT นับจำนวนแถวในคอลัมน์ที่กำหนด STDEV หาค่าส่วนเบี่ยงเบนมาตรฐาน STDEVP หาค่าส่วนเบี่ยงเบนฐานนิยม VAR หาค่าความแปรปรวน VARP หาค่าความแปรปรวนฐานนิยม

27 SELECT.. Aggregation function
ตัวอย่าง SELECT Profile_ID, Profile_Name, Profile_Age FROM Profile WHERE Profile_ID >= 5 AND Profile_ID <= 8 ; Profile_ID Profile_Name Profile_Age 5 user5 34 6 user6 36 7 user7 23 8 user8 26 ผลลัพธ์ SELECT SUM(Profile_Age) As SumAge FROM Profile WHERE Profile_ID >= 5 AND Profile_ID <= 8; SumAge 119 ผลลัพธ์

28 SELECT.. GROUP BY.. HAVING ผลลัพธ์ ผลลัพธ์ ตัวอย่าง
SELECT Profile_Location, SUM(Profile_Age) As SumAge FROM Profile GROUP BY Profile_Location Profile_Location SumAge Bangkok 34 Hongkong 158 Jagata 52 London 30 ผลลัพธ์ SELECT Profile_Location, SUM(Profile_Age) As SumAge FROM Profile GROUP BY Profile_Location HAVING SUM(Profile_Age) > 35; Profile_Location SumAge Hongkong 158 Jagata 52 ผลลัพธ์

29 Merging Data from Multiple tables : INNER JOIN
ตัวอย่าง SELECT Profile.Profile_Name, Author.Author_   FROM Author INNER JOIN Profile ON Author.Author_ID = Profile.Author_ID; ถ้าจะเลือกหลาย ๆ filed จากแต่ละ table ก็ใส่ชื่อ field คั่นด้วย , ไปเรื่อย ๆ

30 SELECT SUBQUERY - การค้นหาข้อมูลโดยการใช้ SUBQUERY ทำให้สามารถค้นหา
ข้อมูลในรูปแบบที่ซับซ้อนมากขึ้นได้ - SUBQUERY ก็คือการค้นหาข้อมูล จากข้อมูลที่เราได้ค้นหามาแล้ว - SUBQUERY คือการใช้คำสั่ง SELECT ซ้อนคำสั่ง SELECT นั่นเอง ตัวอย่าง SELECT Profile_Name,Profile_Age FROM Profile WHERE Profile_Age = (SELECT Profile_Age FROM Profile WHERE Profile_Name ='user1');

31 SELECT SUBQUERY ผลลัพธ์
SELECT Profile_Age FROM Profile WHERE Profile_Name ='user1' Profile_Name Profile_Age user1 23 SELECT Profile_Name,Profile_Age FROM Profile WHERE Profile_Age = (SELECT Profile_Age FROM Profile WHERE Profile_Name ='user1'); Profile_Name Profile_Age user1 23 user7 ผลลัพธ์

32 INSERT คำสั่ง INSERT ใช้ในการเพิ่ม record ลงใน table รูปแบบ
INSERT INTO tablename (field1, field2,…,fieldN) VALUES (‘value1’, ‘value2’,…, ‘valueN’); ตัวอย่าง INSERT INTO Customer (ID,FirstName,LastName,Address) VALUES (‘501’, ‘Pakorn’, ‘Chaidee’, ‘Lampang’);

33 UPDATE คำสั่ง UPDATE ใช้ในการแก้ไขข้อมูลในฟิลด์ของแต่ละ record รูปแบบ
UPDATE tableName SET field1=‘value1’, field2= ‘value2’, …, fieldN = ‘valueN’ WHERE condition; ตัวอย่าง UPDATE Customer SET FirstName=‘Prakarn’ WHERE FirstName=‘Pakorn’ AND LastName=‘Chaidee’;

34 DELETE คำสั่ง DELETE ใช้ในการลบ record ใน table รูปแบบ ตัวอย่าง
DELETE FROMtableName WHERE condition; ตัวอย่าง DELETE FROM Customer WHERE FirstName=‘Prakarn’ AND LastName=‘Chaidee’;


ดาวน์โหลด ppt CHAPTER 12 SQL.

งานนำเสนอที่คล้ายกัน


Ads by Google