Download presentation
Presentation is loading. Please wait.
Published byEmily Hancock Modified over 9 years ago
1
Chapter 11 – Data Manipulation: Relational Algebra and SQL1 Unit 7: Data Manipulation: Relational Algebra and SQL IT238: Data Modeling and Database Design Instructor: Qing Yan, M.D., Ph.D.
2
Unit 7 Objectives Use comparison and logical operators in the WHERE clause of an SQL query Analyze how to handle null values in SQL queries Chapter 1 – Database Systems: Architecture and Components 2
3
Unit 7 To-Do List Complete the reading Textbook and Web Participate in the discussion board 30 points Attend the introductory seminar or complete FLA quiz 20 points Complete the unit assignment 50 points Chapter 1 – Database Systems: Architecture and Components 3
4
Chapter 11 – Data Manipulation: Relational Algebra and SQL4
5
5
6
Key Concepts Unary operator- A relational algebra operator that “operates” on a single relation. Select operator- The unary relational algebra operator used to select a horizontal subset of the tuples that satisfy a selection condition from a relation. Cartesian product operator- The binary relational algebra operator that combines tuples from any two relations in a combinatorial fashion. Chapter 1 – Database Systems: Architecture and Components 6 From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
7
Key Concepts DISTINCT qualifier- When specified as part of the SELECT statement, causes duplicate rows in queries to be removed. LIKE operator- The SQL-92 operator used in conjunction with pattern matching. VARCHAR() data type- A data type, where represents the length of the column, has a maximum size of 2000 characters in most DBMSs. Chapter 1 – Database Systems: Architecture and Components 7 From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
8
Key Concepts IN [NOT IN] operator- When used in conjunction with a subquery, evaluates if rows processed by the outer query are equal [not equal] to any of the values returned by the subquery. ANY operator- When used in conjunction with a subquery, specifies that the condition be true for at least one value from the set of values. ALL operator- When used in conjunction with a subquery, specifies that the condition be true for all values from the set of values. Chapter 1 – Database Systems: Architecture and Components 8 From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
9
Chapter 11 – Data Manipulation: Relational Algebra and SQL9 Querying Using SQL From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
10
Chapter 11 – Data Manipulation: Relational Algebra and SQL10 The SELECT-FROM-WHERE Block SELECT FROM WHERE <-- WHERE clause is optional is a list of column names whose values are to be retrieved by the query is a list of the table names required to process the query is a conditional (Boolean) expression that identifies the rows to be retrieved by the query. From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
11
Chapter 11 – Data Manipulation: Relational Algebra and SQL11 Optional Add-ons To SELECT Clause GROUP BY group_by expression HAVING group_condition ORDER BY column name(s) group_by_expression forms groups of rows with the same value group_condition filters the groups subject to some condition column name(s) specifies the order of the output. From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
12
Chapter 11 – Data Manipulation: Relational Algebra and SQL12 COURSE Relation From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
13
Chapter 11 – Data Manipulation: Relational Algebra and SQL13 SECTION Relation Se_section# Se_qtr Se_year Se_time Se_maxst Se_room Se_co_course# Se_pr_profid ----------- ------ ------- ------- -------- -------------- ------------- ------------ 101 A 2007 T1015 25 22QA375 HT54347 901 A 2006 W1800 35 Rhodes 611 22IS270 SK85977 902 A 2006 H1700 25 Lindner 108 22IS270 SK85977 101 S 2006 T1045 29 Lindner 110 22IS330 SK85977 102 S 2006 H1045 29 Lindner 110 22IS330 CC49234 701 W 2007 M1000 33 Braunstien 211 22IS832 CC49234 101 A 2007 W1800 Baldwin 437 20ECES212 RR79345 101 U 2007 T1015 33 22QA375 HT54347 101 A 2007 H1700 29 Lindner 108 22IS330 SK85977 101 S 2007 T1015 30 22QA375 HT54347 101 W 2007 T1015 20 22QA375 HT54347 From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
14
Chapter 11 – Data Manipulation: Relational Algebra and SQL14 Which courses are three-hour courses? SELECT COURSE.CO_NAME, COURSE.CO_COURSE#, COURSE.CO_CREDIT, COURSE.CO_COLLEGE, COURSE.CO_HRS, COURSE.CO_DPT_DCODE FROM COURSE WHERE COURSE.CO_HRS = 3; SELECT * FROM COURSE WHERE COURSE.CO_HRS = 3; Co_name Co_course# Co_credit Co_college Co_hrs Co_dpt_dcode ---------------------- ---------- --------- -------------------- ------- ------------ Intro to Economics 15ECON112 U Arts and Sciences 3 1 Supply Chain Analysis 22QA411 U Business 3 3 Principles of IS 22IS270 G Business 3 7 Programming in C++ 20ECES212 G Engineering 3 6 Optimization 22QA888 G Business 3 3 Financial Accounting 18ACCT801 G Education 3 4 Database Principles 22IS832 G Business 3 7 Systems Analysis 22IS430 G Business 3 7 From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
15
Chapter 11 – Data Manipulation: Relational Algebra and SQL15 Which courses offered by Department 7 are three-hour courses? SELECT * FROM COURSE WHERE COURSE.CO_DPT_DCODE = 7 AND COURSE.CO_HRS = 3; Result: Co_name Co_course# Co_credit Co_college Co_hrs Co_dpt_dcode ---------------------- ---------- --------- -------------------- ------- ---------- ----- Principles of IS 22IS270 G Business 3 7 Database Principles 22IS832 G Business 3 7 Systems Analysis 22IS430 G Business 3 7 From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
16
Chapter 11 – Data Manipulation: Relational Algebra and SQL16 Which sections have a maximum number of students greater than 30 or are offered in Linder 110? SELECT * FROM SECTION WHERE SECTION.SE_MAXST > 30 OR SECTION.SE_ROOM = 'Lindner 110'; From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
17
Chapter 11 – Data Manipulation: Relational Algebra and SQL17 Use of AND and/or OR When AND and OR appear in the same WHERE clause, all the ANDs are performed first Example: WHERE COURSE.CO_CREDIT = 'U' and COURSE.CO_COLLEGE = 'Business' or COURSE.CO_COLLEGE = 'Engineering‘ Every condition yields either true or false NOT operator From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
18
Chapter 11 – Data Manipulation: Relational Algebra and SQL18 Use of IN and NOT IN IN or NOT IN can also be used as comparison operators. IN is evaluated in the context of being equal to any member of a set of values A nested query can follow the IN/NOT IN operator From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
19
Chapter 11 – Data Manipulation: Relational Algebra and SQL19 Use of IN and NOT IN (continued) SELECT * FROM COURSE WHERE COURSE.CO_CREDIT = 'U‘ AND (COURSE.CO_COLLEGE = 'Business' OR COURSE.CO_COLLEGE = 'Engineering'); SELECT * FROM COURSE WHERE COURSE.CO_CREDIT = 'U‘ AND COURSE.CO_COLLEGE IN ('Business', 'Engineering'); From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
20
Chapter 11 – Data Manipulation: Relational Algebra and SQL20 Which professors earn more than $6,000? SELECT * FROM PROFESSOR WHERE PROFESSOR.PR_SALARY/12 > 6000; Also: TRUNC, ROUND From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
21
Chapter 11 – Data Manipulation: Relational Algebra and SQL21 Use of AS in Column Aliases SELECT PROFESSOR.PR_NAME, PROFESSOR.PR_SALARY/12 AS "Monthly Salary" FROM PROFESSOR WHERE PROFESSOR.PR_SALARY/12 > 6000; From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
22
Chapter 11 – Data Manipulation: Relational Algebra and SQL22 Use of BETWEEN and NOT BETWEEN SELECT PROFESSOR.PR_NAME, PROFESSOR.PR_SALARY/12 AS "Monthly Salary" FROM PROFESSOR WHERE PROFESSOR.PR_SALARY/12 BETWEEN 6000 AND 7000; Note: BETWEEN is inclusive From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
23
Chapter 11 – Data Manipulation: Relational Algebra and SQL23 Which colleges offer courses? SELECT COURSE.CO_COLLEGE FROM COURSE; From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
24
Chapter 11 – Data Manipulation: Relational Algebra and SQL24 Use of DISTINCT (Versus ALL) SELECT DISTINCT COURSE.CO_COLLEGE FROM COURSE; From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
25
Chapter 11 – Data Manipulation: Relational Algebra and SQL25 What is the age (in years) of each professor in Department 3 when hired? SELECT PROFESSOR.PR_NAME, TRUNC((PROFESSOR.PR_DATEHIRED - PROFESSOR.PR_BIRTHDATE)/365.25,0) "Age When Hired" FROM PROFESSOR WHERE PROFESSOR.PR_DPT_DCODE = 3; 365.25 accounts for leap years,0 indicates the decimals AS is optional, here it is left out From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
26
Chapter 11 – Data Manipulation: Relational Algebra and SQL26 NULL Values Please note that two ways of inserting null values exist: (1) use the word NULL, or (2) define a character sting that is zero characters long Example: INSERT INTO Textbook VALUES (‘111-11111111’, ‘Null Publisher 1’, 2004, null); INSERT INTO Textbook VALUES (‘222-22222222’, ‘Null Publisher 2’, 2004, ‘’); INSERT INTO Textbook VALUES (‘333-33333333’, ‘Single Space Publisher’, 2004, ‘ ’); What does the following SQL statement do? SELECT TEXTBOOK.TX_PUBLISHER FROM TEXTBOOK; From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
27
Chapter 11 – Data Manipulation: Relational Algebra and SQL27 TEXTBOOK Relation space From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
28
Chapter 11 – Data Manipulation: Relational Algebra and SQL28 NULL Values Example SELECT TEXTBOOK.TX_PUBLISHER FROM TEXTBOOK; From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
29
Chapter 11 – Data Manipulation: Relational Algebra and SQL29 IS NULL and IS NOT NULL Instead: SELECT TEXTBOOK.TX_PUBLISHER FROM TEXTBOOK WHERE TEXTBOOK.TX_PUBLISHER IS NOT NULL; Note that the only operator that can be used with null values IS NULL and IS NOT NULL! Do not use =, >, <, etc. From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
30
Chapter 11 – Data Manipulation: Relational Algebra and SQL30 Pattern Matching Use the LIKE operator in conjunction with the two wildcard characters percent sign (%) and the underscore symbol (_) The percent sign represents a series of one or more unspecified characters while the underscore symbol represents exactly one character. From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
31
Chapter 11 – Data Manipulation: Relational Algebra and SQL31 The LIKE Operator SELECT TEXTBOOK.TX_TITLE FROM TEXTBOOK WHERE TEXTBOOK.TX_TITLE LIKE '_i%'; Remember that character strings are case-sensitive! From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
32
Chapter 11 – Data Manipulation: Relational Algebra and SQL32 The LIKE Operator (continued) SELECT TEXTBOOK.TX_TITLE FROM TEXTBOOK WHERE TEXTBOOK.TX_TITLE LIKE '%'; Note that varchar and char can make a difference when e.g., searching for a string that ends in a particular character (e.g., ‘%s’) From: Umanath, N.S., & Scamell, R. (2007). Data Modeling and Database Design. Boston: Thomson Course Technology.
33
Summary SELECT-WHERE-FROM clause of an SQL query AND, OR IN, NOT IN BETWEEN, NOT BETWEEN IS NULL, IS NOT NULL LIKE, ‘%’, ‘_’
34
Q & A Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.