banner and the sql select statement: part one (a first example)
DESCRIPTION
Banner and the SQL Select Statement: Part One (A First Example). Mark Holliday Department of Mathematics and Computer Science Western Carolina University 30 September 2005 and 7 October 2005 (updated: 2 November 2005). Acknowledgements. - PowerPoint PPT PresentationTRANSCRIPT
Banner and the SQL Select Statement: Part One (A First Example)
Mark HollidayDepartment of Mathematics and
Computer ScienceWestern Carolina University
30 September 2005 and 7 October 2005(updated: 2 November 2005)
Acknowledgements
Thanks to Lynn Franz and Stan Hammer for their suggestions, slides, handouts, and time.
Thanks to Larry Hammer for suggesting this project.
Presentation Slides
http://cs.wcu.edu/~holliday/LectureNotes/Banner/BannerSqlSelectPart1.ppt
Outline
The Goal The Concepts
A First Example Single Table Selects Joins Multiple Connected Select Statements
The Goal
Generate a report that answers a question about the data in Banner.
Banner => Query => Report
A First Example
Outline The Relational Model: Single Table Lab 1: TOAD, Schema Browser Some Structured Query Language (SQL)
Basics Lab 2: TOAD, SQL Editor
Single Table Selects
Outline WHERE clause: single condition, multiple
conditions Lab 3: Order By; Aggregate Functions Lab 4: Group By; Having Lab 5:
Joins
Outline Why multiple tables? Inner Joins Lab 6: Outer Joins Lab 7:
Multiple Connected Select Statements
Outline Set Operators Lab 8: Subqueries
Use directly: FROM clause Use as a set: new operators Use as a single value: aggregate functions
Lab 9: A Query Development Methodology
The Relational Model: Single Table
Banner is a database application running on Oracle.
Oracle is a Relational Database Management System (RDBMS)
A RDBMS implements the relational model.
RDBMSRDBMS Flavors??? (Franz/Hammer/Holliday)
Ingres,
Postgres
Oracle
MS Access
DB2, Informix
Microsoft SQL Server
ANSI SQL/92ANSI SQL/92
MySQL
Relational Database Model (Hammer)
Relational comes from set theory’s relation
2127JamisonErnie2
3210ChamberlinBrian3
2929HammerStan1
PhoneLastName
FirstName
ID Sets are called tables (or relations) and table elements are rows; rows consists of columns (or attributes)
Set of
Employees
i.e. all rows inEmployeetable
EMPLOYEE TABLE
A sample table structure:A sample table structure: (Franz)(Franz)
Constraints Constraints (Franz)(Franz)
What are (column) constraints?
A constraint is basically a rule associated with a column that the data entered into that column must follow.
When tables are created, it is common for one or more columns to have constraints associated with them.
Various constraints can be placed upon the individual columns.
Constraints Constraints (Franz)(Franz)
The three most common constraints are:
• "unique" -- specifies that no two records can have the same value in a particular column; they must all be unique
• "not null" -- specifies that a column can't be left blank
• "primary key" -- defines a unique identification of each record (or row) in a table
Some Banner Tables Some Banner Tables (Franz)(Franz)
Telephone Info
SPRTELE
Personal Info
SPBPERS
Addresses
SPRADDR
People(students, staff, faculty)
SPRIDENUnique identifier - PIDM
People(students, staff, faculty)
SPRIDENUnique identifier - PIDM
Addresses
SPRADDR
Personal Info
SPBPERS
Telephone Info
SPRTELE
Advantages of relational databases are:Advantages of relational databases are: (Franz/Hammer)(Franz/Hammer)
Built-in multilevel integrity Duplicates are removed Primary keys are enforced Valid relationships between tables
Logical and Physical data independence from the database applications
Changes to logical database design and/or changes by vendor to the database’s physical implementation do NOT adversely affect applications built upon it
Advantages of relational databases (cont.)Advantages of relational databases (cont.) (Franz/Hammer)(Franz/Hammer)
Data consistency and accuracyYou can impose various levels of
integrity within the database
Easy data retrievalInformation can be viewed in an almost
unlimited number of ways [either from one table or multiple related tables]
Laboratory One
Objectives: See TOAD
(Tool for Oracle Application Development)
Schema Browser Steps
Starting Toad Overall Appearance Using the Schema Browser
Laboratory One: Starting Toad
Desktop Icon or Start, Programs, Quest Software, TOAD
Useful Documents: Toad User’s Guide Toad Getting Started Guide shortcuts not currently working
Connect to the Banner database TRNG data set TRAINXX username
Laboratory One: Starting Toad
Connect to Banner RDBMS TRNG database TRAINXX username
Once in Banner do File/End Connection File/Start Connection
Laboratory One: Appearance
Your new home! Lots of stuff! Three key tools are opened by default
SQL Editor (top window in middle) discussed in the later laboratories
SQL Modeler (underneath window in middle) used to graphically create a SQL statement not discussed further
Schema Browser (right side)
Laboratory One: Appearance
Minimize or close the SQL Editor and SQL Modeler
Maximize the Schema Browser two panes appear two text fields above the left pane
Top left text field specifies the table owner defaults to TRAINxx no tables shown
Laboratory One: Schema Browser
Change table owner to SATURN main table owner in Banner many tables are now listed in the left pane in
alphabetical order Second text field is used to narrow the list of
tables shown in the left pane * is the wildcard that matches any string
=> all tables listed
Laboratory One: Schema Browser
Change the second text field to S* the left pane now only lists the tables owned by
SATURN that start with a S character
In the left pane select the SPRIDEN table the right pane now shows information about this
table many tabs (focus on just a few)
Laboratory One: Schema Browser
Default right pane tab: Columns shows the table structure row for each column in the table column name, data type, whether can be null, …
Data tab: the data (row values) in the current instance of the SPRIDEN table
Minimize or close the schema browser
Laboratory One: SQL Editor
Maximize the SQL Editor window Alternatively, open from the Database tab
along the top of the Toad window
top pane is where you enter a SQL statement press the Execute Current Stmt icon
leftmost icon in toolbar (looks like a page) The result set (table) appears in the bottom
pane
WHAT IS SQL? (Hammer)
Structured Query Language to create and manipulate data
Query language of relational databases Pronounced: “es queue el” Commonly: “sequel” Ubiquitous, de facto standard
SQL (Hammer)
Set-based language Can operate on an entire table, or multiple
tables all at once Declarative Language (non-procedural);
express what you want without details about where or how data is located
SQL is Not a procedural language Use PL-SQL or Visual Basic w/SQL
A Procedural Language is a computer language where the programmer specifies an explicit sequences of steps to follow to produce a result
Using SQL
Stand-alone SQL statements issue explicitly report generation ---- US!
Embedded within a Host Language needed sometimes (cursors) Oracle: PL/SQL Java/JDBC (Java DataBase Connectivity)
SQL Statements: Sublanguages (Franz)
DDL ( Data Definition Language )
1. create and destroy databases2. create and destroy database objects
(tables)3. alter tables
DML ( Data Manipulation Language ) --- US!
DDL (Data Definition Language) DDL (Data Definition Language) (Franz/Holliday)(Franz/Holliday)
CREATE DATABASE Banner
This statement creates an empty database named "employees" on your DBMS (DataBase Management System).
CREATE TABLE spriden (spriden_first_name varchar2(15), spriden_last_name varchar2(60) not null, spriden_pidm number(8, 0) not null)
Data Types Data Types (Franz/Hammer)(Franz/Hammer)
Number value with a maximum number of digits of "size" total, with a maximum number of "d" digits to the right of the decimal.
number(size,d)
Date value date
Number value with a max number of column digits specified in parenthesis.
number(size)
Variable-length character string. Max size is specified in parenthesis.
varchar(size)
Fixed-length character string. Size is specified in parenthesis. Max 255 bytes.
char(size)
DDL continued….. DDL continued….. (Franz/Holliday)(Franz/Holliday)
DROP TABLE spriden
DROP DATABASE banner
These last two commands are dangerous!
(You will not be using any of these commands in Banner except possibly with views which will be discussed much later)
Some SQL Basics DDL ( Data Definition Language )
1. DML ( Data Manipulation Language ) types of updates
insert delete modify
retrieve (read-only; select statement) -- US!
DML (Data Manipulation Language)DML (Data Manipulation Language)
INSERT INTO spriden
(spriden_pidm, spriden_first_name, sprident_last_name, spriden_mi)
values (12345678, ‘john’, ‘smith’, null)
DML (Data Manipulation Language)DML (Data Manipulation Language)
DELETE FROM spriden SWHERE S.spriden_last_name = ‘Jones’
UPDATE spriden SSET S.spriden_last_name = ‘Thompson’WHERE S.spriden_pidm = 12345678
DML: SELECT Statement DML: SELECT Statement (Franz)(Franz)
SELECT [ALL | DISTINCT] column1[,column2]
FROM table1[,table2]
[WHERE "conditions"]
[GROUP BY "column-list"]
[HAVING "conditions”]
[ORDER BY "column-list" [ASC | DESC] ]
SELECT [ALL | DISTINCT] (franz)
SELECT spriden_last_name FROM spriden
This statement would retrieve all the last names in spriden.
If ‘distinct’ was omitted, (i.e., ALL was the default) these records might appear:
SELECT DISTINCT spriden_last_name FROM spriden
Conversely, if ‘distinct’ was specifically used, duplicate records would disappear:
Wilson
Wilson
Thompson
Smith
Smith
Smith
Jones
spriden_last_name
Wilson
Thompson
Smith
Jones
spriden_last_name
SELECT * (franz)
Asterisk is used as a wildcard.The statement below will select all columns and rows in our table.
SELECT *FROM stvethn
Below is a subset of the data returned from this query:
…Asian or Pacific Islander O
……
Amer Indian/Alaskan Native I
…White, Not of Hispanic OriginW
…STVETHN_DESC STVETHN_CODE
SELECT Statement (franz)SELECT Statement (franz)
SELECT "column_name" FROM "table_name"
As we saw previously, the SELECT keyword allows us to grab all information from a column (or columns) on a table. Depending upon how the data is structured, there may be redundancies. To select each DISTINCT element, we add DISTINCT after SELECT.
SELECT DISTINCT "column_name" FROM "table_name"
Laboratory Two: Simple Select
Objectives: Lean to use the TOAD SQL Editor on a simple
select statement
Steps Starting the SQL Editor Six example select statements
Laboratory Two: SQL Editor
Maximize the SQL Editor window Alternatively, open from the Database tab
along the top of the Toad window
top pane is where you enter a SQL statement press the Execute Current Stmt icon
leftmost icon in toolbar (looks like a page) The result set (table) appears in the bottom
pane
Laboratory Two: SQL Editor
English Query: “Find the last names of all people.”
Enter in top pane Press the Execute One Stmt icon Observe result in bottom pane
Laboratory Two: SQL Editor
SQL Query (first version):select saturn.spriden.spriden_last_namefrom saturn.spriden;
Laboratory Two: SQL Editor
Second version:
select spriden.spriden_last_namefrom spriden;
Third version:
select s.spriden_last_namefrom spriden s;
Laboratory Two: SQL Editor
fourth version:
select spriden_last_namefrom spriden;
a related, but different, query:
select distinct spriden_last_namefrom spriden;
Laboratory Two: SQL Editor
Another example sql statement:
select * from stvethn;
Single Table Selects
Outline WHERE clause: single condition, multiple
conditions Lab 3: Aliases; Order By; Aggregate Functions Lab 4: Group By; Having Lab 5:
Joins
Outline Why multiple tables? Inner Joins Lab 6: Outer Joins Lab 7:
Multiple Connected Select Statements
Outline Set Operators Lab 7: Subqueries
Use directly: FROM clause Use as a set: new operators Use as a single value: aggregate functions
Lab 8: