Chương 2 SQL (Structured Query Language)

44 347 0
Chương 2 SQL (Structured Query Language)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CHƯƠNG SQL (Structured Query Language) NN HCSDL Giới thiệu chung Là ngôn ngữ chuẩn cho CSDL quan hệ Chuẩn ANSI SQL công bố vào năm 1989, 1992 1999 Đặc điểm SQL: Ngôn ngữ tựa tiếng Anh Ngơn ngữ phi thủ tục Gồm nhóm lệnh: DDL (Data Definition Language) DML (Data Manipulation Language) DCL (Data Control Language) 2NN HCSDL DDL (Data Definition Language) DDL ngôn ngữ định nghĩa liệu gồm lệnh CREATE/ALTER/DROP DATABASE CREATE/ALTER/DROP TABLE 3NN HCSDL DML (Data Manipulation Language) DML ngôn ngữ thao tác liệu Gồm lệnh: SELECT INSERT, UPDATE, DELETE, TRUNCATE 4NN HCSDL DCL (Data Control Language) DCL ngôn ngữ điều khiển liệu Gồm lệnh GRANT/REVOKE/ADD COMMIT/ROLLBACK 5NN HCSDL Truy vấn liệu (Data query) Cú pháp chung lệnh SELECT SELECT select_list [ INTO new_table ] FROM table_source [WHERE search_condition ] [GROUP BY group_by_expression [ HAVING search_condition ]] [ORDER BY order_expression [ ASC | DESC ]] 6NN HCSDL Câu lệnh truy vấn đơn giản Ví dụ: liệt kê tất giáo sư khoa IT SELECT P.Name FROM PROFESSOR P WHERE P.DeptID =‘CS’ P gọi biến (tuple variable) Với câu lệnh đơn giản không cần phải dùng biến Biểu thức đại số quan hệ tương đương?? π Name (σ DeptID = ' CS ' ( PROFESSOR )) HCSDL 7NN Chiến lược chung để đánh giá câu truy vấn đơn giản Bước 1: mệnh đề FROM đánh giá trước tạo bảng kết tích Cartesian bảng mệnh đề FROM Bước 2: mệnh đề WHERE đánh giá Tạo bảng từ bảng bước chứa hàng thỏa điều kiện WHERE Bước 3: mệnh đề SELECT đánh giá - tạo bảng từ bảng bước chứa cột có mệnh đề SELECT HCSDL 8NN Mệnh đề SELECT Để đưa danh sách cột cần xem Cú pháp: SELECT [ ALL | DISTINCT ][ TOP n [ PERCENT ] [ WITH TIES ] ] < select_list > ::= { * |{table_name | view_name | table_alias }.* | {column_name | expression } [[ AS ] column_alias ] | column_alias = expression } [ , n ] 9NN HCSDL Mệnh đề SELECT ALL (DEFAULT): hiển thị tất ghi kể hàng trùng DISTINCT: hiển thị hàng không trùng bảng kết Ví dụ: liệt kê tất thành phố mà thời khách hàng sống SELECT DISTINCT City , Region FROM Customers 10NN HCSDL 10 Các cột tham gia kết nối Nếu kết nối nhiều bảng kết nối bảng trước, sau kết nối nhóm với bảng thứ ba Ví dụ SELECT OrderID,p.ProductID, ProductName, CategoryName ,Quantity FROM [Order Details] o JOIN Products p ON o.ProductID = p.ProductID JOIN Categories c ON p.CategoryID = c.CategoryID 30NN HCSDL 30 Biểu thức đại số quan hệ tương đương SELECT FROM Rel1 JOIN Rel2 ON condition1 […,n] Tương đương với π SelectListσ Condition (Re l1x x Reln ) 31NN HCSDL 31 Truy vấn - Subqueries Subquery lệnh SELECT mà kết trả giá trị đơn (single value) tập giá trị đặt lồng vào bên lệnh SELECT, INSERT, UPDATE, hay DELETE, hay bên truy vấn khác Subquery dùng nơi mà biểu thức phép dùng Subquery thực thi chậm phép kết 32NN HCSDL 32 Subqueries Ví dụ 1: SELECT Ord.OrderID, Ord.OrderDate, ( SELECT MAX(OrdDet.UnitPrice) FROM Northwind.dbo.[Order Details] AS OrdDet WHERE Ord.OrderID =OrdDet.OrderID) AS MaxUnitPrice FROM Northwind.dbo.Orders AS Ord 33NN HCSDL 33 Subqueries SELECT Prd1.ProductName FROM Products AS Prd1 JOIN Products AS Prd2 ON (Prd1.UnitPrice = Prd2.UnitPrice) WHERE Prd2.ProductName = 'Sir Rodney''s Scones' Dùng subquery SELECT ProductName FROM Products WHERE UnitPrice = (SELECT UnitPrice FROM Products WHERE ProductName = 'Sir Rodney''s Scones') 34NN HCSDL 34 IN, ANY, ALL, EXISTS WHERE expression [NOT] IN (subquery) WHERE expression comparison_operator [ANY | ALL] (subquery) WHERE [NOT] EXISTS (subquery) 35NN HCSDL 35 Subqueries với toán tử IN Kết subquery dùng với IN (hay với NOT IN) thường danh sách (list) chứa từ đến nhiều giá trị Ví dụ: SELECT pub_name FROM publishers WHERE pub_id IN (SELECT pub_id FROM titles WHERE type = 'business') 36NN HCSDL 36 Subquery với toán tử so sánh Các toán tử so sánh đơn giản (unmodified comparison operator) =, < >, >, > =, (SELECT MIN(price) FROM titles) 37NN HCSDL 37 Subquery với toán tử so sánh Toán tử so sánh phức (Modified Comparison operators) toán tử so sánh đơn giản có kèm theo từ All, any hay some (=toán tử s/sánh+ [All,Any,some]) Subquery bắt đầu với toán tử so sánh phức trả danh sách (list) hay nhiều giá trị bao gồm mệnh đề GROUP BY hay HAVING 38NN HCSDL 38 Subquery với toán tử so sánh >ALL có nghĩa lớn giá trị >ANY có nghĩa lớn giá trị Vd: >ALL (1, 2, 3) lớn >ANY (1, 2, 3) lớn Ví dụ: SELECT au_lname, au_fname FROM authors WHERE city ALL (SELECT city FROM publishers) 39NN HCSDL 39 V í dụ Select Publisher_id=pub_id, Name=pub_name From publishers where city = any (select city from authors) NN HCSDL 40 Insert, update, delete… Create table newproducts ( Prodduct id int not null, CategoryID int null UnitPrice float null supplier int null ) Insert into newproducts (productid, Productname) values (123, ‘ice tea’) NN HCSDL 41 Insert Insert newproducts (productid, Productname) Select product id,product name From products where categoryid=2 Select distinct c.customerid, c.companyname into newcustomers From customer as c inner join orders on c.customerid=order.customerid where orders.employeeid=2 NN HCSDL 42 Update Update products set unitprice= unitprice*1.1 Update [order details] set discount = discount + 0.05 where discount 0 and productid=2 Update [order details] set unitprice = ( select unitprice=unitprice*0.2 from products where productid=2) where productid=1 HCSDL 43 NN Delete Delete orders from orders where employeeid in ( select employeeid from employees where city=‘seattle’ Truncate table newproducts (xóa nhanh khơng bật bẫy lỗi) NN HCSDL 44 ... hệ Chuẩn ANSI SQL công bố vào năm 1989, 19 92 1999 Đặc điểm SQL: Ngôn ngữ tựa tiếng Anh Ngôn ngữ phi thủ tục Gồm nhóm lệnh: DDL (Data Definition Language) DML (Data Manipulation Language) DCL... (Data Control Language) 2NN HCSDL DDL (Data Definition Language) DDL ngôn ngữ định nghĩa liệu gồm lệnh CREATE/ALTER/DROP DATABASE CREATE/ALTER/DROP TABLE 3NN HCSDL DML (Data Manipulation Language). .. Advance -business 25 125 .0000 mod_cook 15000.0000 popular_comp NULL psychology NULL trad_cook 19000.0000 UNDECIDED NULL (6 row(s) affected) HCSDL 20 20 NN GROUP BY HAVING Có thể hạn

Ngày đăng: 12/05/2014, 12:03

Từ khóa liên quan

Mục lục

  • CHƯƠNG 2

  • Giới thiệu chung

  • DDL (Data Definition Language)

  • DML (Data Manipulation Language)

  • DCL (Data Control Language)

  • Truy vấn dữ liệu (Data query)

  • Câu lệnh truy vấn đơn giản

  • Chiến lược chung để đánh giá câu truy vấn đơn giản

  • Mệnh đề SELECT

  • Mệnh đề SELECT

  • Mệnh đề SELECT

  • Mệnh đề SELECT

  • Các hàm tập hợp (Aggregate function)

  • Ví dụ các hàm gộp trong lệnh select

  • Mệnh đề WHERE

  • Mệnh đề ORDER BY

  • Nhóm dữ liệu trong bảng kết quả

  • Mệnh đề GROUP BY

  • Ví dụ 1

  • Ví dụ 2

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan