0% found this document useful (0 votes)
14 views

TM07 Using Basic Structured Query Language

Uploaded by

ethioawashmedia
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

TM07 Using Basic Structured Query Language

Uploaded by

ethioawashmedia
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 119

Web Development and Database

AdministrationLevel-III
Based on November 2023, Curriculum Version
II

Module Title: Basic structured query


language Module code: EIS WDDBA3 M07
1123 Nominal duration: 100 Hours
Prepared by: Ministry of Labor and Skill

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

RDBMS------------------------------------
------- Relational database
management system
Page 1 of 119 Version-I
Ministry of Labor and Skills Basic Structure Query
DDL November, 2023
Author/Copyright Language Level III
----------------------------------------------
- Data definition language
DML ---------------------------------------------- Data manipulation language

DCL ---------------------------------------------- Data control language

DQL ---------------------------------------------- Data query language

DBA------------------------------------------------Database administrator

Introduction to the Module


This module covers all the fundamental concepts of SQL language,
such as creating database and tables, using constraints, adding records
to a table updating and deleting records in a table, and so on.Once
you're familiar with the basics, you'll move on to next level that
explains the methods of retrieving records, searching records in the
table based on pattern, etc.Finally, you'll explore some advanced
Page 2 of 119 concepts. In this Version-I
Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
module, we delve into four critical unitsfundamental concepts of relational database, DDL, DML and data
query language to equip you with the skills and knowledge necessary to enable you to be competent.

Module covers the units:

Fundamental concepts of relational database


Data definition language
Data manipulation language
Data query language

Learning outcomesof the module


Describe data management approaches and database
Practice installing and uninstalling DBMS software
Create and manage databases using different DBMSs
Explain structured query language and differentiate SQL keywords from identifiers
Apply SQL DDL and DML to create and manipulate database structures
Explain SQL data control language and differentiate between SQL DDL, DML, DQL and DCL
Module Instruction

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

Unit One:Fundamental concepts of relational database

Page 3 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
This unit is developed to provide you the necessary information regarding the following
content coverage and topics:
Data management approaches

Relational Database management system

Structured query language


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:
Describe Data management approaches
Understand properties, characteristics and benefits of a database
Define relational database management system
Describe the different types of RDBMS
Install aDBMS software
Explain Structured query language

1.1. Data management approaches

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.

Page 4 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
1.1.1 File based approach
One way to keep information on a computer is to store it in permanent files. A company system has a
number of application programs; each of them is designed to manipulate data files. These
application programs have been written at the request of the users in the organization. New applications are
added to the system as the need arises. The system just described is called the file-based system.
Consider a traditional banking system that uses the file-based system to manage the organization’s
data. There are different departments in the bank. Each has its own applications that manage and
manipulate different data files. For banking systems, the programs may be used to debit or credit an
account, find the balance of an account, add a new mortgage loan and generate monthly statements.
Disadvantages of the file-based approach
Using the file-based system to keep organizational information has a number of disadvantages.
Listed below are fiveexamples.
Data redundancy
Often, within an organization, files and applications are created by different programmers from
various
departments over long periods of time. This can lead to data redundancy, a situation that occurs
in a database when a field needs tobe updated in more than one table. This practice can lead to
data inconsistency, a situation where various copies of the same data are conflicting, wastes storage space
and duplicates effort.
Data isolation
Data isolation is a property that determines when and how changes made by one operation become visible
to other concurrent users and systems. This issue occurs in a concurrency situation. This is a
problem
because: It is difficult for new applications to retrieve the appropriate data, which might be stored
in various files.

 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.

Page 5 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
It is difficult to make changes to the application programs in order to enforce new constraints.
Security problems

Security can be a problem with a file-based approach because: There are constraints regarding accessing
privileges.
Application requirements are added to the system in an ad-hoc manner so it is difficult to enforce
constraints.
Concurrency access

Concurrency is the ability of the database to allow multiple users access to the same record
without adversely affecting transaction processing. A file-based system must manage or prevent,
concurrency by
the application programs.
Typically, in a file-based system, when an application opens a file, that file is locked. This means that no
one else has access to the file at the same time.
In database systems, concurrency is managed thus allowing multiple users access to the same record. This
is an important difference between database and file-based systems.

1.1.2 Database Approach


The difficulties that arise from using the file-based system have prompted the development of a
new approach in managing large amounts of organizational information called the databaseapproach.
Most companies keep track of customer information by storing it in a database. This data may include
customers, employees, products, orders or anything else that assists the business with its operations.

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:

Page 6 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
It is a representation of some aspect of the real world or a collection of data elements (facts) representing
real world information.
A database is logical, coherent and internally consistent.
A database is designed, built and populated with data for a specific purpose.
Each data item is stored in a field. A combination of fields makes up a table. For example, each field in an
employee table contains data about an individual employee. A database can contain many tables.
4. Characteristics and Benefits of a Database
There are a number of characteristics that distinguish the database approach from the file-based system or
approach.
 Self-describing nature of a database system
A database system is referred to as self-describing because it not only contains the database itself, but also
metadata which defines and describes the data and relationships between tables in the database.
This information is used by the DBMS software or database users if needed. This separation of
data and information about the data makes a database system totally different from the traditional file-
based system in which the data definition is part of the application programs. Because the database contains
a description of its own structure, it’s self-describing. The database is integrated because it includes not
only data items but also the relationships among data items. The database stores metadata in an
area called the data dictionary, which describes the tables, columns, indexes, constraints, and other
items that make up the database.
 Insulation between program and data
In the file-based system, the structure of the data files is defined in the application programs so if a user
wants to change the structure of a file, all the programs that access that file might need to be changed as
well. On the other hand, in the database approach, the data structure is stored in the system catalogue and
not in the programs. Therefore, one change is all that is needed to change the structure of a file.
This insulation between the programs and data is also called program-data independence.
 Support for multiple views of data
A database supports multiple views of data. A view is a subset of the database, which is defined and
dedicated for particular users of the system. Multiple users in the system might have different views of the
system. Each view might contain only the data of interest to a user or group of users.
 Sharing of data and multiuser system

Page 7 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Current database systems are designed for multiple users. That is, they allow many users to access
the same database at the same time. This access is achieved through features called concurrency
control strategies. These strategies ensure that the data accessed are always correct and that data
integrity is maintained. The design of modern multiuser database systems is a great improvement from
those in the past which restricted usage to one person at a time.
Control of data redundancy
In the database approach, ideally, each data item is stored in only one place in the database. In some
cases, data redundancy still exists to improve system performance, but such redundancy is controlled by
application programming and kept to minimum by introducing as little redundancy as possible
when designing the database.
Data sharing
The integration of all the data, for an organization, within a database system has many advantages. First, it
allows for data sharing among employees and others who have access to the system. Second, it gives users
the ability to generate more information from a given amount of data than would be possible without the
integration.
Enforcement of integrity constraints
Database management systems must provide the ability to define and enforce certain constraints to ensure
that users enter valid information and maintain data integrity. A database constraint is a restriction or rule
that dictates what can be entered or edited in a table such as a postal code using a certain format or adding a
valid city in the City field.
There are many types of database constraints. Data type, for example, determines the sort of data permitted
in a field, for example numbers only. Data uniqueness such as the primary key ensures that no duplicates
are entered. Constraints can be simple (field based) or complex (programming).
Restriction of unauthorized access
Not all users of a database system will have the same accessing privileges. For example, one user might
have read-only access (i.e., the ability to read a file but not make changes), while another might have read
and write privileges, which is the ability to both read and modify a file. For this reason, a
database management system should provide a security subsystem to create and control different
types of user accounts and restrict unauthorized access.
Data independence

