0% found this document useful (0 votes)
66 views48 pages

Data Manipulation Language

This document provides an overview of SQL (Structured Query Language) including its properties, history, standardization, command structure, and basic query types like SELECT, WHERE, ORDER BY, and aggregate functions. SQL is a nonprocedural language used to manipulate data in a relational database. It originated in the 1970s and while dialects vary by vendor, the core is becoming more standardized. SQL allows users to retrieve, insert, update, and delete data through commands that resemble English words.

Uploaded by

Mohammed Tamimi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views48 pages

Data Manipulation Language

This document provides an overview of SQL (Structured Query Language) including its properties, history, standardization, command structure, and basic query types like SELECT, WHERE, ORDER BY, and aggregate functions. SQL is a nonprocedural language used to manipulate data in a relational database. It originated in the 1970s and while dialects vary by vendor, the core is becoming more standardized. SQL allows users to retrieve, insert, update, and delete data through commands that resemble English words.

Uploaded by

Mohammed Tamimi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 48

DATA MANIPULATION LANGUAGE

DML

a Data Manipulation Language (DML) for retrieving and updating


data
PROPERTIES OF SQL

• It is a nonprocedural language; you specify what information you


require, rather than how to get it.
• The command structure consists of standard English words such
as CREATE TABLE, INSERT, SELECT
• SQL can be used by a range of users including database
administrators (DBA), management personnel, application
developers, and many other types of end-user.
HISTORY

• the roots of SQL are in the language SQUARE.


• In the late 1970s, the database system Oracle was produced by
what is now called the Oracle Corporation, and was probably
the first commercial implementation of a relational DBMS based
on SQL.
• INGRES followed shortly afterwards, with a query language
called QUEL.
STANDARDIZATION

• Each implementation of SQL is called a dialect. No two dialects


are exactly alike, and currently no dialect exactly matches the
ISO standard.
• Moreover, as database vendors introduce new functionality, they
are expanding their SQL dialects and moving them even further
apart.
• However, the central core of the SQL language is showing signs
of becoming more standardized.
WRITING SQL COMMANDS

• An SQL statement consists of reserved words and user-


defined words.
• Reserved words are a fixed part of the SQL language and have a
fixed meaning.
• User-defined words are made up by the user and represent the
names of various database objects such as tables, columns, views,
indexes, and so on.
• SQL statement are case-insensitive, which means that letters
can be typed in either upper- or lowercase.
• Some SQL dialect requires each SQL statement to end by ;
DATABASE
SIMPLE QUERIES (SELECT)

• The purpose of the SELECT statement is to retrieve and display


data from one or more database tables.
• SELECT is the most frequently used SQL command and has the
following general form
• columnExpression represents a column name or an expression
• TableName is the name of an existing database table or view that you have
access to, and
• alias is an optional abbreviation for TableName.
• The only two mandatory clauses are the first two: SELECT and FROM;
• the remainder are optional.
• the result of a query on a table is another table
EXAMPLES
LIST FULL DETAILS OF ALL STAFF.

• No restrictions
• All info are required.
• Solution:
SELECT staffNo, fName, IName, position, sex, DOB, salary,
branchNo FROM Staff ;
• Because many SQL retrievals require all columns of a table, there is a quick
way of expressing “all columns” in SQL, using an asterisk (*) in place of the
column names.

Solution:
SELECT * FROM Staf;

Result is
Produce a list of salaries for all staff, showing only the
staff number, the first and last names, and the salar y
details.

• Solution:
SELECT staffNo, fName, IName, salary
FROM Staff;

Result is
LIST THE PROPERTY NUMBERS OF ALL PROPERTIES
THAT HAVE BEEN VIEWED.

• Solution:
SELECT propertyNo
FROM Viewing;
Result is
LIST THE PROPERTY NUMBERS OF ALL PROPERTIES
THAT HAVE BEEN VIEWED.

• Solution:
SELECT propertyNo
FROM Viewing;
Result is
Notice that there are several duplicates,
TO ELIMINATE THE DUPLIC ATES WE USE THE
DISTINCT KEYWORD

