Revision sql te it new syllabus
-
Upload
saurabhshertukde -
Category
Technology
-
view
787 -
download
0
description
Transcript of Revision sql te it new syllabus
![Page 1: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/1.jpg)
1
SQL
Chapter 8
![Page 2: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/2.jpg)
2
Outline
• Data types
• DDL
• Views
• DML
![Page 3: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/3.jpg)
3
One preliminary note..
• SQL is case insensitive!! CREATE TABLE = create table = CreAte TAblE
• Quoted text, however, is case sensitive “Payroll” != “payroll”
![Page 4: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/4.jpg)
4
Data Types
• Each data item has an associated data type – Integer, Char, Date …
• the data type determines the range of values & the set of operators and functions that apply to it.
![Page 5: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/5.jpg)
5
Data Types (choose carefully!)
Data Types
BinaryString
CharacterString DateTime Numeric
BLOB
date time timestamp
CHAR
VARCHAR
CLOB
UDT
INT DECIMAL
![Page 6: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/6.jpg)
6
Data Types
• Some data types require additional information– decimal(p, s) with precision p & scale s– char(n) where n is the (fixed) length of the
string– varchar(n) where n is the max characters in
the string– ……..
![Page 7: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/7.jpg)
7
2 Basic SQL Classes
• DDL = Data Definition Language
• DML = Data Manipulation Language
![Page 8: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/8.jpg)
8
SQL DDL Operations...
• CREATE– CREATE <database object>
• database, table, index, schema, view, alias, trigger
• DELETE– DROP <database object>
• database, table, index, schema, view, alias, trigger,
• MODIFY– ALTER <database object> …
• table
![Page 9: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/9.jpg)
9
Create TableCREATE TABLE student (
Number INTEGER,
Name VARCHAR(50),
Street VARCHAR(20),
City VARCHAR(20),
PostalCode CHAR(7),
Date_of_birth DATE);
Create Table is the most fundamental DDL statement in SQL
![Page 10: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/10.jpg)
10
CREATE TABLE student ( Number INTEGER,Name VARCHAR(50),Street VARCHAR(20), City VARCHAR(20),PostalCode CHAR(7),Date_of_birth DATE,PRIMARY KEY (Number));
• many attributes can have unique constraints but there is only one primary key.
Primary Keys
![Page 11: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/11.jpg)
11
Primary Keys (cont’d)
•The primary key can be defined immediately after the attribute if it is a single attribute primary key.
CREATE TABLE student ( Number INTEGER PRIMARY KEY ,Name VARCHAR(50) NOT NULL,Street VARCHAR(20), City VARCHAR(20) NOT NULL,Postal Code CHAR(7) NOT NULLDate_of_birth DATE NOT NULL);
![Page 12: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/12.jpg)
12
Foreign KeysCREATE TABLE Projects(
Code CHAR(4) PRIMARY KEY, Name VARCHAR(30) NOT NULL, Start_date Date, End_Date Date, dnum INTEGER,
FOREIGN KEY (dnum) REFERENCES Department);
• The table referenced by a foreign key must have already been created
• If it hasn’t been, you can alter the table later to include the foreign key. This solves the “circular reference” problem.
![Page 13: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/13.jpg)
13
Default Values CREATE TABLE faculty(
Number INTEGER NOT NULL PRIMARY KEY, Name VARCHAR(50) NOT NULL, Rank VARCHAR(15) default “Assistant”,Phone VARCHAR(15), Office VARCHAR(10),Email VARCHAR(30),Dcode CHAR(4)REFERENCES department);
• A default value can be specified for an attribute if its value is unknown
• Note: a default value cannot be used for a primary key…why not?
![Page 14: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/14.jpg)
14
Dropping an Object (con’t)
• When dropping an object, you may affect other objects that depend on it. – Eg. A view is defined using one or several
base tables. If one of these base tables is dropped, the view is no longer valid.
• In some cases, the system repairs the damage, in other cases you may not be allowed to drop an object.
![Page 15: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/15.jpg)
15
Modifying An Object
• ALTER can be used to add columns, to increase the length of an existing VARCHAR attribute or to add or delete constraints
• In other cases, you need to drop the table & recreate it.
ALTER TABLE courseADD status CHAR(5);
ALTER TABLE faculty MODIFY email VARCHAR(75);
ALTER TABLE faculty DROP PRIMARY KEY;
![Page 16: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/16.jpg)
16
Views
• Views are “virtual” tables derived from tables which exist in the database.
• Might be defined to omit some data from a table (for privacy), to combine two (or more tables) to contain summary data.
![Page 17: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/17.jpg)
17
Views• we say that the tables defined in the schema
are base tables• eg. course, section, faculty, department
• a view is a virtual table (ie. it does not physically exist in the database)– derived from one or more base tables– adapts the DB to the application without
modification– CREATE VIEW V1 AS <SELECT CLAUSE>
![Page 18: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/18.jpg)
18
Student ( number, street, city, province, postal_code, name, date_of_birth)
Faculty (number, name, rank, phone, office, email, dcode, salary)
Department (code, name, start_date, end_date, fnum)
Section (number, cnum, dcode, term, slot, faculty_num)
Course (number , dcode, title, description)
Enrolled (student_num, section_num, cnum, dcode)
Dept_phones (dcode, phone_number)
![Page 19: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/19.jpg)
19
• thirdOffered is a window on the course table– changes to course are visible in thirdOffered– changes to thirdOffered are applied to base
tables
CREATE VIEW thirdOffered ASSELECT number, dcode FROM courseWHERE number >=3000AND number <= 3999
• Create a view thirdOffered which gives the dcode & couses whose number lise between 3000 & 3999
![Page 20: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/20.jpg)
20
• ClassList is a window on a join between student and enrolled– changes to either table are visible in ClassList– changes to ClassList cannot be applied to base tables
CREATE VIEW ClassList ASSELECT student.Number, student.NameFROM student, enrolledWHERE student_num = numberAND cnum = 3753AND section_num = ‘X1’
• Create a view ClassList which gives student number and name those who are enrolled for the course 3753 and section ‘X1’.
![Page 21: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/21.jpg)
21
Querying Views
SELECT *FROM thirdOfferedWHERE dcode=‘COMP’
SELECT number, dcodeFROM courseWHERE number >=3000AND number <= 3999AND dcode=‘COMP’
Implemented As
![Page 22: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/22.jpg)
22
Advantages of Views• allows same data to be seen in different
ways by different users
• users perception of DB simplified– complex tables are reduced to needed data
• automatic security for data outside view– confidential data is left out of the view, making
it “secure” for people to see the needed info
![Page 23: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/23.jpg)
23
View Update Problem
![Page 24: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/24.jpg)
24
Example 1
INSERT INTO thirdOfferedVALUES (3754, ‘COMP’)
INSERT INTO course VALUES (3754, ‘COMP’, NULL, NULL)
![Page 25: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/25.jpg)
25
Example 2
CREATE VIEW offered ASSELECT numberFROM course
WHERE dcode = ‘COMP’
INSERT INTO offeredVALUES (3754)
What happens if we perform
![Page 26: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/26.jpg)
26
Updating Views
• Is somewhat complicated – sometimes you can do it, and sometimes you can’t.
• Generally, an update to a view from a single table with no aggregate functions and including the primary (or candidate) keys is possible.
• Constraints concerning not null fields may cause the view update to fail.
![Page 27: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/27.jpg)
27
Updating Views (cont’d)
• Views created from two or more tables involving a join cannot be updated.
• Views containing aggregate functions or grouping cannot be updated.
![Page 28: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/28.jpg)
28
DML
![Page 29: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/29.jpg)
29
Our database (simple version)Student ( number, street, city, province, postal_code,
name, date_of_birth)
Faculty (number, name, rank, phone, office, email, dcode, salary)
Department (code, name, start_date, end_date, fnum)
Section (number, cnum, dcode, term, slot, faculty_num)
Course (number , dcode, title, description)
Enrolled (student_num, section_num, cnum, dcode)
Dept_phones (dcode, phone_number)
![Page 30: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/30.jpg)
30
DML - Data Manipulation Language
• 4 main SQL statements:
– INSERT– UPDATE– DELETE– SELECT
![Page 31: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/31.jpg)
31
INSERT
INSERT INTO course VALUES (3753, ‘COMP’, ‘DBMS’, ‘Database Management Systems’)
INSERT INTO course (number, dcode, title) VALUES (3753, ‘COMP’, ‘DBMS’)
INSERT INTO course (number, dcode, title) VALUES (3753, ‘COMP’, ‘DBMS’), (3713, ‘COMP’, ‘OS’)
INSERT INTO course VALUES (&number, &dcode, &title, &description)
![Page 32: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/32.jpg)
32
UPDATE
UPDATE course SET description = ‘A fun course!’
WHERE title = ‘DBMS’
UPDATE course SET description = ‘A fun course!’
WHERE number = 3753 AND dcode = ‘COMP’
![Page 33: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/33.jpg)
33
DELETE
DELETE FROM course•deletes the whole table
DELETE FROM course where dcode=‘HIST’•deletes the tuples where dcode=‘HIST’
![Page 34: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/34.jpg)
34
Queries (SELECT)
• Retrieval of some information from the database
• Result Set contains the “answer” for the query.
• Result “Sets” can contain duplicate rows• Single value Result Sets are considered to
be one row with one column• Result Sets can be empty
![Page 35: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/35.jpg)
35
Simple Format
SELECT <columns>FROM <tables>WHERE <condition>
Where:•Columns = list of attributes to be retrieved•Tables = list of relations needed to process the query•Condition = a boolean expression that identifies which tuples are to be retrieved
![Page 36: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/36.jpg)
36
Example
SELECT <columns>FROM <tables>WHERE <condition>
Example:
SELECT title, descriptionFROM courseWHERE dcode=‘COMP’
![Page 37: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/37.jpg)
37
Important to note ..
• SQL allows duplicate tuples in the result set
• For example, retrieving “cnum” and “dcode” from Section, we will get identical tuples for courses with multiple sections.
![Page 38: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/38.jpg)
38
Important Note #2
• If you are trying to select on a field where the data type is VARCHAR(), then this select will do:– SELECT * FROM t1 WHERE name=‘BOB’
• If you are trying to select on a field where the data type is CHAR(5), then this select will do:– SELECT * FROM t1 WHERE name=‘BOB ’
![Page 39: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/39.jpg)
39
Important Note #3
• Remember that selects on CHAR and VARCHAR types are case sensitive. The SELECTS:– SELECT * FROM t1 WHERE name=‘BOB’– SELECT * FROM t1 WHERE name=‘Bob’– SELECT * FROM t1 WHERE name=‘BoB’
• are all different to the DBMS.
![Page 40: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/40.jpg)
40
Example 1
List course number, department code, title and description of each course.
SELECT *FROM course
SELECT number, dcode, title, descriptionFROM course
![Page 41: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/41.jpg)
41
Example 2
Find the faculty number and name of each faculty member in Computer Science with the rank of “Assistant”
SELECT number, nameFROM facultyWHERE dcode = ‘COMP’ and rank = ‘Assistant’
![Page 42: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/42.jpg)
42
Example #3
Which computer science courses are being taught in the second term?
SELECT cnumFROM sectionWHERE dcode = ‘COMP’ and term = ‘X2’
![Page 43: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/43.jpg)
43
Aggregate Functions
• Aggregate functions cannot be expressed in regular relational algebra.
• Aggregate functions include simple mathematical functions that are useful in a DBMS environment such as:– sum, average, maximum, minimum, count
![Page 44: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/44.jpg)
44
Aggregate Functions (cont’d)
Find the average salary of associate professors.
SELECT AVG(salary) AS AverageSalaryFROM facultyWHERE rank=‘Associate’
•The result has one column called “AverageSalary” with only one tuple.
![Page 45: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/45.jpg)
45
Aggregate Functions (con’t)
How many professors make more than $30,000?
SELECT COUNT(*) as NumProfsFROM facultyWHERE salary > 30000
•The result has one column called “NumProfs” with only one tuple.
![Page 46: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/46.jpg)
46
Aggregate Functions (con’t)
How many different salary levels are paid to assistant professors?
SELECT COUNT(DISTINCT salary)FROM facultyWHERE rank = ‘Assistant’
•The result will be one column (which is nameless) with one tuple.
![Page 47: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/47.jpg)
47
Grouping• Sometimes useful to group rows of a table
together then apply a function to each group separately
• select rank wise minimum, maximum and avg salary of faculty
SELECT rank, AVG(salary) AS AV, MIN(salary)AS MinSalary, MAX(salary) AS MaxSalary FROM facultyGROUP BY rank
• The result has 4 columns (rank, AV, MinSalary, MaxSalary) and one tuple for each rank.
![Page 48: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/48.jpg)
48
SELECT rank, AVG(salary) AS AV, MIN(salary) AS MinSalary, MAX(salary) AS MaxSalary
FROM facultyWHERE dcode = ‘comp’GROUP BY rankHAVING AV > 10000;
• select rank wise minimum, maximum and avg salary of comp department faculties and their avg salary is greater than 10000.
![Page 49: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/49.jpg)
49
Expressions in SELECT
• What is the difference between the start and end dates in the department table?
SELECT sdate, edate, (edate-sdate) AS TimeDiffFROM department•The result has 3 attributes (sdate, edate,
timeDiff)•timeDiff is returned in a 8 digit number where
the first 4 digits are the years, the next two are the months, and the final two are the days.
![Page 50: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/50.jpg)
50
The “Like” Predicate
Retrieve the average salary of professors with offices in Carnegie Hall.
SELECT AVG(salary) AS CSalaryFROM facultyWHERE office LIKE ‘CAR%’
![Page 51: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/51.jpg)
51
Sorting• rows of result relation can be sorted by
values in one or more columns
SELECT name, salaryFROM facultyWHERE salary > 40000ORDER BY salary
![Page 52: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/52.jpg)
52
Sorting
Show all salaries less than 40000. Sort the output according to salary.
SELECT *FROM facultyWHERE salary < 40000ORDER BY salary
Lowest to Highest Highest to Lowest
SELECT *FROM facultyWHERE salary < 40000ORDER BY salary DESC
![Page 53: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/53.jpg)
53
“IN”
• The “IN” clause is useful as it allows us to match up on a set of data rather than just a single piece of data.
• Assuming that the subquery will return more than one item, we can match on anything in the subquery.
![Page 54: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/54.jpg)
54
Retrieval Using a Subquery
SELECT name, salaryFROM facultyWHERE number IN
(SELECT fnum FROM department)
• Find Name & Salary of all department heads
![Page 55: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/55.jpg)
55
“EXISTS”
• We can check to see if a row exists in a subquery.
• The subquery does not return any values – only the existence of the row is checked.
• We can also use “NOT EXISTS” when the cases arises.
![Page 56: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/56.jpg)
56
EXISTS
• List the name, number and salary of all professors who are not department heads.
SELECT name, number, salaryFROM facultyWHERE NOT EXISTS
(SELECT *FROM departmentWHERE fnum = faculty.number)
![Page 57: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/57.jpg)
Correlated subqueries• A correlated sub-query is a sub-query (a query nested
inside another query) that uses values from the outer query in its WHERE clause. The sub-query is evaluated once for each row processed by the outer query.
• Example• Find the list of employees (employee number and names)
having more salary than the average salary of all employees in that employee's department.
57
SELECT employee_number, name FROM employee AS e1 WHERE salary > (SELECT avg(salary) FROM employee WHERE department = e1.department);
![Page 58: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/58.jpg)
• In the above query the outer query is
58
SELECT employee_number, name FROM employee AS e1 WHERE salary >
• And the inner query is,
(SELECT avg(salary) FROM employee WHERE department = e1.department);
• In the above nested query the inner query has to be executed for every employee as the department will change for every row.• Hence the average salary will also change.
![Page 59: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/59.jpg)
59
Join
Find Name & Salary of all department heads
SELECT name, salaryFROM faculty, departmentWHERE faculty.number = department.fnum
For a join, you need to specify all the tables which you will use in getting the information.
![Page 60: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/60.jpg)
60
Join (con’t)
Find the course title, number and section for all sections taught by department heads.
SELECT course.title, section.number, course.number,course.dcode, faculty.name
FROM section, course, department, faculty
WHERE section.cnum = course.number AND section.dcode = department.dcode AND department.fnum = faculty.number
![Page 61: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/61.jpg)
61
Renaming (Aliasing)
Find the course title, number and section for all sections taught by department heads.
SELECT C.title, S.number, C.number,C.dcode, F.name
FROM section as S, course as C, department as D, faculty as F
WHERE S.cnum = C.number AND S.dcode = D.dcode AND D.fnum = F.number
![Page 62: Revision sql te it new syllabus](https://reader033.fdocuments.net/reader033/viewer/2022061219/54b92b194a79598b478b46f8/html5/thumbnails/62.jpg)
62
Set Operations
• Set operations DO exist in SQL– UNION– INTERSECT– EXCEPT (difference)