Page 8 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Another advantage of a database management system is how it allows for data independence. In
other words, the system data descriptions or data describing data (metadata) are separated from the
application programs. This is possible because changes to the data structure are handled by the database
management system and are not embedded in the program itself.
Transaction processing
A database management system must include concurrency control subsystems. This feature ensures that
data remains consistent and valid during transaction processing even if several users update the
same
information.
Backup and recovery facilities
Backup and recovery are methods that allow you to protect your data from loss. The database system
provides aseparate process, from that of a network backup, for backing up and recovering data. If a hard
drive fails and thedatabase stored on the hard drive is not accessible, the only way to recover the database is
from a backup.
If a computer system fails in the middle of a complex update process, the recovery subsystem is
responsible for making sure that the database is restored to its original state. These are two more benefits of
a database management system.

1.2. Relational Database Management System

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
Page
store 9 of 119
information. Version-I
Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Abstraction Layer:
The DBMS abstracts the physical details of database storage, allowing applications to focus on logical data
characteristics. It organizes and structures data, defining its personality through a data model.
Data Model and SQL:
The data model, determined by a DBMS, dictates its characteristics and suitability for
specific applications. SQL, a language for relational databases, aligns with the relational data model where
data is organized as tables.
Schemas, Domains, and Constraints:
A database's structure is its schema, describing its complete logical view. Domains represent the possible
values an attribute can assume, and constraints are rules governing attribute values.
Independence of Tables:
Relational databases offer flexibility as data resides in independent tables. Changes in one table do
not affect others, provided there are no parent-child relationships.
Relations and Keys:
A relational database comprises one or more relations, essentially tables. Keys, such as primary
keys, uniquely identify records. Foreign keys establish relationships between tables.
Primary Keys:
Primary keys uniquely identify each row and cannot have duplicate or NULL values. A table typically has
one primary key, which may be a composite key if multiple fields are involved.
Foreign Keys:
Foreign keys link tables, referencing primary keys from another table. They establish relationships
between tables, contributing to data integrity and consistency.
This overview provides a foundational understanding of RDBMS concepts, emphasizing their role
in structuring, organizing, and managing data within a database system.

1.2.1 Requirement for Installing MS SQL Server DBMS Software

The following system requirements cover SQL Server 2012 Standard Edition on 32-bit and x64platforms,
as well as Itanium-based systems.

SQLServer201264-bitHardwareRequirements:

Component MinimumRequirement Recommended Requirement

Page 10 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Processor x64Processorwithatleast1.4GHz 2.0GHzorfaster,4or more cores

RAM(64-bit) 1GBforExpress,2GBforall others 4GBormore

Hard Disk Space (Database 3.5GBminimum,10GBormore 40GBormore


Engine) recommended
Hard Disk Space (Analysis 250MBminimum,2GBormore 40GBormore
Services) recommended
HardDiskSpace(Reporting 3GBminimum,10GBormore 40GBormore
Services) recommended
HardDiskSpace(Integration 1.5GBminimum,2.5GBormore 40GBormore
Services) recommended
Hard Disk Space (Full 3.8GBminimum,10GBormore 40GBormore
Installation) recommended

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.

Page 11 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
SQLServer201232-bitHardwareRequirements:

Component MinimumRequirement
Recommended
Requirement
Processor
x86orx64Processorwithatleast 1.4GHz 2.0GHzorfaster,4or more
cores
RAM(32-bit) 1GBforExpress,2GBforallothers 4GBormore

40GBormore
HardDiskSpace(Database 2.2GBminimum,10GBormore
Engine) recommended
40GBormore
HardDiskSpace(Analysis 250MBminimum,2GBormore
Services) recommended
40GBormore
HardDiskSpace(Reporting 2.1GBminimum,10GBormore
Services) recommended
40GBormore
HardDiskSpace(Integration 1.5GBminimum,2.5GBormore
Services) recommended

Page 12 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
40GBormore
HardDiskSpace(Full 2.5GBminimum,10GBormore
Installation) recommended
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.

1.3. Structured query language

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

Page 13 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
group at IBM San Jose Research Laboratory developed the System R relationaldatabase
management system, basedon themodelintroduced byEdgar F. Codd in his influential paper, A Relational
Model of Data for Large Shared Data Banks.

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.

What You Can Do with SQL

There are lots more things you can do with SQL:

You can create a database.

You can create tables in a database.


You can query or request information from a database.
You can insert records in a database.

You can update or modify records in a database.


You can delete records from the database.
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.

Page 14 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
1.3.1 SQLkeywords

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:

ADA DEC GRANT NUMERIC


ALL DECIMAL GROUP OF
AND DECLARE HAVING ON
ANY DEFUALT IN OPEN
AS DELETE INDICATOR OPTION
ASC DESC INSERT OPEN
AUTHORIZATION DISTNICT INT OPTION
AVG DOUBLE INTEGER OR
BEGIN END INTO ORDER
BETWEEN ESCAPE IS PRIMARY

BY EXEC KEY REAL

C EXISTS LANGAUGE SELECT

CHAR FETCH LIKE SET

CHARACTER FLOAT MAX SOME

CHECK FOR MIN SUM

CLOSE FOREIGN MODULE TABLE

Page 15 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
COBOL FORTRAN NOT TO UNION

COMMIT FOUND NULL UPDATE

CONTINUE FROM USER

COUNT GO VIEW

CREATE GOTO WHERE

CURRENT WITH

CURSOR WORK

2. Types of SQL Statements


Although SQL is considered a sublanguage because of its nonprocedural nature, it is nonetheless a
complete language in that it allows you to create and maintain database objects, secure those objects, and
manipulate the data within the objects. One common method used to categorize SQL statements is
to divide them according to the functions they perform. Based on this method, SQL can be separated into
three types of statements:

 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
Page 16 of 119 Version-I
Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
commonly used by a database designerand database administrator for establishing the
database structures used by an application.
Data Manipulation Language (DML) allows a user or an application program to update
the database by adding new data, removing old data, and modifying previously stored data.The
primary keywords associated with DML statements are INSERT, UPDATE, and DELETE,
all of which represent the types of statements you’ll probably be using the most. For example, you
can use a update statement to modify existing data from a table and an insert statement to add data
to a table.
Data query language (DQL) When you need to retrieve data from a database, you use the SQL
language to make the request. The DBMS processes the SQL request, retrieves the requested data,
and returns it to you. This process of requesting data from a database and receiving back the results
is called a database query—hence the name Structured QueryLanguage.You use a SELECT
statement to retrieve data from a table.The name Structured Query Language is actually somewhat
of a misnomer. First of all, SQL is far more than a query tool, although that was its original purpose
and retrieving data is still one of its most important functions. SQL is used to control all of
the functions that a DBMS provides for its users, beyond what we have seen above.

3. What SQL Is and Isn’t


The first thing to understand about SQL is that SQL isn’t a procedural language,as are
FORTRAN,
BASIC, C, COBOL, Pascal, and Java. To solve a problem in one of those procedural languages,
you write a procedure thatperforms one specific operation after another until the task is complete.
The
procedure may be a linear sequence or may loop back on itself, but in eithercase, the programmer
specifies the order of execution.
SQL, on the other hand, is nonprocedural.To solve a problem using SQL, simplytell SQL whatyou
want
instead oftelling the system how to getwhat you want. The database managementsystem (DBMS)
decides the best way to get you what you request.

4. The Role of SQL


