Presentation is loading. Please wait.

Presentation is loading. Please wait.

Basic SQL Select Commands. Basic Relational Query Operations Selection Projection Natural Join Sorting Aggregation: Max, Min, Sum, Count, Avg –Total –Sub.

Similar presentations


Presentation on theme: "Basic SQL Select Commands. Basic Relational Query Operations Selection Projection Natural Join Sorting Aggregation: Max, Min, Sum, Count, Avg –Total –Sub."— Presentation transcript:

1 Basic SQL Select Commands

2 Basic Relational Query Operations Selection Projection Natural Join Sorting Aggregation: Max, Min, Sum, Count, Avg –Total –Sub totals: Group By Calculated field

3 Examples University database: –Student: SID, Sname, Sex, Major, GPA, FID –Account: SID, Balance –Faculty: FID, Fname, Phone –Course: CID, Cname, Credits, FID –StudentCourse: SID, CID Download the batch file Univ.SQL to create the database.

4 Selection Selection operation works on a single relation and defines a relation that contains records that satisfy the criteria.

5 Selection Syntax SELECT * FROM tableName WHERE criteria; Criteria: –=, <>,, = –(), NOT, AND, OR –BETWEEN WHERE salary BETWEEN 1000 AND 10000; –LIKE, NOT LIKE: % WHERE ename LIKE ‘C%’ –Cannot say: WHERE ename = ‘C%’ –IN, NOT IN WHERE eid IN (‘e1’,’e3’) –IS NULL WHERE rating IS NULL –Arithmetic expression in criteria: WHERE salary*0.1 < 500

6 ROWNUM Field ROWNUM field is a pseudocolumn that applies to every table even though it is not displayed through a SELECT * command. SELECT ROWNUM, empid FROM emp; SELECT * FROM emp WHERE ROWNUM < = 3;

7 Projection Projection operation works on a single relation and defines a vertical subset of the relation, extracting the values of specified attributes.

8 Projection Syntax SELECT fields FROM tableName; –Ex: SELECT empID, ename FROM Employee; Alias: Ex: SELECT eid AS empID, ename AS empName FROM emp; Projection and Selection: –SELECT fields FROM tableName WHERE criteria;

9 Duplications due to Projection StudentCourse file: SID CID ------ -------- s1 bics263 s1 acct101 s2 bics363 s2 bics464 s2 fin350 s3 bics263 SELECT sid FROM StudentCourse;

10 DISTINCT/UNIQUE SELECT DISTINCT fields FROM tableName WHERE criteria; –Ex. SELECT DISTINCT sid FROM Registration; UNIQUE –SELECT UNIQUET fields FROM tableName WHERE criteria; –Ex. SELECT UNIQUE sid FROM Registration;

11 Calculated Fields SELECT empid,ename,salary*0.1 AS tax FROM emp;

