TM07 Using Basic Structured Query Language
TM07 Using Basic Structured Query Language
AdministrationLevel-III
November, 2023
Addis Ababa, Ethiopia
Table of Contents
Acknowledgment.............................................................................................................................1
Acronym..........................................................................................................................................1
Introduction to the Module..............................................................................................................2
Unit One:Fundamental concepts of relational database..................................................................3
1.1. Data management approaches...................................................................................4
1.2. Relational Database Management System.................................................................9
1.3. Structured query language.......................................................................................13
Self Check 1...................................................................................................................................19
Operation sheet 1.1: Install SQL server 2012................................................................................21
Lap Test.........................................................................................................................................40
Unit Two: Data definition language.............................................................................................42
2.1. Introduction to SQL data definition language commands............................................42
2.2. Database planning....................................................................................................43
2.3. Usage of relevant naming convention for all database elements.............................44
2.4. Database structure creation and manipulation.........................................................53
Self-Check 2..................................................................................................................................63
Operation sheet 2.1: Create Database structure.............................................................................65
Lap Test.........................................................................................................................................67
Unit Three: Data manipulation language.......................................................................................68
3.1. Overview of SQL data manipulation language commands...........................................69
3.2. Data insertion...........................................................................................................69
3.3. Modification of existing data...................................................................................71
3.4. Data deletion............................................................................................................73
Self check 3.1.................................................................................................................................75
Operation sheet 3.1 Data Insertion................................................................................................76
Lap Test.........................................................................................................................................78
Unit Four: Data query language....................................................................................................79
4.1. Overview of SQL data query language...................................................................80
4.2. Selection of data from a single table........................................................................82
4.3. Retrieval of data selectively.....................................................................................84
4.4. Working with functions...........................................................................................97
4.5. Working with subqueries.......................................................................................108
Self-check 4.................................................................................................................................109
Operation sheet 4.1 Inserting data into a database......................................................................110
Lap Test.......................................................................................................................................113
Reference.....................................................................................................................................115
Developer’s Profile......................................................................................................................116
Acknowledgment
Ministry of Labor and Skills wish to extend thanks and appreciation to the many representatives of
TVET instructors and respective industry experts who donated their time and expertise to the development
of this Teaching, Training and Learning Materials (TTLM).
Acronym
SQL------------------------------------------------Structured query language
DBA------------------------------------------------Database administrator
For effective use of this module trainees are expected to follow the following module instruction:
1. Read the information written in each unit
2. Accomplish the Self-checks at the end of each unit
3. Perform Operation Sheets which were provided at the end of units
4. Do the “LAP test” given at the end of each unit
The way in which computers manage data has come a long way over the last few decades. Today’s users
take for granted the many benefits found in a database system. However, it wasn’t that long ago that
computer relied on a much less elegant and costly approach to data management called the file-based
system.
Integrity problems
Problems with data integrity is another disadvantage of using a file-based system. It refers to the
maintenance and assurance that the data in a database are correct andconsistent. Factors to consider when
addressing this issue are:
Data values must satisfy certain consistency constraints that are specified in the application programs.
What is a database?
A database is a shared collection of related data used to support the activities of a particular organization.
A database can be viewed as a repository of data that is defined once and then accessed by various
users.With the database approach, we can have the traditional banking system where Personnel
Department, the Account Department and the Loan Department access the shared corporate database.
1.1.3Database Properties
A database has the following properties:
Relational Database Management System (RDBMS) is a type of Database Management System (DBMS)
based on the relational model developed by E. F. Codd. It serves as the foundation for SQL and various
modern database systems such as MS SQL Server, IBM DB2, Oracle, MySQL, PostgreSQL, and Sybase.
Purpose of DBMS: DBMS emerged in the late 1960s to assist in storing and managing data. Initially
designed for mainframes, DBMS popularity extended to various computing platforms, including
minicomputers, personal computers, workstations, and specialized servers.
Definition of DBMS:
A DBMS is a collection of programs enabling users to create, maintain, and control access to databases. Its
primary goal is to provide a convenient and efficient environment for users to retrieve and store
information.
The following system requirements cover SQL Server 2012 Standard Edition on 32-bit and x64platforms,
as well as Itanium-based systems.
SQLServer201264-bitHardwareRequirements:
SQLServer201264-bitSoftwareRequirements:
Operating System: SQL Server 2012 supports a variety of Windows Server andWindows
client operating systems. The specific editions of SQL Server 2012 (Enterprise, Standard,
etc.) may have different requirements. It's important to check the official documentation
for the exact operating system requirements for your specific edition.
.NET Framework: SQL Server 2012 requires the .NET Framework. The installer will
typically install the required version of .NET Framework for you.
SQL Server 2012 Edition: Make sure you have the correct edition of SQL Server 2012
(e.g., Enterprise, Standard, and Express) for your needs and licensing.
SQL Server 2012 Service Pack: It's advisable to install the latest service pack or
cumulative update for SQL Server 2012 for bug fixes and enhancements.
Please keep in mind that these requirements are subject to change based on updates and service
packs.AlwaysrefertotheofficialMicrosoftSQLServerdocumentationforthemostaccurate and up-to-
date information, especially if you have specific needs or configurations.
SQLServer201232-bitSoftwareRequirements:
Operating System: SQL Server 2012 32-bit supports a variety of 32-bit and 64-bit
Windows Server and Windows client operating systems. The specific editions of SQL
Server2012(Enterprise,Standard,etc.)mayhavedifferentsupportedoperatingsystems.
Check the official documentation for exact details.
.NET Framework: SQL Server 2012 requires .NET Framework 3.5 SP1 for installation.
Theinstallerwilltypicallyinstallthisforyou.Youmayalsoneed.NETFramework4.0or later for
some features.
SQLServer2012Edition:MakesureyouhavethecorrecteditionofSQLServer2012 (e.g.,
Enterprise, Standard, Express) for your needs and licensing.
SQLServer2012ServicePack:It'sadvisabletoinstallthelatestservicepackor
cumulative update for SQL Server 2012 for bug fixes and enhancements.
SQL is a flexible language that you can use in a variety of ways. It’s the mostwidely used tool for
communicating with a relational database.SQL is a standard database language specifically designed for
storing, retrieving, managing or manipulating the data inside a relational database management system
(RDBMS). SQL became an ISO standard in 1987.
SQL is the most widely-implemented database language and supported by the popular relational database
systems, like MySQL, SQL Server, and Oracle. However, some features of the SQL standard are
implemented differently in different database systems.SQL is both a powerful language and one that is
relatively easy to learn. SQL is both a de factoand an official standard language for database. management.
History of SQL
SQL was originally developed at IBM in the early 1970s. Initially it was called SEQUEL (Structured
English Query Language) which was later changed to SQL (pronounced as S-Q-L). During the 1970s, a
SQL became a standard of the American National Standards Institute (ANSI) in 1986, and of the
International Organization for Standardization (ISO) in 1987. Since then, the standard has been revised to
include a larger set of features. Despite the existence of such standards, though, most SQL code is not
completely portable among different database systems without adjustments.
You can set permissions or access control within the database for data security.
You can create views to avoid typing frequently used complex queries.
The list does not end here; you can perform many other database-related tasks with SQL. You will learn
about most of them in detail in upcoming chapters.
The SQL keywords are words that are reserved words that are not used as a user defined data. The
most commonly used SQL key words according to ANSI/ISO SQL keywords are as follows:
COUNT GO VIEW
CURRENT WITH
CURSOR WORK
Data Definition Language (DDL) statements are used to create, modify, or delete database objects
such as tables, views, schemas, domains, triggers, stored procedures, and the database itself. The
SQL keywords most often associated with DDL statements are CREATE, ALTER, and DROP. For
example, you would use the CREATE TABLE statement to create a table, the ALTER TABLE
statement to modify the table’s properties, and the DROP TABLE statement to delete the table
definition from the database.
Data Control Language (DCL)protects your database from becoming corrupted. Used correctly,
the DCL provides security for your database; the amount of protection depends on the
implementation. If your implementation doesn’t provide sufficient protection, you must add that
protection to your application program. DCL statements allow you to control who or what (a
database user can be a person or an application program) has access to specific objects in your
database. With DCL, you can grant or restrict access by using the GRANT, Deny or REVOKE
statements, the three primary DCL commands. The DCL statements also allow you to control the
type of access each user has to database objects. For example, you can determine which users can
view a specific set of data and which users can manipulate that data.DDL and DCL statements are
commonly used by a database designerand database administrator for establishing the database
structures used by an application.
6. Which normalization form ensures that there are no partial dependencies in a relational database?
A) First Normal Form (1NF)
Step 1: Open installation media in new window and right click on setup file to run it “As Administrator”.
After running the setup file, you’ll be redirected to Installation Media Center where you find various
options. As we’re working on the installation, we won’t dig other parts. Click on Installation section and
you’ll find something like the following window.
From here, you can perform stand-alone installation of SQL Server or you can add any additional features
to installed instances of SQL Server. Also if you want to upgrade you version of SQL Server, there’s an
If any of the check fails, you’ll get a failed notification in status column and you won’t be able to proceed
further with the installation. If all requirements fulfill, you’ll get passed in Status column. Click OK.
Step
Step 9: Setup Role
At this step, you’ll find options like install SQL Server instance or install instance of Analysis Service with
SharePoint integration. By default it’ll select ‘SQL Server Feature Installation’.
After selecting the features to install, setup again runs a check to ensure whether your machine’s
configuration is compatible or not to proceed further.
Under Service Account tab, you’ll find option to set account name and password for any of the services;
also you can choose start-up type of those services. You can set startup type as Manual or Automatic. It’s
recommended to set Start-up type of SQL Services to Automatic.
Next, you’ll find Collation tab where you can set collation level for SQL Server and Analysis Services.
The collation type you select here will be set as default collation for your instance.
This is the most important step because over here you’ll configure your servers configuration, data
directories and file stream options.
At Server Configuration tab, you’ll find authentication mode and SQL Server System Administrator [SA]
account configuration.
If you see Data Directories tab, you’ll find your root directory, and location of below:
Data root directory.
User database directory,
System database directory,
User database log directory,
Temp data and log directories, and
Backup location
If you had chosen Analysis Services to be installed on your machine, you’ll find this option during
installation process.Complete this step by choosing server mode and adding Analysis Services
Administrator.
At this step, you’ll find Distributed Replay Controller. This feature helps you assess the impact of future
SQL Server upgrades.
At this step, setup will perform a final check to ensure everything looks good for installation operation.
Also you’ll get location of the log file of the complete installation.
Step 24: Verification
Open SSMS and connect your instance and you’re ready to explore.
Lap Test
Instruction: Given necessary templates, tools and materials you are required to perform the
This unit is developed to provide you the necessary information regarding the following content
coverage and topics:
This unit will also assist you to attain the learning outcomes stated in the cover page.
Specifically, upon completion of this learning guide, you will be able to:
Explain Data definition language
Identify DDL commands
Apply SQL DDL to create and manipulate database structures
Identify the key components of a relational database (tables, rows, columns).
Understand the concept of table relationships (e.g., one-to-many, many-to-many).
Utilize INNER JOIN, LEFT JOIN, RIGHT JOIN, and FULL JOIN to combine data from
multiple tables.
Define and enforce data integrity using constraints (e.g., PRIMARY KEY, FOREIGN KEY,
UNIQUE).
Understand the purpose of constraints in maintaining data quality.
Understand the purpose and benefits of creating views
Ministry of Labor and Skills Basic Structure Query Version-I
The Data Definition Language (DDL) is part of SQL that you use to create (completely define) a database,
modify its structure, and destroy it when you no longer need it.
It contains SQL commands you use to create, change, or destroy the basic elements of a relational
database. Basic elements include tables, views, schemas, catalogs, clusters, indexes, stored procedures,
functions and possibly other things as well. In this section, you will see containment hierarchy that
relates these elements to each other and look at the commands that operate on these elements.Schema is an
overall structure that includes tables within it. Tables and schemas are two elements of a relational
database’s containment hierarchy.You can break down the containment hierarchy as follows:
Tables contain columns and rows.
Schemas contain tables and views.
Catalogs contain schemas.
The database itself contains catalogs. Sometimes the database is referred toas a cluster.
A database table is a two-dimensional array made up of rows and columns.You can create a table by using
the SQL CREATE TABLEcommand. Within the command, you specify the name and data type of each
column. After you create a table, you can start loading it with data. (Loading data is a DML, not a DDL,
function.). If requirements change, you can change a table’s structure by using the ALTER
TABLEcommand. If a table outlives its usefulness or becomes obsolete, you can eliminate it with the
DROPcommand. The various forms of the CREATEand ALTERcommands, together with the
DROPcommand, make up SQL’s DDL.
Say that you need to create a database for your organization. Excited by theprospect of building a useful,
valuable, and totally righteous structure of great importance to your company’s future, you sit down at
your computer and start entering SQL CREATEcommands. Right? Well, no. Not quite. In fact, that’s a
prescription for disaster. Many database development projects go awry from the start as excitement and
enthusiasm overtake careful planning. Even if you have a clear idea of how to structure
your database, write everything down on paper before touching your keyboard. Keep in mind the following
procedures when planning your database:
Identify all tables.
The objects in a SQL-based database are identified by assigning them unique names. Names are
used in SQL statements to identify the database object on which the statement should act.
The ANSI/ISO SQL standard specifies tables names (which identify tables), column names (which
identify columns), and user names (which identify users of the database)
The SQL database Name should not be empty and special characters. The ANSI/ISO standards
specifies that SQL names must contain 1 to 18 characters, begin with a letter, and my not contain
any spaces or special punctuation characters.
TableName
When you specify a table name in a SQL statement, SQL assumes that you are referring to one
of your own tables (that is, a table that you created). With the proper permission, you can also
refer to tables owned by other users using a qualified table name.
ColumnName
When you specify a column name in a SQL statement, SQL can normally determine from the
context which column you intend.A column name should not be blank and the same in the same
database.
Thereis astandard that specifies various types ofdata that canbe stored in SQL-baseddatabase
and manipulated by the SQL languages.
Characterstrings:
char(n) or Fixed-lengthcharacterstring.Maximum8,000characters N
character(n)
varchar(n) Variable-lengthcharacterstring.Maximum8,000characters
varchar(max) Variable-lengthcharacterstring.Maximum1,073,741,824
characters
Text Variable-lengthcharacterstring.Maximum2GBoftextdata
Unicodestrings:
nchar(n) Fixed-lengthUnicodedata.Maximum4,000characters
nvarchar(max) Variable-lengthUnicodedata.Maximum536,870,912characters
Ntext Variable-lengthUnicodedata.Maximum2GBoftextdata
Binarytypes:
binary(n) Fixed-lengthbinarydata.Maximum8,000bytes
varbinary(n) Variable-lengthbinarydata.Maximum8,000bytes
varbinary(max) Variable-lengthbinarydata.Maximum2GB
Image Variable-lengthbinarydata.Maximum2GB
Numbertypes:
Datetypes:
Version-I
Level III
Datatype Description Storage
timestamp Stores a unique number that gets updated every time a row gets created
or modified.Thetimestampvalueisbaseduponaninternalclockanddoesnot
correspond to real time. Each table may have only one timestamp
variable
Version-I
Level III
Otherdatatypes:
Datatype Description
uniqueidentifier Storesagloballyuniqueidentifier(GUID)
Table Storesaresult-setforlaterprocessing
Fixed-length character strings: columns holding these types of data typically store
names of people and companies, addresses, descriptions, and so on.
Integers: columns holding this types of data typically store counts, quantities, ages, and
so on. Integer’s columns are also frequently used to contain Id numbers, such as
customers, employee. And order numbers.
Decimal numbers: columns with this type store numbers that have fractional parts and
must becalculated exactly, suchas rates and percentages.Theyarealso frequentlyused to
store money amounts.
ExtendeddataTypes
Variable-lengthCharacterstring: SQLwhichsupportsVARCHATdata.Whichallowsa
column to store character strings that vary in length from row to row, up to some maximum
length.
Datesandtimes:supportsfordate/timevalues.
Booleandata:supportslogical(TRUEorFALSE)valuesasanexplicittype.
Version-I
Level III
DataTypesDifferences
Thedifferencesb/nthedatatypesofferedinvariousSQLimplementationisoneofthepractical barriers
to the portability of SQL based applications.
Example:Date/timedataprovidesanexcellentexampleofthesesdifferences.
Date:w/cstoresadatelikeJune30,2009or30June2009
Constants
InsomeSQLstatementsanumeric,character,ordatedatavaluemustbeexpressedintextform.
Forexample:INSERTstatement,w/caddsastudenttothedatabase:
SELECT
city
FROMoffice
s
Numeric constant
Integersanddecimalconstants(alsocalledexactnumericliterals)arewrittenasordinarydecimal numbers in
SQL statements, with an optional leading plus or minus sign
Useacommabetweenthedigitsofanumeric constant
Version-I
Level III
String Constant
TheANSI/ISOstandardspecifiesthatSQLconstantsforcharacterdatabeenclosedinsingle quotes
(‘……’)
Ifasinglequotesistobeusedincludedintheconstanttext,itis writtenwithintheconstantastwo
consecutive single quote characters. This isconstant value:
Example:“Ican’t”
InSQLproductsthesupportsdate/timedata.Constantvaluesfordates,times,andtimeintervalsare
specified as string constants.The format of these constants varies from one DBMS to the next.
Example:
SELECTName,dept
FROMstudent
WHEREhire-date=To-date(‘June30,2009’,‘monDDyyyy’)
Expressions
ExpressionsareusedintheSQLLanguagestocalculatevaluesthatareretrievedfromthedatabaseand
to calculate values used in searching the database.
SELECTcity,target,sales,(sales/target)*100
FROMoffices
Example2:
Version-I
Level III
SELECT city
FROMoffices
WHEREsales>target+50000.00
Missingdata(NullValues)
Itisavaluewhosevalueismissing,unknown,ordon’tapply.
SQLsupportsmissing,unknown,orinapplicable dataexplicitlythroughtheconceptsof null values.
AnullValueisanindicatorthattellsSQL(andtheuser)thatthedataismissingornot applicable.
Example:givenastudenttablebelowthathasmissingvalues
Remember that a database is designed, built and populated with data for a specific purpose that is designed
to address a specific problem in the real world.
Once you have completed database design, you can implement it using a specific DBMS.You may, for
example, create a CUSTOMER table with the attributes CUSTOMER.CustomerID,
CUSTOMER.FirstName, CUSTOMER.LastName, CUSTOMER.Street, CUSTOMER.City,
CUSTOMER.State, CUSTOMER.Zipcode, and CUSTOMER.Phone. All of these attributes are more
closely related to the customer entity than to any other entity in a database that may contain many tables.
These attributes contain all the relatively permanent customer information that your organization keeps on
Version-I
Level III
file.Most database management systems provide a graphical tool for creating database tables. You use SQL
Server management studio which is a graphical tool provided by Microsoft to connect to MS SQL Server
for creating database tables You can also create such tables by using an SQL command. Since a database
contains all other objects including tables, you need to create database first before you create tables and
other objects.
The SQL CREATE DATABASE statement is used to create new SQL database.
Syntax:
Basic syntax of CREATE DATABASE statement is as follows:
CREATE DATABASE DatabaseName;
Always database name should be unique within the RDBMS.
Example:
If you want to create new database <testDB>, then CREATE DATABASE statement would be as follows:
Eg. Create database testDB
You need to execute the command to create the specified database. Once you create a database and made it
the active (currently selected) database, now you can create as many objects as you want including tables.
The following example demonstrates a command that creates your CUSTOMER table:
CREATE TABLE CUSTOMER (customerid INTEGER NOT NULL, firstname CHARACTER (15),
lastname CHARACTER (20) NOT NULL, Street CHARACTER (25), City CHARACTER (20), State
CHARACTER (2), Zipcode INTEGER, Phone CHARACTER (13) ) ;
For each column, you specify its name (for example, CustomerID), its data type (for example, INTEGER),
and possibly one or more constraints (for example, NOT NULL).
View:- At times, you want to retrieve specific information from the CUSTOMER table.
You don’t want to look at everything — only specific columns and rows. What you need is a view.
A view is a virtual table. In most implementations, a view has no independent physical existence. The
view’s definition exists only in the database’s metadata, but the data comes from the table or tables from
which you derive the view. The view’s data is not physically duplicated somewhere else in online disk
Version-I
Level III
storage. Some views consist of specific columns and rows of a single table. Others, known as multi table
views, draw from two or more tables. Eg. Of SQL DDL statement to create a view
CREATE VIEW NH_CUST AS SELECT CUSTOMER.FirstName, CUSTOMER.LastName,
CUSTOMER.Phone FROM CUSTOMER WHERE CUSTOMER.State = ‘NH’
Relationships
If one table in a database contains as a foreign key a column that is a primary key in another table in the
database, you can add a constraint to the first table so that it references the second table.
Example:
CREATE TABLE CUSTOMERS(ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT
NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
CREATE TABLE ORDERS (ID INT NOT NULL, O_DATE DATETIME, CUSTOMER_ID INT foreign
key references CUSTOMERS(ID),AMOUNT Decimal(8,2), PRIMARY KEY (ID));
For defining a PRIMARY KEY constraint on multiple columns, use the following SQL syntax:
CREATE TABLE CUSTOMERS(ID INT NOT NULL,NAME VARCHAR (20) NOT NULL,AGE INT
NOT NULL, ADDRESS CHAR (25),SALARY DECIMAL (18, 2), PRIMARY KEY (ID, NAME));
CHECK Constraint:
The CHECK Constraint enables a condition to check the value being entered into a record. If the
condition evaluates to false, the record violates the constraint and isn’t entered into the table.
Example:
For example, the following SQL creates a new table called CUSTOMERS and adds five columns. Here,
we add a CHECK with AGE column, so that you can not have any CUSTOMER below 18 years:
CREATE TABLE CUSTOMERS(ID INT NOT NULL, NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL CHECK (AGE >= 18),ADDRESS CHAR (25) ,SALARY DECIMAL (18, 2),
PRIMARY KEY (ID));
SQL NOT NULL Constraint
Version-I
Level III
The NOT NULL constraint enforces a column to NOT accept NULL values.
The NOT NULL constraint enforces a field to always contain a value. This means that
you cannot insert a new record, or update a record without adding a value to this field.
The following SQL enforces the "P_Id" column and the "LastName" column to not
CREATETABLEPersons
(P_IdintNOTNULL,
LastNamevarchar(255)NOTNULL, FirstName
varchar(255),
Addressvarchar(255),
City varchar(255))
The following SQL creates a UNIQUE constraint on the "P_Id" column when the "Persons" table is
created:
CREATETABLEPersons (P_IdintNOTNULLUNIQUE,
LastNamevarchar(255)NOTNULL, FirstName varchar(255),
Addressvarchar(255), City varchar(255))
Version-I
Level III
To allow naming of a UNIQUE constraint, and for defining a UNIQUE constraint on multiple columns,
use the following SQL syntax:
CREATETABLEPersons (P_IdintNOTNULL,
LastNamevarchar(255)NOTNULL, FirstName varchar(255),
Addressvarchar(255), City varchar(255),
CONSTRAINTuc_PersonIDUNIQUE(P_Id,LastName))
The default value will be added to all new records, if no other value is specified.
The following SQL creates a DEFAULT constraint on the "City" column when the “Persons"
table is created:
Version-I
Level III
TheDEFAULTconstraintcanalsobeusedtoinsertsystemvalues,byusingfunctionslike GETDATE():
SQLAUTOINCREMENTField
Auto-incrementallowsauniquenumbertobegeneratedwhenanewrecordisinsertedintoa table.
AUTOINCREMENTaField
Wewouldliketocreateanauto-incrementfieldinatable.
SyntaxforSQLServer
ThefollowingSQLstatementdefinesthe"P_Id"columntobeanauto-incrementprimarykey field in
the "Persons" table:
CREATETABLEPersons
(
P_IdintPRIMARYKEYIDENTITY,
LastNamevarchar(255)NOTNULL, FirstName
varchar(255),
Addressvarchar(255),
City varchar(255))
Version-I
Level III
TheMSSQLServerusestheIDENTITYkeywordtoperformanauto-incrementfeature.
INSERTINTOPersons(FirstName,LastName) VALUES
('Lars','Monsen')
The SQL statement above would insert a new record into the "Persons" table. The "P_Id"
columnwouldbeassignedauniquevalue.The"FirstName"columnwouldbesetto"Lars"and the
"LastName" column would be set to "Monsen".
ALTER
After you create a table, you’re not necessarily stuck with that exact table forever. As you use the table,
you may discover that it’s not everything you need it to be. You can use the ALTER TABLE command to
change the table by adding, changing, or deleting a column in the table. In addition to tables, you can also
ALTER columns and domains.To create a PRIMARY KEY constraint on the "ID" column when
CUSTOMERS table above already exists, use the following SQL syntax:
ALTER TABLE CUSTOMER ADD PRIMARY KEY (ID);
NOTE: If you use the ALTER TABLE statement to add a primary key, the primary key column(s) must
already have been declared to not contain NULL values (when the table was first created).
If ORDERS table has already been created, and the foreign key has not yet been set, use the syntax for
specifying a foreign key by altering a table. ALTER TABLE ORDERS ADD FOREIGN KEY
(Customer_ID) REFERENCES CUSTOMERS (ID);
To create a PRIMARY KEY constraint on the "ID" and "NAMES" columns when CUSTOMERS table
already exists, use the following SQL syntax:
Version-I
Level III
ALTER TABLE CUSTOMERS ADD CONSTRAINT PK_CUSTID PRIMARY KEY (ID, NAME);
If ORDERS table has already been created, and the foreign key has not yet been set, use the syntax for
specifying a foreign key by altering a table.
ALTER TABLE ORDERS ADD FOREIGN KEY (Customer_ID) REFERENCES CUSTOMERS (ID);
If CUSTOMERS table has already been created, then to add a CHECK constraint to AGE column, you
would write a statement similar to the following:
ALTER TABLE CUSTOMERS ADD CONSTRAINT myCheckConstraintCHECK(AGE >= 18);
SQL UNIQUE Constraint on ALTER TABLE
To create a UNIQUE constraint on the "P_Id" column when the table is already created, use the following
SQL:
To allow naming of a UNIQUE constraint, and for defining a UNIQUE constraint on multiple
columns, use the following SQL syntax:
ALTERTABLEPersons
ADDCONSTRAINTuc_PersonIDUNIQUE(P_Id,LastName)
ALTERTABLEPersons
ALTERCOLUMNCitySETDEFAULT'SANDNES'
DROP
Version-I
Level III
Removing a table from a database schema is easy. Just use a DROP TABLE <tablename>command. You
erase all the table’s data as well as the metadata that defines the table in the data dictionary. It’s almost as
if the table never existed. Eg Drop table Customers.
Delete Primary Key:-You can clear the primary key constraints from the table, Use Syntax:
ALTER TABLE CUSTOMERS DROP PRIMARY KEY PK_CUSTID;
To drop a FOREIGN KEY constraint, use the following SQL:
ALTER TABLE ORDERS DROP FOREIGN KEYCustomer_ID;
TodropaUNIQUEconstraint,usethefollowing SQL:
ALTERTABLEPersons DROPCONSTRAINTuc_PersonID
ALTERTABLEPersons
ALTERCOLUMNCityDROPDEFAULT
The SQL DROP DATABASE statement is used to drop an existing database in SQL schema.
If you want to delete an existing database <testDB>, then DROP DATABASE statement would be as
follows: Drop database testDB
The sporting goods store database contains four tables: CUSTOMER, PRODUCT, INVOICE, and
INVOICE_LINE.
Version-I
Level III
Exercise Write the SQL DDL command that implements the database. Name the database
Sporting_goods.
Zipcode INTEGER
VendorID INTEGER
CustomerID INTEGER
InvoiceDate DATE
Version-I
Level III
InvoiceNumber Integer
ProductID INTEGER
Quantity INTEGER
Notice that some of the columns in the above Table contain the constraint primary key and NOT NULL.
These columns are either the primary keys of their respective tables or columns that you decide must
contain a value. A table’s primary key must uniquely identify each row. To do that, the primary key must
contain a nonnull value in every row. The tables relate to each other through the columns that they have in
common.
The following list describes these relationships.
The CUSTOMER table bears a one-to-many relationship to the INVOICEtable. One customer can make
multiple purchases, generating multiple invoices. Each invoice, however, deals with one and only one
customer.
The INVOICE table bears a one-to-many relationship to the INVOICE_LINEtable. An invoice may have
multiple lines, but each line appears on one and only one invoice.
The PRODUCT table also bears a one-to-many relationship to the INVOICE_LINE table. A product may
appear on more than one line on one or more invoices. Each line, however, deals with one, and only
oneproduct.
The CUSTOMER table links to the INVOICE table by the common CustomerID column. The INVOICE
table links to the INVOICE_LINE table by the common InvoiceNumber column. The PRODUCT table
links to the INVOICE_LINE table by the common ProductID column. These links are what makes this
database a relational database.
Version-I
Level III
Self-Check 2
Part I: Choose the correct answer from the alternatives provided
3. Which of the following SQL statements is used to remove a table from the database?
A) REMOVE TABLE
B) DROP TABLE
C) DELETE TABLE
D) ERASE TABLE
A) VARCHAR
Version-I
Level III
B) INTEGER
C) FLOAT
D) DATE
Level III
Operation title: Creating database structure
Purpose: To create database structure using data definition language commands which will be used to
store data.
Equipment and tools: Computer, DBMS software
Steps to create database structure
Step 1: Create a database named Sample_db
createdatabasesample_db
usesample_db
Step 2: Create the following student table in your Sample_db database based on the information given
below.
createtable student(StudentIDvarchar(10) Primarykey,Name char(30)Notnull, Sex char(6)
Default'Female'check( sex='male'or sex='Female'),BirtDatedatetimeNotnull,Section char(6)
,DeptName char (40) Notnull)
STUDENT
Field Data type size Constraint
StudentID varchar 10 Primary key
Name char 30 Not null
Sex char 6 Default “Female” , validate “male” or
“Female”
BirtDate datetime Not null
Section char 6
DeptName char 40 Not null
Step 3: Create the following Course table in your Sample_db database based on the information given
below.
createtable course(Course_Code varchar(8) Primarykey,Course_Title char (40)
Notnull,Creditint )
COURSE
Field Data type size Constraint
Course_Code varchar 8 Primary key
Course_Title char 40 Not null
Credit int Version-I
Level III
Step 3: Create the following Grade_Report table in your Sample_db database based on the information
given below.
createtablegrade_report(StudentID Varchar
(10)ForeignKey(StudentID)referencesstudent,Course_CodeVarchar (8)
ForeignKey(Course_Code )references course, Grade Char(1)check(grade='A'or grade='B'or
grade='C'or grade='D'or grade='F'))
GRADE_REPORT
Field Data type size Constraint
SID Varchar 10 Primary key, Foreign Key
C_code Varchar 8 Primary key, Foreign Key
Grade char 1 Grade(A,B,C,D,F)
Step 4: Add new column into student table named “EmailAddress” with data type char and size 25.
altertable student addemail_addresschar(25)
Version-I
Level III
Lap Test
Instruction: Given necessary tools and materials you are required to perform the
Version-I
Level III
Unit Three: Data manipulation language
This unit is developed to provide you the necessary information regarding the following content
coverage and topics:
This unit will also assist you to attain the learning outcomes stated in the cover page.
Specifically, upon completion of this learning guide, you will be able to:
Explain Data manipulation language Version-I
Identify DML commands
Ministry of Labor and Skills Basic Structure November, 2023
Perform data manipulation using INSERT, UPDATE, and DELETE statements.
Page 67 of 122 Author/Copyright Query Language
Understand the impact of these statements on the database.
Level III
3.1. Overview of SQL data manipulation language commands
The DDL is the part of SQL that creates, modifies, or destroys database structures; it doesn’t deal with the
data. The Data Manipulation Language (DML)is the part of SQL that operates on the data. Some DML
statements read likeordinary English-language sentences and are easy to understand. Because SQLgives
you very fine control of data, other DML statements can be fiendishly
complex. If a DML statement includes multiple expressions, clauses, predicates, or subqueries,
understanding what that statement is trying to do canbe a challenge.
Level III
Following statements would create six records in CUSTOMERS table:
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'kaushik', 23, 'Kota', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Chaitali', 25, 'Mumbai', 6500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'Hardik', 27, 'Bhopal', 8500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Komal', 22, 'MP', 4500.00 );
You can create a record in CUSTOMERS table using second syntax as follows
All the above statements would produce the following records in CUSTOMERS table:
+----+----------+-----+-----------+----------+
+----+----------+-----+-----------+----------+
| 6 | Komal | 22 | MP | 4500.00 |
Version-I
Level III
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
The"Persons"tablewillnowlooklikethis:
5 Tjessem Jakob
The SQL UPDATE Query is used to modify the existing records in a table.
You can use WHERE clause with UPDATE query to update selected rows otherwise all the rows would be
affected.
Syntax:
Version-I
Level III
The basic syntax of UPDATE query with WHERE clause is as follows:
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
You can combine N number of conditions using AND or OR operators.
Example:
Consider the CUSTOMERS table having the following records:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
Version-I
Level III
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | Pune | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
If you want to modify all ADDRESS and SALARY column values in CUSTOMERS table, you do not
need to use WHERE clause and UPDATE query would be as follows:
The SQL DELETE Query is used to delete the existing records from a table.
You can use WHERE clause with DELETE query to delete selected rows, otherwise all the
records would be deleted.
Version-I
Level III
The basic syntax of DELETE query with WHERE clause is as follows:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
Following is an example, which would DELETE a customer, whose ID is 6:
DELETE FROM CUSTOMERS WHERE ID = 6;
Now, CUSTOMERS table would have the following records:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
Version-I
Level III
| 5 | Hardik | 27 | Bhopal | 8500.00 |
+----+----------+-----+-----------+----------+
If you want to DELETE all the records from CUSTOMERS table, you do not need to use
WHERE clause and DELETE query would be as follows:
Self check 3
Part I: choose the best answer
Version-I
Level III
A) MODIFY
B) ALTER
C) UPDATE
D) Insert
A) MODIFY
B) ALTER
C) UPDATE
D) CHANGE
3. Which SQL command is used to remove all records from a table without removing the table itself?
A) DELETE
B) TRUNCATE
C) REMOVE
D) DROP
Version-I
Level III
Operation Title:Data Insertion
Version-I
Level III
COURSE Table
Course_Co Course_Title Credit
de
ICT001 PHP 80
ICT002 Java 140
Elec003 Electrical 200
Version-I
Level III
Step 4:Create a SQL command to change the student birthdate for students
that belongs to Electrical department
update student setbithdate='4/6/1984'wheredeptname=’Electrical’
Lap Test
Instruction: Given necessary tools and materials you are required to perform the
Version-I
Level III
following tasks accordingly
Task 1:Create a database for called AB_Supermarket
Task 2: Create and insert the following data to the Customers and customer_ordertable
Customer Table
Customer_order Table
This unit is developed to provide you the necessary information regarding the following content
coverage and topics:
Selection of data from a single table
Selection of data from multiple tables
Retrieval of data selectively
Working with functions
Working with sub-queries
This unit will also assist you to attain the learning outcomes stated in the cover page.
Specifically, upon completion of this learning guide, you will be able to:
Explain Data query language
Recognize the basic syntax and structure of SQL queries.
Write SELECT statements to retrieve data from one or more tables.
Apply filtering conditions using WHERE clause in queries.
Sort query results using ORDER BY clause.
Solve business problems using SQL queries. Version-I
Apply aggregate functions (e.g., COUNT, SUM, AVG, MAX, MIN) to analyze data.
Ministry of Labor and Skills Basic Structure November, 2023
Group data using GROUP BY clause.
Page 79 of 122 Author/Copyright Query Language
Write subqueries to retrieve data for more complex queries.
Level III
Understand the relationship between main queries and subqueries.
4.1. Overview of SQL data query language
In many ways, queries are the heart of the SQL language. The SELECT statement, which is used to
express SQL queries, is the most powerful and complex of the SQL statements.
Despite the many options afforded by the SELECT statement, it's possible to start simply and then work up
to more complex queries.
The SELECT statement retrieves data from a database and returns it to you in the form of query results.
For simple queries, the English language request and the SQL SELECT statement are very similar. When
the requests become more complex, more features of the SELECT statement must be used to specify the
query precisely. The full form of the SELECT statement consists of six clauses. The SELECT and FROM
clauses of the statement are required. The remaining four clauses are optional. You include them in a
SELECT statement only when you want to use the functions they provide.
The SELECTclause lists the data items to be retrieved by the SELECTstatement. The items may be
columns from the database, or columns to be calculated by SQL as it performs the query.
The SELECT clause that begins each SELECT statement specifies the data items to be retrieved by the
query. The items are usually specified by a select list, a list of select items separated by commas. Each
select item in the list generates a single column of query results, in left-to-right order. A select item can be:
• a column name, identifying a column from the table(s) named in the FROM clause.
When a column name appears as a select item, SQL simply takes the value of that column from each row
of the database table and places it in the corresponding row of query results.
• a constant, specifying that the same constant value is to appear in every row of the query results.
• a SQL expression, indicating that SQL must calculate the value to be placed into the query results, in the
style specified by the expression. The result is stored in a result table, called the result-set.
Each type of select item is described later in this unit.
The FROM clause lists the tables that contain the data to be retrieved by the query. Queries tcan draw their
data from a single or more tables.
The FROM clause consists of the keyword FROM, followed by a list of table specifications separated by
commas. Each table specification identifies a table containing data to be retrieved by the query. These
Version-I
Level III
tables are called the source tablesof the query (and of the SELECTstatement) because they are the source
of all of the data in the query results.
The WHERE clause tells SQL to include only certain rows of data in the query results. A search condition
is used to specify the desired rows.
The GROUP BYclause specifies a summary query. Instead of producing one row of query results for each
row of data in the database, a summary query groups together similar rows and then produces one
summary row of query results for each group.
The HAVING clause tells SQL to include only certain groups produced by the GROUP BY clause in the
query results. Like the WHERE clause, it uses a search condition to specify the desired groups.
The ORDER BYclause sorts the query results based on the data in one or more
columns. If it is omitted, the query results are not sorted.
Query Results
The result of a SQL query is always a table of data, just like the tables in the database. If you type a
SELECT statement using interactive SQL, the DBMS displays the query results in tabular form on your
computer screen. If a program sends a query to the DBMS using programmatic SQL, the table of query
results is returned to the program. In either case, the query results always have the same tabular,
row/column format as the actual tables in the database
SELECTcolumn_name(s)
FROM table_name
and
SELECT*FROMtable_name
Version-I
Level III
Note:SQLisnotcasesensitive.SELECTisthesameasselect.
WeusethefollowingSELECTstatement:
SELECTLastName, FirstNameFROMPersons
Theresult-setwilllooklikethis:
LastName FirstName
Hansen Ola
Svendson Tove
Pettersen Kari
SELECT * Example
Version-I
Level III
Nowwewanttoselectallthecolumnsfromthe"Persons"table. We use the following SELECT statement:
SELECT*FROMPersons
NavigationinaResult-set
Mostdatabasesoftwaresystemsallownavigationintheresult-setwithprogrammingfunctions, like:
Move-To-First-Record, Get-Record-Content, Move-To-Next-Record, etc.
Programmingfunctionslikethesearenotapartofthistutorial.
SQLSELECTDISTINCTStatement
TheDISTINCTkeywordcanbeusedtoreturnonlydistinct(different)values.
SELECTDISTINCTcolumn_name(s) FROMtable_name
Version-I
Level III
SELECTDISTINCTExample: The"Persons"table:
WeusethefollowingSELECTstatement:
SELECTDISTINCTCityFROMPersons
Theresult-setwilllooklikethis:
City
Sandnes
Stavanger
TheWHEREclauseisusedtoextractonlythoserecordsthatfulfillaspecifiedcriterion.
SQLWHERESyntax
SELECTcolumn_name(s)
FROM table_name
WHEREcolumn_nameoperatorvalue
Version-I
Level III
WHEREClauseExample
The"Persons"table:
QuotesaroundTextFields
SQLusessinglequotesaroundtextvalues(mostdatabasesystemswillalsoacceptdouble quotes).
Although,numericvaluesshouldnotbeenclosedinquotes. For
text values:
Thisiscorrect:
SELECT*FROMPersonsWHEREFirstName='Tove' This
is wrong:
SELECT*FROMPersonsWHEREFirstName=Tove
Fornumericvalues:
Thisiscorrect: Version-I
SELECT*FROMPersonsWHEREYear=1965
Ministry of Labor and Skills This Structure
Basic November, 2023
is wrong: Query Language
Page 85 of 122 Author/Copyright
SELECT*FROMPersonsWHEREYear='1965'
Level III
OperatorsAllowedintheWHERE Clause
WiththeWHEREclause,thefollowingoperatorscanbeused:
Operator Description
= Equal
<> Not equal
> Greaterthan
< Lessthan
>= Greaterthanorequal
<= Lessthan orequal
BETWEE Betweenaninclusiverange
N
LIKE Searchfora pattern
IN Ifyouknowtheexactvalueyouwanttoreturnforatleastoneofthe columns
Note:InsomeversionsofSQLthe<>operatormaybewrittenas!=
SQLAND&OR Operators
TheAND&ORoperatorsareusedtofilterrecordsbasedonmorethanonecondition.
TheANDoperatordisplaysarecordifboththefirstandthesecondconditionistrue.
TheORoperatordisplaysarecordifeitherthefirstconditionorthesecondconditionistrue.
ANDOperatorExample
The"Persons"table:
Version-I
Level III
2 Svendson Tove Borgvn23 Sandnes
WeusethefollowingSELECTstatement:
Theresult-setwilllooklikethis:
P_Id LastName FirstName Address City
2 Svendson Tove Borgvn23 Sandnes
OROperatorExample
WeusethefollowingSELECTstatement:
SELECT*FROMPersons
WHEREFirstName='Tove'
OR FirstName='Ola'
Theresult-setwilllooklikethis:
CombiningAND&OR
Version-I
Level III
YoucanalsocombineANDandOR(useparenthesistoformcomplexexpressions).
Nowwewant toselect onlythepersonswiththelastnameequalto "Svendson"ANDthefirst name
equal to "Tove" OR to "Ola":
WeusethefollowingSELECTstatement:
SELECT*FROMPersonsWHERE LastName='Svendson'
AND(FirstName='Tove'ORFirstName='Ola')
Theresult-setwilllooklikethis:
SQLORDERBYKeyword
TheORDERBYkeywordisusedtosorttheresult-set.
TheORDERBYkeywordisusedtosorttheresult-setbyaspecifiedcolumn. The
ORDER BY keyword sort the records in ascending order by default.
If youwanttosorttherecordsinadescendingorder,youcanusetheDESCkeyword.
SQLORDERBYSyntax
ORDERBYExample
The"Persons"table:
Version-I
Level III
P_Id LastName FirstName Address City
WeusethefollowingSELECTstatement:
Theresult-setwilllooklikethis:
ORDERBYDESCExample
Version-I
Level III
Nowwewanttoselectallthepersonsfromthetableabove,however,wewanttosortthe persons descending
by their last name.
WeusethefollowingSELECTstatement:
Theresult-setwilllooklikethis:
SQLUPDATEStatement
TheUPDATEstatementisusedtoupdateexistingrecordsinatable.
SQLUPDATESyntax
UPDATEtable_name
SETcolumn1=value,column2=value2,...
WHERE some_column=some_value
Note:NoticetheWHEREclauseintheUPDATEsyntax.TheWHEREclausespecifieswhich record or
records that should be updated. If you omit the WHERE clause, all records will be updated!
SQLUPDATEExample
The"Persons"table:
Level III
d
1 Hansen Ola Timoteivn10 Sandnes
5 Tjessem Jakob
Nowwewanttoupdatetheperson"Tjessem,Jakob"inthe"Persons"table. We use
the following SQL statement:
UPDATEPersons
SETAddress='Nissestien67',City='Sandnes'
WHERELastName='Tjessem'ANDFirstName='Jakob'
The"Persons"tablewillnowlooklikethis:
SQLUPDATEWarning
UPDATEPersons Version-I
SETAddress='Nissestien67',City='Sandnes'
Ministry of Labor and Skills Basic Structure November, 2023
Level III
The"Persons"tablewouldhavelookedlikethis:
P_Id LastName FirstName Address City
SQLDELETEStatement
TheDELETEstatementisusedtodeleterows/recordsinatable.
SQLDELETESyntax
Note:NoticetheWHEREclauseintheDELETEsyntax.TheWHEREclausespecifieswhich record or
records that should be deleted. If you omit the WHERE clause, all records will be deleted!
SQLDELETEExample
The"Persons"table:
Version-I
Level III
4 Nilsen Johan Bakken2 Stavange
r
5 Tjessem Jakob Nissestien67 Sandnes
Nowwewanttodeletetheperson"Tjessem,Jakob"inthe"Persons"table. We use
the following SQL statement:
DELETEFROMPersons
WHERELastName='Tjessem'ANDFirstName='Jakob'
The"Persons"tablewillnowlooklikethis:
DeleteAllRows
DELETEFROMtable_nameor
DELETE*FROMtable_name
Note:Beverycarefulwhendeletingrecords.Youcannotundothisstatement!
1. CharacterandStringComparisonOperators:
=(Equalto):Comparesiftwocharacterorstringvaluesareidentical.
Version-I
Level III
!=or<>(Notequalto):Checksiftwocharacterorstringvaluesarenotidentical.
LIKE:Comparesacharacterorstringvaluewith apattern,oftenusingwildcardcharacters (%
and _).
Example:
DateandTimeComparisonOperators:
=(Equalto):Comparesiftwodateortimevaluesareequal.
!=or<>(Notequalto):Comparesiftwodateortimevaluesarenotequal.
<(Lessthan):Checksifonedateortimevalueisearlierthananother.
>(Greaterthan):Checksifonedateortimevalueislaterthananother.
<=(Lessthanorequalto):Checksifonedateortimevalueisearlierthanorequalto another.
>=(Greaterthanorequalto):Checksifonedateortimevalueislaterthanorequalto another.
Example:
When using these comparison operators in your SQL queries, be sure to match the data types
appropriately. For example, when comparing dates, make sure the date format matches the one used
in your database. Also, consider the collation (sorting and comparison rules) for character and string
data when using comparison operators for text-based data.
Version-I
Level III
Tocontroltheorderofevaluationandensurecorrectprecedence, youcan useparenthesesto group
conditions.
Example:
SELECT*FROMemployeesWHERE(age>=30ORexperience_years>=5)AND department = 'Engineering';
Using parentheses is especially important when combining AND and OR operators in the same
query to make your intentions explicit and avoid unexpected behavior.
2. Checkingforarangeofvalues
Youcanusecomparisonoperatorstofilterrowsbasedonarangeofvalues.Forexample,to retrieve
products with prices between $50 and $100:
SELECT*FROMproductsWHEREprice>=50ANDprice<=100;
Selectingvaluesfromalist
You can use the IN operator to filter rows based on a list of values. For example, to retrieve
orders from customers in New York or California:
SELECT*FROMordersWHEREcustomer_stateIN('NewYork','California');
This query retrieves rows from the "orders" table where the "customer_state" is either 'New
York' or 'California'.
CheckingforValuesthatMatchaPattern
Version-I
Level III
You can use the LIKE operator with wildcard characters to match values that fit a specific pattern.
For example, to retrieve products with names starting with 'Laptop':
SELECT*FROMproductsWHEREproduct_nameLIKE'Laptop%';
This query retrieves rows from the "products" table where the "product_name" starts with 'Laptop'.
The '%' wildcard matches any sequence of characters, so it matches 'Laptop,' 'Laptop Pro,' 'Laptop
2023,' and so on.
You can also use the NOT LIKE operator to exclude rows that match a particular pattern. For
example, to retrieve products with names that don't start with 'Accessory':
SELECT*FROMproductsWHEREproduct_nameNOTLIKE'Accessory%';
Thisqueryretrievesrowswherethe"product_name"doesnotstartwith'Accessory'.
These SQL techniques are commonly used to filter and retrieve specific data from a database based
on various criteria, making it easier to work with the data that meets your specific requirements.
Takingactiontoexecutenullvaluesfromaqueryresult
In SQL, you can take action to handle and filter out null values from a queryresult using the IS
NULL and IS NOT NULL operators. Here's how you can use them:
3. FilteringRowswithNullValues(ISNULL):
Toretrieverowsthatcontainnullvaluesinaspecificcolumn,youcanusetheISNULL
operator.Forexample,toretrieveallproductswithnullvaluesinthe"description"column:
Thisquerywillreturnrowswherethe"description"columnisnull.
FilteringRowswithoutNullValues(ISNOTNULL):
Version-I
Level III
To retrieve rows that do not contain null values in a specific column, you can use the IS NOT
NULL operator. For example, to retrieve all products with a non-null value in the "price" column:
SELECT*FROMproductsWHEREpriceISNOTNULL;
Thisquerywillreturnrowswherethe"price"columnisnotnull.
HandlingNullValuesintheResult(COALESCE):
If you want to replace null values in the query result with a specific default value, you can use the
COALESCE function. For example, if you want to replace null values in the "description" column
with "No description available":
SELECTproduct_name,COALESCE(description,'Nodescriptionavailable')ASdescription FROM
products;
This query uses the COALESCE function to replace null values with the specified default value in
the result set.
Handling null values is important to ensure the accuracy and completeness of your query results.
Themethodsmentioned aboveallow youto filter andmanagenull values effectivelyin yourSQL
queries.
MDXsupportsthearithmeticoperatorslistedinthefollowingtable.
Operator Description
+ (Add) Addstwonumbers.
/ (Divide) Dividesonenumberbyanothernumber.
Version-I
Level III
*(Multiply) Multipliestwonumbers.
- (Subtract) Subtractstwonumbers.
^(Power) Raisesonenumberbyanothernumber.
Orderof Precedence
ThefollowingrulesdeterminetheorderofprecedenceforarithmeticoperatorsinanMDX expression:
Whenthereismorethanonearithmeticoperatorinanexpression,MDXperforms multiplication
and division first, followed by subtraction and addition.
Whenallarithmeticoperatorsinanexpressionhavethesamelevelofprecedence,the order of
execution is left to right.
Expressionswithinparenthesestakeprecedenceoverallotheroperations.
In SQL, you can perform arithmetic operations using operators such as +, -, *, and /. It's important
to understand operator precedence when combining multiple operators in an expression.
Example: Suppose you have a table called "Products" with columns "Price" and "Quantity."You
want to calculate the total cost for each product, considering the unit price and quantity. The SQL
statement would be:
In this example, the * operator is used to multiply the "Price" and "Quantity" columns to obtain the
"TotalCost."
UsingStringFunctionsandOperators:
Version-I
Level III
SQL provides various string functions and operators for working with text data. For instance,you
can use the CONCAT function to concatenate strings.
Example:
Suppose you have a tablecalled "Employees"with columns "FirstName" and "LastName."You want
to create a single string representing the full name. The SQL statement would be:
UsingMathematicalFunctions:
Example:
Suppose you have a table called "Orders" with a "TotalAmount" column. You want to calculate the
square root of the total amount. The SQL statement would be:
Inthisexample,theSQRTfunctioncalculatesthesquarerootofthe"TotalAmount."
UsingDateFunctions:
SQLprovidesvariousdatefunctionsforworkingwithdateandtimedata. Example:
Suppose you have a table called "Events" with a "EventDate" column, and you want to find the
events that occurred within the last 30 days. The SQL statement would be:
Version-I
Level III
SELECTEventName,EventDate FROM Events WHEREEventDate>=DATEADD(day,-30,GETDATE());
UsingSQLAggregateFunctions:
SQLaggregatefunctionsareusedtoperformcalculationsonsetsofvalues.
AVG()-TheAVG()functionreturnstheaveragevalueofanumericcolumn.
AVG()Syntax
Example
COUNT()–TheCOUNT()functionreturnsthenumberofrowsthatmatchesaspecified criterion.
COUNT()Syntax
Example
MIN()-Returnsthesmallestvalue
Version-I
Level III
SUM()-TheSUM()functionreturnsthetotalsumofanumericcolumn.
SUM()Syntax
WHEREcondition;
Example:
In this example, the SUM function calculates the total sales for orders placed between January1,
2023, and December 31, 2023.
These examples demonstrate the use of arithmetical, string, mathematical, date, and aggregate
functions in SQL queries to obtain the desired query output, depending on the data and
calculations you need.
SQLstatementsthatuseaggregationandfiltering
UsingClausetoAggregateDatabyMultipleColumns:
When you want to aggregate data based on multiple columns, you can use the GROUP BY clause.
This clause allows you to group rows by one or more columns and apply aggregate fun SQL
GROUP BY Statement
The GROUP BY statement is used in conjunction with the aggregate functions to group the result-
set by one or more columns.
SQLGROUPBYSyntax
Version-I
Level III
SELECTcolumn_name,aggregate_function(column_name)
FROMtable_name
WHEREcolumn_nameoperatorvalue
GROUPBYcolumn_name
SQLGROUPBYExample1
Wehavethefollowing"Orders"table:
O_Id OrderDate OrderPrice Customer
Nowwewanttofindthetotalsum(totalorder)ofeachcustomer.
GROUPBYCustomer
Theresult-setwilllooklikethis:
Customer SUM(OrderPrice)
Version-I
Level III
Hansen 2000
Nilsen 1700
Jensen 2000
Nowwewanttofindifthecustomers"Hansen"or"Jensen"haveatotalorderofmorethan 1500.
Having clause
WeaddanordinaryWHEREclausetotheSQLstatement:
SELECTCustomer,SUM(OrderPrice)FROMOrders
GROUPBYCustomer
HAVINGSUM(OrderPrice)>1500
Theresult-setwilllooklikethis
Customer SUM(OrderPrice)
Hansen 2000
Jensen 2000
WecanalsousetheGROUPBYstatementonmorethanonecolumn,likethis:
Suppose you have a table called "Sales" with columns "Product," "Region," and "Revenue." To
aggregate data by both "Product" and "Region" and calculate the total revenue for each
combination, you can use the following SQL statement:
Version-I
Level III
In this example, the data is grouped by both "Product" and "Region," and the SUM function is
applied to calculate the total revenue for each group.
SortingAggregateDatainQueryOutput:
You can sort the aggregate data in the query output using the ORDER BY clause. This allows
you to specify the order in which the results should be displayed.
Use ORDER BY if you want to order rows according to a value returned by an aggregate
function likeSUM(). The ORDER BY operator is followed by the aggregate function (in our
example,SUM()). DESC is placed after this function to specify a descending sort order. Thus,
the highest aggregate values are displayed first, then progressively lower values are displayed.
To sort inascendingorder, you can specifyASC or simplyomit eitherkeyword, as ascendingis the
default sort order.
Version-I
Level III
Example1:
Continuing with the "Sales" table, if you want to see the total revenue for each product and
region combination, sorted in descending order of revenue, you can use the following SQL
statement:
In this example, the data is first aggregated, and then the results are sorted in descending
order of the "TotalRevenue" column.
FilteringAggregateDataUsingtheHAVINGClause:
The HAVING clause is used to filter the results of aggregate functions. It allows you to specify
conditions that the aggregated data must meet.
SQLHAVINGSyntax
SELECTcolumn_name,aggregate_function(column_name)
FROMtable_name
WHEREcolumn_nameoperatorvalue
GROUPBYcolumn_name
HAVINGaggregate_function(column_name)operatorvalue
SQLHAVINGExample1
Version-I
Level III
Wehavethefollowing"Orders"table:
SELECTCustomer,SUM(OrderPrice)FROMOrders GROUP
BY Customer
HAVINGSUM(OrderPrice)<2000
Theresult-setwilllooklikethis:
Customer SUM(OrderPrice)
Nilsen 1700
Example2:
Supposeyouwanttofindproduct-regioncombinationswithatotalrevenuegreaterthan
$10,000.YoucanusethefollowingSQLstatement:
SELECTProduct,Region,SUM(Revenue)ASTotalRevenue FROM Sales
HAVINGTotalRevenue>10000;
In this example, the HAVING clause filters the results to include only those
combinationswhere the "TotalRevenue" is greater than $10,000.
These SQLstatements demonstrate how to aggregate data, sort the results, and filter
aggregated datausingthe GROUP BY,ORDER BY, and HAVING clauses, respectively.
Theseclausesare essential for summarizing and manipulating data in SQL queries.
ASubquery or Inner query or Nested query is a query within another SQL query and embedded within
the WHERE clause.
A subquery is used to return data that will be used in the main query as a condition to further restrict
the data to be retrieved.
Subqueries can be used with the SELECT, INSERT, UPDATE, and DELETE statements along with
the operators like =, <, >, >=, <=, IN, BETWEEN etc.
Self-check 4
Part I: Choose the correct answer
A) SEARCH
B) EXTRACT
C) SELECT
D) RETRIEVE
D) To join tables
A) Combine
B) Concatenate
C) Merge
D) List
Step 1. Write a query to display the student information for all students.
select*from student
Step 3. Write a query to display the student name for all students those who
score grades ‘B’.
SELECTstudent.Name,grade_report.GradeFROM course
INNERJOINgrade_reportONcourse.Course_Code=grade_report.Course_CodeINNERJOIN
student ONgrade_report.StudentID=student.StudentID
WHERE (grade_report.Grade='B')
Step 4. Write a query to display the student ID and name for all male
students those who score grades ‘A’ and who learn in Java course.
SELECT student.StudentID, student.NameFROM course INNER JOIN
grade_report ON course.Course_Code = grade_report.Course_Code INNER
JOIN student ON grade_report.StudentID = student.StudentIDWHERE
(student.Sex = 'male') AND (course.Course_Code = 'ICT002') AND
(grade_report.Grade = 'A')
Step 5. Write a query to display the student for all students those who score
grades ‘A’ and who learn in computer science department, then sort by
Department name descending and name ascending order.
Step 7. Write a query to display the student for all students those who score
grades between ‘A’ and ‘D’ and who learn in PhP course.
select*from student
whereStudentIDin(selectdistinctStudentIDfromgrade_reportwhereCourse_Code='ICT001'and
grade='A'orCourse_Code='ICT001'and grade='b'orCourse_Code='ICT001'and
grade='c'orCourse_Code='ICT001'and grade='d')
Step 8. Write a query to display the student ID and name for all students
who study in a computer science department with any student whose
name contains a ‘T’.
SELECTstudentid,NAMEFROM student WHEREDeptName='Computer Science'or Name LIKE'%T%'
Step 9.Write a query to display the student information who didn’t take a
course.
Step 10. Write a query to display the student information who didn’t scorec.
select * from student where StudentID in(select studentID from grade_report where
grade<>'c' )
Step 11. Write a query that displays only the unique grade letters.
Step 12. Write a query that displays studentid and no of course for students
who takes more than one course.
selectstudentID,count(*)total fromgrade_reportgroupbystudentidhavingcount(*)>1
Step 13. Write a query that displays students information who takes more
than one course.
Lap Test
Instruction: Use ABC database (from unit three lap test) in order to perform the following tasks
Task 1: Display customers first name and last name whose country is Addis ababa
Task 6:Group orders by CustomerId and calculate the total amount for each customer
Task 7:Retrieve the maximum total amount from customer_Order using a subquery
Fundamental_of_Database_Systems
a_taylor_sql_for_dummies_2003
Database-Design-2nd-Edition-1660153697
SQL_All-in-One_For_Dummies.pdf
URL
https://www.tutorialspoint.com/
https://www.w3schools.com/sql/default.asp#gsc.tab=0&gsc.q=date%20functions%20sql
http://www-db.deis.unibo.it/courses/TW/DOCS/w3schools/sql/sql_select.asp.html
Version-I
Level III