SQL is not itself a database management system, nor is it a stand-alone product. You
Page 17 of
cannot go119
into a computer store and "buy SQL." Version-I
Ministry of Labor and Skills Basic Instead,
Structure SQL
Queryis an integral part of a
November, 2023
database management system, a language and a tool for communicating
Language Level III with the DBMS.
Author/Copyright
The database engineis the heart of the DBMS, responsible for actually structuring, storing, and retrieving
the data in the database. It accepts SQL requests from other DBMS components, such as a forms facility,
report writer, or interactive query facility, from user-written application programs, and even from
other computer systems. SQL plays many different roles:
•SQL is an interactive query language. Users type SQL commands into an interactive SQL program to
retrieve data and display it on the screen, providing a convenient, easy-to-use tool for ad hoc
database queries.
•SQL is a database programming language. Programmers embed SQL commands into their application
programs to access the data in a database. Both user-written programs and database utility programs (such
as report writers and data entry tools) use this technique for database access.
•SQL is a database administration language. The database administrator responsible for managing a
database uses SQL to define the database structure and control access to the stored data.
•SQL is a client/server language. Personal computer programs use SQL to communicate over a network
with database servers that store shared data. This client/server architecture has become very popular for
enterprise-class applications.
•SQL is an Internet data access language. Internet web servers that interact with corporate data
and
Internet applications servers all use SQL as a standard language for accessing corporate databases.
•SQL is a distributed database language. Distributed database management systems use SQL to
help
distribute data across many connected computer systems. The DBMS software on each system uses SQL
tocommunicate with the other systems, sending requests for data access.
•SQL is a database gateway language. In a computer network with a mix of different DBMS products,
SQL is often used in a gatewaythat allows one brand of DBMS to communicate with another brand.
SQL has thus emerged as a useful, powerful tool for linking people, computer programs, and computer
systems to the data stored in a relational database.

Page 18 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Self Check 1
Part I: Choose the best answer
1.In a relational database, what is a primary key?
A) A key that provides a unique identifier for each record in a table.
B) key used to establish relationships between tables.
C) A key that allows null values in the table.
D) A key used for sorting records in ascending order.
2.What is the purpose of foreign keys in a relational database?
A) To uniquely identify each record in a table.
B) To establish relationships between tables.
C) To enforce data type constraints.
D) To automatically generate primary keys.
3.What is the primary purpose of a Relational Database Management System
(RDBMS)?
A) To perform complex mathematical calculations.
B) To manage and organize files in a computer system.
C) To store, retrieve, and manage structured data in tables.
D) To create graphical user interfaces for applications.
4.In a relational database, what is a foreign key?
A) A key that uniquely identifies each record in a table.
B) A key used to establish relationships between tables.
C) A key that is automatically generated by the database.
D) A key used for sorting records in descending order.
5.What does the acronym SQL stand for in the context of relational databases?
A) Simple Query Language
B) Structured Query Language
C) System Query Language

Page 19 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
D) Standardized Query Logic

6.Which normalization form ensures that there are no partial dependencies in a relational
database?
A) First Normal Form (1NF)
B) Second Normal Form (2NF)
C) Third Normal Form (3NF)
D) Fourth Normal Form (4NF)

Part II: Say true or false


1.In a relational database, a foreign key is used to uniquely identify each record in a table.
2.Normalization is the process of organizing data to minimize redundancy and dependency.
3.Views in an RDBMS are physical tables that store data.
4.ACID properties (Atomicity, Consistency, Isolation, Durability) ensure the reliability of
transactions in a relational database.
5.In a relational database, a primary key can contain NULL values.

Page 20 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Operation sheet 1.1: Install SQL server 2012
Operation title: SQL server 2012 installation Purpose:To install SQL server
2012 installation Equipment and Tools: SQL Server 2012
Steps to install SQL Server 2012

Step 1: Open installation media in new window and right click on setup file to run
it “As Administrator”.

Step 2: Installation Center

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.

Page 21 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
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
option for that as well.
As we want to perform stand-alone installation, we’ll go with option 1. Click on the first link and the
installation process begin.
Step 3: Setup Support Rules
Before proceeding with the installation steps, SQL Server setup runs a setup to check all the things
required for installation. This check is nothing but a kind of verification to ensure you can proceed further
or not.

Page 22 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
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 4: Product Key


Select edition of SQL Server you want to install on your machine with your product key and click Next.

Step 5: License Term

Page 23 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Accept the license by clicking on “I accept license terms.” Click Next.

Step 6: Product Updates


Here, setup will look for latest product updates to enhance SQL Server performance as my setup found one
update of 22 MB for enhancement as shown below.

Page 24 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Step 7: Install Setup Files
At this window, you’ll get Install button to install the updates.

Step 8: Setup Support Rules

After successful completion of previous step, setup will again run a check to ensure everything looks good
for the installation.

Page 25 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
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’.

If you select “All Features with Default”, the following things will be set by default:

Page 26 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
 On the Feature Selection page, all features will be selected by default.
 On Server Configuration page, default accounts will be set.
 On Database Engine Configuration page, your current logon account will be added as a Server
Administrator.
Step 10: Components or Features to Install

Select the components you want to install on your machine. The following is the description for above
listed components.
Database Engine Services: Allow you to install SQL Server instance.
Analysis Services: Allow you to install an Analysis Services instance on standalone or on cluster
node.
Reporting Services: Allow you to install the server as report server.
SQL Server Data Tool: Allow you to install SQL Server Developer tool to work with integration
packages. In SQL Server 2008 installation you’ll find this service named as ‘Business Intelligence
Development Studio’.
Integration Services: Allow you to install Integration Services.

Page 27 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
 Management Tool: Allow you to install SQL Server management configuration tool including
command line and power shell tool.
If you selected “All Features with Default” in previous step, all these components will be checked
automatically.

Step 11: Installation Rules

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.

If
all looks good, click Next.
Step 12: Instance Configuration

Page 28 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
This step will ask, what type of instance you want to configure, as we all know, either we can install
Default or Named instance. If default instance is already installed, you’ll have to have proceeded with
named instance.

Select type of instance you want to install. If you want to change the root directory of your instance, you
can change it from ‘Instance root directory’ option. It’ll also show you the instance already installed on
your machine. As shown in above screenshot, I already installed 2 instances on my machine.
After doing instance configuration, click Next. Step 13: Disk Space requirement summary
At this step, you’ll get disk space summary which will show how much disk space your instance will take
on the machine.

Page 29 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Step 14: Server Configuration
On this step you’ll find options to specify Service Accounts and Collation Configuration.

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.

Page 30 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
The collation type you select here will be set as default collation for your instance.

After performing above steps, click Next.

Step 15: Database Engine Configuration

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.

Page 31 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
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
You can change these locations of your own choice.

Page 32 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
On FileStream tab, you’ll find option to enable FileStream feature.

Page 33 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
After completing the steps, click Next.

Step 16: Analysis Services Configuration

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.

Specify your Analysis Services data directories as shown below.

Page 34 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Click Next,
Step 17: Distributed Replay Controller
If you had selected all shared features to install, you’ll get this and next step to complete.

At this step, you’ll find Distributed Replay Controller. This feature helps you assess the impact of future
SQL Server upgrades.

Page 35 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
This is similar to SQL Server Profile, Distributed Replay Controller replay a captured trace against an
upgraded test environment. This feature can use multiple computers to replay trace data and simulate a
mission-critical workload.
Add users to have unlimited access to the Distributed Replay client service and click next. Step 18:
Distributed Replay Client
This is one of the component of Distributed Replay Controller under which one or more computers
(physical or virtual) running the Windows service named SQL Server Distributed Replay client. The
Distributed Replay client works together to simulate workloads against an instance of SQL Server.

Page 36 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Enter Controller Name so that the client computer will communicate with for the Distributed Replay Client
Service. This is the optional parameter and the default value is ‘BLANK’.
Specify the working directory for the Distributed Replay client service. Specify the result directory for the
Distributed Replay client service.
Click Next.
Step 19: Error Reporting to Microsoft.

Page 37 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Click Next.

Step 20: Installation Configuration Rule

At this step, setup will perform a final check to ensure everything looks good for installation operation.

If all rule passes, click Next.


Step 21: Installation Summary

Page 38 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Here you’ll get summary of your installation as shown below.
If you’re satisfied with everything, click on Install button and you’re set to go.
Step 22: Ready Steady Go!
Installation process will start and you’ll see the progress as in the following,

This will take some time, relax and just watch the progress. Step 23: Installation completed
After successful installation you’ll get the following window. This will show you the components installed
on your machine with ‘Succeeded’ message in Status column.

Page 39 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
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.

Conclusion
We’ve successfully installed SQL Server 2012 named instance on our machine. We have seen the steps
involved in the installation.

Lap Test

Page 40 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Instruction: Given necessary templates, tools and materials you are required to perform the

