Presentation is loading. Please wait.

Presentation is loading. Please wait.

SQL “Structured Query Language; standard language for relational data manipulation” DB2, SQL/DS, Oracle, INGRES, SYBASE, SQL Server, dBase/Win, Paradox,

Similar presentations


Presentation on theme: "SQL “Structured Query Language; standard language for relational data manipulation” DB2, SQL/DS, Oracle, INGRES, SYBASE, SQL Server, dBase/Win, Paradox,"— Presentation transcript:

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


Download ppt "SQL “Structured Query Language; standard language for relational data manipulation” DB2, SQL/DS, Oracle, INGRES, SYBASE, SQL Server, dBase/Win, Paradox,"

Similar presentations


Ads by Google