CHAPTER 4 - SQL
Transcript of CHAPTER 4 - SQL
![Page 1: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/1.jpg)
1
CHAPTER 4
THE RELATIONAL MODEL 3 – ADVANCED TOPICS
![Page 2: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/2.jpg)
2
VIEWS
• MS ACCESS• SAVED QUERIES• SQL• VIEWS• QUERY• ANALYZED – RUN• VIEW• ANALYZED ONCE
![Page 3: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/3.jpg)
3
VIEW
• SNAPSHOT OF DATA• REPORTS, CHARTS, FORMS• QUERIES
![Page 4: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/4.jpg)
4
EXAMPLE – PETER’S WORLD
• ITEM CLASS “HW”• PART NUMBER• PART DESCRIPTION• UNITS ON HAND• UNIT PRICE
• VIEW
![Page 5: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/5.jpg)
5
SQL SYNATX
• CREATE VIEW view name (col1, col2,..)• AS• SELECT STATEMENT;• CREATE VIEW Housewares AS• SELECT PartNum, Description, OnHand, Price• FROM Part• WHERE Class = ‘HW’;
![Page 6: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/6.jpg)
6
Housewares View
![Page 7: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/7.jpg)
7
Premiere Products Sample Data
![Page 8: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/8.jpg)
8
CONCEPTUAL DATABASE VS. USER’S VIEW
• NO TEMPORARY TABLE• WINDOW
![Page 9: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/9.jpg)
9
RUNNING QUERIES ON VIEW
• SELECT * • FROM Housewares• WHERE OnHand > 10;
• SELECT PartNum, Description, OnHand, Price• FROM Part• WHERE Class = ‘HW’ AND OnHand > 10;
![Page 10: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/10.jpg)
10
RENAMING COLUMNS
• CREATE VIEW Housewares • (Pnum, Dsc, OnHd, Price) AS• SELECT PartNum, Description, OnHand,
Price• FROM Part• WHERE Class = ‘HW’;
![Page 11: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/11.jpg)
11
VIEW ON JOINED TABLES
• CREATE VIEW SalesCust• (Cnum, Cname, Snum, Slast, Sfirst )• AS• SELECT CustomerNum, Customer.CustomerName, Rep.RepNum• Rep.LastName, Rep.FirstName• FROM Customer• INNER JOIN Rep• ON Customer.RepNum = Rep.RepNum;
![Page 12: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/12.jpg)
12
Sales Cust View
![Page 13: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/13.jpg)
13
ALL CUSTOMERS REPRESENTED BY SALES
REP 20• SELECT Cnum, Cname• FROM SalesCust• WHERE Snum = ’20’;• SELECT CustomerNumber,
Customer.CustomerName FROM Customer• INNER JOIN Rep• ON Customer.RepNum = Rep.RepNum • WHERE RepNum = ’20’;
![Page 14: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/14.jpg)
14
ADVANTAGES OF USING VIEWS
• 1. SIMPLICITY FOR BUSINESS MANAGERS• COMPLEXITY & SIZE DISGUISED• JOIN TRANSPARENT• 2. SECURITY• OTHER DATA NOT ACCESSIBLE’• 3. USER PERSONALIZATION• 4. DATA INDEPENDENCE• DATABASE STRUCTURE MODIFICATION• EXTRA COLUMNS• RELATIONSHIP
![Page 15: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/15.jpg)
15
INDEX
• FASTER ACCESS TO DATA• EXTRA COLUMN• RECORD NUMBER
![Page 16: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/16.jpg)
16
Customer Table with Record Numbers
![Page 17: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/17.jpg)
17
INDEX
• NATURAL INDEX• PRIMARY KEY
![Page 18: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/18.jpg)
18
Index for Customer Table on Customer Number Column
![Page 19: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/19.jpg)
19
NON PRIMARY KEY INDEX
• CRITERIA• CREDIT LIMIT• SALES REP
![Page 20: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/20.jpg)
20
Indexes for Customer Table onCredit Limit and Sale Rep Number Columns
![Page 21: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/21.jpg)
21
SQL to Create Index
CREATE INDEX CustomerNameON Customer (CustomerName);
![Page 22: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/22.jpg)
22
SQL to Delete Index
DROP INDEX RepBal;
![Page 23: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/23.jpg)
23
INDEX
• MULIPLE COLUMNS• FAST ACCESS ON MULIPLE CRITERIA• AUTOMATIC INDEXES BY DBMS• DISADVANTAGES• SPACE• OVERHEAD PROCESSING
![Page 24: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/24.jpg)
24
WHEN TO USE INDEXES?
• TRADE-OFF• ADD AND DROP AT WILL• MS ACCESS• NO• YES – WITH DUPLICATES• YES – NO DUPLICATES
![Page 25: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/25.jpg)
25
DATA RULES AND INTEGRITY RULES
• DATA INTEGRITY CONSTRAINT• ACCURACY• PRICE > 0• SALARY <= $100,000• DATE-HIRED > COMPANY-FOUNDING-
DATE• CONDITION ENFORCED – OPERTAION• CHANGE IN CONDITION• SET OF PREDEFINED OPTIONS• GENDER – MALE, FEMALE,
UNAVAILABLE• CREDIT LIMIT – 5000, 7500, 10000, 15000
![Page 26: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/26.jpg)
26
DATA INTEGRITY CONSTRAINT
• ALTER TABLE Rep• MODIFY LastName NOT NULL;• ALTER TABLE Customer• ADD CreditLimit CHECK IN (5000, 7500,
10000,15000)’
![Page 27: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/27.jpg)
27
ENTITY INTEGRI TY
• COLUMNS• ALLOW NULL• PRIMARY KEY• NULL NOT ALLOWED• RESTRICTION• ENTITY INTEGRITY RULE• COLUMN• PART OF PRIMARY KEY• NOT NULL
![Page 28: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/28.jpg)
28
REFERENTIAL INTEGRITY
• CONSTRAINT• SALES REP NUMBER – SALES REP TABLE• SALES REP NUMBER – CUSTOMER• MATCHING COLUMN• NOT NECESSARILY – SAME NAME• MECHANISM – CONNECTING TABLES• CORRESPONDING COLUMN• MATCHING VALUE• FOREIGN KEY
![Page 29: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/29.jpg)
29
FOREIGN KEY
• COLUMN(S)• PRIMARY KEY• - ANOTHER TABLE
![Page 30: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/30.jpg)
30
REFERENTIAL INTEGRITY• FOREIGN KEY• CORRESPONDING PRIMARY KEY• IMPLEMENTATION – DBMS• - NO PROVISION• - INTERNALLY• - TRIGGERS• MS ACCESS• - AUTOMATIC• - DEFINE RELATIONSHIP• CONNECTING LINE• CASCADE DELETE• CASCADE UPDATE• CONSISTENCY
![Page 31: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/31.jpg)
31
INTEGRITY IN SQL
• NO PROVISION IN ANSI• INTEGRITY ENHANCEMENT FEATURE
![Page 32: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/32.jpg)
32
Integrity in SQL
• Integrity Enhancement Feature (IEF) provides three types of integrity support:– Legal values. CHECK – Primary keys. PRIMARY KEY – Foreign keys. FOREIGN KEY
![Page 33: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/33.jpg)
33
SQL CODE
• CREATE TABLE Customer• ( CustomerNum CHAR(2),• CustomerName CHAR(15),• Street CHAR(15),• City CHAR(15),• State CHAR(2),• ZipCode CHAR(5),• Balance DECIMAL(7,2),• CreditLimit DECIMAL(3,20)• RepNum CHAR(2))• CHECK (CreditLimit IN (5000, 7500, 10000,15000))• PRIMARY KEY (CustomerNum),• FOREIGN KEY (RepNum) REFERENCES SalesRep);
![Page 34: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/34.jpg)
34
CHANGING THE STRUCTURE OF A
RELATIONAL DATABASE• ALTER TABLE table name
ADD COLUMN column name data type (size)
DELETE / DROP COLUMN column name
CHANGE COLUMN column name data type (size);
• DROP TABLE (table name);
![Page 35: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/35.jpg)
35
FOREIGN KEY CONSTRAINT• ALTER TABLE Customer• ADD FOREIGN KEY (RepNum)
REFERENCES Rep;• ALTER TABLE Parttable• ADD (Allfield DECIMAL (4,0));• ALTER TABLE Partable• MODIFY (Allfield CHAR(2));• ALTER TABLE Part• DROP COLUMN Allfield;
![Page 36: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/36.jpg)
36
EXAMPLES
• ALTER TABLE Customer• ADD CustType CHAR (1)• (DEFAULT = ‘R’)• ALTER TABLE Customer• DELETE CustType;• ALTER TABLE Customer• CHANGE COLUMN CustName• TO CHAR (20)• DROP TABLE Part;
![Page 37: CHAPTER 4 - SQL](https://reader036.fdocuments.us/reader036/viewer/2022062315/55cf9a6e550346d033a1af2a/html5/thumbnails/37.jpg)
37
ORACLE STATEMENTS
• ALTER TABLE Customer• ADD Cust_Type CHAR(1);
• UPDATE Customer• SET Cust_Type = 'R';