following tasks accordingly


Task 1: Connect your SQL server

Task 2: Create a new query

Page 41 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Unit Two: Data definition language

This unit is developed to provide you the necessary information


regarding the following content coverage and topics:

Introduction to SQL data definition language commands


Database planning
Naming convention for all database elements
Database structure creation and manipulation

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

2.1. Introduction to SQL data definition language


commands

Page 42 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
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.

2.2. Database planning

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.

Page 43 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
 Define the columns that each table must contain.
 Give each table a primary key that you can guarantee is unique.
 Make sure that every table in the database has at least one column in common with one other table
in the database. These shared columns serve as logical links that enable you to relate information in
one table to the corresponding information in another table.
 Put each table in third normal form (3NF) or better to ensure the prevention of insertion, deletion,
and update anomalies. After you complete the design on paper and verify that it is sound,
you’reready to transfer the design to the computer by using SQL CREATE commands.

3. Usage of relevant naming convention for all database elements

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

Page 44 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
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.

DataTypes

Thereis astandard that specifies various types ofdata that canbe stored in SQL-
baseddatabase and manipulated by the SQL languages.

Characterstrings:

Datatype Description Storage

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:

Page 45 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
Datatype Description Storage

nchar(n) Fixed-lengthUnicodedata.Maximum4,000characters

nvarchar(n) Variable-lengthUnicodedata.Maximum4,000characters

nvarchar(max) Variable-lengthUnicodedata.Maximum536,870,912characters

Ntext Variable-lengthUnicodedata.Maximum2GBoftextdata

 Binarytypes:

Datatype Description Storage

Bit Allows0,1,or NULL

binary(n) Fixed-lengthbinarydata.Maximum8,000bytes

varbinary(n) Variable-lengthbinarydata.Maximum8,000bytes

varbinary(max) Variable-lengthbinarydata.Maximum2GB

Image Variable-lengthbinarydata.Maximum2GB

 Numbertypes:

Datatype Description Storage

Page 46 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
tinyint Allowswholenumbersfrom0to255 1byte

smallint Allowswholenumbersbetween-32,768and32,767 2bytes

Int Allowswholenumbersbetween-2,147,483,648and2,147,483,647 4bytes

Bigint 8bytes
Allowswholenumbersbetween-9,223,372,036,854,775,808and
9,223,372,036,854,775,807

decimal(p,s) Fixedprecisionandscalenumbers. 5-17


bytes
Allowsnumbersfrom-10^38+1to10^38–1.
Thepparameterindicatesthemaximumtotalnumberofdigits that
canbestored(bothtotheleftandtotherightofthedecimalpoint). p must
be a value from 1 to 38. Default is 18.
Thesparameterindicatesthemaximumnumberofdigitsstoredto

Page 47 of 119 Version-I


Ministry of Labor and Skills Basic Structure Query
November, 2023
Language Level III
Author/Copyright
therightofthedecimalpoint.smustbeavaluefrom0top. Default value
is 0
numeric(p,s) Fixedprecisionandscalenumbers. 5-17
bytes
Allowsnumbersfrom-10^38+1to10^38–1.
Thepparameterindicatesthemaximumtotalnumberofdigits that
canbestored(bothtotheleftandtotherightofthedecimalpoint). p must
be a value from 1 to 38. Default is 18.
Thesparameterindicatesthemaximumnumberofdigitsstoredto
the right of the decimal point. s must be a value from
0 to p.
Defaultvalueis0
smallmoney Monetarydatafrom-214,748.3648to214,748.3647 4bytes

money 8bytes
Monetarydatafrom-922,337,203,685,477.5808to
922,337,203,685,477.5807

float(n) Floatingprecisionnumberdatafrom-1.79E+308to1.79E+308.
4or8

The n parameter indicates whether the field should hold 4 or bytes

8 bytes.float(24)holdsa4-bytefieldandfloat(53)holdsan8-byte
field. Default value of n is 53.
Real Floatingprecisionnumberdatafrom-3.40E+38to3.40E+38 4 bytes

Page 48 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
 Datetypes:

Datatype Description Storage

datetime FromJanuary1,1753toDecember31,9999withanaccuracyof3.33 8 bytes


milliseconds

datetime2 FromJanuary1,0001andDecember31,9999withanaccuracyof100 6-8bytes


nanoseconds

smalldatetime FromJanuary1,1900toJune 6,2079with anaccuracyof 1 minute 4 bytes

Date Storea dateonly.FromJanuary1,0001toDecember 31,9999 3 bytes

Time Storea timeonlytoanaccuracyof 100 nanoseconds 3-5bytes

datetimeoffset Thesameasdatetime2withtheadditionofatimezone offset 8-10bytes

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

Page 49 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
 Otherdatatypes:

Datatype Description

sql_variant Storesupto8,000bytesofdataofvariousdatatypes,excepttext,ntext,and timestamp

uniqueidentifier Storesagloballyuniqueidentifier(GUID)

Xml StoresXMLformatted data.Maximum2GB

cursor Storesareferencetoa cursorusedfordatabase operations

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.
Page 50 of 119 Version-I
Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
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:

INSERT INTO student(Fname, SID, Dept, year)

Thevalueforeachcolumnin thenewlyinsertedrowisspecifiedintheVALUESclause.Constant data


values are also used in expression such as in the SELECT statement

SELECT
city FROMoffice

➢ Numeric constant

Integersanddecimalconstants(alsocalledexactnumericliterals)arewrittenasordinarydecimal numbers in
SQL statements, with an optional leading plus or minus sign

Example:200 +345.95 -500 789.00

Useacommabetweenthedigitsofanumeric constant
Page 51 of 119 Version-I
Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
➢ String Constant

TheANSI/ISOstandardspecifiesthatSQLconstantsforcharacterdatabeenclosedinsingle quotes

(‘……’)

Example:‘WaksumMotuma’ ‘Addis Ababa’

Ifasinglequotesistobeusedincludedintheconstanttext,itis writtenwithintheconstantastwo
consecutive single quote characters. This isconstant value:

Example:“Ican’t”

➢Date and time constants

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.

Example1:Thequerythatcalculatesthe sales ofeachoffices asapercentageofitstarget:

SELECTcity,target,sales,(sales/target)*100 FROMoffices

Page 52 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
Example2:

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

2.4. Database structure creation and manipulation

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,

Page 53 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
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
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

Page 54 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel 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

 By default, a table column can hold NULL values.


 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.

Page 55 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
 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))

accept NULL values:


SQL UNIQUE Constraint

The UNIQUE constraint uniquely identifies each record in a database table.


The UNIQUE and PRIMARY KEY constraints both provide a guarantee for uniqueness for a
column or set of columns.
A PRIMARY KEY constraint automatically has a UNIQUE constraint defined on it.
Note that you can have many UNIQUE constraints per table, but only one PRIMARY KEY
constraint per table.
SQL UNIQUE Constraint on CREATE TABLE

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))

Page 56 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel 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))

SQL DEFAULT Constraint

The DEFAULT constraint is used to insert a default value into a column.

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:

Create table persons(P_IdintNOTNULL,LastNamevarchar(255) NOTNULL, FirstName


varchar(255),Addressvarchar(255), Cityvarchar(255)DEFAULT'Sandnes')

TheDEFAULTconstraintcanalsobeusedtoinsertsystemvalues,byusingfunctionslike GETDATE():

