Explain in words what this relational algebra expression returns:

Size: px
Start display at page:

Download "Explain in words what this relational algebra expression returns:"

Transcription

1 QUIZ: Relational Algebra Explain in words what this relational algebra expression returns: A: The names of all customers who have accounts at both the Downtown and uptown branches 3.1

2 Practice Exercise 2.7 Employee(person_name, street, city) Works(person_name, company_name, salary) Company(company_name, city) Write relational algebra expressions to: Several solutions are possible! 3.2

3 A question of efficiency These relational algebra expressions have the same result. Which one is more efficient? A: Expression a, because the selection is applied before the join, so it doesn t have a large intermediate result like b. 3.3

4 Chapter 3: Introduction to SQL Database System Concepts, 6 th Ed. See for conditions on re-use

5 3.1 History 1970: Edgar F. Codd, a researcher working for IBM, describes the theory of relational databases in "A Relational Model of Data for Large Shared Data Banks" 1971: Codd describes Data Sub-Language ALPHA (DSL/ALPHA) in the paper "Data Base Sublanguage Founded on the Relational Calculus" 1973: IBM San Jose Research Center starts developing a relational DBMS, System R, to implement Codd's concepts. The first language used in System R was named SEQUEL (Structured English QUEry Language). 3.5

6 1981: IBM releases their first commercial DBMS, named SQL/DS (Structured Query Language/Data System). The language is overhauled and renamed SQL (Structured Query Language). 1983: IBM introduces the name DB2 for a new version of SQL/DS. The language keeps the name SQL. ANSI / ISO/ IEC standards for SQL: SQL-86, SQL-89, SQL-92 SQL:1999, SQL:2003, SQL:2008, SQL:2011 Commercial systems offer most features from the standard (not all!), plus various proprietary features. 3.6

7 3.2 Data Definition Language (DDL) Allows specification of information about relations: The schema for each relation. The domain of values associated with each attribute. Integrity constraints (e.g. NOT NULL) Other information such as The set of indices to be maintained for each relations. Security and authorization information for each relation. The physical storage structure of each relation on disk. 3.7

8 Basic Domain Types in SQL char(n). Fixed length character string, with user-specified length n. Shorter strings are padded w/trailing spaces (but the function LEN ignores them!) varchar(n). Variable length character strings, with userspecified maximum length n. varchar(max) MAX is implementation-dependent (1 GB in PostgreSQL 9) Character Large OBject (CLOB) PostgreSQL implements it through the proprietary types text and varchar(). 3.8

9 Basic Domain Types in SQL char(n). Fixed length character string, with user-specified length n. varchar(n). Variable length character strings, with user-specified maximum length n. How does SQL compare strings of different lengths? Standard SQL says: Spaces are added to the shorter one until strings have same length. Not always implemented correctly! How about Unicode? nvarchar But many implementations (including PostgreSQL) allow UTF-8 in varchar. 3.9

10 Strings nitty-gritty In standard SQL and PostgreSQL: single quotes are for strings (required!), double quotes are for identifiers. The double quotes are optional: we only use them if we want to avoid the automatic conversion to uppercase (standard SQL) or lowercase (PostgreSQL). 3.10

11 Basic Domain Types in SQL int. Integer (a finite subset of the integers that is machinedependent). smallint. Small integer (a machine-dependent subset of the integer domain type). numeric(p, d). Fixed point number, with user-specified precision of p digits, of which n to the right of decimal point. real, double precision. Floating point and double-precision floating point numbers, with machine-dependent precision. float(n). Floating point number, with user-specified precision of at least n digits. p does not include the sign, nor the decimal point! 3.11

12 Numeric Types in PostgreSQL Source:

13 Basic Domain Types in SQL All the basic domain types above also supports the NULL value! 3.13

14 CREATE TABLE Syntax: CREATE TABLE r (A 1 D 1, A 2 D 2,..., A n D n, (integrity-constraint 1 ),..., (integrity-constraint k )) r is the name of the relation each A i is an attribute name in the schema of relation r D i is the data type of values in the domain of attribute A i Example: CREATE TABLE instructor ( ID CHAR(5), name VARCHAR(20) NOT NULL, dept_name VARCHAR(20), salary NUMERIC(8,2) 3.14

15 Integrity Constraints in CREATE TABLE Example: NOT NULL PRIMARY KEY (A 1,..., A n ) FOREIGN KEY (A m,..., A n ) REFERENCES r CREATE TABLE instructor ( ID CHAR(5), name VARCHAR(20) NOT NULL, dept_name VARCHAR(20), salary NUMERIC(8,2) PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCES department) ); PRIMARY KEY declaration on an attribute automatically ensures NOT NULL 3.15

16 QUIZ: Integrity Constraints Based on the example, write CREATE TABLE commands for student and takes CREATE TABLE instructor ( ID CHAR(5), name VARCHAR(20) NOT NULL, dept_name VARCHAR(20), salary VARCHAR(8,2) PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCES department ); 3.16

17 CREATE TABLE student ( ID varchar(5), name varchar(20) not null, dept_name varchar(20), tot_cred numeric(3,0), primary key (ID), foreign key (dept_name) references department) ); CREATE TABLE takes ( ID varchar(5), course_id varchar(8), sec_id varchar(8), semester varchar(6), year numeric(4,0), grade varchar(2), primary key (ID, course_id, sec_id, semester, year), foreign key (ID) references student, foreign key (course_id, sec_id, semester, year) references section ); Note: sec_id can be dropped from primary key above, to enforce that a student cannot be registered for two sections of the same course in the same semester. 3.17

18 CREATE TABLE course ( course_id varchar(8) primary key, title varchar(50), dept_name varchar(20), credits numeric(2,0), foreign key (dept_name) references department) ); Note: Primary key declaration can be combined with attribute declaration as shown. 3.18

19 After creating a table, we enter data in it CREATE TABLE instructor ( ID char(5), name varchar(20) not null, dept_name varchar(20), salary numeric(8,2) PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCES department) ); INSERT INTO instructor VALUES ( 10211, Smith, Biology, 66000); INSERT INTO instructor VALUES ( 10211, null, Biology, 66000); 3.19

20 DROP TABLE and ALTER TABLE drop table student Deletes the table and its contents delete from student Deletes all contents of table, but retains table alter table alter table r add A D where A is the name of the attribute to be added to relation r and D is the domain of A. All tuples in the relation are assigned null as the value for the new attribute. alter table r drop A where A is the name of an attribute of relation r Dropping of attributes not supported by many databases 3.20

21 3.3 Basic Query Structure The SQL data-manipulation language (DML) provides the ability to query information, and insert, delete and update tuples A typical SQL query has the form: select A 1, A 2,..., A n from r 1, r 2,..., r m where P A i represents an attribute R i represents a relation P is a predicate. The result of an SQL query is a relation. 3.21

22 The SELECT clause It lists the attributes desired in the result of a query corresponds to the projection operation of the relational algebra Example: find the names of all instructors: select name from instructor NOTE: SQL names are case insensitive (i.e., you may use upper- or lower-case letters.) E.g. Name NAME name Some people use upper case wherever we use bold font. 3.22

23 The SELECT clause SQL allows duplicates in relations as well as in query results. To force the elimination of duplicates, insert the keyword distinct after select. Find the names of all departments with instructor, and remove duplicates: SELECT distinct dept_name FROM instructor The keyword all specifies that duplicates not be removed (seldom used, since it s the default): SELECT all dept_name FROM instructor 3.23

24 The SELECT clause An asterisk in the select clause denotes all attributes SELECT * FROM instructor The select clause can contain arithmetic expressions involving the operation, +,,, and /, and operating on constants or attributes of tuples. The query: SELECT ID, name, salary/12 FROM instructor would return a relation that is the same as the instructor relation, except that the value of the attribute salary is divided by

25 The WHERE clause Specifies conditions that the result must satisfy Corresponds to the selection predicate of the relational algebra. Find all instructors in Comp. Sci. dept with salary > select name from instructor where dept_name = Comp. Sci.' and salary > Comparison results can be combined using the logical connectives and, or, and not. Comparisons can be applied to results of arithmetic expressions. 3.25

