文字内容
1. DATABASE Principles, Programming, and Performance Patrick O’Neil and Elizabeth O’Neil Lectured by Dr. Lican Huang Email: licanhuang@zist.edu.cn huang_lican@yahoo.co.uk http://virgo.sourceforge.net/licanhuang.html Zhejiang Sci-Tech University Lican Huang 1
2. 3 Basic SQL Query Language    3.1 Introduction ANSI SQL-92 ANSI SQL-99 release in 1999  Zhejiang Sci-Tech University Lican Huang 2
3. 3 Basic SQL Query Language  3.1 Introduction      SQL (Structured Query Language) 􀂄 1974 Boyce and Chamberlin 􀂄 1975—1979,IBM implemented it in System R IBM developed SQL, and it became standard. Mos t queries (including updates, inserts, deletes) are very standard across relational products. Zhejiang Sci-Tech University Lican Huang 3
4. 3. Basic SQL Query Language  Zhejiang Sci-Tech University Lican Huang 4
5. 3 Basic SQL Query Language 3.3 Simple Select Statements Example 3.3.1 (AGENTS where city =“New York”)[aid, aname] Select aid, aname from agents where city = “New Yo rk”; Zhejiang Sci-Tech University Lican Huang 5
6. 3 Basic SQL Query Language 3.3 Simple Select Statements Example 3.3.2 Select * from customers; Retrieve all fields ( all columns) Zhejiang Sci-Tech University Lican Huang 6
7. 3 Basic SQL Query Language 3.3 Simple Select Statements Example 3.3.3 Select pid from orders; Duplicate rows; select all distinct from … Optinal all Zhejiang Sci-Tech University Lican Huang 7
8. 3 Basic SQL Query Language 3.3 Simple Select Statements Example 3.3.4 ((CUSTOMERS[cid,cname] ∞ ORDERS ) ∞AGENTS)[cname,aname] (((CUSTOMERS X ORDERS)XAGENTS) where CUSTOMERS.cid = ORDERS.cid and ORDERS.aid = AGENTS.aid)[cname, aname] Select distinct customers.cname, agents.aname from customer s, orders, agents where customers.cid= orders.cid and order s.aid=agents.aid; Zhejiang Sci-Tech University Lican Huang 8
9. 3 Basic SQL Query Language 3.3 Simple Select Statements Example 3.3.5 Select ordno,x.cid,x.aid,x.pid, .40*(x.qty*p.price)-0.1*(c.discnt + a.percent)*(x.qty*p.price) from orders as x, customers as c , agents as a, products as p where c.cid = x.cid and a.aid = x .aid and p.pid =x.pid; As alias profit Zhejiang Sci-Tech University Lican Huang 9
10. 3 Basic SQL Query Language 3.3 Simple Select Statements Example 3.3.6 Select c.cid, c2.cid from customers c1, customers c2 where c1.city = c2.city and c1.cid < c2.cid; Zhejiang Sci-Tech University Lican Huang 10
11. 3 Basic SQL Query Language 3.3 Simple Select Statements Example 3.3.7 Select distinct x1.pid from orders x1, orders x2 where x1.pid = x2.pid and x1.cid < x2.cid; Zhejiang Sci-Tech University Lican Huang 11
12. 3 Basic SQL Query Language 3.3 Simple Select Statements Example 3.3.8 Select distinct y.cid from orders x, ord ers y where y.pid = x.pid and x.aid = “a06”; Zhejiang Sci-Tech University Lican Huang 12
13. 3 Basic SQL Query Language  3.2 Setting Up the Database Create Table customers (cid char(4) NO T NULL, cname varchar(13), city varc har(20),discnt real, primary key(cid)); Zhejiang Sci-Tech University Lican Huang 13
14. 3 Basic SQL Query Language  3.2 Setting Up the Database Create Table tablename (colname datat ype [NOT NULL] {, colname datatype [not null]….} [, primary key (colname {,colname …})]); Zhejiang Sci-Tech University Lican Huang 14
15. 3 Basic SQL Query Language 3.2 Setting Up the Database A.3 datatypes (page 733) Char(n)  page 733 Varchar(n) Smallint Integer Real float  Zhejiang Sci-Tech University Lican Huang 15
16. 3 Basic SQL Query Language 3.10 Insert Example 3.10.1  Insert into orders (ordno, month, cid,aid ,pid) values(1107,’aug’,’c006’,’a04’,’p 01’); Zhejiang Sci-Tech University Lican Huang 16
17. 3 Basic SQL Query Language 3.10 Update Statement Example 3.10.3 Update agents set percent = 1.1*percent where city = ‘New York’;  Zhejiang Sci-Tech University Lican Huang 17
18. 3 Basic SQL Query Language   3.10 Delete Statement Delete from agents where city = ‘New York’ Zhejiang Sci-Tech University Lican Huang 18
19. 3 Basic SQL Query Language   3.10 drop drop table tablename; Zhejiang Sci-Tech University Lican Huang 19
20. 3 Basic SQL Query Language      3.10 Alter Table Page 745 Alter Table tablename ADD ( columnname d atatype. ..) Alter Table tablename drop( columnname d atatype. ..) Alter Table tablename modify( columnname datatype, columnname datatype) ORACLE Zhejiang Sci-Tech University Lican Huang 20
21. 3 Basic SQL Query Language 3.4 Subqueries The IN Predicate Example 3.4.1 Select distince cid from orders where ai d in (select aid from agents where cit y =“Duluth” or city = “ Dallas”);  Zhejiang Sci-Tech University Lican Huang 21
22. 3 Basic SQL Query Language 3.4 Subqueries The IN Predicate Example 3.4.2 select * from agents where city in(“Dul uth”,”Dallas”);  Zhejiang Sci-Tech University Lican Huang 22
23. 3 Basic SQL Query Language 3.4 Subqueries The IN Predicate Example 3.4.3 Select cname, discnt from customers w here cid in(select cid from orders whe re aid in (select aid from agents wher e city in (“Duluth”,”Dallas”)));  Zhejiang Sci-Tech University Lican Huang 23
24. 3 Basic SQL Query Language 3.4 Subqueries The IN Predicate Example 3.4.4 Select distinct cname from customers where ‘p05’ in (select pid from orders where cid = customers.cid);  Zhejiang Sci-Tech University Lican Huang 24
25. 3 Basic SQL Query Language 3.4 Subqueries The IN Predicate Example 3.4.6 Select ordno from orders where(cid,ai d) in (select cid, aid from customers c, agents a where c.city = “Duluth” and a.city =“New York”);  Zhejiang Sci-Tech University Lican Huang 25
26. 3 Basic SQL Query Language  3.4 Subqueries The IN Predicate expr NOT IN(Subquery) Expr[NOT] IN (Subquery) expr[NOT] IN (val {,val….}) Zhejiang Sci-Tech University Lican Huang 26
27. 3 Basic SQL Query Language 3.4 Subqueries The Quantified Comparison Predicate Expr theta {SOME ANY ALL}(Subquery)  Theta <,<=, =, <>,>,>= SOME ANY are same. Zhejiang Sci-Tech University Lican Huang 27
28. 3 Basic SQL Query Language 3.4 Subqueries Example 3.4.7 Select aid from agents where percent < =all (select percent from agents);  Zhejiang Sci-Tech University Lican Huang 28
29. 3 Basic SQL Query Language 3.4 Subqueries Example 3.4.8 select cid, cname from customers wher e discnt = some(select discnt from cu stomers where city = “Dallas” or city = “Boston”);  Zhejiang Sci-Tech University Lican Huang 29
30. 3 Basic SQL Query Language 3.4 Subqueries Example 3.4.9 select cid from customers where disc nt < all (select discnt from customers where city = “Duluth”);  Zhejiang Sci-Tech University Lican Huang 30
31. 3 Basic SQL Query Language  3.4 The EXISTS Predicate [NOT] EXISTS (Subquery) Example 3.4.10 select distinct c.aname from custom ers c where exists (select * from order s x where c.cid = x.cid and x.aid = “a 05”); Zhejiang Sci-Tech University Lican Huang 31
32. 3 Basic SQL Query Language  3.4 The EXISTS Predicate [NOT] EXISTS (Subquery) Example 3.4.11 select distinct cid from orders x whe re pid =“p01” and exists (select * fro m orders where cid = x.cid and pid = ‘p07’); Zhejiang Sci-Tech University Lican Huang 32
33. 3 Basic SQL Query Language  3.4 The EXISTS Predicate [NOT] EXISTS (Subquery) Example 3.4.12 select distinct c.cname from custom ers c where not exists(select * from or ders x where c.cid = x.cid and x.aid = ‘a05’); Zhejiang Sci-Tech University Lican Huang 33
34. 3 Basic SQL Query Language 3.4 The EXISTS Predicate [NOT] EXISTS (Subquery) Example 3.4.13 page 105  Zhejiang Sci-Tech University Lican Huang 34
35. 3 Basic SQL Query Language 3.4 The EXISTS Predicate [NOT] EXISTS (Subquery) Example 3.4.14 select distinct cid from orders x whe re no exists (select * from orders wher e cid = x.cid and aid = ‘a03’);  Zhejiang Sci-Tech University Lican Huang 35