CREATETABLEOrders (O_Idint
Ministry of Labor and Skills NOT NULL,
Basic Structure
Query Versio
OrderNointNOTNULL,
n-I

Page 57 of 119 Author/Copyright LanguageLevel III November, 2023


 SQLAUTOINCREMENTField

Auto-incrementallowsauniquenumbertobegeneratedwhenanewrecordisinsertedintoa table.

 AUTOINCREMENTaField

Veryoften wewouldlikethevalueoftheprimarykeyfieldto becreated automaticallyevery time a


new record is inserted.

Wewouldliketocreateanauto-incrementfieldinatable.

SyntaxforSQLServer

field in
ThefollowingSQLstatementdefinesthe"P_Id"columntobeanauto-incrementprimarykey
the "Persons" table:

CREATETABLEPersons ( P_IdintPRIMARYKEYIDENTITY,
LastNamevarchar(255)NOTNULL, FirstName
varchar(255),

Addressvarchar(255), City varchar(255))

TheMSSQLServerusestheIDENTITYkeywordtoperformanauto-incrementfeature.

Bydefault,thestartingvaluefor IDENTITYis1,anditwillincrementby1foreachnew record.


identity to
Tospecifythatthe"P_Id"columnshouldstartat value10andincrementby5,changethe
IDENTITY(10,5).

Toinsertanewrecordintothe"Persons"table,wewillnothavetospecifyavalueforthe "P_Id" column


(a unique value will be added automatically):

Page 58 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
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:
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:

Page 59 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
ALTERTABLEPersons ADD UNIQUE (P_Id)

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)

 SQL DEFAULT Constraint on CREATE TABLE

TocreateaDEFAULTconstraintonthe"City"columnwhenthetableisalreadycreated,use the
following SQL:

ALTERTABLEPersons ALTERCOLUMNCitySETDEFAULT'SANDNES'

 DROP
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

To drop a DEFAULT constraint, use the following SQL:

Page 60 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
ALTERTABLEPersons ALTERCOLUMNCityDROPDEFAULT

DROP or DELETE Database

The SQL DROP DATABASE statement is used to drop an existing database in SQL schema.

Basic syntax of DROP DATABASE statement is as follows: DROP DATABASE DatabaseName;


Example:

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.
Exercise Write the SQL DDL command that implements the database. Name the database
Sporting_goods.

Table Column Data type Constraint


CUSTOMER CustomerID INTEGER Primary key

FirstName CHARACTER (15)

LastName CHARACTER(20) NOT NULL

Street CHARACTER (25)

City CHARACTER (20)

State CHARACTER (2)

Zipcode INTEGER

Phone CHARACTER (13)

PRODUCT ProductID INTEGER Primary key

Name CHARACTER (25)

Page 61 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
Description CHARACTER (30)

Category CHARACTER (15)

VendorID INTEGER

VendorName CHARACTER (30)

INVOICE InvoiceNumber INTEGER Primary key

CustomerID INTEGER

InvoiceDate DATE

INVOICE_LINE LineNumber INTEGER Primary key

InvoiceNumber Integer

ProductID INTEGER

Quantity INTEGER

SalePrice NUMERIC (9,2)

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.

Page 62 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
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.

Self-Check 2
Part I: Choose the correct answer from
the alternatives provided

1. Which SQL statement is used to define


a new table in a database?

A) SELECTB) CREATEC) UPDATED)


INSERT

2. What is the purpose of the SQL


statement ALTER TABLE?

A)Insert new records into a table.

B)Delete existing records from a table.

C)Modify the structure of an existing


table.

D)Retrieve data from one or more tables.

3. Which of the following SQL statements


is used to remove a table from the
database?

Page 63 of 119 Ministry of Labor and Skills


A)REMOVE TABLE Version-I
Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
B)DROP TABLE
D) ERASE TABLE

4. Which SQL data type is used to store variable-length character strings?

A)VARCHAR

B)INTEGER

C)FLOAT

D)DATE

Page 64 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
Operation sheet 2.1: Create Database structure
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(StudentID varchar(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

Page 65 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel 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_Code (8)
ForeignKey(Course_Code
Varchar )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)

Step 5: Display a relationship you have created on step 3 above.


Click on the +sign of your instance name to expand it then expand the database node then click on your
database name to expand it finally right click on database diagram and click new database diagram, click
add to add all your diagram.

Page 66 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
Lap Test
Instruction: Given necessary tools and

materials you are required to perform

the following tasks accordingly


Task 1: Create a database called
Hospital
Task 2: Create a table called Doctor,
Patient and medicine with their
respected relations Task 3:Display a
relationship you have created

Page 67 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
Unit Three: Data manipulation language
This unit is developed to provide you the necessary information regarding
the following content coverage and topics:

Overview of SQL data manipulation language commands


Data insertion
Modification of existing data
Data deletion

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
Identify DML commands
Perform data manipulation using INSERT, UPDATE, and DELETE
statements.
Understand the impact of these statements on the database.

Page 68 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
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.

2. Data insertion

SQL INSERT Query


The SQL INSERT INTO Statement is used to add new rows of data to a table in the database. Syntax:
There are two basic syntaxes of INSERT INTO statement as follows:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, value2,
value3,...valueN);
Here, column1, column2,...columnN are the names of the columns in the table into which you
want to insert data.
You may not need to specify the column(s) name in the SQL query if you are adding values for all the
columns of the table. But make sure the order of the values is in the same order as the columns in the table.
The SQL INSERT INTO syntax would be as follows:
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN); Example:
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 );

Page 69 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
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 INSERT INTO
CUSTOMERS VALUES (7, 'Muffy', 24, 'Indore', 10000.00 );

All the above statements would produce the following records in CUSTOMERS table:

+----+----------+-----+-----------+----------+

| 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 |

+----+----------+-----+-----------+----------+

ThefollowingSQLstatementwilladdanewrow, butonlyadddatainthe "P_Id","LastName" and the


"FirstName" columns:

INSERTINTOPersons(P_Id,LastName,FirstName) VALUES (5,


'Tjessem', 'Jakob')

The"Persons"tablewillnowlooklikethis:

Page 70 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn10 Sandnes

2 Svendson Tove Borgvn23 Sandnes

3 Pettersen Kari Storgt20 Stavanger

4 Nilsen Johan Bakken2 Stavanger

5 Tjessem Jakob

3.3. Modification of existing


data
SQL UPDATE Query

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:
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 |

Page 71 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+

Following is an example, which would update ADDRESS for a customer whose ID is 6:

UPDATE CUSTOMERS SET ADDRESS = 'Pune' WHERE ID = 6;

Now, CUSTOMERS table would have 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 | 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:

UPDATE CUSTOMERS SET ADDRESS = 'Pune', SALARY = 1000.00;

Now, CUSTOMERS table would have the following records:


+----+----------+-----+---------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+---------+
| 1 | Ramesh | 32 | Pune | 1000.00 |
| 2 | Khilan | 25 | Pune | 1000.00 |
| 3 | kaushik | 23 | Pune | 1000.00 |
| 4 | Chaitali | 25 | Pune | 1000.00 |

Page 72 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
| 5 | Hardik | 27 | Pune | 1000.00 |
| 6 | Komal | 22 | Pune | 1000.00 |
| 7 | Muffy | 24 | Pune | 1000.00 |
+----+----------+-----+---------+---------+

3.4. Data deletion

SQL DELETE Query

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.

The basic syntax of DELETE query with WHERE clause is as follows: DELETE FROM

table_name 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 |
+----+----------+-----+-----------+----------+
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:

Page 73 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
+----+----------+-----+-----------+----------+
| 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 |

| 7 | Muffy | 24 | Indore | 10000.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:

DELETE FROM CUSTOMERS;

Now, CUSTOMERS table would not have any record

Page 74 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
Self check 3
Part I: choose the best answer

1. Which SQL statement is used to insert data into a database?

A)MODIFY

B)ALTER

C)UPDATE

D)Insert

2. Which SQL statement is used to update data in a database?

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

Page 75 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
Operation sheet 3.1Data Insertion

Operation Title:Data Insertion

Purpose: to insert data in the table

Equipment and tools:Computer, DBMS

software Steps to insert a data

Step 1:Insert the following data into student


table STUDENT Table
StudentID Name Sex BirthDate Section DeptName EmailAddress
R101 Yohanis Male 20/02/80 Room1 Computer Science [email protected]

R102 Kalkidan Female 12/06/78 Room1 Computer Science [email protected]

R103 Gari Male 17/01/70 Room2 Electrical [email protected]