26 The FROM clause The from clause lists the relations involved in the query Corresponds to the Cartesian product operation of the relational algebra. Find the Cartesian product instructor X teaches select from instructor, teaches generates every possible instructor teaches pair, with all attributes from both relations Cartesian product not very useful directly, but useful combined with where-clause condition (selection operation in relational algebra) 3.26

27 Cartesian Product: instructor X teaches instructor teaches 3.27

28 Joins For all instructors who have taught some course, find their names and the course ID of the courses they taught. select name, course_id from instructor, teaches where instructor.id = teaches.id Find the course ID, semester, year and title of each course offered by the Comp. Sci. department select section.course_id, semester, year, title from section, course where section.course_id = course.course_id and dept_name = Comp. Sci.' 3.28

29 QUIZ: Queries Find the names of all students who are taking a class this semester in the SCIENCE building 3.29

30 QUIZ What are the three integrity constraints we have covered? Give examples of how each is used. 3.30

31 QUIZ What are the three integrity constraints we have covered? Give examples of how each is used. NOT NULL PRIMARY KEY FOREIGN KEY 3.31

32 QUIZ True or false: By default, in SQL a table may contain duplicate tuples. 3.32

33 QUIZ True or false: By default, in SQL a table may contain duplicate tuples. 3.33

34 QUIZ How can we control duplicates in SQL queries? 3.34

35 QUIZ How can we control duplicates in SQL queries? 3.35

36 Natural Join Natural join matches tuples with the same values for all common attributes, and retains only one copy of each common column select * from instructor natural join teaches; 3.36

37 3.37

38 Natural Join Example List the names of instructors along with the course ID of the courses that they taught. select name, course_id from instructor, teaches where instructor.id = teaches.id; select name, course_id from instructor natural join teaches; 3.38

39 Diagram for next slide 3.39

40 Beware of unrelated attributes with same name which get equated incorrectly Example: List the names of instructors along with the the titles of courses that they teach Incorrect version (makes course.dept_name = instructor.dept_name) select name, title from instructor natural join teaches natural join course; Correct version select name, title from instructor natural join teaches, course where teaches.course_id = course.course_id; Another correct version select name, title from (instructor natural join teaches) join course using(course_id); 3.40

41 QUIZ: Natural Join Use the natural join to write queries for the following: Find the names of customers who have (at least) an account Find the names of customers who have an account at the Uptown branch Find the names of customers who have a loan at a branch with assets greater than $1,000, EOL 1

42 QUIZ: SQL DDL Write the CREATE TABLE for course, based on this example: CREATE TABLE instructor ( ID char(5), name varchar(20) not null, dept_name varchar(20), salary numeric(8,2), primary key (ID), foreign key (dept_name) references department ) 3.42

43 CREATE TABLE course ( course_id varchar(8) primary key, title varchar(50), dept_name varchar(20), credits smallint, foreign key (dept_name) references department) ); Note: Primary key declaration can be combined with attribute declaration as shown. 3.43

44 QUIZ: SQL DDL A table was created in a DB with the following command: CREATE TABLE circuits ( name varchar(15), type varchar(10), nr_gates integer ); Write commands to Insert a record for the circuit 74LS04, which contains six NOT gates. Display all the records in the table. 3.44

45 CREATE TABLE circuits ( name varchar(15), type varchar(10), nr_gates integer ); INSERT INTO circuits VALUES ('74LS04', 'NOT', 6); SELECT * FROM circuits; 3.45

46 The Rename Operation SQL allows renaming relations and attributes using the AS clause: E.g. old-name AS new-name SELECT ID, name, salary/12 AS monthly_salary FROM instructor The keyword AS is optional and may be omitted instructor as T instructor T 3.46

47 QUIZ: Rename Use RENAME in a query that returns the titles of all courses taught by a department housed in the Science building SELECT title FROM course as C, department as D WHERE C.dept_name = D.dept.name AND D.building = Science Then rewrite the query with a natural join SELECT title FROM course NATURAL JOIN department WHERE department.building = Science 3.47

48 The Rename Operation Why is it necessary to rename? 1] To make the query shorter 2] To remove ambiguity when a table is joined with itself. E.g. Find the names of all instructors who have a higher salary than some instructor in Comp. Sci : SELECT DISTINCT T. name FROM instructor AS T, instructor AS S WHERE T.salary > S.salary AND S.dept_name = Comp. Sci. 3.48

49 String Operations SQL includes a string-matching operator for comparisons on character strings. The operator LIKE uses patterns that are described using two special characters: percent % matches any substring. underscore _ matches any character. Unlike keyword names, string patters are case sensitive! 3.49

50 Pattern matching examples: String Operations Intro% matches any string beginning with Intro. %Comp% matches any string containing Comp as a substring. _ _ % characters. matches any string of exactly three characters. matches any string of at least three '100 \%' ESCAPE '\' matches the string100 % Escape character 3.50

51 String Operations Find the names of all instructors whose name includes the substring dar : SELECT name NAME instructor WHERE name LIKE '%dar%' 3.51

52 QUIZ What patterns are matched in each case? 3.52

53 QUIZ: Find the loan number of all loans made in cities that start with S and end in ville : Hint: Use join and string operations. 3.53

54 String Operations SQL supports a variety of string operations such as concatenation (using ) converting between upper and lower case (both ways) finding string length, extracting substrings, etc. 3.54

55 Ordering the Display of Tuples List in alphabetic order the names of all instructors: SELECT DISTINCT name FROM instructor ORDER BY name We may specify desc for descending order or asc for ascending order, for each attribute; ascending order is the default. Example: order by name desc Can sort on multiple attributes Example: order by dept_name, name 3.55

56 WHERE clause predicates SQL includes a between comparison operator Example: Find the names of all instructors with salary between $90,000 and $100,000 (inclusive) select name from instructor where salary between and Tuple comparison select name, course_id from instructor AS I, teaches AS T where (I.ID, dept_name) = (T.ID, Biology ) 3.56

57 WHERE Clause Predicates SQL includes an IN operator Example: Find the names and salaries of all instructors named Jones, James or Julian SELECT name, salary FROM instructor WHERE salary IN ( Jones, James, Julian ) 3.57

58 Quiz: WHERE Clause Predicates Write a query to return the names of all students who have exactly 50, 60, 70, or 80 credit hours total Without a WHERE predicate With a WHERE predicate 3.58

59 Quiz: WHERE Clause Predicates Write a query that uses tuple comparison to return the names of all students who have taken a class in Use the previous example: select name, course_id from instructor AS I, teaches AS T where (I.ID, dept_name) = (T.ID, Biology ) 3.59

60 Write a query that uses tuple comparison to return the names of all students who have taken a class in SELECT S.name FROM student AS S, takes AS T WHERE (T.ID, T.year) = (S.ID, 2014) 3.60

61 Quiz: WHERE Clause Predicates List all the WHERE options we learned: 3.61

62 QUIZ: String Operations Find all course names that: Begin with Comp End with Comp Have the substring Comp (anywhere) Have two occurrences of Comp Have comp%_ anywhere 3.62

63 Not in text Set Operations Elements that are in A, but not in B Remember that union and intersection commute, but difference doesn t! Image source:

64 Not in text Practice Set Operations {w, x, y, z} {z, a, b} = {w, x, y, z} {z, a, b} = {w, x, y, z} {a, b, c} = {w, x, y, z} {z, a, b} = {z, a, b} {w, x, y, z} = {w, x, y, z} {a, b, c} = Image source:

65 Set Operations in SQL Find courses that ran in Fall 2009 or in Spring 2010 (select course_id from section where sem = Fall and year = 2009) union (select course_id from section where sem = Spring and year = 2010) Find courses that ran in Fall 2009 and in Spring 2010 (select course_id from section where sem = Fall and year = 2009) intersect (select course_id from section where sem = Spring and year = 2010) Find courses that ran in Fall 2009 but not in Spring 2010 (select course_id from section where sem = Fall and year = 2009) except (select course_id from section where sem = Spring and year = 2010) 3.65