• Solution:
SELECT DISTINCT propertyNo
FROM Viewing;
C ALCULATED FIELDS:
PRODUCE A LIST OF MONTHLY SALARIES FOR ALL STAFF,
SHOWING THE STAFF NUMBER, THE FIRST AND LAST
NAMES , AND THE SALARY DETAILS .

• Solution:
SELECT staffNo, fName, IName, salary/12
FROM Staff;
Result is
the desired result can be obtained by simply
dividing the salary by 12,
the columns referenced in an arithmetic expression must have a numeric type.
SELECT staffNo, fName, IName, salary/12 AS monthlySalary
FROM Staff;
In this case, the column heading of the result table would be
monthlySalary
ROW SELECTION (WHERE
CLAUSE)
• The previous examples show the use of the SELECT statement to retrieve all
rows from a table.
• However, we often need to restrict the rows that are retrieved.
• This can be achieved with the WHERE clause, which consists of the keyword
WHERE followed by a search condition that specifies the rows to be retrieved.
FIVE BASIC SEARCH CONDITIONS

• Comparison Compare the value of one expression to the value


of another expression.
• Range Test whether the value of an expression falls within a
specified range of values.
• Set membership Test whether the value of an expression equals
one of a set of values.
• Pattern match Test whether a string matches a specified pattern.
• Null Test whether a column has a null (unknown) value.
CONDITION
LIST ALL STAFF WITH A SALARY GREATER THAN
£10,000.

Solution:
SELECT staffNo, fName, IName, position, salary
FROM Staff
WHERE salary > 10000
Result is
The selection creates a new table containing only those Staff rows with a salary
greater than £10,000.
COMPARISON OPERATORS

• In SQL, the following simple comparison operators are available

• Retrieve all branches outside London


OR
LIST THE ADDRESSES OF ALL BRANCH OFFICES IN
LONDON OR GLASGOW

Solution:
SELECT *
FROM Branch
WHERE city = ‘London’ OR city = ‘Glasgow’;
Result is
In this example the logical operator OR is used in the WHERE clause to find
the branches in London (city = ‘London’) or in Glasgow (city = ‘Glasgow’)..
BETWEEN/NOT BETWEEN
LIST ALL STAFF WITH A SALARY BETWEEN £20,000
AND £30,000

Solution:
SELECT staffNo, fName, IName, position, salary
FROM Staff
WHERE salary BETWEEN 20000 AND 30000;
Result is
The BETWEEN test includes the endpoints of the range, so any members of
staff with a salary of £20,000 or £30,000 would be included in the result.
• SELECT staffNo, fName, IName, position, salary
• FROM Staff
• WHERE salary > = 20000 AND salary < = 30000;
IN/NOT IN
LIST ALL MANAGERS AND SUPERVISORS.

Solution:
SELECT staffNo, fName, IName, position
FROM Staff
WHERE position IN (‘Manager’, ‘Supervisor’);
Result is
(IN) tests whether a data value matches one of a list of values.
• We could have expressed the previous query as:
SELECT staffNo, fName, IName, position
FROM Staff
WHERE position = ‘Manager’ OR position = ‘Supervisor’;
LIKE/NOT LIKE
FIND ALL OWNERS WITH THE STRING ‘GLASGOW’ IN
THEIR ADDRESS.

• we must search for the string ‘Glasgow’ appearing somewhere within


the address column of the Owner table
• SQL has two special pattern-matching symbols:
• The % percent character represents any sequence of zero or more
characters (wildcard).
• The _ underscore character represents any single character
EXAMPLES

• address LIKE ‘H%’ means the first character must be H, but the rest of the string can be
anything.
• address LIKE ‘H_ _ _’ means that there must be exactly four characters in the string, the
first of which must be an H.
• address LIKE ‘%e’ means any sequence of characters, of length at least 1, with the last
character an e.
• address LIKE ‘%Glasgow%’ means a sequence of characters of any length containing
Glasgow.
• address NOT LIKE ‘H%’ means the first character cannot be an H.
SELECT ownerNo, fName, IName, address, telNo
FROM PrivateOwner
WHERE address LIKE ‘%Glasgow%’;
EXAMPLES

