โดย ได้เรียนรู้เพิ่มเติมดังนี้
คำสั่ง
SELECT * FROM TABLENAME;
* แทน Column ทั้งหมด หรือสามารถระบุเป็นชื่อ Column ก็ได้
ส่วน TABLE NAME เป็นชื่อ table ใน ฐานข้อมูลนั้น
ผลลัพธ์จะ หมายถึง ข้อมูลใน column ทั้งหมดใน ตารางนั้นๆ
..............................................................................
จาก SELECT หากต้องการเลือกหลายๆ Column นั้นทำได้โดยการใช้ ' , ' คั่นไว้เช่น
SELECT A, B , C FROM TABLE NAME
SELECT Count(*) AS DistinctCountries
FROM (SELECT DISTINCT Country FROM Customers);
โดยจะทำการกรองข้อมูลมาก่อน แล้วค่อยมานับอีกที จะได้ข้อมูลเหมือนด้านบนแต่ได้ ชื่อ column เป็น DistinctCountries แทน
..............................................................................
SQL is an ANSI (American National Standards Institute) standard
SELECT A, B , C FROM TABLE NAME
SELECT DISTINCT A FROM TABLENAME
DISTINCT จะทำให้เราเลือกเฉพาะ ข้อมูลที่ไม่ซ้ำกันมาเท่านั้น
SELECT COUNT(DISTINCT Country) FROM Customers;
COUNT( X ) จะนับข้อมูลที่มีอยู่ใน ( ) แล้วคืนค่าเป็นตัวเลขกลับมา แต่ในตัวอย่างนี้จะได้อยู่ใน Column count(distinct country), row 1
แต่มีวิธีที่ทำให้สามารถ กำหนดชื่อ column ได้ เช่น
FROM (SELECT DISTINCT Country FROM Customers);
โดยจะทำการกรองข้อมูลมาก่อน แล้วค่อยมานับอีกที จะได้ข้อมูลเหมือนด้านบนแต่ได้ ชื่อ column เป็น DistinctCountries แทน
..............................................................................
SELECT * FROM Customers
WHERE CustomerID=1;
การใช้ WHERE ในการเลือกข้อมูลที่ตรงตามเงื่อนไข โดยในที่นี้กำหนดให้ CustomerID ต้องมีเลขเท่ากับ 1
และสามารถมีหลายเงื่อนไขได้เช่น
SELECT * FROM Customers
WHERE NOT Country='Germany' AND NOT Country='USA';
..............................................................................
SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;
สามารถกำหนดได้ว่าจะให้ เรียงตามลำดับของ column ไหน รูปแบบไหน ASC จะเรียงตามปกติ น้อยไปมาก ส่วน DESC จะกลับกันคือมากไปน้อย และ ถ้ามีการเรียงหลาย Column จะเรียงจากซ้ายไปขวาก่อน คือเรียง Country ก่อนและจึงมาเรียงด้วย CustomerName อีกที (ภายใน Country เดียวกัน)
..............................................................................
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway');
ตัวอย่างการเพิ่มข้อมูลลงใน Table customers โดยจะใช้คำสั่ง INSERT INTO + values โดย ในวงเล็บหลังชื่อ table จะเป็นลำดับของ column และหลัง value จะเป็น ค่าใน column ที่ตรงกัน
..............................................................................
UPDATE Customers
SET ContactName='Juan';
SET ContactName='Juan';
จะทำการอัพเดทค่าใน table customers column contactname ทั้งหมดเป็น Juan
UPDATE Customers
SET ContactName='Juan'
WHERE Country='Mexico';
SET ContactName='Juan'
WHERE Country='Mexico';
สามารถกำหนดเฉพาะที่ได้โดยใช้ WHERE
..............................................................................
DELETE FROM Customers
WHERE CustomerName='Alfreds Futterkiste';
การลบ ข้อมูล จากตาราง
หากไม่มี WHERE จะลบทั้งหมด
DELETE FROM Customers
WHERE CustomerName='Alfreds Futterkiste';
การลบ ข้อมูล จากตาราง
หากไม่มี WHERE จะลบทั้งหมด
..............................................................................
SELECT TOP 3 * FROM Customers;
เลือก สูงสุด 3 แถว
SELECT * FROM Customers LIMIT 3;
เลือก สูงสุด 3 แถว
SELECT * FROM Customers LIMIT 3;
จำนวนข้อมูลสูงสุด 3
SELECT TOP 50 PERCENT * FROM Customers;
สูงสุด 50% แรก (ข้อมูล ครึ่งนึงด้านบน)
..............................................................................
SELECT MIN(Price) AS SmallestPrice
FROM Products;
SELECT MAX(Price) AS LargestPrice
FROM Products;
หาค่าสูงสุดและต่ำสุด
..............................................................................
SELECT COUNT(ProductID)
FROM Products;
SELECT AVG(Price)
FROM Products;
SELECT SUM(Quantity)
FROM OrderDetails;
หาค่าจำนวน ค่าเฉลี่ย และค่าผลรวม
..............................................................................
เครื่องหมาย _ หมายถึงตัวอักษรใดๆ % ถ้า a% หมายถึง นำหน้าด้วย a ถ้า %a หมายถึงลงท้ายด้วย และ %a% มี a ในตำแหน่งใดๆ จากตัวอย่างข้างบนหมายถึง นำหน้าด้วย a และมีตัวอักษรอย่างน้อย 3 ตัว
% wildcard
SELECT * FROM Customers
WHERE CustomerName LIKE 'a_%_%';
เครื่องหมาย _ หมายถึงตัวอักษรใดๆ % ถ้า a% หมายถึง นำหน้าด้วย a ถ้า %a หมายถึงลงท้ายด้วย และ %a% มี a ในตำแหน่งใดๆ จากตัวอย่างข้างบนหมายถึง นำหน้าด้วย a และมีตัวอักษรอย่างน้อย 3 ตัว
% wildcard
SELECT * FROM Customers
WHERE City LIKE '[bsp]%';
SELECT * FROM Customers
WHERE City LIKE '[!a-c]%';
จากรูปแบบนี้ อันแรกจะอะไรก็ได้ที่ขึ้นต้นด้วย bsp ส่วนอันแรก อะไรก็ได้ที่ไม่ได้ขึ้นต้นด้วย a b c
..............................................................................
SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');
SELECT * FROM Customers
WHERE Country IN (SELECT Country FROM Suppliers);
เลือก จาก ในเมืองที่กำหนดไว้เท่านั้น (โดยใช้ IN ในเงื่อนไข)
SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;
SELECT * FROM Products
WHERE (Price BETWEEN 10 AND 20)
AND NOT CategoryID IN (1,2,3);
การใช้เงื่อนไข BETWEEN เพื่อเลือกช่วง
..............................................................................
SELECT o.OrderID, o.OrderDate, c.CustomerName
FROM Customers AS c, Orders AS o
WHERE c.CustomerName="Around the Horn" AND c.CustomerID=o.CustomerID;
การใช้ชื่อชัวคราว
..............................................................................
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
เช่นการหา รายการสั่ง ของลูกค้าที่มี id ตรงกันโดย order จะมี pk ref to customerID ของอีกตารางหนึ่ง
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);
for 3 table join
..............................................................................
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
UNION จะทำการรวมข้อมูล จาก 2 SELECT เข้าด้วยกัน ถ้าไม่มี ALL จะรวมแบบ นำข้อมูลที่ไม่ซ้ำกันเท่านั้นแต่ถ้า ALL จะเพิ่มส่วนที่ซ้ำกันเข้าไปด้วย
..............................................................................
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
ผลลัพธ์ จะเป็นการ นับจำนวน ว่ามีลูกค้าในเมืองใดๆกี่คน
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;
ทำหน้าที่คล้ายกับ WHERE แต่ว่าสามารถใช้กับ function ได้
..............................................................................
SELECT ProductName
FROM Products
WHERE ProductID = ALL (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);
SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE SupplierId = Suppliers.supplierId AND Price < 20);
EXISTS return ture ถ้า ในเงื่อนไข มีค่าที่ตรงกับที่กำหนดไว้ ใช้ในการทดสอบได้
..............................................................................
SELECT ProductName
FROM Products
WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity > 99);
ANY return ture ถ้ามีเงื่อนไขตรงเพียงชุดเดียวก็ได้
FROM Products
WHERE ProductID = ALL (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);
ALL return ture ถ้าทั้งหมดตรงกับเงื่อนไข
..............................................................................
SELECT column1, column2, column3, ...
INTO newtable [IN externaldb]
FROM oldtableWHERE condition;
SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products
การใช้งาน comment
/*Select all the columns
of all the records
in the Customers table:*/
SELECT * FROM Customers WHERE (CustomerName LIKE 'L%'
OR CustomerName LIKE 'R%' /*OR CustomerName LIKE 'S%'
OR CustomerName LIKE 'T%'*/ OR CustomerName LIKE 'W%')
AND Country='USA'
ORDER BY CustomerName;
SELECT * FROM Customers -- WHERE City='Berlin';
ใช้เครื่องหมาย /* ......... */ สำหรับหลายบรรทัด และ -- สำหรับบรรทัดเดียว
..............................................................................
SELECT column1, column2, column3, ...
INTO newtable [IN externaldb]
FROM oldtableWHERE condition;
copy จาก table หนึ่งไปอีก table หนึ่ง
INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers
WHERE Country='Germany';
SELECT SupplierName, City, Country FROM Suppliers
WHERE Country='Germany';
การเพิ่มข้อมูล จากต่างตาราง และมีเงื่อนไข
..............................................................................
SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products
ฟังก์ชั่นเช็คถ้า null return 0
FROM Products
ฟังก์ชั่นเช็คถ้า null return 0
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products
ฟังก์ชั่นเช็คถ้า null return 0
FROM Products
ฟังก์ชั่นเช็คถ้า null return 0
SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products
การใช้งาน comment
/*Select all the columns
of all the records
in the Customers table:*/
SELECT * FROM Customers WHERE (CustomerName LIKE 'L%'
OR CustomerName LIKE 'R%' /*OR CustomerName LIKE 'S%'
OR CustomerName LIKE 'T%'*/ OR CustomerName LIKE 'W%')
AND Country='USA'
ORDER BY CustomerName;
SELECT * FROM Customers -- WHERE City='Berlin';
ใช้เครื่องหมาย /* ......... */ สำหรับหลายบรรทัด และ -- สำหรับบรรทัดเดียว
..............................................................................
เกี่ยวกับ SQL
SQL is an ANSI (American National Standards Institute) standard
you will need: (for web site)
An RDBMS database program (i.e. MS Access, SQL Server, MySQL)
To use a server-side scripting language, like PHP or ASP
To use SQL to get the data you want
To use HTML / CSS to style the page
SQL keywords are NOT case sensitive ( select = SELECT )
NULL = EMPTY OR NOT VALUES
ไม่มีความคิดเห็น:
แสดงความคิดเห็น