R104 Firew Male 10/09/73 Room1 Computer Science [email protected]

R105 Tedi Male 19/01/82 Room2 Electrical [email protected]


R106 Solomon Male 15/03/85 Room2 Computer Science [email protected]

insertinto student values('R101', 'Yohanis', 'Male', 20/02/80,'Room1', 'Computer Science',


'[email protected]')
insertinto student values('R102',
'[email protected]') 'Kalkidan', 'Female',12/06/78,'Room1', 'Computer Science',
insertinto student values ('R103',
'Gari', 'Male', 17/01/70,'Room2','Electrical', '[email protected]')
insertinto student values ('R104', 'Firew','Male', 10/09/73,'Room1','Computer Science',
'[email protected]')

insertinto student values ('R105', 'Tedi', 'Female',19/01/82,'Room2', 'Electrical',


'[email protected]')

insertinto student values('R106','Solomon', 'Male', 2/05/88,'Room2','Computer


Science', '[email protected]')

insertinto student values('r107','sara','female',1/01/89,'room3','accounting','[email protected]')

Step 2: Insert the following data into Course table


COURSE Table

Page 76 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
Course_Code Course_Title Credit
ICT001 PHP 80
ICT002 Java 140
Elec003 Electrical 200

insertinto course values('ICT001', 'PHP', 80)


insertinto course values('ICT002', 'Java', 140)
insertinto course values('Elec003', 'Electrical', 200)

Step 3: Step 1:Insert the following data into Grade_report table


GRADE_REPORT Table
SID C_Code Grade
R101 ICT001 B
R101 ICT002 C
R102 ICT001 A
R103 Elec003 C
R104 ICT001 B
R104 ICT002 A
R105 Elec003 B
R106 ICT001 A
R106 ICT002 B

'ICT001', 'B')
insertintograde_reportvalues('R101',
'ICT002', 'C')
insertintograde_reportvalues('R101',
insertintograde_reportvalues ('R102', 'ICT001', 'A')

insertintograde_reportvalues('R103', 'Elec003', 'C')

insertintograde_reportvalues('R104', 'ICT001', 'B')

insertintograde_reportvalues('R104', 'ICT002', 'A')

insertintograde_reportvalues('R105', 'Elec003', 'B')


insertintograde_reportvalues('R106', 'ICT001', 'A')

insertintograde_reportvalues('R106', 'ICT002', 'B')

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’

Page 77 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
Lap Test
Instruction: Given necessary tools and

materials you are required to perform

the 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

Page 78 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
Customer_order Table

Unit Four: Data query language

Page 79 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
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.
Apply aggregate functions (e.g., COUNT, SUM, AVG, MAX, MIN) to analyze data.
Group data using GROUP BY clause.
Write subqueries to retrieve data for more complex queries.
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.

Page 80 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
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 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

Page 81 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
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

4.2. Selection of data from a single table

SQL SELECT Syntax

SELECTcolumn_name(s) FROM table_name

and

SELECT*FROMtable_name

Note:SQLisnotcasesensitive.SELECTisthesameasselect.

An SQL SELECT Example, The "Persons" table:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn10 Sandnes

2 Svendson Tove Borgvn23 Sandnes

3 Pettersen Kari Storgt20 Stavanger

Nowwewanttoselectthecontentofthecolumnsnamed"LastName"and"FirstName"from the table above.

Page 82 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
WeusethefollowingSELECTstatement:

SELECTLastName, FirstNameFROMPersons

Theresult-setwilllooklikethis:

LastName FirstName

Hansen Ola

Svendson Tove

Pettersen Kari

SELECT * Example

Nowwewanttoselectallthecolumnsfromthe"Persons"table. We use the following SELECT statement:

SELECT*FROMPersons

Tip:Theasterisk(*)isaquickwayofselectingallcolumns! The result-set will look like this:


P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn10 Sandnes

2 Svendson Tove Borgvn23 Sandnes

3 Pettersen Kari Storgt20 Stavanger

 NavigationinaResult-set

Mostdatabasesoftwaresystemsallownavigationintheresult-setwithprogrammingfunctions, like:
Move-To-First-Record, Get-Record-Content, Move-To-Next-Record, etc.

Programmingfunctionslikethesearenotapartofthistutorial.

Page 83 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
4.3. Retrieval of data selectively
SQLSELECTDISTINCTStatement

Inatable,someofthecolumnsmaycontainduplicatevalues.Thisisnotaproblem,howe sometimes you will


ver, want to list only the different (distinct) values in a table.

TheDISTINCTkeywordcanbeusedtoreturnonlydistinct(different)values.

SQL SELECT DISTINCT Syntax

SELECTDISTINCTcolumn_name(s) FROMtable_name

SELECTDISTINCTExample:
The"Persons"table:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn10 Sandnes

2 Svendson Tove Borgvn23 Sandnes

3 Pettersen Kari Storgt20 Stavange


r

Nowwewant toselect onlythedistinctvaluesfromthecolumnnamed"City"fromthetable above.

WeusethefollowingSELECTstatement:
SELECTDISTINCTCityFROMPersons

Theresult-setwilllooklikethis:

City

Sandnes

Page 84 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
Stavanger

SQL WHERE Clause


✓ TheWHEREclauseisusedtofilterrecords.

TheWHEREclauseisusedtoextractonlythoserecordsthatfulfillasp
ecifiedcriterion. SQLWHERESyntax

SELECTcolumn_name(s) FROM table_name

WHEREcolumn_nameoperatorvalue

WHEREClauseExample

The"Persons"table:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn10 Sandnes

2 Svendson Tove Borgvn23 Sandnes

3 Pettersen Kari Storgt20 Stavanger

Nowwewanttoselectonlythepersonslivinginthecity"Sandnes"fromthetableabove. We use the


following SELECT statement:
SELECT*FROMPersons WHERECity='Sandnes'

 QuotesaroundTextFields

SQLusessinglequotesaroundtextvalues(mostdatabasesystemswillalsoacceptdouble quotes).
Although,numericvaluesshouldnotbeenclosedinquotes. For

Thisiscorrect:
Ministry of Labor and Skills Basic Structure Query Version-I
Page 8 SELECT*FROMPersonsWHEREFirstName='Tove' This is wrong:
5 of 119 Author/Copyright LanguageLevel III November, 2023
SELECT*FROMPersonsWHEREFirstName=Tove
text values:

Fornumericvalues:

Thisiscorrect: SELECT*FROMPersonsWHEREYear=1965 This is wrong:

SELECT*FROMPersonsWHEREYear='1965'

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

Page 86 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
TheAND&ORoperatorsareusedtofilterrecordsbasedonmorethanonecondition.

TheANDoperatordisplaysarecordifboththefirstandthesecondconditionistrue.
TheORoperatordisplaysarecordifeitherthefirstconditionorthesecondconditionistrue.
ANDOperatorExample

The"Persons"table:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn10 Sandnes

2 Svendson Tove Borgvn23 Sandnes

3 Pettersen Kari Storgt20 Stavange


r

Nowwewant toselect onlythepersonswiththefirstnameequalto "Tove"ANDthelastname equal


to "Svendson":

WeusethefollowingSELECTstatement:

SELECT * FROM Persons WHERE FirstName='Tove'


ANDLastName='Svendson'

Theresult-setwilllooklikethis:
P_Id LastName FirstName Address City
2 Svendson Tove Borgvn23 Sandnes

OROperatorExample

Nowwewant toselect onlythepersonswiththefirstnameequalto "Tove"ORthefirstname equal to


"Ola":

WeusethefollowingSELECTstatement:

Page 87 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
SELECT*FROMPersons WHEREFirstName='Tove' OR FirstName='Ola'

Theresult-setwilllooklikethis:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn10 Sandnes

2 Svendson Tove Borgvn23 Sandnes

CombiningAND&OR

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:

P_Id LastName FirstName Address City


2 Svendson Tove Borgvn23 Sandnes

 SQLORDERBYKeyword

TheORDERBYkeywordisusedtosorttheresult
-set.
The
TheORDERBYkeywordisusedtosorttheresult-setbyaspecifiedcolumn.
ORDER BY keyword sort the records in ascending order by default.
If youwanttosorttherecordsinadescendingorder,youcanusetheDESCkeyword.
SQLORDERBYSyntax

Page 88 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
SELECTcolumn_name(s) FROM table_name

ORDERBYcolumn_name(s)ASC|DESC

ORDERBYExample

The"Persons"table:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn10 Sandnes

2 Svendson Tove Borgvn23 Sandnes

3 Pettersen Kari Storgt20 Stavanger

4 Nilsen Tom Vingvn 23 Stavanger

Nowwewanttoselectallthepersonsfromthetableabove,however,wewanttosortthe persons by their last name.

WeusethefollowingSELECTstatement:

SELECT*FROMPersons ORDER BY LastName

Theresult-setwilllooklikethis:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn10 Sandnes

Page 89 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
4 Nilsen Tom Vingvn 23 Stavanger

3 Pettersen Kari Storgt20 Stavanger

2 Svendson Tove Borgvn 23 Sandnes

ORDERBYDESCExample

Nowwewanttoselectallthepersonsfromthetableabove,however,wewanttosortthe persons descending


by their last name.
WeusethefollowingSELECTstatement:

SELECT * FROM Persons ORDERBYLastNameDESC

Theresult-setwilllooklikethis:

P_Id LastName FirstName Address City

2 Svendson Tove Borgvn23 Sandnes

3 Pettersen Kari Storgt20 Stavange


r
4 Nilsen Tom Vingvn 23 Stavange
r
1 Hansen Ola Timoteivn10 Sandnes

 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!

Page 90 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
SQLUPDATEExample

The"Persons"table:
P_I LastName FirstName Address City
d
1 Hansen Ola Timoteivn10 Sandnes

2 Svendson Tove Borgvn23 Sandnes

3 Pettersen Kari Storgt20 Stavanger

4 Nilsen Johan Bakken2 Stavanger

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:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn10 Sandnes

2 Svendson Tove Borgvn23 Sandnes

3 Pettersen Kari Storgt20 Stavanger

4 Nilsen Johan Bakken2 Stavanger

5 Tjessem Jakob Nissestien67 Sandnes

➢ SQLUPDATEWarning

Page 91 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
Becarefulwhenupdatingrecords. IfwehadomittedtheWHEREclauseintheexampleabove, like this:

UPDATEPersons SETAddress='Nissestien67',City='Sandnes'

The"Persons"tablewouldhavelookedlikethis:

P_Id LastName FirstName Address City

1 Hansen Ola Nissestien67 Sandnes

2 Svendson Tove Nissestien67 Sandnes

3 Pettersen Kari Nissestien67 Sandnes

4 Nilsen Johan Nissestien67 Sandnes

5 Tjessem Jakob Nissestien67 Sandnes

 SQLDELETEStatement

TheDELETEstatementisusedtodeleterows/recordsinatable.
SQLDELETESyntax

DELETE FROMtable_name WHEREsome_column=some_value

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:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn10 Sandnes

Page 92 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
LanguageLevel III
2 Svendson Tove Borgvn23 Sandnes

3 Pettersen Kari Storgt20 Stavange


r
4 Nilsen Johan Bakken2 Stavange
r
5 Tjessem Jakob Nissestien67 Sandnes

We use
Nowwewanttodeletetheperson"Tjessem,Jakob"inthe"Persons"table.
the following SQL statement:

DELETEFROMPersons
WHERELastName='Tjessem'ANDFirstName='Jakob'

The"Persons"tablewillnowlooklikethis:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn1 Sandnes


0
2 Svendson Tove Borgvn23 Sandnes

3 Pettersen Kari Storgt20 Stavanger

4 Nilsen Johan Bakken2 Stavanger

➢ DeleteAllRows

Itis possibletodeleteallrowsinatablewithoutdeletingthetable.This meansthatthetable structure,


attributes, and indexes will be intact:

DELETEFROMtable_nameor DELETE*FROMtable_name

Note:Beverycarefulwhendeletingrecords.Youcannotundothisstatement!
1. CharacterandStringComparisonOperators:


=(Equalto):Comparesiftwocharacterorstringvaluesareidentical.
Page 93 of 119 Ministry of Labor and Skills Version-I
Basic Structure Query
Author/Copyright November, 2023
LanguageLevel 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.

Tocontroltheorderofevaluationandensurecorrectprecedence, youcan useparenthesesto


group conditions.

Page 94 of 119 Ministry of Labor and Version-I


Basic Structure Query
SkillsAuthor/Copyright November, 2023
Language Level III
Example:
SELECT*FROMemployeesWHERE(age>=30ORexperience_years>=5)AND department =

'Engineering';

Inthisquery,theconditionsinsidetheparenthesesareevaluatedfirst,andthentheAND condition is applied to


the results.

Using parentheses is especially important when combining AND and OR operators in the same query
to make your intentions explicit and avoid unexpected behavior.

Understandingthe correctprecedenceandusingparentheseswhennecessaryis crucialtoensure that your


SQL queries produce the desired results and correctly evaluate complex conditions.

2. Checkingforarangeofvalues
retrieve
Youcanusecomparisonoperatorstofilterrowsbasedonarangeofvalues.Forexample,to
products with prices between $50 and $100:
SELECT*FROMproductsWHEREprice>=50ANDprice<=100;

Thisqueryretrievesrows fromthe"products"tablewherethe"price"is greaterthanorequalto 50 and


less than or equal to 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

Page 95 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
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:

Page 96 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
Thisquerywillreturnrowswherethe"description"columnisnull.
➢FilteringRowswithoutNullValues(ISNOTNULL):

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.

4.4. Working with functions


 Using arithmetical operators with the correctprecedence
➢ Arithmetic Operators
You can use arithmetic operators Expressions (MDX) for any
in Multidimensional
arithmeticcomputations, including addition, subtraction, multiplication, and division.

MDXsupportsthearithmeticoperatorslistedinthefollowingtable.
Operator Description

Page 97 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
+ (Add) Addstwonumbers.

/ (Divide) Dividesonenumberbyanothernumber.

*(Multiply Multipliestwonumbers.
)

- (Subtract) Subtractstwonumbers.

^(Power) Raisesonenumberbyanothernumber.

Note:MDXdoes notincludea functiontoobtain thesquare rootofanumber.Toobtainthesquare root of


a number, raise it to the power of 0.5 using the ^ operatior.

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.

Page 98 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
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:

SELECTProductName,(Price*Quantity)ASTotalCost FROM Products;

In this example, the * operator is used to multiply the "Price" and "Quantity" columns to obtain
the "TotalCost."

UsingStringFunctionsandOperators:

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:

Inthisexample,theCONCATfunctionisusedtocombinethe"FirstName" and"LastName" columns


with a space in between.

UsingMathematicalFunctions:

SQLoffersmathematicalfunctionsforperformingoperationslikerounding,absolutevalue,
square root, etc.

Example:

Page 99 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
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:

SELECTOrderID,SQRT(TotalAmount)ASSquareRootAmount FROM Orders;

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:

SELECTEventName,EventDate FROM Events WHEREEventDate>=DATEADD(day,-


30,GETDATE());

(GETDATE()), and the


Inthisexample,theDATEADDfunctionsubtracts30daysfromthecurrentdate
WHERE clause filters events that occurred after that date.

UsingSQLAggregateFunctions:

SQLaggregatefunctionsareusedtoperformcalculationsonsetsofvalues.

AVG()-TheAVG()functionreturnstheaveragevalueofanumericcolumn.

AVG()Syntax

SELECTAVG(column_name) FROM table_nameWHEREcondition;

Example

Page 100 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
COUNT()–TheCOUNT()functionreturnsthenumberofrowsthatmatchesaspecified criterion.

COUNT()Syntax

SELECTCOUNT(column_name) FROM table_nameWHEREcondition;

Example

MAX() - Returns the largest value

MIN()-Returnsthesmallestvalue

SUM()-TheSUM()functionreturnsthetotalsumofanumericcolumn. SUM()Syntax

SELECTSUM(column_name) FROM table_name

WHEREcondition;

Example:

Suppose youhaveatablecalled"Orders"withan"OrderAmount"column,andyouwant tofind the


total sales for a specific period. The SQL statement would be:

Page 101 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
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

Page 102 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
 SELECTcolumn_name,aggregate_function(column_name)

 FROMtable_name

 WHEREcolumn_nameoperatorvalue

 GROUPBYcolumn_name

SQLGROUPBYExample1

Wehavethefollowing"Orders"table:
O_Id OrderDate OrderPrice Customer

1 2008/11/12 1000 Hansen

2 2008/10/23 1600 Nilsen

3 2008/09/02 700 Hansen

4 2008/09/03 300 Hansen

5 2008/08/30 2000 Jensen

6 2008/10/04 100 Nilsen

Nowwewanttofindthetotalsum(totalorder)ofeachcustomer.

We use the following SQL


WewillhavetousetheGROUPBYstatementtogroupthecustomers.
statement:
 SELECTCustomer,SUM(OrderPrice)FROMOrders

 GROUPBYCustomer

Page 103 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
Theresult-setwilllooklikethis:

Customer SUM(OrderPrice)

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

➢ GROUP BY More Than One Column

WecanalsousetheGROUPBYstatementonmorethanonecolumn,liket
his:

Page 104 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
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:

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.

Page 105 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
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

Page 106 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III
Wehavethefollowing"Orders"table:

O_Id OrderDate OrderPrice Customer

1 2008/11/12 1000 Hansen

2 2008/10/23 1600 Nilsen

3 2008/09/02 700 Hansen

4 2008/09/03 300 Hansen

5 2008/08/30 2000 Jensen

6 2008/10/04 100 Nilsen

Nowwewant tofindifanyofthecustomershaveatotalorderoflessthan 2000. We use the

SELECTCustomer,SUM(OrderPrice)FROMOrders GROUP
BY Customer
HAVINGSUM(OrderPrice)<2000 following SQL statement:

Theresult-setwilllooklikethis:

Customer SUM(OrderPrice)

Nilsen 1700

Example2:

Supposeyouwanttofindproduct-regioncombinationswithatotalrevenuegreaterthan
$10,000.YoucanusethefollowingSQLstatement:
SELECTProduct,Region,SUM(Revenue)ASTotalRevenue FROM Sales

Page 107 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
Language Level III
GROUP BY Product, Region 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.

4.5. Working with subqueries

4.5.1 Single row subquery


SQL Sub 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.

There are a few rules that subqueries must follow:

➢ Subqueries must be enclosed within parentheses.


➢ A subquery can have only one column in the SELECT clause, unless multiple columns
are in the main query
➢ for the subquery to compare its selected columns.
➢ An ORDER BY cannot be used in a subquery, although the main query can use an
ORDER BY. The GROUP
➢ BY can be used to perform the same function as the ORDER BY in a subquery.
➢ Subqueries that return more than one row can only be used with multiple value
operators, such as the IN operator.
➢ The SELECT list cannot include any references to values that evaluate to a BLOB,
ARRAY, CLOBor NCLOB.

Page 108 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
Language Level III
➢ A subquery cannot be immediately enclosed in a set function.
➢ The BETWEEN operator cannot be used with a subquery; however, theBETWEEN
operator can be used within the subquery.Subqueries with the SELECT Statement:
➢ Subqueries are most frequently used with the SELECT statement. The basic syntax is
as follows:
SELECT column_name [, column_name ] FROM table1 [, table2 ]
WHERE column_name OPERATOR

Self-check 4
Part I: Choose the correct answer

Page 109 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
Language Level III
1. Which SQL statement is used to retrieve data from a database?

A)SEARCH