• List all owners who have names start with T.


• List staff with first names end with n.
• List branches located in streets contain rd
IS NULL/IS NOT NULL)
LIST THE DETAILS OF ALL VIEWINGS ON PROPERTY PG4
WHERE A COMMENT HAS NOT BEEN SUPPLIED.

SELECT clientNo, viewDate


FROM Viewing
WHERE propertyNo = ‘PG4’ AND comment IS NULL

• The negated version (IS NOT NULL) can be used to test for values that are not
null.
SORTING RESULTS (ORDER BY
CLAUSE)
• we can ensure the results of a query are sorted using the ORDER BY clause in
the SELECT statement.
• The ORDER BY clause consists of a list of column identifiers that the result is
to be sorted on, separated by commas.
• The ORDER BY clause allows the retrieved rows to be ordered in ascending
(ASC) or descending (DESC) order on any column or combination of columns
• the ORDER BY clause must always be the last clause of the SELECT statement.
PRODUCE A LIST OF SALARIES FOR ALL STAFF,
ARRANGED IN DESCENDING ORDER OF SALARY.

SELECT staffNo, fName, IName, salary


FROM Staff
ORDER BY salary DESC;
PRODUCE A LIST OF SALARIES FOR ALL STAFF,
ARRANGED IN DESCENDING ORDER OF SALARY.

SELECT staffNo, fName, IName, salary


FROM Staff
ORDER BY salary DESC;
PRODUCE AN ABBREVIATED LIST OF PROPERTIES
ARRANGED IN ORDER OF PROPERTY TYPE

SELECT propertyNo, type, rooms, rent


FROM PropertyForRent
ORDER BY type;
TO ARRANGE THE PROPERTIES IN ORDER OF
RENT, WE SPECIFY A MINOR ORDER

SELECT propertyNo, type, rooms, rent


FROM PropertyForRent
ORDER BY type,rent DESC;
USING THE SQL AGGREGATE
FUNCTIONS
• As well as retrieving rows and columns from the database, we often
want to perform some form of summation or aggregation of data
• The ISO standard defines five aggregate functions.
• COUNT – returns the number of values in a specified column
• SUM – returns the sum of the values in a specified column
• AVG – returns the average of the values in a specified column
• MIN – returns the smallest value in a specified column
• MAX – returns the largest value in a specified column
• It is important to note that an aggregate function can be used only in the
SELECT list and in the HAVING clause
HOW MANY PROPERTIES COST MORE THAN £350
PER MONTH TO RENT?

SELECT COUNT(*) AS myCount


FROM PropertyForRent
WHERE rent > 350;
HOW MANY DIFFERENT PROPERTIES WERE VIEWED
IN MAY 2013?

SELECT COUNT(DISTINCT propertyNo) AS myCount


FROM Viewing
WHERE viewDate BETWEEN ‘1-May-13’ AND ‘31-May-13’;
FIND THE TOTAL NUMBER OF MANAGERS AND THE
SUM OF THEIR SALARIES

SELECT COUNT(*) AS myCount


FROM PropertyForRent
WHERE rent > 350;
FIND THE TOTAL NUMBER OF MANAGERS AND THE
SUM OF THEIR SALARIES.

SELECT COUNT(staffNo) AS myCount, SUM(salary) AS mySum


FROM Staff
WHERE position = ‘Manager’;
FIND THE MINIMUM, MAXIMUM, AND AVERAGE STAFF
SALARY.

SELECT MIN(salary) AS myMin, MAX(salary) AS myMax, AVG(salary) AS


myAvg
FROM Staff;
FIND THE TOTAL NUMBER OF MANAGERS AND THE
SUM OF THEIR SALARIES.

SELECT COUNT(staffNo) AS myCount, SUM(salary) AS mySum


FROM Staff
WHERE position = ‘Manager’;

You might also like