66 Extra-credit QUIZ 3.66

67 Set Operations All set operations automatically eliminate duplicates. To retain all duplicates use the corresponding multiset versions union all, intersect all and except all. Suppose a tuple occurs m times in r and n times in s, then, it occurs: m + n times in r union all s min(m,n) times in r intersect all s max(0, m n) times in r except all s 3.67

68 Not in text Practice Set Operations with duplicates UNION ALL, INTERSECT ALL, EXCEPT ALL {w, x, y, z} {z, a, b, b} = {w, w, x, y, z, z, z} {z, z, a, b} = {w, x, y, z, z, z} {z, a, b} = {z, a, b} {w, x, y, z, z, z} = Image source:

69 Nice application of set operations! Write a query that returns the account with the maximum balance. Algorithm: 1. Build two sets: a) Set A contains all accounts b) Set B contains the accounts whose balance is smaller than that of some other account 2. Take A EXCEPT B 3.69 EOL 2

70 Null Values It is possible for tuples to have a null value, denoted by NULL, for some of their attributes NULL signifies an unknown value or that a value does not exist. The result of any arithmetic expression involving null is null Example: 5 + NULL returns null The predicate IS NULL can be used to check for null values. Example: Find all instructors whose salary is null. SELECT name FROM instructor WHERE salary IS NULL 3.70

71 Null Values Important: using = NULL instead of IS NULL does not work, because NULL is never equal to NULL i.e. NULL = NULL is never true! SELECT name FROM instructor WHERE salary = NULL Always returns an empty relation! OK, then does it mean that NULL = NULL is false? 3.71

72 Null Values and Three-Valued Logic Any comparison with null returns unknown Example: 5 < null or null <> null or null = null Three-valued logic using the truth value unknown: OR: (unknown or true) = true, (unknown or false) = unknown (unknown or unknown) = unknown AND: (true and unknown) = unknown, (false and unknown) = false, (unknown and unknown) = unknown NOT: (not unknown) = unknown 3.72

73 QUIZ Write the truth table for three-valued OR! 3.73

74 3.74

75 Null Values and Three Valued Logic In a WHERE clause, any predicate is treated as false if it evaluates to unknown. This means that, in SQL, we prefer to err on the side of caution, retaining only those tuples that surely make the predicate true. 3.75

76 3.7 Aggregate Functions These functions operate on the set of values of a column in a relation, and return a scalar value avg: average value min: minimum value max: maximum value sum: sum of values count: number of values 3.76

77 Examples Find the average salary of instructors in the CS department: SELECT AVG (salary) FROM instructor WHERE dept_name= Comp. Sci. Find the total number of instructors who teach a course in the Spring 2010 semester: SELECT COUNT (DISTINCT ID) FROM teaches WHERE semester = Spring AND year = 2010 Find the number of tuples in course: SELECT COUNT (*) FROM course Just like in SELECT *, the star means all attributes, i.e. the entire tuple. 3.77

78 QUIZ: Aggregate Functions Write queries to find the following: The highest budget of all departments The lowest number of credit hours of any student 3.78

79 Solutions The highest budget of all departments: SELECT MAX(budget) FROM department The lowest number of credit hours of any student: SELECT MIN(tot_cred) FROM student Food for thought: is it possible to find the name of the dept. with the highest budget? 3.79

80 The GROUP BY clause Find the average salary of instructors in each department : SELECT dept_name, AVG (salary) FROM instructor GROUP BY dept_name 3.80

81 GROUP BY syntax All non-aggregated attributes in the SELECT clause must appear in the GROUP BY list: SELECT dept_name, AVG (salary) FROM instructor GROUP BY dept_name --incorrect SELECT dept_name, ID, AVG (salary) FROM instructor GROUP BY dept_name Can you see why? 3.81

82 Example: Write a query to find the name of the department with the highest budget. Does this work? Why not? SELECT dept_name, MAX(budget) FROM department 3.82

83 Example: Write a query to find the name of the department with the highest budget. Does this work? Why not? SELECT dept_name, MAX(budget) FROM department All non-aggregated attributes in the SELECT clause must appear in the GROUP BY list! 3.83

84 QUIZ: GROUP BY Write queries to find the following: The highest budget of a department in each building The lowest number of credit hours of any student in each department 3.84

85 The highest budget of a department in each building: SELECT building, MAX(budget) FROM department GROUP BY building Solutions The lowest number of credit hours of any student in each department: SELECT dept_name, MIN(tot_cred) FROM student GROUP BY dept_name 3.85

86 Aggregate Functions HAVING Clause Find the names and average salaries of all departments whose average salary is greater than 42,000: SELECT dept_name, AVG(salary) FROM instructor GROUP BY dept_name HAVING AVG(salary) > Note: predicates in the HAVING clause are applied after the formation of groups whereas predicates in the WHERE clause (if it exists) are applied before. 3.86

87 QUIZ: Aggregate Functions Write a query to find the names of the departments whose students have an average total credit of at least 6 credit hours 3.87

88 Solution Write a query to find the names of the departments whose students have an average total credit of at least 6 credit hours: SELECT department, AVG FROM student GROUP BY department HAVING AVG(tot_cred) >=

89 HAVING syntax The HAVING clause may use aggregate functions different from the ones in SELECT. However, it cannot use non-aggregated attributes! 3.89

90 NULL in aggregates To find the total of all salaries: SELECT SUM (salary ) FROM instructor The above query ignores null amounts Result is null if all amounts are null In general: All aggregate operations except COUNT(*) ignore tuples with null values on the aggregated attributes. If the attribute has only null values: count returns the # of tuples all other aggregates return null 3.90

91 3.8 Nested Subqueries SQL provides a mechanism for the nesting of subqueries. A subquery is a select-from-where expression that is nested within another query. Common uses of subqueries performing tests for: set membership set comparisons set cardinality. 3.91

92 Nested queries for set membership: IN and NOT IN Find courses offered in Fall 2009 and in Spring 2010: SELECT DISTINCT course_id FROM section WHERE semester = Fall AND year= 2009 AND course_id IN (SELECT course_id Inner query Outer query FROM section WHERE semester = Spring AND year = 2010) Find courses offered in Fall 2009 but not in Spring 2010: SELECT DISTINCT course_id FROM section WHERE semester = Fall AND year= 2009 AND course_id NOT IN (SELECT course_id FROM section WHERE semester = Spring AND year = 2010) 3.92

93 It may seem from the previous examples that (NOT) IN simply reproduces the functionality of existing set operators (INTERSECT, EXCEPT), but this is not so here s a task that cannot be achieved without subqueries: 3.93

94 QUIZ: Now we can finally solve this! Write a query to find the name of the department with the highest budget. (Hint: Start with the inner query, which find the value of the highest budget!) 3.94

95 Solution Write a query to find the name of the department with the highest budget. SELECT dept_name FROM department WHERE budget IN (SELECT MAX(budget) FROM department) 3.95 EOL 3

96 QUIZ: Write the truth table for three-valued AND Hint: How many lines does the table have? 3.96

97 solution Nr. of lines = 3 2 =

98 QUIZ In Hardware Description Languages (HDL), a signal can have nine (!) different values; how many lines would a truth table have for the nine-valued AND? 3.98

99 QUIZ Explain the difference in syntax and behavior between the WHERE and HAVING clauses. 3.99

100 solution The difference in syntax and behavior between the WHERE and HAVING clauses: Behavior: Predicates in the HAVING clause are applied after the formation of groups whereas predicates in the WHERE clause are applied before. Syntax: The HAVING clause can only use conditions on aggregated functions whereas the WHERE clause can only use conditions on individual tuples

101 QUIZ Write a query to find the average grade each student made in the Fall of The query should display two columns: the ID and the average grade. Hint: Use an aggregate function and the GROUP BY clause

102 QUIZ Write a query to find the average grade each student made in the Fall of The query should display two columns: the ID and the average grade. SELECT ID, AVG(grade) FROM takes WHERE semester = 'Fall' AND year = 2016 GROUP BY ID 3.102