12 Oracle Functions Text functions: –UPPER, LOWER, INITCAP Ex. SELECT INITCAP(Fname) FROM Faculty; –SUBSTR(text,starting position, # of chars) –LPAD(text,length of text,padding symbol) LPAD(salary,10,’*”) –CONCAT(text1,text2) We can also use concatenation operator, || Date functions: –SYSDATE,NEXT_DAY Ex. NEXT_DAY(SYSDATE,’MONDAY’) –MONTHS_BETWEEN(date1,date2) Ex. SELECT Ename, MONTHS_BETWEEN(SYSDATE, Hire_Date) FROM Employee; –ADD_MONTHS(date,# of months added)

13 Using the SQL CASE Function SELECT sid, sname, CASE WHEN gpa < 2.0 THEN 'Poor' WHEN gpa < 3.0 THEN 'Good' ELSE 'Excellent' END AS GPAGroup FROM student;

14 Natural Join The two relations must have common attributes. Combines two relations to form a new relation where records of the two relations are combined if the common attributes have the same value. One occurrence of each common attribute is eliminated.

15 Natural Join Example Faculty File: FIDFname F1Chao F2Smith F3Boxer Student File: SIDSname FID S1PeterF1 S2PaulF2 S3SmithF1 Faculty Join Student = Note: Use RelationName.FieldName to make a field name unique.

16 Natural Join Syntax SELECT * FROM table1 NATURAL JOIN table2; –SELECT * FROM student NATURAL JOIN faculty; SELECT * FROM table1 JOIN table2 USING (join attribute); –SELECT * FROM student JOIN faculty USING (fid); SELECT * FROM table1, table2 WHERE table1.JoinAttribute = table2.JoinAttribute; –SELECT * FROM student, faculty –WHERE student.fid = faculty.fid; Table name alias: –SELECT * FROM student s, faculty f WHERE s.fid = f.fid; Note: What if the FID in the student table is named AdvisorID?

17 Other Join Syntax SELECT * –FROM student s JOIN faculty f ON s.fid=f.fid; –FROM student s INNER JOIN faculty f ON s.fid=f.fid; –FROM student JOIN faculty USING fid; Not supported by Oracle

18 Join 3 Tables Display: SID, Sname, CID, Cname, Units –SELECT SID, Sname, CID, Cname, Units –FROM student NATURAL JOIN registration –NATURAL JOIN course;

19 Sorting ORDER BY fieldName [DESC] –SELECT * FROM student ORDER BY sname; –SELECT * FROM student ORDER BY sname DESC; More than one field: –SELECT * FROM student ORDER BY major, sname; Note 1: Don’t name a table “ORDER” because ORDER is a SQL keyword. Note 2: If there is a WHERE clause, then the ORDER BY clause should be placed after the WHERE clause.

20 Aggregates SELECT AVG(fieldName) FROM tableName; –COUNT(fieldName), COUNT(*) –COUNT(DISTINCT fieldName) –MAX(fieldName) –MIN(fieldName) –SUM(fieldName) More than one aggregate: SELECT AVG(fieldName), MAX(fieldName), MIN(fieldName) FROM tableName; With alias: –SELECT AVG(gpa) AS avggpa, COUNT(sid) AS scount FROM student;

21 GROUP BY GROUP By one field: –SELECT groupingFields, function(fieldname) FROM tablename GROUP BY groupingFields; –SELECT major, count(sid) FROM student GROUP BY major; GROUP BY more than one field: –SELECT sex, major, count(sid) FROM student GROUP BY sex, major; Compute more than one subtotals: –SELECT major, count(sid), avg(gpa) FROM student –GROUP BY major Note 1: All grouping fields in the SELECT clause must be included in the GROUP BY clause). Note 2:WHERE clause must come before the GROUP BY: –SELECT major, count(sid) FROM student WHERE GPA > 3.0 GROUP BY major;

22 Compute Subtotals from a Join Compute the number of courses taken by each student: –SELECT sid, sname, COUNT(cid) FROM student NATURAL JOIN registration GROUP BY sid, sname; Compute the number of students advised by each faculty advisor: –SELECT fid, fname, COUNT(sid) –FROM faculty NATURAL JOIN student –GROUP BY fid, fname;

23 Adding a Criteria for the Sub Totals with HAVING Find majors that have at least 5 students: –SELECT major, count(sid) FROM student –GROUP BY major –HAVING count(sid) > 5; Sometime the aggregates are not required to display: –SELECT major FROM student –GROUP BY major –HAVING count(sid) > 5;

24 Examples University database: –Student: SID, Sname, Sex, Major, GPA, FID –Account: SID, Balance –Faculty: FID, Fname, Phone –Course: CID, Cname, Units, FID –Registration: SID, CID

25 Questions Q1: Display College of Business students’ ID and name. Q2: Display students’ ID and name who owe university more than $2000. Q3: Display faculty’s name and phone if the student’s GPA is lower than 2.0. Q4: Display faculty’s name and phone if the faculty advises at least 2 student. Q5: Display students’ ID and name who are taking at least 2 course. Q6: Display students’ ID and name who are taking 464 and GPA < 2.0. Q7: Display CID, Cname and the number of students in each course. Q8: Display SID, Sname, TotalUnits


Download ppt "Basic SQL Select Commands. Basic Relational Query Operations Selection Projection Natural Join Sorting Aggregation: Max, Min, Sum, Count, Avg –Total –Sub."

Similar presentations


Ads by Google