22
CpSc 3220 The Language of SQL Chapters 10-12

CpSc 3220 The Language of SQL

  • Upload
    river

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

CpSc 3220 The Language of SQL. Chapters 10-12. Summarizing Data. Most SQL functions apply to scalar arguments SUMMARY or AGGREGATE functions apply to rows of data. Some Aggregate Functions. DISTINCT SUM AVG MIN MAX COUNT. SQL Commands Used in Aggregations. GROUP BY HAVING. - PowerPoint PPT Presentation

Citation preview

Page 1: CpSc  3220 The Language of SQL

CpSc 3220The Language of SQL

Chapters 10-12

Page 2: CpSc  3220 The Language of SQL

Summarizing Data

• Most SQL functions apply to scalar arguments• SUMMARY or AGGREGATE functions apply to

rows of data

Page 3: CpSc  3220 The Language of SQL

Some Aggregate Functions

• DISTINCT• SUM• AVG• MIN• MAX• COUNT

Page 4: CpSc  3220 The Language of SQL

SQL Commands Used in Aggregations

• GROUP BY• HAVING

Page 5: CpSc  3220 The Language of SQL

Syntax of the SELECT statementSELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr ...] [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)] [INTO OUTFILE 'file_name' [CHARACTER SET charset_name] export_options | INTO DUMPFILE 'file_name' | INTO var_name [, var_name]] [FOR UPDATE | LOCK IN SHARE MODE]]

Page 6: CpSc  3220 The Language of SQL

Eliminating Duplicates with DISTINCT

• Some SQL statements will generate result tables that contain duplicate rows

• Adding the DISTINCT keyword immediately after the SELECT command eliminates duplicates

• Example:SELECT DISTINCT artist from

SongTitles;

Page 7: CpSc  3220 The Language of SQL

Aggregate Functions

• Most aggregate functions apply only to numeric column data– SUM– AVG– MIN– MAX– COUNT– GROUP_CONCAT

Page 8: CpSc  3220 The Language of SQL

The COUNT Function

• Three different usagesSelect count(*) from Grades;

Select count(Grade) from Grades where gradeType=‘homework’;

Select count(DISTINCT FeeType) from Fees;

Page 9: CpSc  3220 The Language of SQL

Grouping Data

• SQL allows the grouping of rows by column values

• For example, we might want to group student records by Major code and apply summary functions to each group of rows with the same Major code value

• The GROUP BY clause handles this

Page 10: CpSc  3220 The Language of SQL

GROUP BY Example

SELECT GradeType ,AVG(Grade) FROM GradesGROUP BY GradeTypeORDER BY GradeType;

Page 11: CpSc  3220 The Language of SQL

Multiple Columns and Sorting

• Groups can be based on more than one column

• Example:SELECT GradeType,Student,AVG(Grade)FROM GradesGROUP BY GradeType,StudentORDER BY GradeType,Student

Page 12: CpSc  3220 The Language of SQL

Group Conditions

• Conditions can be used for Groups but not with a WHERE clause; a HAVING clause is used instead

• Example:SELECT GradeType,Student,AVG(Grade)FROM GradesGROUP BY GradeType,StudentHAVING AVG(Grade) >= 70ORDER BY GradeType,Student

Page 13: CpSc  3220 The Language of SQL

Selection Criteria on Aggregates

SELECT colList1FROM tableListWHERE conditionForIncludionInTableGROUP BY colList2HAVING conditionForInclusionInGroupORDER BY colList3

Page 14: CpSc  3220 The Language of SQL

The Full Select Command

SELECT exp_list1FROM table_listWHERE condition_expGROUP BY exp_list2HAVING condition_expORDER BY exp_list3

Page 15: CpSc  3220 The Language of SQL

Combining Tables

• The previous slides have used the term tableList in the WHERE clause but we have only generated queries for a single table

• Tables can and will be combined in most meaningful queries

• The simplest way of combining tables is by Cartesian Product; attach every row from Table1 to every row from Table2

Page 16: CpSc  3220 The Language of SQL

Combining Tables with INNER JOIN

• ExampleSELECT colListFROM table1 INNER JOIN table2 ON joinCondition[INNER JOIN table2 ON joinCondition]. . .WHERE colListSelectionCondition

Page 17: CpSc  3220 The Language of SQL

Alternate NotationSELECT colList

FROM table1 [, table2 ] . . .WHERE joinAndColListSelectionCondition

Page 18: CpSc  3220 The Language of SQL

Combining Tales with OUTER JOIN

• OUTER JOINs allow the creation of a entry in the combined table even when a matching row is not found in one of the tables to be joined. The column entries for the missing data are all set to NULL

Page 19: CpSc  3220 The Language of SQL

LEFT OUTER JOIN

SELECT colListFROM table1 LEFT [OUTER] JOIN table2 ON joinCondition[LEFT [OUTER] JOIN table3 ON joinCondition] . . .

Page 20: CpSc  3220 The Language of SQL

RIGHT JOIN

SELECT colListFROM table1 RIGHT [OUTER] JOIN table2 ON joinCondition[RIGHT [OUTER] JOIN table3 ON joinCondition]. . .

Page 21: CpSc  3220 The Language of SQL

Table Order in OUTER JOINs

• LEFT and RIGHT and INNER JOINs can be combined in a single statement

• Be careful to make sure multiple JOINs are done in the desired sequence

• A LEFT and a RIGHT combination is a FULL JOIN

Page 22: CpSc  3220 The Language of SQL

Full Joins

• Not allowed in MySQL