103 QUIZ Write a query to find the average grade each student made in the Fall of The query should display two columns: the ID and the average grade. Only averages 3.0 or higher should be displayed. Hint: Use the HAVING clause

104 QUIZ SELECT ID, AVG(grade) FROM takes WHERE semester = 'Fall' AND year = 2016 GROUP BY ID HAVING AVG(grade) >=

105 Extra-credit QUIZ 3.105

106 Are used for: 3.8 Review: Nested Subqueries Determining membership (or lack thereof) in a set: IN NOT IN Comparing tuples against sets: SOME ALL 3.106

107 SOME example Find names of instructors with salary greater than that of some (at least one) instructor in the Biology department. select distinct T.name from instructor as T, instructor as S where T.salary > S.salary and S.dept_name = Biology ; Same query using > some clause select name from instructor where salary > SOME(select salary from instructor where dept_name = Biology ); 3.107

108 Formal definition of SOME clause F <comp> some r t r such that (F <comp> t ) <comp> can be: <,, >, =, (5 < some ) = true (5 < some (5 = some ) = false ) = true 0 (5 some 5 ) = true (since 0 5) (read: 5 < some tuple in the relation) Note well: 3.108

109 ALL example Find the names of the instructors whose salary is greater than the salary of all instructors in the Biology department. SELECT name FROM instructor WHERE salary > ALL (SELECT salary FROM instructor WHERE dept_name = Biology ); 3.109

110 Formal definition of ALL clause F <comp> all r t r (F <comp> t) (5 < all ) = false (5 < all (5 = all ) = true ) = false 4 (5 all 6 ) = true (since 5 4 and 5 6) Note well: 3.110

111 QUIZ: SOME Write a nested query to find the departments with budgets lower than some (at least one) departments in the Watson building

112 QUIZ: ALL Write a nested query to find the departments with budgets lower than all departments in the Watson building 3.112

113 Are used for: 3.8 Nested Subqueries Determining membership (or lack thereof) in a set: IN NOT IN Comparing a tuple against a set: <comparison> SOME <comparison> ALL Testing if a relation (table, set) is empty (or not): NOT EXISTS EXISTS exists returns true iff the argument subquery is nonempty: exists r r Ø not exists r r = Ø 3.113

114 Yet another way to write the query Find all courses taught in both the Fall 2009 semester and in the Spring 2010 semester : select course_id from section as S where semester = Fall and year= 2009 and EXISTS (select * from section as T where semester = Spring and year = 2010 and S.course_id = T.course_id); 3.114

115 Yet another way to write the query Find all courses taught in both the Fall 2009 semester and in the Spring 2010 semester : select course_id from section as S where semester = Fall and year= 2009 and EXISTS (select * from section as T where semester = Spring and year = 2010 and S.course_id = T.course_id); Correlated subquery Correlation name or correlation variable 3.115

116 QUIZ: (NOT) EXISTS Write an SQL expression that is true iff relation (table) A is contained in relation (table) B 3.116

117 QUIZ: (NOT) EXISTS Write an SQL expression that is true iff relation A is contained in relation B NOT EXISTS (A EXCEPT B) 3.117

118 Are used for: Nested Subqueries Determining membership (or lack thereof) in a set: IN NOT IN Comparing tuples against sets: <comparison> SOME <comparison> ALL Testing if a relation is empty (or not): NOT EXISTS EXISTS Testing for no duplicate tuples UNIQUE Note: UNIQUE of an empty set is true! 3.118

119 Test for Absence of Duplicate Tuples Find all courses that were offered once in 2009: select T.course_id from course as T where unique (select R.course_id from section as R where T.course_id= R.course_id and R.year = 2009); 3.119

120 QUIZ: UNIQUE Find the names of students who have taken COSC4401 only once

121 QUIZ: UNIQUE Find the names of students who have taken COSC4401 only once. SELECT S.ID, S.name FROM student AS S WHERE UNIQUE ( SELECT T.course_id FROM takes AS T WHERE S.ID = T.ID AND T.course_id = COSC4401 ) 3.121

122 QUIZ: UNIQUE Find the names of students who have taken COSC4401 only once. SELECT S.ID, S.name FROM student AS S WHERE UNIQUE ( SELECT T.course_id FROM takes AS T WHERE S.ID = T.ID AND T.course_id = COSC4401 ) EOL 5

123 All subqueries we ve seen so far are in the WHERE clause, i.e. they are used to filter the tuples. SQL allows subqueries in all clauses of the SELECT statement: SELECT FROM WHERE GROUP BY HAVING ORDER BY 3.123

124 SKIP remainder of 3.8 starting at Subqueries in the FROM clause 3.124

125 3.9 Modification of the Database Deletion of tuples from a given relation Insertion of new tuples into a given relation Updating values in some tuples in a given relation 3.125

126 Deletion Delete all instructors delete from instructor Delete all instructors from the Finance department delete from instructor where dept_name= Finance ; Delete all tuples in the instructor relation for those instructors associated with a department located in the Watson building. delete from instructor where dept_name in (select dept_name from department where building = Watson ); 3.126

127 Deletion Delete all instructors whose salary is less than the average salary of all instructors delete from instructor where salary< (select avg (salary) from instructor); Problem: as we delete tuples from deposit, the average salary changes Solution used in SQL: 1. First, compute avg salary and find all tuples to delete 2. Next, delete all tuples found above (without recomputing avg or retesting the tuples) Aggregate functions in subqueries are not correlated! 3.127

128 Insertion Add a new tuple to course insert into course values ( CS-437, Database Systems, Comp. Sci., 4); or equivalently insert into course (course_id, title, dept_name, credits) values ( CS-437, Database Systems, Comp. Sci., 4); Add a new tuple to student with tot_creds set to null insert into student values ( 3003, Green, Finance, null); 3.128

