M1G Introduction to Database Development

Slides:



Advertisements
Similar presentations
Session 4 SQL Structured Query Language. SQL Modes of use –Interactive –Embedded Purpose –Create database –Create, Read, Update, Delete.
Advertisements

Structured Query Language Part I Chapter Three CIS 218.
Introduction to Structured Query Language (SQL)
Concepts of Database Management Sixth Edition
Microsoft Access 2010 Chapter 7 Using SQL.
DAY 21: MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Akhila Kondai October 30, 2013.
Relational DBs and SQL Designing Your Web Database (Ch. 8) → Creating and Working with a MySQL Database (Ch. 9, 10) 1.
Chapter 3 Single-Table Queries
Microsoft Access 2010 Chapter 7 Using SQL. Change the font or font size for SQL queries Create SQL queries Include fields in SQL queries Include simple.
Analyzing Data For Effective Decision Making Chapter 3.
SQL: Data Manipulation Presented by Mary Choi For CS157B Dr. Sin Min Lee.
1 Single Table Queries. 2 Objectives  SELECT, WHERE  AND / OR / NOT conditions  Computed columns  LIKE, IN, BETWEEN operators  ORDER BY, GROUP BY,
Using Special Operators (LIKE and IN)
Concepts of Database Management Seventh Edition
Database Systems Microsoft Access Practical #3 Queries Nos 215.
M1G Introduction to Database Development 2. Creating a Database.
M1G Introduction to Database Development 5. Doing more with queries.
SQL queries ordering and grouping and joins
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
Intro to SQL Management Studio. Please Be Sure!! Make sure that your access is read only. If it isn’t, you have the potential to change data within your.
Concepts of Database Management Eighth Edition Chapter 3 The Relational Model 2: SQL.
CIS 375—Web App Dev II SQL. 2 Introduction SQL (Structured _______ Language) is an ANSI standard language for accessing databases.ANSI SQL can execute.
CIS 375—Web App Dev II SQL. 2 Introduction SQL (Structured _______ Language) is an ANSI standard language for accessing databases.ANSI SQL can execute.
DATA RETRIEVAL WITH SQL Goal: To issue a database query using the SELECT command.
Structured Query Language SQL Unit 2 An Introduction to Organizing and Retrieving Data with SQL.
DAY 21: MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Aliya Farheen October 29,2015.
A Guide to SQL, Eighth Edition Chapter Four Single-Table Queries.
Lesson 4: Querying a Database. 2 Learning Objectives After studying this lesson, you will be able to:  Create, save, and run select queries  Set query.
Manipulating Data Lesson 3. Objectives Queries The SELECT query to retrieve or extract data from one table, how to retrieve or extract data by using.
1 Chapter 3 Single Table Queries. 2 Simple Queries Query - a question represented in a way that the DBMS can understand Basic format SELECT-FROM Optional.
MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Sravanthi Lakkimsety Mar 14,2016.
MySQL Tutorial. Databases A database is a container that groups together a series of tables within a single structure Each database can contain 1 or more.
Retrieving Information Pertemuan 3 Matakuliah: T0413/Current Popular IT II Tahun: 2007.
Concepts of Database Management, Fifth Edition Chapter 3: The Relational Model 2: SQL.
N5 Databases Notes Information Systems Design & Development: Structures and links.
SQL SQL Ayshah I. Almugahwi Maryam J. Alkhalifa
SQL Query Getting to the data ……..
Microsoft Office Access 2010 Lab 3
Chapter 5 Introduction to SQL.
Prof: Dr. Shu-Ching Chen TA: Hsin-Yu Ha
Aggregating Data Using Group Functions
Queries.
SQL Implementation & Administration
Instructor: Craig Duckett Lecture 09: Tuesday, April 25th, 2017
Aggregating Data Using Group Functions
SQL FUNDAMENTALS CDSE Days 2018.
Using SQL to Prepare Data for Analysis
(SQL) Aggregating Data Using Group Functions
Structured Query Language (SQL) William Klingelsmith
GO! with Microsoft® Access e
Prof: Dr. Shu-Ching Chen TA: Yimin Yang
Database Queries.
Prof: Dr. Shu-Ching Chen TA: Hsin-Yu Ha
Sirena Hardy HRMS Trainer
SQL LANGUAGE and Relational Data Model TUTORIAL
Chapter 4 Summary Query.
Prof: Dr. Shu-Ching Chen TA: Haiman Tian
Aggregating Data Using Group Functions
Aggregating Data Using Group Functions
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall
Access: SQL Participation Project
Structured Query Language
Introduction To Structured Query Language (SQL)
Reporting Aggregated Data Using the Group Functions
Query Functions.
Projecting output in MySql
Reporting Aggregated Data Using the Group Functions
Reporting Aggregated Data Using the Group Functions
Manipulating Data Lesson 3.
Shelly Cashman: Microsoft Access 2016
Presentation transcript:

