12 – databases: structured query language

18
Mark Dixon, SoCCE SOFT 131 Page 1 12 – Databases: Structured Query Language

Upload: pascal

Post on 07-Jan-2016

25 views

Category:

Documents


0 download

DESCRIPTION

12 – Databases: Structured Query Language. Session Aims & Objectives. Aims To introduce the fundamental ideas involved in using SQL Objectives, by end of this week’s sessions, you should be able to: Use SQL in your programs to create more complex record-sets. Example: People Database. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 1

12 – Databases: Structured Query Language

Page 2: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 2

Session Aims & Objectives• Aims

– To introduce the fundamental ideas involved in using SQL

• Objectives,by end of this week’s sessions, you should be able to:

– Use SQL in your programs to create more complex record-sets

Page 3: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 3

Example: People DatabasePersonPersonID

Surname

Forenames

Gender

Phone eMail

1 Dixon Mark Yes 01752 232556

[email protected]

2 Smith John Yes 01752 111111

[email protected]

3 Jones Sally No 01752 888888

[email protected]

4 Bloggs Fred Yes 01752 123123

[email protected]

5 Anderson Genny No 01752 987987

[email protected]

6 Smith Bob Yes 01752 898898

[email protected]

Page 4: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 4

Example: People v1• Display Surname

of all people:

<html> <head> <title></title> </head> <body> <% Const cs = "…" Dim rs Set rs = CreateObject("ADODB.Recordset") rs.Open "Person", cs Do Until rs.EOF Response.Write rs.Fields("Surname").Value & "<br>" rs.MoveNext Loop rs.Close Set rs = Nothing %> </body></html>

Page 5: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 5

Example: People v2• Display Surname

of Male people:

<html> <head> <title></title> </head> <body> <% Const cs = "…" Dim rs Set rs = CreateObject("ADODB.Recordset") rs.Open "Person", cs

Do Until rs.EOF If rs.Fields("Gender").Value = True Then Response.Write rs.Fields("Surname").Value & "<br>" End If rs.MoveNext Loop

rs.Close Set rs = Nothing %> </body></html>

Page 6: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 6

Example: People v3• Display Surname

of Male people:

<html> <head> <title></title> </head> <body> <% Const cs = "…" Dim rs Set rs = CreateObject("ADODB.Recordset") rs.Open "SELECT * FROM Person WHERE Gender = True", cs

Do Until rs.EOF Response.Write rs.Fields("Surname").Value & "<br>" rs.MoveNext Loop

rs.Close Set rs = Nothing %> </body></html>

SQL statement

Page 7: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 7

SQL: Queries• main purpose of databases:

– get information back out: searching

• Structured Query Language– dedicated to interacting with databases

• 3rd Generation Language (such as VB, C++)– code describes how to do task

• 4th Generation Language (such as SQL)– code describes what to do (not how to do it)

Page 8: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 8

SQL: SELECT statement• SELECT statement

– used to get data– can be embedded in VB, via rs.Open:

rs.Open "Person", cs

rs.Open "SELECT * FROM [Person]", cs

all fields

Page 9: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 9

SQL: WHERE & ORDER BY• WHERE clause

– used to restrict data

SELECT * FROM [People] WHERE [age]>=18;

• ORDER BY clause– used to change order of data

SELECT * FROM [People] ORDER BY [Surname];

Page 10: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 10

SQL: strings (text data)• Possible confusion:

SELECT * FROM Person WHERE Surname = Smith

this will look for field called Smith - gives error need single (SQL) quotes to signify literal text SELECT * FROM Person WHERE Surname = 'Smith'

Page 11: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 11

SQL & MS access queries• MS Access

– Queries: select data from database– really SQL select statements

– can use queries to test SQL code

MS Access: People.mdb

Page 12: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 12

Example: Music

Track Title Artist Name Country

Paranoid Black Sabbath UK

Falling in Love Aerosmith US

Pink Aerosmith US

Love in an Elevator Aerosmith US

Smooth Criminal Alien Ant Farm US

Meaning of Life Disturbed US

The Game Disturbed US

Voices Disturbed US

Down with the Sickness Disturbed US

Track

Page 13: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 13

Questions: SQL• Create an SQL

statement to extract Track Title of records by Aerosmith

Track Title Artist Name Country

Paranoid Black Sabbath UK

Falling in Love Aerosmith US

Pink Aerosmith US

Love in an Elevator Aerosmith US

Smooth Criminal Alien Ant Farm

US

Meaning of Life Disturbed US

The Game Disturbed US

Voices Disturbed US

Down with the Sickness

Disturbed US

Track

SELECT [Track Title] FROM Track WHERE [Artist Name] = 'Aerosmith';

MS Access: Music.mdb

Page 14: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 14

Questions: SQL• Create an SQL

statement to extract all fields of songs by Disturbed, ordered by track name

Track Title Artist Name Country

Paranoid Black Sabbath UK

Falling in Love Aerosmith US

Pink Aerosmith US

Love in an Elevator Aerosmith US

Smooth Criminal Alien Ant Farm

US

Meaning of Life Disturbed US

The Game Disturbed US

Voices Disturbed US

Down with the Sickness

Disturbed US

Track

SELECT * FROM Track WHERE [Artist Name] = 'Disturbed' ORDER BY [Track Title];

MS Access: Music.mdb

Page 15: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 15

Example: People v4• User controls what

is displayed:

Page 16: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 16

SQL: DISTINCT records

SELECT [Artist Name]FROM [Track];

Artist Name

Black Sabbath

Aerosmith

Aerosmith

Aerosmith

Alien Ant Farm

Disturbed

Disturbed

Disturbed

Disturbed

Artist Name

Black Sabbath

Aerosmith

Alien Ant Farm

Disturbed

SELECT DISTINCT [Artist Name]FROM [Track];

Page 17: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 17

Tutorial Exercise: People• Task 1: Get the People (versions 1, 2, & 3)

example (from the lecture) working.– Use the database you created last week.

• Task 2: Modify your code to include the phone number and email address.

• Task 3: Get the People version 4 working. You will need to:– Add a form to the page, and 3 submit buttons– In your asp code, detect when a button has been

pressed (have a look at previous weeks)

• Task 4: Modify your code so that the user can order the data by surname, or email address.– You may want to use a Query String

Page 18: 12 – Databases: Structured Query Language

Mark Dixon, SoCCE SOFT 131 Page 18

Tutorial Exercise: Music• Task 1: Create a web page to display the

music database details.

• Task 2: Modify your code so that the user is presented with a list of artists, each of which is a link. When the user clicks an artist a list of tracks by that artist is displayed.(the list of artists must be generated dynamically from the database)