129 Insertion Add all instructors to the student relation with tot_creds set to 0 insert into student select ID, name, dept_name, 0 from instructor The select from where statement is evaluated fully before any of its results are inserted into the relation (otherwise queries like insert into table1 select * from table1 would cause problems, if table1 did not have any primary key defined

130 Update 3.130

131 Problem 3.10 Employee (employee_name, street, city) Works(employee_name, company_name, salary) Company(company_name, city) Manages(employee_name, manager_name) Modify the DB so that Jones now lives in Newtown 3.131

132 Problem 3.10 Employee (employee_name, street, city) Works(employee_name, company_name, salary) Company(company_name, city) Manages(employee_name, manager_name) Modify the DB so that Jones now lives in Newtown UPDATE employee SET city = 'Newtown' WHERE name = 'Jones' 3.132

133 Complex update example Increase salaries of instructors whose salary is over $100,000 by 3%, and all others receive a 5% raise Write two update statements: update instructor set salary = salary * 1.03 where salary > ; update instructor set salary = salary * 1.05 where salary <= ; The order is important! (Why?) Can be done better using the case statement (next slide) 3.133

134 CASE statement for conditional updates update instructor set salary = case when salary <= then salary * 1.05 else salary * 1.03 end General form: 3.134

135 Updates with Scalar Subqueries Only works if the nested query returns one value (a.k.a. scalar)! Is the nested query correlated? Explain in words what the nested query returns! 3.135

136 Homework for Ch.3, due Tue, Feb.14: --End of chapter Practice Exercise: 8 --End of chapter Exercises: 11, 12, 16 --A table with all SQL clauses from ch.3, each used in an example (OK if example is from text) Database System Concepts, 6 th Ed. See for conditions on re-use EOL 4

137 Schema for University database 3.137

138 Schema for Bank database (fig.3.19) 3.138

Chapter 3: Introduction to SQL

Chapter 3: Introduction to SQL Chapter 3: Introduction to SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 3: Introduction to SQL Overview of the SQL Query Language Data Definition Basic Query

More information

Chapter 3: Introduction to SQL

Chapter 3: Introduction to SQL Chapter 3: Introduction to SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 3: Introduction to SQL Overview of the SQL Query Language Data Definition Basic Query

More information

Chapter 3: Introduction to SQL. Chapter 3: Introduction to SQL

Chapter 3: Introduction to SQL. Chapter 3: Introduction to SQL Chapter 3: Introduction to SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 3: Introduction to SQL Overview of The SQL Query Language Data Definition Basic Query

More information

The SQL data-definition language (DDL) allows defining :

The SQL data-definition language (DDL) allows defining : Introduction to SQL Introduction to SQL Overview of the SQL Query Language Data Definition Basic Query Structure Additional Basic Operations Set Operations Null Values Aggregate Functions Nested Subqueries

More information

QQ Group

QQ Group QQ Group: 617230453 1 Extended Relational-Algebra-Operations Generalized Projection Aggregate Functions Outer Join 2 Generalized Projection Extends the projection operation by allowing arithmetic functions

More information

CS425 Fall 2017 Boris Glavic Chapter 4: Introduction to SQL

CS425 Fall 2017 Boris Glavic Chapter 4: Introduction to SQL CS425 Fall 2017 Boris Glavic Chapter 4: Introduction to SQL Modified from: Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 4: Introduction to SQL Overview of the

More information

Lecture 6 - More SQL

Lecture 6 - More SQL CMSC 461, Database Management Systems Spring 2018 Lecture 6 - More SQL These slides are based on Database System Concepts book and slides, 6, and the 2009/2012 CMSC 461 slides by Dr. Kalpakis Dr. Jennifer

More information

CS 582 Database Management Systems II

CS 582 Database Management Systems II Review of SQL Basics SQL overview Several parts Data-definition language (DDL): insert, delete, modify schemas Data-manipulation language (DML): insert, delete, modify tuples Integrity View definition

More information

Unit 2: SQL AND PL/SQL

Unit 2: SQL AND PL/SQL Unit 2: SQL AND PL/SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Outline SQL: Characteristics and advantages, SQL Data Types and Literals, DDL, DML, DCL, TCL, SQL

More information

Chapter 3: SQL. Chapter 3: SQL

Chapter 3: SQL. Chapter 3: SQL Chapter 3: SQL Database System Concepts, 5th Ed. See www.db-book.com for conditions on re-use Chapter 3: SQL Data Definition Basic Query Structure Set Operations Aggregate Functions Null Values Nested

More information

Chapter 3: SQL. Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan See for conditions on re-use

Chapter 3: SQL. Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan See  for conditions on re-use Chapter 3: SQL Database System Concepts, 5th Ed. See www.db-book.com for conditions on re-use Chapter 3: SQL Data Definition Basic Query Structure Set Operations Aggregate Functions Null Values Nested

More information

SQL. Lecture 4 SQL. Basic Structure. The select Clause. The select Clause (Cont.) The select Clause (Cont.) Basic Structure.

SQL. Lecture 4 SQL. Basic Structure. The select Clause. The select Clause (Cont.) The select Clause (Cont.) Basic Structure. SL Lecture 4 SL Chapter 4 (Sections 4.1, 4.2, 4.3, 4.4, 4.5, 4., 4.8, 4.9, 4.11) Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations Modification of the Database

More information

Silberschatz, Korth and Sudarshan See for conditions on re-use

Silberschatz, Korth and Sudarshan See   for conditions on re-use Chapter 3: SQL Database System Concepts, 5th Ed. See www.db-book.com for conditions on re-use Chapter 3: SQL Data Definition Basic Query Structure Set Operations Aggregate Functions Null Values Nested

More information

Lecture 3 SQL. Shuigeng Zhou. September 23, 2008 School of Computer Science Fudan University

Lecture 3 SQL. Shuigeng Zhou. September 23, 2008 School of Computer Science Fudan University Lecture 3 SQL Shuigeng Zhou September 23, 2008 School of Computer Science Fudan University Outline Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations Views

More information

WHAT IS SQL. Database query language, which can also: Define structure of data Modify data Specify security constraints

WHAT IS SQL. Database query language, which can also: Define structure of data Modify data Specify security constraints SQL KEREM GURBEY WHAT IS SQL Database query language, which can also: Define structure of data Modify data Specify security constraints DATA DEFINITION Data-definition language (DDL) provides commands

More information

Database System Concepts, 5th Ed.! Silberschatz, Korth and Sudarshan See for conditions on re-use "

Database System Concepts, 5th Ed.! Silberschatz, Korth and Sudarshan See   for conditions on re-use Database System Concepts, 5th Ed.! Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use " Data Definition! Basic Query Structure! Set Operations! Aggregate Functions! Null Values!

More information

Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations Views Modification of the Database Data Definition

Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations Views Modification of the Database Data Definition Chapter 4: SQL Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations Views Modification of the Database Data Definition Language 4.1 Schema Used in Examples

More information

DATABASE TECHNOLOGY - 1MB025

DATABASE TECHNOLOGY - 1MB025 1 DATABASE TECHNOLOGY - 1MB025 Fall 2005 An introductury course on database systems http://user.it.uu.se/~udbl/dbt-ht2005/ alt. http://www.it.uu.se/edu/course/homepage/dbastekn/ht05/ Kjell Orsborn Uppsala

More information

DATABASTEKNIK - 1DL116

DATABASTEKNIK - 1DL116 1 DATABASTEKNIK - 1DL116 Spring 2004 An introductury course on database systems http://user.it.uu.se/~udbl/dbt-vt2004/ Kjell Orsborn Uppsala Database Laboratory Department of Information Technology, Uppsala

More information

Chapter 4: SQL. Basic Structure

Chapter 4: SQL. Basic Structure Chapter 4: SQL Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations Views Modification of the Database Joined Relations Data Definition Language Embedded SQL

More information

DATABASE TECHNOLOGY - 1MB025

DATABASE TECHNOLOGY - 1MB025 1 DATABASE TECHNOLOGY - 1MB025 Fall 2004 An introductory course on database systems http://user.it.uu.se/~udbl/dbt-ht2004/ alt. http://www.it.uu.se/edu/course/homepage/dbastekn/ht04/ Kjell Orsborn Uppsala

More information

The SQL database language Parts of the SQL language

The SQL database language Parts of the SQL language DATABASE DESIGN I - 1DL300 Fall 2011 Introduction to SQL Elmasri/Navathe ch 4,5 Padron-McCarthy/Risch ch 7,8,9 An introductory course on database systems http://www.it.uu.se/edu/course/homepage/dbastekn/ht11

More information

DATABASE DESIGN I - 1DL300

DATABASE DESIGN I - 1DL300 DATABASE DESIGN I - 1DL300 Fall 2010 An introductory course on database systems http://www.it.uu.se/edu/course/homepage/dbastekn/ht10/ Manivasakan Sabesan Uppsala Database Laboratory Department of Information

More information

Database Systems SQL SL03

Database Systems SQL SL03 Inf4Oec10, SL03 1/52 M. Böhlen, ifi@uzh Informatik für Ökonomen II Fall 2010 Database Systems SQL SL03 Data Definition Language Table Expressions, Query Specifications, Query Expressions Subqueries, Duplicates,

More information

Database Systems SQL SL03

Database Systems SQL SL03 Checking... Informatik für Ökonomen II Fall 2010 Data Definition Language Database Systems SQL SL03 Table Expressions, Query Specifications, Query Expressions Subqueries, Duplicates, Null Values Modification

More information

DATABASE TECHNOLOGY. Spring An introduction to database systems

DATABASE TECHNOLOGY. Spring An introduction to database systems 1 DATABASE TECHNOLOGY Spring 2007 An introduction to database systems Kjell Orsborn Uppsala Database Laboratory Department of Information Technology, Uppsala University, Uppsala, Sweden 2 Introduction

More information

Chapter 6: Formal Relational Query Languages

Chapter 6: Formal Relational Query Languages Chapter 6: Formal Relational Query Languages Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 6: Formal Relational Query Languages Relational Algebra Tuple Relational

More information

Chapter 1: Introduction

Chapter 1: Introduction Chapter 1: Introduction Chapter 2: Intro. To the Relational Model Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Database Management System (DBMS) DBMS is Collection of

More information

Chapter 4: Intermediate SQL

Chapter 4: Intermediate SQL Chapter 4: Intermediate SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use 4.1 Join Expressions Let s first review the joins from ch.3 4.2 1 SELECT * FROM student, takes

More information

Principles of Data Management

Principles of Data Management Principles of Data Management Alvin Lin August 2018 - December 2018 Structured Query Language Structured Query Language (SQL) was created at IBM in the 80s: SQL-86 (first standard) SQL-89 SQL-92 (what

More information

Textbook: Chapter 6! CS425 Fall 2013 Boris Glavic! Chapter 3: Formal Relational Query. Relational Algebra! Select Operation Example! Select Operation!

Textbook: Chapter 6! CS425 Fall 2013 Boris Glavic! Chapter 3: Formal Relational Query. Relational Algebra! Select Operation Example! Select Operation! Chapter 3: Formal Relational Query Languages CS425 Fall 2013 Boris Glavic Chapter 3: Formal Relational Query Languages Relational Algebra Tuple Relational Calculus Domain Relational Calculus Textbook:

More information

Relational Algebra. Procedural language Six basic operators

Relational Algebra. Procedural language Six basic operators Relational algebra Relational Algebra Procedural language Six basic operators select: σ project: union: set difference: Cartesian product: x rename: ρ The operators take one or two relations as inputs

More information

Chapter 4: Intermediate SQL

Chapter 4: Intermediate SQL Chapter 4: Intermediate SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 4: Intermediate SQL Join Expressions Views Transactions Integrity Constraints SQL Data

More information

SQL OVERVIEW. CS121: Relational Databases Fall 2017 Lecture 4

SQL OVERVIEW. CS121: Relational Databases Fall 2017 Lecture 4 SQL OVERVIEW CS121: Relational Databases Fall 2017 Lecture 4 SQL 2 SQL = Structured Query Language Original language was SEQUEL IBM s System R project (early 1970 s) Structured English Query Language Caught

More information

SQL (Structured Query Language)

SQL (Structured Query Language) Lecture Note #4 COSC4820/5820 Database Systems Department of Computer Science University of Wyoming Byunggu Yu, 02/13/2001 SQL (Structured Query Language) 1. Schema Creation/Modification: DDL (Data Definition

More information

CS3DB3/SE4DB3/SE6M03 TUTORIAL

CS3DB3/SE4DB3/SE6M03 TUTORIAL CS3DB3/SE4DB3/SE6M03 TUTORIAL Mei Jiang Jan 30/Feb 1, 013 Outline Connecting db server ANY, ALL, IN, EXISTS Operators Set Operations Connecting db server On Campus MacSecure Connect directly MacConnect

More information

CS3DB3/SE4DB3/SE6M03 TUTORIAL

CS3DB3/SE4DB3/SE6M03 TUTORIAL CS3DB3/SE4DB3/SE6M03 TUTORIAL Mei Jiang Feb 13/15, 2013 Outline Relational Algebra SQL and Relational Algebra Examples Relational Algebra Basic Operators Select: C (R) where C is a list of conditions Project:

More information

CSCB20 Week 3. Introduction to Database and Web Application Programming. Anna Bretscher Winter 2017

CSCB20 Week 3. Introduction to Database and Web Application Programming. Anna Bretscher Winter 2017 CSCB20 Week 3 Introduction to Database and Web Application Programming Anna Bretscher Winter 2017 This Week Intro to SQL and MySQL Mapping Relational Algebra to SQL queries We will focus on queries to

More information

CSCB20 Week 4. Introduction to Database and Web Application Programming. Anna Bretscher Winter 2017

CSCB20 Week 4. Introduction to Database and Web Application Programming. Anna Bretscher Winter 2017 CSCB20 Week 4 Introduction to Database and Web Application Programming Anna Bretscher Winter 2017 Last Week Intro to SQL and MySQL Mapping Relational Algebra to SQL queries Focused on queries to start

More information

Simple SQL Queries (2)

Simple SQL Queries (2) Simple SQL Queries (2) Review SQL the structured query language for relational databases DDL: data definition language DML: data manipulation language Create and maintain tables CMPT 354: Database I --

More information

Debapriyo Majumdar DBMS Fall 2016 Indian Statistical Institute Kolkata

Debapriyo Majumdar DBMS Fall 2016 Indian Statistical Institute Kolkata SQL 3 Debapriyo Majumdar DBMS Fall 2016 Indian Statistical Institute Kolkata Slides re-used, with minor modification, from Silberschatz, Korth and Sudarshan www.db-book.com Outline Join Expressions Views

More information

Relational Algebra and SQL

Relational Algebra and SQL Relational Algebra and SQL Computer Science E-66 Harvard University David G. Sullivan, Ph.D. Example Domain: a University We ll use relations from a university database. four relations that store info.

More information

Intermediate SQL ( )

Intermediate SQL ( ) CSL 451 Introduction to Database Systems Intermediate SQL (4.1-4.4) Department of Computer Science and Engineering Indian Institute of Technology Ropar Narayanan (CK) Chatapuram Krishnan! Summary Join

More information

CS425 Fall 2017 Boris Glavic Chapter 5: Intermediate SQL

CS425 Fall 2017 Boris Glavic Chapter 5: Intermediate SQL CS425 Fall 2017 Boris Glavic Chapter 5: Intermediate SQL modified from: Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 5: Intermediate SQL Views Transactions Integrity

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe CHAPTER 6 Basic SQL Slide 6-2 Chapter 6 Outline SQL Data Definition and Data Types Specifying Constraints in SQL Basic Retrieval Queries in SQL INSERT, DELETE, and UPDATE Statements in SQL Additional Features

More information

CS425 Fall 2016 Boris Glavic Chapter 2: Intro to Relational Model

CS425 Fall 2016 Boris Glavic Chapter 2: Intro to Relational Model CS425 Fall 2016 Boris Glavic Chapter 2: Intro to Relational Model Modifies from: Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Textbook: Chapter 2 2.2 Example of a Relation

More information

Chapter 4. Basic SQL. SQL Data Definition and Data Types. Basic SQL. SQL language SQL. Terminology: CREATE statement

Chapter 4. Basic SQL. SQL Data Definition and Data Types. Basic SQL. SQL language SQL. Terminology: CREATE statement Chapter 4 Basic SQL Basic SQL SQL language Considered one of the major reasons for the commercial success of relational databases SQL Structured Query Language Statements for data definitions, queries,

More information

SQL Retrieving Data from Multiple Tables

SQL Retrieving Data from Multiple Tables The Islamic University of Gaza Faculty of Engineering Dept. of Computer Engineering Database Lab (ECOM 4113) Lab 5 SQL Retrieving Data from Multiple Tables Eng. Ibraheem Lubbad An SQL JOIN clause is used

More information

Upon completion of this Unit, students will be introduced to the following

Upon completion of this Unit, students will be introduced to the following Instructional Objectives Upon completion of this Unit, students will be introduced to the following The origins of the relational model. The terminology of the relational model. How tables are used to

More information

CS121 MIDTERM REVIEW. CS121: Relational Databases Fall 2017 Lecture 13

CS121 MIDTERM REVIEW. CS121: Relational Databases Fall 2017 Lecture 13 CS121 MIDTERM REVIEW CS121: Relational Databases Fall 2017 Lecture 13 2 Before We Start Midterm Overview 3 6 hours, multiple sittings Open book, open notes, open lecture slides No collaboration Possible

More information

An Introduction to Structured Query Language

An Introduction to Structured Query Language An Introduction to Structured Query Language Grant Weddell David R. Cheriton School of Computer Science University of Waterloo CS 348 Introduction to Database Management Spring 2012 CS 348 (Intro to DB

More information

1) Introduction to SQL

1) Introduction to SQL 1) Introduction to SQL a) Database language enables users to: i) Create the database and relation structure; ii) Perform insertion, modification and deletion of data from the relationship; and iii) Perform