M1G505190 Introduction to Database Development 3. Getting data out: database queries

Querying A large database may have thousands or millions of rows in its tables You may want to select only one, or a few specific data items Queries provide a very efficient way to get out exactly the data you need Introduction to Database Development 3. Getting data out: database queries 2

Querying A query is a question addressed to a database Usually written in a query language For relational databases, the standard query language is SQL Some database tools provide graphical query builders Worth learning to write SQL queries Introduction to Database Development 3. Getting data out: database queries 3

Queries and use cases Queries are related to use cases: need to query database to find password for a specific user need to query database to find all available tours some use cases relate to update or delete queries Introduction to Database Development 3. Getting data out: database queries 4

GCUTours database Introduction to Database Development 3. Getting data out: database queries 5

SQL queries You have previously seen SQL statements to create database tables We will now look at SQL statements which query the database to retrieve information. The simplest situation is when all the data you want to get is in just one table We’ll use the GCUTours database tables to illustrate the main types of query that you can do on a single table Introduction to Database Development 3. Getting data out: database queries 6

Project operations Project operations allow us to retrieve only the fields we are interested in Let’s say we only want to see the names (first and last) of all the users: SELECT firstname, lastname FROM Users Introduction to Database Development 3. Getting data out: database queries 7

Query results in WebMatrix Introduction to Database Development 3. Getting data out: database queries 8

Using * Using * after SELECT instead of a list of field names causes all available fields to be included: SELECT * FROM Users Introduction to Database Development 3. Getting data out: database queries 9

Ordering SELECT firstname, lastname, address FROM Users ORDER BY lastname, firstname ASC Introduction to Database Development 3. Getting data out: database queries 10

Duplicate rows SELECT location FROM Packages SELECT DISTINCT location Introduction to Database Development 3. Getting data out: database queries 11

Select operations We use the WHERE key word to specify the condition, or filter Determines determines which row or rows to retrieve SELECT * FROM Users WHERE username = 'mpolo' Introduction to Database Development 3. Getting data out: database queries 12

Combining Select and Project Most queries in reality are a combination of project and select operations, for example: If the value to be matched is text, it needs to be in single quotes Numerical values are not written in quotes. SELECT packageID, packagename, adultprice FROM Packages WHERE location = 'USA' Introduction to Database Development 3. Getting data out: database queries 13

Types of condition The last two queries retrieved data where a value in the database exactly matched the specified condition This was because we used the = operator in the condition There are other operators we can use to match data in less exact ways Introduction to Database Development 3. Getting data out: database queries 14

The > operator SELECT packageID, packagename, location FROM Packages WHERE adultprice > 1500 Introduction to Database Development 3. Getting data out: database queries 15

The LIKE operator % is the wildcard character, which matches any characters A% means A followed by any other characters SELECT packageID, packagename, location FROM Packages WHERE location LIKE 'A%' Introduction to Database Development 3. Getting data out: database queries 16

