Download presentation
Presentation is loading. Please wait.
Published byAlexandrina Hubbard Modified over 9 years ago
1
SQL “Structured Query Language; standard language for relational data manipulation” DB2, SQL/DS, Oracle, INGRES, SYBASE, SQL Server, dBase/Win, Paradox, Access, and others all rely upon SQL
2
Introduction to SQL IBM in the mid-1970s as SEQUEL SQ92 = 1992 ANSI standard [a newer standard exists for SQL to extend it to object- oriented languages] data access language that is embedded in application programs result of an SQL statement is a relation
3
many vendors go beyond the ANSI standards for SQL because they want to better position their product in relation to their competitors consequently there are minor variations among vendors
4
stand-alone –SQL can be used by itself to retrieve and report information embedded –SQL is frequently embedded in application programs SQL is not a programming language
5
Sample Data STUDENT Relation ENROLLMENT Relation CLASS Relation
6
Simple Select SELECT SID, Name, Major FROM STUDENT STUDENT Relation
7
SELECT Major FROM STUDENT SELECT DISINCT Major FROM STUDENT STUDENT Relation as opposed to
8
SELECT DISINCT Major FROM STUDENT
9
Selection SELECT SID, Name, Major, GradeLevel, Age FROM STUDENT WHERE Major = ‘MATH’ STUDENT Relation
10
SELECT SID, Name, Major, GradeLevel, Age FROM STUDENT WHERE Major = ‘MATH’
11
Selection SELECT SID, Name, Major, GradeLevel, Age FROM STUDENT WHERE Major = ‘MATH’ AND Age>21 STUDENT Relation
12
SELECT SID, Name, Major, GradeLevel, Age FROM STUDENT WHERE Major = ‘MATH’ AND Age>21
13
Selection SELECT SID, Name, Major, GradeLevel, Age FROM STUDENT WHERE GradeLevel IN [‘FR’, ‘SO’] STUDENT Relation What about NOT IN ?
14
SELECT SID, Name, Major, GradeLevel, Age FROM STUDENT WHERE GradeLevel IN [‘FR’, ‘SO’]
15
Selection SELECT Name FROM STUDENT WHERE Name LIKE ‘R%’ STUDENT Relation % is a wildcard match, like * is a wildcard match _ (the underscore symbol) is for a character-by-character match
16
Sorting SELECT Name, Major, Age FROM STUDENT WHERE Major = ‘ACCOUNTING’ ORDER BY Name STUDENT Relation
17
SELECT Name, Major, Age FROM STUDENT WHERE Major = ‘ACCOUNTING’ ORDER BY Name
18
Sorting SELECT Name, Major, Age FROM STUDENT WHERE Major = ‘ACCOUNTING’ ORDER BY Name DESC STUDENT Relation ASC is for ascending
19
SQL Built-In Functions there are five –COUNT –SUM [only applies to numeric fields] –AVG [only applies to numeric fields] –MIN –MAX
20
SQL Built-In Functions SELECT COUNT(Major) FROM STUDENT SELECT COUNT(DISTINCT Major) FROM STUDENT yields 8 as the answer yields 3 as the answer
21
SELECT COUNT(DISTINCT Major) FROM STUDENT
22
Grouping SELECT Major, COUNT(*) FROM STUDENT GROUP BY Major HAVING COUNT(*) > 1 FROM and WHERE go together and GROUP BY and HAVING go together
23
Querying Multiple Tables Retrieval Using Subquery Joining with SQL
24
what are the names of students in BD445? ENROLLMENT Relation CLASS Relation STUDENT Relation
25
Subquery (the second SELECT) SELECT Name FROM STUDENT WHERE SID IN (SELECT StudentNumber FROM ENROLLMENT WHERE ClassName = ‘BD445’) this SELECT yields 100 and 200 so this SELECT yields Jones and Baker
26
Joining with SQL SELECT STUDENT.SID, STUDENT.Name, ENROLLMENT.ClassName FROM STUDENT, ENROLLMENT WHERE STUDENT.SID = ENROLLMENT.StudentNumber column names are unique within a table but it helps to ‘fully qualify’ a column name when more than one table is targeted by the FROM parameter students not in a class don’t get reported, why? in a JOIN always look to match the common column values
27
SELECT STUDENT.SID, STUDENT.Name, ENROLLMENT.ClassName FROM STUDENT, ENROLLMENT WHERE STUDENT.SID = ENROLLMENT.StudentNumber
28
What Is The Answer To This Query? SELECT SID, Name FROM STUDENT WHERE SID NOT IN (SELECT DISTINCT StudentNumber FROM ENROLLMENT) what is this query really asking? why is DISTINCT used?
29
Inserting Data INSERT INTO ENROLLMENT VALUES (400, ‘BD445’, 44) you must know both the field order and field type; text fields require surrounding apostrophes to insert a STUDENT record where you don’t know the Major or GradeLevel INSERT INTO STUDENT VALUES (500, ‘Hamilton’,,, 45) notice the empty positions will place null values in the table key values must always be entered
30
Modifying Data UPDATE ENROLLMENT SET PositionNumber = 44 WHERE SID = 400 be careful of wildcard matches
31
Deleting Data DELETE STUDENT WHERE STUDENT.SID = 100 probably the most dangerous SQL statement
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.