More information

Relational model and basic SQL

Relational model and basic SQL Relational model and basic SQL Introduction to Database Design 2011, Lecture 2 Relational model and keys Basic SQL - Creating tables - Inserting rows - Retrieving information - Joins Overview 2 Relational

More information

An Introduction to Structured Query Language

An Introduction to Structured Query Language An Introduction to Structured Query Language Grant Weddell David R. Cheriton School of Computer Science University of Waterloo CS 348 Introduction to Database Management Spring 2012 CS 348 (Intro to DB

More information

Chapter 4: Intermediate SQL

Chapter 4: Intermediate SQL Chapter 4: Intermediate SQL Chapter 4: Intermediate SQL Join Expressions Views Transactions Integrity Constraints SQL Data Types and Schemas Authorization Joined Relations Join operations take two relations

More information

Chapter 13: Query Optimization

Chapter 13: Query Optimization Chapter 13: Query Optimization Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 13: Query Optimization Introduction Transformation of Relational Expressions Catalog

More information

Midterm Review. Winter Lecture 13

Midterm Review. Winter Lecture 13 Midterm Review Winter 2006-2007 Lecture 13 Midterm Overview 3 hours, single sitting Topics: Relational model relations, keys, relational algebra expressions SQL DDL commands CREATE TABLE, CREATE VIEW Specifying

More information

Outline. Textbook Chapter 6. Note 1. CSIE30600/CSIEB0290 Database Systems Basic SQL 2

Outline. Textbook Chapter 6. Note 1. CSIE30600/CSIEB0290 Database Systems Basic SQL 2 Outline SQL Data Definition and Data Types Specifying Constraints in SQL Basic Retrieval Queries in SQL INSERT, DELETE, and UPDATE Statements in SQL Additional Features of SQL Textbook Chapter 6 CSIE30600/CSIEB0290

More information

UNIT III INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL)

UNIT III INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) UNIT III INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) 3.1Data types 3.2Database language. Data Definition Language: CREATE,ALTER,TRUNCATE, DROP 3.3 Database language. Data Manipulation Language: INSERT,SELECT,UPDATE,DELETE

More information

CSIE30600 Database Systems Basic SQL 2. Outline

CSIE30600 Database Systems Basic SQL 2. Outline Outline SQL Data Definition and Data Types Specifying Constraints in SQL Basic Retrieval Queries in SQL INSERT, DELETE, and UPDATE Statements in SQL Additional Features of SQL CSIE30600 Database Systems

More information

An Introduction to Structured Query Language

An Introduction to Structured Query Language An Introduction to Structured Query Language Grant Weddell Cheriton School of Computer Science University of Waterloo CS 348 Introduction to Database Management Spring 2016 CS 348 (Intro to DB Mgmt) SQL

More information

Other Relational Languages

Other Relational Languages Other Relational Languages 1 Tuple Relational Calculus A nonprocedural query language, where each query is of the form {t P (t ) } It is the set of all tuples t such that predicate P is true for t t is

More information

Slides by: Ms. Shree Jaswal

Slides by: Ms. Shree Jaswal Slides by: Ms. Shree Jaswal Overview of SQL, Data Definition Commands, Set operations, aggregate function, null values, Data Manipulation commands, Data Control commands, Views in SQL, Complex Retrieval

More information

SQL - Data Query language

SQL - Data Query language SQL - Data Query language Eduardo J Ruiz October 20, 2009 1 Basic Structure The simple structure for a SQL query is the following: select a1...an from t1... tr where C Where t 1... t r is a list of relations

More information

INDEX. 1 Basic SQL Statements. 2 Restricting and Sorting Data. 3 Single Row Functions. 4 Displaying data from multiple tables

INDEX. 1 Basic SQL Statements. 2 Restricting and Sorting Data. 3 Single Row Functions. 4 Displaying data from multiple tables INDEX Exercise No Title 1 Basic SQL Statements 2 Restricting and Sorting Data 3 Single Row Functions 4 Displaying data from multiple tables 5 Creating and Managing Tables 6 Including Constraints 7 Manipulating

More information

SQL Functions (Single-Row, Aggregate)

SQL Functions (Single-Row, Aggregate) Islamic University Of Gaza Faculty of Engineering Computer Engineering Department Database Lab (ECOM 4113) Lab 4 SQL Functions (Single-Row, Aggregate) Eng. Ibraheem Lubbad Part one: Single-Row Functions:

More information

SQL: Data Manipulation Language. csc343, Introduction to Databases Diane Horton Winter 2017

SQL: Data Manipulation Language. csc343, Introduction to Databases Diane Horton Winter 2017 SQL: Data Manipulation Language csc343, Introduction to Databases Diane Horton Winter 2017 Introduction So far, we have defined database schemas and queries mathematically. SQL is a formal language for

More information

An Introduction to Structured Query Language

An Introduction to Structured Query Language An Introduction to Structured Query Language Grant Weddell Cheriton School of Computer Science University of Waterloo CS 348 Introduction to Database Management Winter 2017 CS 348 (Intro to DB Mgmt) SQL

More information

CSCB20 Week 2. Introduction to Database and Web Application Programming. Anna Bretscher Winter 2017

CSCB20 Week 2. Introduction to Database and Web Application Programming. Anna Bretscher Winter 2017 CSCB20 Week 2 Introduction to Database and Web Application Programming Anna Bretscher Winter 2017 This Week Quick Review of terminology Relational Model Continued Relational diagrams Relational operations

More information

An Introduction to Structured Query Language

An Introduction to Structured Query Language An Introduction to Structured Query Language Alexandra Roatiş David R. Cheriton School of Computer Science University of Waterloo CS 348 Introduction to Database Management Winter 2016 CS 348 SQL Winter

More information

Textbook: Chapter 4. Chapter 5: Intermediate SQL. CS425 Fall 2016 Boris Glavic. Chapter 5: Intermediate SQL. View Definition.

Textbook: Chapter 4. Chapter 5: Intermediate SQL. CS425 Fall 2016 Boris Glavic. Chapter 5: Intermediate SQL. View Definition. Chapter 5: Intermediate SQL Views CS425 Fall 2013 Boris Glavic Chapter 5: Intermediate SQL Transactions Integrity Constraints SQL Data Types and Schemas Access Control Textbook: Chapter 4 5.2 Views View

More information

More on SQL. Juliana Freire. Some slides adapted from J. Ullman, L. Delcambre, R. Ramakrishnan, G. Lindstrom and Silberschatz, Korth and Sudarshan

More on SQL. Juliana Freire. Some slides adapted from J. Ullman, L. Delcambre, R. Ramakrishnan, G. Lindstrom and Silberschatz, Korth and Sudarshan More on SQL Some slides adapted from J. Ullman, L. Delcambre, R. Ramakrishnan, G. Lindstrom and Silberschatz, Korth and Sudarshan SELECT A1, A2,, Am FROM R1, R2,, Rn WHERE C1, C2,, Ck Interpreting a Query

More information

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 7 Introduction to Structured Query Language (SQL)

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 7 Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management Tenth Edition Chapter 7 Introduction to Structured Query Language (SQL) Objectives In this chapter, students will learn: The basic commands and

More information

SQL: csc343, Introduction to Databases Renée J. Miller and Fatemeh Nargesian and Sina Sina Meraji. Winter 2018

SQL: csc343, Introduction to Databases Renée J. Miller and Fatemeh Nargesian and Sina Sina Meraji. Winter 2018 SQL: csc343, Introduction to Databases Renée J. Miller and Fatemeh Nargesian and Sina Sina Meraji Winter 2018 Introduction So far, we have defined database schemas and queries mathematically. SQL is a

More information

Introduction SQL DRL. Parts of SQL. SQL: Structured Query Language Previous name was SEQUEL Standardized query language for relational DBMS:

Introduction SQL DRL. Parts of SQL. SQL: Structured Query Language Previous name was SEQUEL Standardized query language for relational DBMS: Introduction SQL: Structured Query Language Previous name was SEQUEL Standardized query language for relational DBMS: SQL The standard is evolving over time SQL-89 SQL-9 SQL-99 SQL-0 SQL is a declarative

More information

Full file at

Full file at David Kroenke's Database Processing: Fundamentals, Design and Implementation (10 th Edition) CHAPTER TWO INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) True-False Questions 1. SQL stands for Standard

More information

CMPT 354: Database System I. Lecture 3. SQL Basics