Wildcards The underscore wildcard character _ matches a single character A_ means A followed by any single character Some RDBMSs also allow you to have wildcards which match characters within a specified list or range Introduction to Database Development 3. Getting data out: database queries 17

Combining conditions: AND Conditions in a Select operation can be combined using the AND and OR operators SELECT packageID, packagename, location, adultprice FROM Packages WHERE location = 'Asia' AND adultprice < 1500 Introduction to Database Development 3. Getting data out: database queries 18

Combining conditions: OR SELECT packageID, packagename, location, adultprice FROM Packages WHERE location = 'Asia' OR location = 'Europe' Introduction to Database Development 3. Getting data out: database queries 19

Range of values Can use AND or BETWEEN SELECT packageID, packagename, location, adultprice FROM Packages WHERE adultprice > 1000 AND adultprice < 1500 WHERE adultprice BETWEEN 1000 AND 1500 Introduction to Database Development 3. Getting data out: database queries 20

Dates in queries returns all rows with datejoined later than 1st January 2010 One of these will result in an error – why? WHERE datejoined > '1/1/2010' WHERE datejoined > '14/3/2010' WHERE datejoined > '3/14/2010' Introduction to Database Development 3. Getting data out: database queries 21

Dates in queries 3 and 7 are both valid month values Database may choose to interpret this as a US date when you want a UK date gives all rows with datejoined later than 7th March 2010 To be safe, you can specify dates in the ISO standard date format (yyyy-mm-dd) WHERE datejoined > '3/7/2010' WHERE datejoined > '2010-07-03' Introduction to Database Development 3. Getting data out: database queries 22

Aggregates The queries you have seen so far retrieve data row by row It can also be useful to be able to ask questions which combine the data in more than one row into a single value For example: count the number of rows which match a condition add up all the values in a particular column of a table Introduction to Database Development 3. Getting data out: database queries 23

SQL aggregate functions SQL provides the following aggregate functions: COUNT SUM AVG MAX MIN Introduction to Database Development 3. Getting data out: database queries 24

Counting The simplest aggregate query counts all the rows in a table, for example: COUNT(*) simply means “count each record”. The result of this query is the single number 30, as there are 30 users in the table. Introduction to Database Development 3. Getting data out: database queries 25

Labels for function results It can be helpful to give the results of aggregate (and other) functions meaningful labels when they are displayed Use the AS key word: SELECT COUNT(*) AS NumberOfUsers FROM Users Introduction to Database Development 3. Getting data out: database queries 26

Combining aggregates and conditions You can use a Select operation to count only some of the rows: Count the number of Users who have joined since the beginning of 2010 SELECT Count(*) AS JoinedSince2010 FROM Users WHERE datejoined > '2010-01-01' Introduction to Database Development 3. Getting data out: database queries 27

Counting distinct values As before, the DISTINCT key word can deal with duplicate values Standard SQL but not supported in SQL Server Compact For example, the Packages table has 12 records, but only contains 5 different locations Introduction to Database Development 3. Getting data out: database queries 28

Summarising SELECT SUM(sales) AS TotalSales FROM Packages WHERE location = 'Asia' Introduction to Database Development 3. Getting data out: database queries 29

Summarising Can also use MAX, MIN, AVG For example: SELECT Max(sales) AS MaxSales FROM Packages Introduction to Database Development 3. Getting data out: database queries 30

Common errors with aggregates The previous example gave the Max value of sales, but not the name of the relevant package You might try this to get the name at the same time: This will give an error SELECT packagename, MAX(sales) FROM Packages Introduction to Database Development 3. Getting data out: database queries 31

Common errors with aggregates If this query ran it would give: name has one value for each row of the table MAX(sales) has one value for the entire table  Introduction to Database Development 3. Getting data out: database queries 32