B)EXTRACT

C)SELECT

D)RETRIEVE

2. What is the purpose of the SQL WHERE clause in a SELECT statement?

A)To specify the columns to be retrieved

B)To filter the rows based on a specified condition

C)To order the result set in ascending order

D)To join multiple tables

3. In SQL, what is the purpose of the GROUP BY clause?

A)To filter rows based on a condition

B)To order the result set

C)To group rows that have the same values in specified columns

D)To join tables

4. What does the SQL acronym "JOIN" refer to?

A)Combine

B)Concatenate

C)Merge

D)List

Operation sheet 4.1 Inserting data into a database


Page 110 of 119 Ministry of Labor and Skills Version-I
Basic Structure Query
Author/Copyright November, 2023
Language Level III
Operation Title: Inserting data to a database

Purpose: To populate database with a data Equipment and tools: Computer

and DBMS software Steps to insert data to the table

Step 1. Write a query to display the student information for all students.

select*from student

Step 2. Write a query that displayscourse_code and course_title fromthe Course table.
selectCourse_code,Course_titlefrom course

Step 3. Write a query to display the student name for all students those who score grades ‘B’.
cours
SELECTstudent.Name,grade_report.GradeFROM
e
INNERJOINgrade_reportONcourse.Course_Code=grade_report.Course_CodeINNERJ
OIN 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.