CMPT 354: Database System I. Lecture 3. SQL Basics CMPT 354: Database System I Lecture 3. SQL Basics 1 Announcements! About Piazza 97 enrolled (as of today) Posts are anonymous to classmates You should have started doing A1 Please come to office hours

More information

Set theory is a branch of mathematics that studies sets. Sets are a collection of objects.

Set theory is a branch of mathematics that studies sets. Sets are a collection of objects. Set Theory Set theory is a branch of mathematics that studies sets. Sets are a collection of objects. Often, all members of a set have similar properties, such as odd numbers less than 10 or students in

More information

SQL STRUCTURED QUERY LANGUAGE

SQL STRUCTURED QUERY LANGUAGE STRUCTURED QUERY LANGUAGE SQL Structured Query Language 4.1 Introduction Originally, SQL was called SEQUEL (for Structured English QUery Language) and implemented at IBM Research as the interface for an

More information

Test Bank for Database Processing Fundamentals Design and Implementation 13th Edition by Kroenke

Test Bank for Database Processing Fundamentals Design and Implementation 13th Edition by Kroenke Test Bank for Database Processing Fundamentals Design and Implementation 13th Edition by Kroenke Link full download: https://testbankservice.com/download/test-bank-fordatabase-processing-fundamentals-design-and-implementation-13th-edition-bykroenke

More information

Chapter 4. Basic SQL. Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Chapter 4. Basic SQL. Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4 Basic SQL Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4 Outline SQL Data Definition and Data Types Specifying Constraints in SQL Basic Retrieval Queries

More information

Chapter 2: Relational Model

Chapter 2: Relational Model Chapter 2: Relational Model Database System Concepts, 5 th Ed. See www.db-book.com for conditions on re-use Chapter 2: Relational Model Structure of Relational Databases Fundamental Relational-Algebra-Operations

More information

Debapriyo Majumdar DBMS Fall 2016 Indian Statistical Institute Kolkata

Debapriyo Majumdar DBMS Fall 2016 Indian Statistical Institute Kolkata SQL 4 Debapriyo Majumdar DBMS Fall 2016 Indian Statistical Institute Kolkata Slides re-used, with minor modification, from Silberschatz, Korth and Sudarshan www.db-book.com Outline Join Expressions Views

More information

MySQL Views & Comparing SQL to NoSQL

MySQL Views & Comparing SQL to NoSQL CMSC 461, Database Management Systems Fall 2014 MySQL Views & Comparing SQL to NoSQL These slides are based on Database System Concepts book and slides, 6 th edition, and the 2009/2012 CMSC 461 slides

More information

CSCB20. Introduction to Database and Web Application Programming. Anna Bretscher Winter 2017

CSCB20. Introduction to Database and Web Application Programming. Anna Bretscher Winter 2017 CSCB20 Introduction to Database and Web Application Programming Anna Bretscher Winter 2017 Welcome to CSCB20 Course Description: A practical introduction to databases and Web app development. Databases:

More information

Chapter 6 Formal Relational Query Languages

Chapter 6 Formal Relational Query Languages CMSC 461, Database Management Systems Spring 2018 Chapter 6 Formal Relational Query Languages These slides are based on Database System Concepts book and slides, 6th edition, and the 2009/2012 CMSC 461

More information

2) SQL includes a data definition language, a data manipulation language, and SQL/Persistent stored modules. Answer: TRUE Diff: 2 Page Ref: 36

2) SQL includes a data definition language, a data manipulation language, and SQL/Persistent stored modules. Answer: TRUE Diff: 2 Page Ref: 36 Database Processing, 12e (Kroenke/Auer) Chapter 2: Introduction to Structured Query Language (SQL) 1) SQL stands for Standard Query Language. Diff: 1 Page Ref: 32 2) SQL includes a data definition language,

More information

Simple queries Set operations Aggregate operators Null values Joins Query Optimization. John Edgar 2

Simple queries Set operations Aggregate operators Null values Joins Query Optimization. John Edgar 2 CMPT 354 Simple queries Set operations Aggregate operators Null values Joins Query Optimization John Edgar 2 Data Manipulation Language (DML) to Write queries Insert, delete and modify records Data Definition

More information

CS425 Midterm Exam Summer C 2012

CS425 Midterm Exam Summer C 2012 Q1) List five responsibilities of a database-management system. Q2) Fill in the terms in the right hand side of the table that match the description from the list below: Instance SQL Integrity constraints

More information

SQL - Basics. SQL Overview

SQL - Basics. SQL Overview SQL - Basics Davood Rafiei 1 SQL Overview Structured Query Language standard query language for relational system. developed in IBM Almaden (system R) Some features Declarative: specify the properties

More information

Chapter 13: Query Optimization. Chapter 13: Query Optimization

Chapter 13: Query Optimization. Chapter 13: Query Optimization Chapter 13: Query Optimization Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 13: Query Optimization Introduction Equivalent Relational Algebra Expressions Statistical

More information

Query Processing & Optimization

Query Processing & Optimization Query Processing & Optimization 1 Roadmap of This Lecture Overview of query processing Measures of Query Cost Selection Operation Sorting Join Operation Other Operations Evaluation of Expressions Introduction

More information

SQL QUERIES. CS121: Relational Databases Fall 2017 Lecture 5

SQL QUERIES. CS121: Relational Databases Fall 2017 Lecture 5 SQL QUERIES CS121: Relational Databases Fall 2017 Lecture 5 SQL Queries 2 SQL queries use the SELECT statement General form is: SELECT A 1, A 2,... FROM r 1, r 2,... WHERE P; r i are the relations (tables)

More information

Carnegie Mellon Univ. Dept. of Computer Science Database Applications. General Overview - rel. model. Overview - detailed - SQL

Carnegie Mellon Univ. Dept. of Computer Science Database Applications. General Overview - rel. model. Overview - detailed - SQL Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications Faloutsos Lecture#6: Rel. model - SQL part1 General Overview - rel. model Formal query languages rel algebra and calculi Commercial

More information

Querying Data with Transact SQL

Querying Data with Transact SQL Course 20761A: Querying Data with Transact SQL Course details Course Outline Module 1: Introduction to Microsoft SQL Server 2016 This module introduces SQL Server, the versions of SQL Server, including

More information

CS34800 Information Systems. Course Overview Prof. Walid Aref January 8, 2018

CS34800 Information Systems. Course Overview Prof. Walid Aref January 8, 2018 CS34800 Information Systems Course Overview Prof. Walid Aref January 8, 2018 1 Why this Course? Managing Data is one of the primary uses of computers This course covers the foundations of organized data

More information

SQL Data Query Language

SQL Data Query Language SQL Data Query Language André Restivo 1 / 68 Index Introduction Selecting Data Choosing Columns Filtering Rows Set Operators Joining Tables Aggregating Data Sorting Rows Limiting Data Text Operators Nested

More information

Chapter 2: Intro to Relational Model

Chapter 2: Intro to Relational Model Non è possibile visualizzare l'immagine. Chapter 2: Intro to Relational Model Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Example of a Relation attributes (or columns)

More information

Announcements (September 14) SQL: Part I SQL. Creating and dropping tables. Basic queries: SFW statement. Example: reading a table

Announcements (September 14) SQL: Part I SQL. Creating and dropping tables. Basic queries: SFW statement. Example: reading a table Announcements (September 14) 2 SQL: Part I Books should have arrived by now Homework #1 due next Tuesday Project milestone #1 due in 4 weeks CPS 116 Introduction to Database Systems SQL 3 Creating and

More information

618 Index. BIT data type, 108, 109 BIT_LENGTH, 595f BIT VARYING data type, 108 BLOB data type, 108 Boolean data type, 109

618 Index. BIT data type, 108, 109 BIT_LENGTH, 595f BIT VARYING data type, 108 BLOB data type, 108 Boolean data type, 109 Index A abbreviations in field names, 22 in table names, 31 Access. See under Microsoft acronyms in field names, 22 in table names, 31 aggregate functions, 74, 375 377, 416 428. See also AVG; COUNT; COUNT(*);

More information