Common errors with aggregates Not possible, as query result must be a data set with the same number of rows in each column A simple rule to remember is: all the fields or functions after the SELECT key word must have the same number of values SELECT packagename, MAX(sales) FROM Packages Introduction to Database Development 3. Getting data out: database queries 33

Grouping So far we have used aggregates to count or summarise an entire table, or a set of rows matching a condition It’s also very useful to group rows which have something in common together Can count or summarise each group This is done using the GROUP BY key word. Introduction to Database Development 3. Getting data out: database queries 34

Grouping and COUNT In the Packages table, there is a group of rows which refer to packages in Asia There is another group of packages in the USA, and so on Let’s count the number of rows in each group Introduction to Database Development 3. Getting data out: database queries 35

Grouping and COUNT location has one value for each group of rows we are grouping rows with the same location together COUNT(*) has one value for each group of rows aggregates are applied to the groups SELECT location, COUNT(*) AS NumberOfPackages FROM Packages GROUP BY location Introduction to Database Development 3. Getting data out: database queries 36

Grouping errors Why would this not work? The number of values don’t match: location has one value for each group of rows name has one value for each row, and so has many values for each group of rows COUNT(*) has one value for each group of rows SELECT location, packagename, COUNT(*) AS NumberOfPackages FROM Packages GROUP BY location Introduction to Database Development 3. Getting data out: database queries 37

Ordering groups SELECT location, AVG(sales) AS AverageSales FROM Packages GROUP BY location ORDER BY AverageSales DESC Introduction to Database Development 3. Getting data out: database queries 38

Applying conditions to groups You saw earlier how to use the WHERE keyword to apply conditions to rows You can do the same with groups of rows using the HAVING key word SELECT location, COUNT(*) AS NumberOfPackages FROM Packages GROUP BY location HAVING location LIKE 'A%' Introduction to Database Development 3. Getting data out: database queries 39

Subqueries You have seen this example already: We tried to get this (but didn’t succeed): SELECT MAX(sales) AS MaxSales FROM Packages Introduction to Database Development 3. Getting data out: database queries 40

Two queries We could use the result, 894 in this case, in another query: SELECT MAX(sales) AS MaxSales FROM Packages SELECT packagename, sales FROM Packages WHERE sales = 894 Introduction to Database Development 3. Getting data out: database queries 41

One query with subquery It’s more convenient to combine these First query becomes a subquery SELECT packagename, sales FROM Packages WHERE sales IN (SELECT MAX(sales) FROM Packages) outer query uses answer from subquery in comparison subquery – evaluated first, gives answer 894 here Introduction to Database Development 3. Getting data out: database queries 42

Another subquery example This example includes grouping Find the locations where the highest sales for any package to that location is less than the average of sales for all packages We need to find the average of all sales before we can do a comparison This will be the subquery Introduction to Database Development 3. Getting data out: database queries 43

Another subquery example The outer query needs to find the maximum sales for each location it needs to group by location The maximum for each group needs to be compared with the subquery result SELECT location, MAX(sales) AS [MaxSales] FROM Packages GROUP BY location HAVING MAX(sales) < ALL (SELECT AVG(Sales) FROM Packages) Introduction to Database Development 3. Getting data out: database queries 44

Joining tables with a subquery Subqueries can also be useful if we want to get information from more than one table For example: Find the full name of the user who made the booking with ID 4 The Bookings table simply identifies the user by username The full name (firstname and lastname) is in the Users table Introduction to Database Development 3. Getting data out: database queries 45

Joining tables with a subquery Use a subquery to find which username is related to the booking with ID 4 in Bookings Then use the result of that to query Users for the full name SELECT firstname, lastname FROM Users WHERE username IN (SELECT username FROM Bookings WHERE bookingID = 4) Introduction to Database Development 3. Getting data out: database queries 46

Joining tables There is actually another (better) way of getting information from more than one table You will see this later on Introduction to Database Development 3. Getting data out: database queries 47