Page 111 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
Language Level III
SELECT student.StudentID, student.Name, student.DeptName, grade_report.GradeFROM
course INNER JOINgrade_report ON course.Course_Code =
grade_report.Course_Code INNER JOIN student ON grade_report.StudentID =
student.StudentIDWHERE (student.DeptName = 'Computer Science') AND
(grade_report.Grade = 'A')
ORDER BY student.DeptName DESC, student.Name

Step 7. Write a query to display the student for all students those who score grades between
select*from
‘A’ and ‘D’
student and who learn in PhP course.
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.

select*from student whereStudentIDnotin(selectstudentIDfromgrade_report)

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.

select distinct grade from grade_report

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

Page 112 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
Language Level III
Step 13. Write a query that displays students information who takes more than one course.

select * from student where StudentID in(select studentID from grade_report group by
studentid having count(*)>1 )

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 2: Multiply total amount column by 1.1 to get the tax included amount and display
as tax_included_amount
Task 3: Delete customer_order whose order number ORD123
Task 4: Update the City of a customer in to Addis ababa whose last name is Haregawi

Task 5: Sort the customer_order in descending order by its order date

Task 6:Group orders by CustomerId and calculate the total amount for each customer Task
Page 113 of 119 theMinistry
7:Retrieve maximum of total
Laboramount
and Skills
from customer_Order Version-I
Basic Structureusing
Querya subquery
Author/Copyright November, 2023
Language Level III
Page 114 of 119 Ministry of Labor and Skills Version-I
Basic Structure Query
Author/Copyright November, 2023
Language Level III
Reference
Books
Database System Concepts

Database Systems Complete Book Fundamental_of_Database_Systems SQL - The

Complete Reference 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.ht
ml

Page 115 of 119 Ministry of Labor and Skills Version-I


Basic Structure Query
Author/Copyright November, 2023
Language Level III
Developer’s Profile

No Name Qualificatio Field of Study Organization/ Mobile number E-mail


n Institution

1 FrewAtkilt M-Tech Network & Information Bishoftu 0911787374 [email protected]


Polytechnic
Security
College

2 Gari Lencha MSc ICT Management Gimbi Polytechnic 0917819599 [email protected]

3 Kalkidan Daniel BSc Computer Science Entoto Polytechnic 0978336988 [email protected]

4 Solomon Melese M-Tech Computer Engineering 0918578631 [email protected]


M/G /M/Polytechnic
College

5 Tewodros Girma MSc Information system 0912068479 [email protected]


Sheno Polytechnic
College

6 BSc Computer Science 0923221273 [email protected]


Yohannes Entoto Polytechnic
Gebeyehu College

Page 116 of 119 Version-I


Ministry of Labor and Skills Basic Structure
Query Language November, 2023
Author/Copyright
Level III

You might also like