Dbms Manual
Dbms Manual
(DBMS)
LABORATORY WORKBOOK
Roll No 13810
Date ______________________
Signature___________________
CONTENTS
Lab No Lab Objective
Introduction to Database
1
Database Environment
2
12 Normalization
15 Database Administration
Lab Details
Lab Lab Objective Rema
No rks
1. Introduction to Database:
Objective: Basic Database concepts, Database applications, Database approach vs. file based
system, DBMS, Components and Roles in DBMS Environment, History of DB, Advantages and
disadvantages
Database Environment:
Objective: Three level architecture, Data independence, Database languages, Data Models,
Network and Hierarchical models, Multi user DBMS Architectures, Teleprocessing, File server Assig
and Client server architecture, DBMS Functions nmen
t#1
2
5 Objective: MySQL data types, Create Table, Alter Table, Add and modify Constraints, Create
View, View Resolution, View Materialization, updating
Views
11 Assig
nmen
t #3
12 Form,
Quiz#
Boyce– Codd Normal Form (BCNF). 3
SQL Stored Procedures: Objective: CRUD, Create, Read, Update and Delete using SQL Stored
14 Procedures with One Parameter & Multiple Parameters. Assig
nmen
t#4
15 Database Administration: Objective: Database Administration that how we Install, Configure,
Import & Export Databases Quiz#
3
Learning Outcomes:
Elaborate on data storage and indexing options, and perform query optimization
CLO_4
Analyze and design a real database application.use SQL for database creation,
manipulation, and control
CLO_5
Troubleshooting
Things will not always go as expected; this is the nature of the learning process. While conducting the Experiment think
before you do anything. If you do so you will avoid wasting time going down dead-end streets. Be logical and systematic.
First, look for obvious errors that are easy to fix. Is your measuring device correctly set and connected? Are you looking at the
proper scale? Is the power supply set for the correct voltage? Is the signal generator correctly set and connected? How are
the variables in the code set? Is there a syntax error? And so on. Next, check for obvious misconnections or broken
connections, at least in simple circuits.
As you work through your circuit, use your Lab Manual record tests and changes that you make as you go along; don't rely on
your memory for what you have tried. Identify some test points in the system at which you know what the signal should be
and work your way backwards from the output through the test points until you find a good signal. Neatness
When you have finished for the day, return all modules to their proper storage bins, return all test leads and probes to their
storage racks, return all equipment to its correct location, and clean up the lab station. If appropriate switch off the unneeded
equipment. Save your files in the Computer and on any USB device for your records because you might not get the same PC
System again for the next experiment. Also email your file contents to your email address as a backup.
Laboratory Safety
Always pay attention to what you are doing and you’re surrounding during the experiments, notify the Instructor for any
unlikely event or mishap, and leave the Laboratory with the permission of Instructor immediately.
All students must read and understand the information in this document with regard to laboratory safety and emergency
procedures prior to the first laboratory session.
Your personal laboratory safety depends mostly on YOU. Efforts have been made to address situations that may pose a
hazard in the lab but the information and instructions provided cannot be considered allinclusive.
Students must adhere to written and verbal safety instructions throughout the academic term. Since additional instructions
may be given at the beginning of laboratory sessions, it is important that all students arrive at each session on time. With
good judgment, the chance of an accident in this course is very small. Nevertheless, research and teaching workplaces (labs,
shops, etc.) are full of potential hazards that can cause serious injury and or damage to the equipment. Working alone and
unsupervised in laboratories is forbidden if you are working with hazardous substances or equipment. With prior approval, at
least two people should be present so that one can shut down equipment and call for help in the event of an emergency.
Safety training and/or information should be provided by a faculty member, teaching assistant, lab safety contact, or staff
member at the beginning of a new assignment or when a new hazard is introduced into the workplace.
Emergency Response
1. It is your responsibility to read safety and fire alarm posters and follow the instructions during an emergency
2. Know the location of the fire extinguisher, eye wash, and safety shower in your lab and know how to use them.
3. Notify your instructor immediately after any injury, fire or explosion, or spill.
4. Know the building evacuation procedures.
Common Sense
Good common sense is needed for safety in a laboratory. It is expected that each student will work in a responsible manner
and exercise good judgment and common sense. If at any time you are not sure how to handle a particular situation, ask your
Teaching Assistant or Instructor for advice DO NOT TOUCH ANYTHING WITH WHICH YOU ARE NOT
COMPLETELY FAMILIAR!!! It is always better to ask questions than to risk harm to yourself or damage to the
equipment.
1. When someone suffers serious electrical shock, he or she may be knocked unconscious. If the victim is still in contact
with the electrical current, immediately turn off the electrical power source. If you cannot disconnect the power
source, depress the Emergency Power Off switch.
2. Do not touch a victim that is still in contact with a live power source; you could be electrocuted.
3. Have someone call for emergency medical assistance immediately. Administer first-aid, as appropriate.
4. If an electrical fire occurs, try to disconnect the electrical power source, if possible. If the fire is small and you are not
in immediate danger; and you have been properly trained in fighting fires, use the correct type of fire extinguisher to
extinguish the fire. When in doubt, push in the Emergency Power Off button.
5. NEVER use water to extinguish an electrical fire. Mechanical safety
1. When using compressed air, use only approved nozzles and never direct the air towards any person.
2. Guards on machinery must be in place during operation.
3. Exercise care when working with or near hydraulically- or pneumatically-driven equipment. Sudden or unexpected
motion can inflict serious injury. Additional Safety Guidelines 1. Never do unauthorized experiments.
2. Never work alone in laboratory.
3. Keep your lab space clean and organized.
4. Do not leave an on-going experiment unattended.
5. Always inform your instructor if you break a thermometer. Do not clean mercury
yourself!!
6. Never taste anything. Never pipette by mouth; use a bulb.
7. Never use open flames in laboratory unless instructed by TA.
8. Check your glassware for cracks and chips each time you use it. Cracks could cause the
glassware to fail during use and cause serious injury to you or lab mates.
9. Maintain unobstructed access to all exits, fire extinguishers, electrical panels, emergency showers, and eye washes.
10. Do not use corridors for storage or work areas.
11. Do not store heavy items above table height. Any overhead storage of supplies on top of cabinets should be limited
to lightweight items only. Also, remember that a 36" diameter area around all fire sprinkler heads must be kept clear
at all times.
12. Areas containing lasers, biohazards, radioisotopes, and carcinogens should be posted accordingly. However, do not
post areas unnecessarily and be sure that the labels are removed when the hazards are no longer present.
13. Be careful when lifting heavy objects. Only shop staff may operate forklifts or cranes.
14. Clean your lab bench and equipment, and lock the door before you leave the laboratory. Clothing
1. Dress properly during a laboratory activity.
2. Long hair, dangling jewelry, and loose or baggy clothing are a hazard in the laboratory.
3. Long hair must be tied back, and dangling jewelry and baggy clothing must be secured.
4. Shoes must completely cover the foot.
5. No sandals allowed on lab days.
6. A lab coat or smock should be worn during laboratory experiments. Accidents and Injuries 1. Do not panic.
2. Report any accident (spill, breakage, etc.) or injury (cut, burn, etc.) to the
teacher immediately, no matter how trivial it seems.
3. If you or your lab partner is hurt, immediately (and loudly) yell out the
teacher's name to get the teacher's attention.
___________________
Lab Instructor Signature
File System & File Handling Experiment
01
Objective
The Purpose of this Lab is to get familiar with the File System & File Handling
Theory
File System
A file system is the methods and data structures that an operating system uses to keep track of files on a disk or partition; that
is, the way the files are organized on the disk. The word is also used to refer to a partition or disk that is used to store the files
or the type of the file system. Thus, one might say ``I have two file systems'' meaning one has two partitions on which one
stores files, or that one is using the ``extended file system'', meaning the type of the file system.
The difference between a disk or partition and the file system it contains is important. A few programs (including, reasonably
enough, programs that create file systems) operate directly on the raw sectors of a disk or partition; if there is an existing file
system there it will be destroyed or seriously corrupted. Most programs operate on a file system, and therefore won't work on a
partition that doesn't contain one (or that contains one of the wrong type).
Before a partition or disk can be used as a file system, it needs to be initialized, and the bookkeeping data structures need to be
written to the disk. This process is called making a file system.
Block Size
The block size specifies size that the file system will use to read and write data. Larger block sizes will help improve disk I/O
performance when using large files, such as databases. This happens because the disk can read or write data for a longer period
of time before having to search for the next block.
On the downside, if you are going to have a lot of smaller files on that file system, like the /etc, there the potential for a lot of
wasted disk space.
For example, if you set your block size to 4096, or 4K, and you create a file that is 256 bytes in size, it will still consume 4K of
space on your hard drive. For one file that may seem trivial, but when your file system contains hundreds or thousands of files,
this can add up.
Block size can also effect the maximum supported file size on some file systems. This is because many modern file system are
limited not by block size or file size, but by the number of blocks. Therefore you would be using a "block size * max # of
blocks = max block size" formula.
File System comparison
Exercise
Question 1:
Answer:
Feedback
Class Task:
___________________
Lab Instructor Signature
02
Objective
The Purpose of this Lab is to get familiar with the Relational DBMS Architecture & its Concepts
Theory
RDBMS: Overview
• Entities: Things in the real world that you store information about in a database.
• Tables typically store data representing one type of entity.
• Example:
– A bank database has a customer table specifically for customer information.
– The customer table can contain entities/columns such as the customer name, account number, and
contact information.
• Relationships: Links between entities that have something to do with each other.
• Example:
– The bank customer name has a relationship to the customer account number and contact information.
There can also be relationships between separate tables (for example, customer to accounts).
You cannot literally store things in a database, nor any relationships they might have. What you can store in a database is data.
Storing information about things such as customers, bank accounts and currencies in our database, means that you store data in
your database that represents these real-world things.
In relational databases, one table is typically used to store data that represents entities of one particular kind. As in the bank
example, the customers table is used to store items of data, each of which represents exactly one entity of the "customer" kind.
Relationship Categories
In the slide example of a one-to-one relationship, a car has one engine, and the engine can belong to only one car. There is a
one-to-one relationship between the car and the engine. Often these types of relationships are put in the same table, but not
always.
In the slide example of a one-to-many relationship, an individual customer of a bank can have more than one account. Note
that this allows for customers to have zero, one, or more bank accounts. The word many refer to the maximum number of
possible bank accounts for each customer. Alternatively, a bank account is tied to a single customer only. That is why this is a
one-to-many relationship.
There is a many-to-many relationship between students and courses. A student can attend more than one course and a course
can be attended by many students.
• Rows are a collection of values that describe an entity (such as a bank account).
• Columns are a collection of similar data among rows (such as customer surnames). Each column has a name and a data
type.
• The intersection of row and column contains individual data items called values. Values are always atomic, that is,
each position in a table may contain only one datum (piece of data). If you have ever used a spreadsheet, you have used
a table of data.
It is common to present data in a simple two-dimensional table form. The relational model stipulates that a relation must have
unique tuples—no two entities can be identical or you would not be able to distinguish one from the other. There must be some
combination of columns (possibly, all columns) called a key, whose values uniquely identify each tuple. Most RDBMSs are
less strict. Virtually all of them allow a table to contain duplicate rows, and allow a table to exist without a key.
Note: In SQL, tables are not required to have primary keys. In other words, the requirement of the relational model is not
enforced in SQL. However, it is enforced as soon as a primary key is added to the table. A detailed discussion of primary keys,
and how to create them, is provided later in the course.
Exercise
Question 1
Modern School of higher education has around 2000 students and three departments. The students belong to various
departments in the school. Every department has a Head of Department along with teachers. The head of department manages
his departmental teachers and the students belonging to his department. The head of department also teaches the students. All
the head of departments report to the Principal of the school. The Principal manages the departments and also teaches the
students. Handling the administrative staff of the school is also the responsibility of the Principal. Every individual, except the
students, are the employees of the school
Problem
Question 2
1. a professor teaches zero, one or many classes and a class is taught by one professor
2. a course may generate zero, one or many classes and a class comes from one course
3. a class is held in one room but a room has many classes
Feedback
Class Task:
___________________
Lab Instructor Signature
03
Objective
The Purpose of this Lab is to introduce Entity Relationship Diagram & its Notations
Theory
Notations
Entities Notation
An entity is represented by a
Entity rectangle which contains the
entity’s name.
Attributes Notation
Relationship Notation
ER Model is represented by means of an ER diagram. Any object, for example, entities, attributes of an entity, relationship
sets, and attributes of relationship sets, can be represented with the help of an ER diagram.
Entity
Entities are represented by means of rectangles. Rectangles are named with the entity set they represent.
Attributes
Attributes are the properties of entities. Attributes are represented by means of ellipses. Every ellipse represents one attribute
and is directly connected to its entity (rectangle).
If the attributes are composite, they are further divided in a tree like structure. Every node is then connected to its attribute.
That is, composite attributes are represented by ellipses that are connected with an ellipse.
Relationship
Relationships are represented by diamond-shaped box. Name of the relationship is written inside the diamond-box. All the
entities (rectangles) participating in a relationship, are connected to it by a line.
One-to-one − when only one instance of an entity is associated with the relationship, it is marked as '1:1'. The
following image reflects that only one instance of each entity should be associated with the relationship. It depicts
one-to-one relationship.
One-to-many − When more than one instance of an entity is associated with a relationship, it is marked as '1:N'. The
following image reflects that only one instance of entity on the left and more than one instance of an entity on the right
can be associated with the relationship. It depicts one-to-many relationship.
Many-to-one − when more than one instance of entity is associated with the relationship, it is marked as 'N:1'. The
following image reflects that more than one instance of an entity on the left and only one instance of an entity on the
right can be associated with the relationship. It depicts many-to-one relationship.
Many-to-many − The following image reflects that more than one instance of an entity on the left and more than one
instance of an entity on the right can be associated with the relationship. It depicts many-to-many relationship.
Participation Constraints
Total Participation – Each entity is involved in the relationship. Total participation is represented by double lines.
Partial participation − Not all entities are involved in the relationship. Partial participation is represented by single
lines.
Exercise
Question 1
Modern School of higher education has around 2000 students and three departments. The students belong to various
departments in the school. Every department has a Head of Department along with teachers. The head of department manages
his departmental teachers and the students belonging to his department. The head of department also teaches the students. All
the head of departments report to the Principal of the school. The Principal manages the departments and also teaches the
students. Handling the administrative staff of the school is also the responsibility of the Principal. Every individual, except the
students, are the employees of the school
Feedback
LAB # 04
The Purpose of this Lab is to make Entity Relationship Diagram by using Case Studies
___________________
Lab Instructor Signature
The Purpose of this Lab is to make Entity Relationship Diagram by using Case Studies
Theory
CASE - STUDY
Design and draw an ER diagram that captures the information about the university.
Use only the basic ER model here; that is, entities, relationships, and attributes. Be
Sure to indicate any key and participation constraints.
Exercise
The Prescriptions-R-X chain of pharmacies has offered to give you a free lifetime supply of medicine if you design its database.
Given the rising cost of health care, you agree. Here’s the information that you gather:
Patients are identified by an SSN, and their names, addresses, and ages must be recorded.
Doctors are identified by an SSN. For each doctor, the name, specialty, and years of experience must be recorded.
Each pharmaceutical company is identified by name and has a phone number.
For each drug, the trade name and formula must be recorded. Each drug is sold by a given pharmaceutical company,
and the trade name identifies a drug uniquely from among the products of that company. If a pharmaceutical company
is deleted, you need not keep track of its products any longer.
Each pharmacy has a name, address, and phone number.
Every patient has a primary physician. Every doctor has at least one patient.
Each pharmacy sells several drugs and has a price for each. A drug could be sold at several pharmacies, and the price
could vary from one pharmacy to another.
Doctors prescribe drugs for patients. A doctor could prescribe one or more drugs for several patients, and a patient
could obtain prescriptions from several doctors.
Each prescription has a date and a quantity associated with it. You can assume that, if a doctor prescribes the same drug
for the same patient more than once, only the last such prescription needs to be stored.
Pharmaceutical companies have long-term contracts with pharmacies. A pharmaceutical company can contract with
several pharmacies, and a pharmacy can contract with several pharmaceutical companies. For each contract, you have
to store a start date, an end date, and the text of the contract.
Pharmacies appoint a supervisor for each contract. There must always be a supervisor for each contract, but the contract
supervisor can change over the lifetime of the contract.
Draw an ER diagram that captures the preceding information. Identify any constraints not captured by the ER diagram.
How would your design change if each drug must be sold at a fixed price by all pharmacies?
How would your design change if the design requirements change as follows: If a doctor prescribes the same drug for the same
patient more than once, several such prescriptions may have to be stored?
Feedback
LAB # 05
The Purpose of this Lab is to introduce the DDL (Data Definition Language) which includes
Create, Drop, and Alter & Truncate Statements
___________________
Lab Instructor Signature
05
Objective
The Purpose of this Lab is to introduce the DDL (Data Definition Language) which includes Create, Drop, and Alter &
Truncate Statements
Theory
Data Definition Language: SQL Statements
The DDL SQL statements are used to define database and table data. The statements shown in the slide are followed by options
to specify data operations.
Creating a Database
You can add the IF NOT EXISTS option statement. An error occurs if the database exists and you did not specify IF NOT
EXISTS.
For more information about creating a database, see the MySQL Reference Manual at
http://dev.mysql.com/doc/refman/5.5/en/create-database.html.
Table names can be (or contain) reserved words as long as the name is quoted (such as a table named 'my_ table' or '$'), but
this practice is discouraged.
Creating a Table
• Example:
After the database structure is designed and the database has been created, you can add the individual tables. You must use
accurate assignment of data types and options, then you can add the tables from the design plan to the database. Table and
column options are covered later in this lesson.
Creating tables is a complex topic due to the process of choosing how to create the table and the syntax, which consists of many
elements. The statement syntax shown in the slide includes the column and table options.
1. Creates a table called CountryLanguage"(" is the beginning of the table structure definition that ends with ")".
2. The column named CountryCode is assigned the data type of CHAR and maximum length of 3 characters that cannot
accept NULL. The comma at the end of the line indicates that you are continuing to define columns, or set a primary
key.
3. The column named Language is assigned the CHAR data type and a length of 30, also with no NULLs.
4. The column named IsOffical is assigned the ENUM data type (with the value 'True' or 'False'). The addition of NOT
NULL means that each row must contain one of the specified values (as indicated in single quotation marks). If the
field is not provided, it is set to 'False' by the phrase DEFAULT 'False'.
5. The column named Percentage is assigned the FLOAT data type. It contains three digits, including one to the right of
the decimal point. This column cannot accept NULL.
6. Defines the PRIMARY KEY, the type of key, and to what columns it applies. In this case, a combination of both
CountryCode and Language columns define a unique identifier for each row.
7. ")" is the closing of the table structure definition. “;” means execute this statement (using the MySQL command-line
client) and create the CountryLanguage table.
Note: You can also use the CREATE TABLE statement to create temporary tables. Temporary tables are covered in detail
later in the course.
For more information about creating a table, see the MySQL Reference Manual at
http://dev.mysql.com/doc/refman/5.5/en/create-table.html.
Column Options
The CREATE TABLE column options modify how MySQL handles the associated column. Some common column options:
• You can add options to the CREATE TABLE statement, such as:
• ENGINE
• COMMENT
• DEFAULT CHARACTER SET
• Example:
The CREATE TABLEtable options modify how MySQL handles the entire table. Some common table options:
• ENGINE = <storage_engine_name>: Indicates the storage engine to be used for the table
• COMMENT: Up to 60 characters of free form text
• DEFAULT CHARACTER SET <character set>: Specifies the default character set for the table
Table Indexing
An index (or key) in MySQL serves to assist in finding rows quickly, like an index at the back of a technical manual. Database
indexes are used to locate rows in a table. Instead of containing all of the row data, an index contains only the columns used to
locate the rows. It also contains information describing where the rows are physically located. Usually, you create all the
indexes you need when you are creating tables.
You can create indexes on single columns or multiple columns (composite indexes). For example, the phone number for an
individual in a phone book can be used as a single column index, whereas the last name and first name can be used to create a
composite index.
MySQL Indexing
• PRIMARY KEY
• Only one PRIMARY KEY is allowed per table.
• It uniquely identifies a single row in the table.
• No NULL values are permitted.
• No duplicate values are permitted.
• If a duplicate value is INSERT or UPDATE MySQL returns an error and the attempted operation is not
performed.
• UNIQUE
• The same rules as the PRIMARY KEY, with two exceptions:
Can have values stored as NULL
• Example:
The result of the SHOW INDEX statement example in the slide shows that there is a PRIMARY index on the Code column of
the Country table, and an index type of BTREE table. The Cardinality column shows the number of distinct values that exist
in the table: 239 in this case.
Note: Most indexes are stored in B-trees. Exceptions are indexes on spatial data types use R-trees, and MEMORY tables also
support hash indexes.
For more information about the SHOW INDEX statement, see the MySQL Reference Manual at
http://dev.mysql.com/doc/refman/5.5/en/show-index.html.
Table Constraints
• A constraint is a restriction placed on one or more column values of a table to actively enforce integrity rules.
• Constraints are implemented using indexes.
• Types of constraints:
• PRIMARY KEY
• FOREIGN KEY
• UNIQUE
• MySQL generates indexes to enforce the above constraints.
A constraint is a restriction placed on one or more column values of a table to actively enforce integrity rules.
Note: Only the InnoDB storage engine supports FOREIGN KEY constraints. Other storage engines ignore these constraints in
table definitions.
DROP DATABASE does not require the database to be empty. Before dropping the database, MySQL removes any objects
that it contains, such as tables, stored routines, and triggers.
A successful DROP DATABASE returns a row count that indicates the number of tables dropped. (This actually is the number
of .frmfiles removed, which amounts to the same thing.) You can check your current databases to make sure that the database
is removed by using the SHOW DATABASES statement.
A database is represented by a directory under the data directory. The server deletes only files and directories that it can identify
as having been created by itself (such as .frm files). It does not delete other files and directories. If you have put nontable files
in that directory, those files are not deleted by the DROP DATABASE statement. This results in a failure to remove the
database directory. In that case, the database continues to be listed by SHOW DATABASES. To correct this problem, you can
manually remove the database directory and any files that it contains.
Any warning generated by DROP DATABASE can be displayed with the SHOW WARNINGS statement.
• Adding a column to a table populates the rows with NULL, the default value as specified, or the data type implicit
default.
• In a query, the column appears as empty or zero:
Note: The statement for populating a table with data is covered in detail later in the course.
You should not remove a column from a table if it is a primary key. You cannot remove a column that is a foreign key from
another table.
For more information about using ALTER TABLE, see the MySQL Reference Manual at:
http://dev.mysql.com/doc/refman/5.5/en/alter-table.html.
Modifying a Table Column
If you also want to disallow NULL in the column, you must include the NOT NULL attribute in the column definition for
MODIFYCOLUMN, even if you originally defined the column with NOT NULL. This is true for other column attributes as
well. If you do not specify them explicitly, the new definition does not carry them over from the old definition.
You cannot modify a column from a table if it is a primary key and if a foreign key from another table references the column.
The previous ALTER TABLE...MODIFY COLUMN statement example changes the row contents of the table as follows:
Note: The statement for populating a table with data is covered in detail later in the course.
Anything that can be added using CREATE TABLE can be changed using ALTER TABLE.
For more information about using ALTER TABLE, see the MySQL Reference Manual at:
http://dev.mysql.com/doc/refman/5.5/en/alter-table.html.
Truncate a Table
The SQL TRUNCATE TABLE command is used to delete complete data from an existing table.
You can also use DROP TABLE command to delete complete table but it would remove complete table structure form the
database and you would need to re-create this table once again if you wish you store some data.
Exercise
___________________
Lab Instructor Signature
The Purpose of this Lab is to introduce the DML (Data Manipulation Language) which includes Insert, Update &
Delete Statements
Theory
The DML SQL statements are used to manipulate database and table data. The statements shown in the slide are followed by
options to specify data operations (such as table name).
• Do not grant users (including yourself) more permissions than required. For example, if you are running some
ad hoc queries on a database for the finance department, do not use the MySQL root account. Instead, create a
user who has permission to run only the needed SELECT queries and then log in as the user.
• Keep daily backups of the data stored in MySQL.
• Always make a backup before you make any major changes, or when using unfamiliar features.
• For beginners, a useful startup option is the safe updates option. It can be turned on with the command-line
client option --safe-updates, or by issuing SET SQL_SAFE_UPDATES=1. It is helpful for cases when you
might have issued a DELETE FROM tbl_name statement but forgotten the WHERE clause. Normally, such
a statement deletes all rows from the table. With this option, you can delete rows only by specifying the key
values that identify them. This helps prevent accidents.
• Test queries and updates on a test table before running them on the real table.
• Execute a SELECT statement with the same WHERE clause to verify that the right results are returned,
before running a DELETE or an UPDATE statement.
INSERT Statement
The syntax for INSERT uses separate column and value lists following the name of the table into which you add the single
record. The number of columns and values must be the same.
In the INSERT example in the slide, you add Chinese as a language for Albania, with a percentage of 20, and the default F
(false) for the IsOfficial column is acceptable because it is not the official language of the country.
In the result for the example in the slide, the false (F) value for the IsOfficial column is the default value, which is used in the
absence of a specific assignment.
The result for the example in the slide is achieved with the following query:
In the example result in the slide, the F (false) value for the IsOfficial column is the default value, which is used in the absence
of a specific assignment.
Note: You must enclose all column values in single quotation marks (for string and temporal data types) in the INSERT
statement.
• Example:
The example in the slide demonstrates how you can update the Country database by changing the Population column
calculation and the Region to Dolphin Country for the country Sweden (code 'SWE'). The results show one row affected,
one row matched (selected by the WHERE clause), and one row changed.
• There is no guarantee about the order in which rows are updated, which can result in errors:
To solve the problem of the first UPDATE in the slide that causes an error, add an ORDERBY clause to cause the row updates
to occur in a particular order, as shown in the second UPDATE.
The results shown in the slide are a result of the following query:
+------+----------------+-------------+---------------+------------+
+------+----------------+-------------+---------------+------------+
...
+------+----------------+-------------+---------------+------------+
DELETE Statement
• Use DELETE to remove whole, specified table rows instead of individual columns
• General syntax:
• Use DELETE with extreme caution, because it does not have the “undo” feature.
The DELETE result indicates the number of rows affected, which can be zero (0) if the statement did not cause a change to be
made.
Exercise
Question 1
Insert the following data into the following table
07
Objective
The Purpose of this Lab is to introduce the DCL (Data Control Language) which includes Grant & Revoke Statements
Theory
Data Control Language (DCL) is used to control privilege in Database. To perform any operation in the database, such as for
creating tables, sequences or views we need privileges. Privileges are of two types,
Exercise
Question 1
Question 2
Feedback
LAB # 08
The Purpose of this Lab is to get familiar with basic Select Queries which includes Selection &
Projection Queries & Some Built-in Functions
08
Objective
The Purpose of this Lab is to get familiar with basic Select Queries which includes Selection & Projection Queries &
Some Built-in Functions
Theory
SELECT Statement
SELECT is the most commonly used data manipulation language (DML) statement. The SELECT statement forms a
description of the data that is to be retrieved from the database. It does not specify exactly how the data is to be retrieved. The
result returned by the database server in response to a SELECT statement takes the form of a table, which is a collection of
rows.
An expression that does not contain any column name is allowed in <column_list>.
SELECT example:
Projection, which retrieves all the rows in the Name and Rating columns from the Sailor table. Queries can be performed on
one, multiple, or all columns, on one or more tables.
For example, you can retrieve all the column data from the Sailor table, using (*):
Note: The word “query” is most commonly used to describe a SELECT statement.
Optional clauses can be used alone (or in combination) to generate specific query results.
• Types of clauses:
• DISTINCT: Eliminates duplicate rows from the result set
• FROM: Specifies what tables to retrieve data from
• WHERE: Filters for specific rows
• ORDER BY: Sorts rows by specified order
• Syntax example (with the order of the clauses fixed):
The syntax example in the slide shows the correct order and usage of each of the listed optional clauses. This statement
performs the following:
Without DISTINCT
With DISTINCT
Subset of Relation can be obtained using Some Condition (or Using Where Clause)
Expressions in a WHERE clause can use the following types of operators:
• Arithmetic:+, -, *, /, DIV, %
• Comparison:<, <=, =, <=>, <> or !=, >=, >, BETWEEN
• Logical: AND, OR, XOR, NOT
• Additional options: IN, IS NULL, LIKE, ()
Arithmetic Operators
• + Addition
• - Subtraction
• * Multiplication
• / Division
• DIV Integer division
• % Modulo (remainder after division)
Comparison Operators
• + Addition
• < Less than
• <= Less than or equal to
• = Equal to
• <=> Equal to (works even for NULL values)
• <> or != Not equal to
• >= Greater than or equal to
• > Greater than
• BETWEEN <value1> AND <value2>Indicate a range of values (inclusive)
Logical Operators
• IN is equivalent to a list of comparisons with OR, but more readable and efficient.
• You can use IS NULL to check whether a value is null (such as ... <column_name> IS NULL).
• The LIKE operator can be used for pattern matching (such as WHERE <value>LIKE '<pattern>').
• You can also use parentheses (<expression>) to group parts of an expression.
• Operators can be applied to almost all types of value expressions such as literals, columns, function calls, and so on.
• You can also combine several criteria with logical operators.
SELECT with WHERE
FROM sailor
By default, the server returns the rows in the SELECT statement to the client in no particular order. When you issue a query,
the server is free to return the rows in any convenient order. This order can be affected by factors such as the order in which the
rows are actually stored in the table, or which indexes are used to process the query. If you require output rows to be returned in
a specific order, include an ORDER BY clause that indicates how to sort the results.
The example in the slide sorts the names of the countries in alphabetical order by sname, from the sailor table.
Previous Example With ORDER By Clause:
mysql> SELECT sid , sname, rating
FROM sailor
WHERE age>30 AND (rating = 3 OR rating = 8)
ORDER BY sname
Ascending order is the default sort order in an ORDER BY clause. You can specify explicitly whether to sort a column in
ascending or descending order by using the ASC or DESC keywords after the column names. Ascending means that the lowest
value comes first.
Functions
MySQL Expressions
String Functions
• Returns the part of the string starting at the specified position, and the number of characters indicated:
The Date/Time formats chart in the slide gives a list of all date and time formats permitted to be used within temporal
functions.
See the Data Types lesson for specific information about the values and ranges for these format types.
Functions that expect date values usually accept DATETIME values and ignore the time part. Functions that expect time
values usually accept DATETIME values and ignore the date part.
Temporal Functions: Function Types
• Addition of a specified interval of days from the current date and time:
• Rounding
• Truncation
• Trigonometric calculations
• Generating random numbers
ROUND (<number>):
• Geometric functions:
• DEGREES(), PI(), RADIANS()
• Trigonometric functions:
• COS(), SIN(), COT()
• ACOS(), ASIN(), ATAN(), ATAN2()
• Other functions:
• EXP(), LN(), LOG(), LOG2(), LOG10()
• POWER(), SQRT()
• MOD()
Exercise
Create database Lab8Question
Emp_num Emp_Name Emp_Job Emp_Sal Create table
E101 Salman Analyst 6000 Emp (
E102 Bushra Programmer 5000 Emp_num
E103 Madiha Web Designer 6000 varchar(100),
E104 Aiman ERD designer 4000 Emp_Name
varchar(100),
E105 Hameed Web Designer 3000 Emp_Job
E106 Nini Analyst 2500 varchar(100),
E107 Imtiaz Web Designer 6500 Emp_Sal int,
E108 Rashid Programmer 4000 );
E109 Muzzamil ERD designer 2000 insert into Emp
(Emp_num,
Emp_Name, Emp_Job, Emp_Sal)
values ('E101','Salman','Analyst',6000),
('E102','Bushra','Programmer',5000),
('E103','Madiha','Web Designer',6000),
('E104','Aiman','ERD Designer',4000),
('E105','Hameed','Web Designer',3000),
('E106','Nini','Analyst',2500),
('E107','Imtiaz','Web Designer',6500),
('E108','Rashid','Programmer',4000),
('E109','Muzzamil','ERD Designer',2000)
1. List all employees’ number, employee’s name and jobs from emp whose salaries greater than 5,000.
2. List all employees’ number, employee’s name and jobs from emp whose salaries less than 5,000.
3. List all employees’ number, employee’s name and jobs from emp whose salaries between 1,000 to 5,000.
___________________
Lab Instructor Signature
The Purpose of this Lab is to get familiar the Tables Joins Which Includes Inner, Outer & Natural Joins
Theory
Combining Multiple Tables
If you want to find the details of records referenced in a foreign key, you combine data from two or more tables by performing
a table join.
• Joined tables:
– This join results in a Cartesian product.
– The result includes all combinations of rows from table1 and table2.
When you cross-join two tables (as in the example in the slide), each row from one table is combined with each row from every
other table, yielding all possible combinations of rows. This result is also known as the Cartesian product. Joining tables this
way has the potential to produce a very large number of rows because the row count is the product of the number of rows in
each table.
A cross-join between two tables each containing 1000 rows will return 1000 × 1000 = 1 million rows. That is a lot of rows,
even though the individual tables are small. Such a join is also called an unqualified join.
Categories of Joins
The syntax discussed earlier uses the comma separator in the FROM clause to name (and separate) the joined tables. Another
inner join syntax uses the INNER JOIN keywords. With this syntax, those keywords replace the comma separator between
table names. Also with INNER JOIN, the conditions that indicate how to perform row matching for the tables move from the
WHERE clause to become part of the FROM clause.
Note: ON and USING are not exactly identical. USING treats the columns from the two tables as the same, whereas ON treats
them as two different columns.
JOIN Keywords
Note: The INNER JOIN keywords are equivalent to the JOIN keyword, and they can be used interchangeably.
Outer Joins
The LEFT JOIN and RIGHT JOIN answer the same kinds of questions, but differ slightly in their syntax. A LEFT JOIN can
always be rewritten into an equivalent RIGHT JOIN.
In the above example, the LEFT JOIN results in a list that shows where there were NULLs for those sailor who were not
reserved any boat:
Natural Join
The associated tables have one or more pairs of identically named columns.
The columns must be the same data type.
Don’t use ON clause in a NATURAL JOIN.
Example
mysql> SELECT s.sname
FROM sailor s NATURAL JOIN reserves r
Exercise
Question No. 1
We have the following tables which creates statement are
1. create table supplier(S_NO int identity(1,1), SUP_ID varchar(50) primary key,SUP_NAME varchar (50), SUP_ADD
varchar (50), SUP_NIC int, rank int)
3. create table Orders(Ord_ID varchar(50) primary key,Prod_ID varchar(50),Qty int,Totalrate int,SUP_ID varchar (50))
select p.*
from Products p
inner join Orders o on p.Prod_Id = o.Prod_Id
where o.Sup_Id = '101';
select o.*
from Orders o
inner join Products p on o.Prod_Id = p.Prod_Id
where p.Prod_name = 'Rice';
Feedback
LAB # 10
The Purpose of this Lab is to get familiar that how to use Groups & Having Clauses with
Aggregates Functions
Name Javairya Sakina Qureshi
Date 12 March 2023
Registration No 13810
Department BSCS
Quiz
Assignment
___________________
Lab Instructor Signature
10
Objective
The Purpose of this Lab is to get familiar that how to use Groups & Having Clauses with Aggregates Functions
Theory
Aggregate Functions
All the functions can use the DISTINCT keyword, although it is not useful for the MAX() and MIN() functions.
DISTINCT examples:
SUM(DISTINCT <column_name>)
AVG(DISTINCT <column_name>)
COUNT(DISTINCT <column_name>)
GROUP BY
• The GROUP BY clause places rows into groups.
• Each group consists of rows having the same value in one or more columns.
• Calculates a summary value for each group
• General Syntax:
SELECT [DISTINCT] target-list
FROM relation-list
WHERE qualification
GROUP BY grouping-list
• Example:
mysql> SELECT rating, COUNT(sid)
FROM sailor
GROUP BY rating
In above Example, group is make on rating column and count the no. of sailor for each rating.
Find no. of sailor for each rating in which sailor age must be greater than 25
mysql> SELECT rating, COUNT(sid)
FROM sailor
WHERE age>25
GROUP BY rating
HAVING
• Use the HAVING clause to eliminate rows based on aggregate values.
• Evaluated after the grouping implied by GROUP BY
• General Syntax:
SELECT [DISTINCT] target-list
FROM relation-list
WHERE qualification
GROUP BY grouping-list
HAVING group-qualification
• Example
mysql> SELECT rating, COUNT(sid)
FROM sailor
GROUP BY rating
HAVING COUNT(sid)>1
In above Example, group is make on rating column and count the no. of sailor for each rating which rating have minimum
sailor count is 2.
You can use the HAVING modifier to require that the groups produced by a GROUP BY clause satisfy particular criteria.
As such, it resembles the WHERE clause. The difference is that the HAVING clause is evaluated after the grouping implied
by the GROUP BY clause. This means that the HAVING condition can refer to aggregate functions. However, any part of a
condition that can also appear in the WHERE clause should not be in the HAVING clause. A good HAVING clause is always
based on aggregate functions (because these are not allowed in the WHERE clause).
Exercise
Question No. 1
2. Find average and sum of all the salaries of each job excluding clerks.
3. Find average and sum of the salaries of each job excluding salesmen', clerk' and
'manager'. SELECT job, AVG(salary) AS average_salary, SUM(salary) AS total_salary
FROM employees
WHERE job NOT IN ('SALESMAN', 'CLERK', 'MANAGER')
GROUP BY job;
4. Find count, sum and average salaries of each job excluding salesmen', clerk' and 'manager'.
Feedback
LAB # 11
The Purpose of this Lab is to get familiar with the Analytical Queries Which includes Rollup,
Cube & Top- N (Limits) Queries
___________________
Lab Instructor Signature
Theory
The ROLLUP operator is useful in generating reports that contain subtotals and totals. The ROLLUP operator generates a result
set that is similar to the result sets generated by the CUBE operator.
ROLLUP
ROLLUP generates a result set that shows aggregates for a hierarchy of values in the selected columns.
General Syntax:
SELECT [DISTINCT] target-list
FROM relation-list
WHERE qualification
GROUP BY grouping-list
WITH ROLLUP
Example:
mysql> SELECT rating, age, COUNT(sid)
FROM sailor
WHERE age>25
WITH ROLLUP
CUBE
CUBE generates a result set that shows aggregates for all combinations of values in the selected columns.
LIMIT
• Specifies the number of rows to output in result set
• Example without LIMIT:
mysql> SELECT bid, COUNT(sid)
FROM reserves
GROUP BY bid
ORDER BY bid DESC
Exercise
Question No. 1
Feedback
LAB # 12
The Purpose of this Lab is to get familiar with the concept of Normalization
___________________
Lab Instructor Signature
Theory
Normalization
Normalization is the process of refining a relational database design to ensure that each independent piece of information is in
only one place.
Advantages of Normalization
• ERDs:
• Enables you to develop diagrams effortlessly when tables, columns, and relationships are predetermined
• Updates:
• Avoid anomalies such as insertion, deletion, and modification problems, which cause inconsistencies with
updates
• Compact:
• Modifies a single object property easily
• Data access:
• Enables you to access all logically required data
• Joins:
• Identify the join columns
Minimize the amount of data having to be searched
Disadvantages of Normalization
Despite the numerous advantages of normalization, there are some disadvantages to be considered:
• Several tables:
• Must be accessed for user reports and other user data
• Maintenance:
• Can be in some conflict with the business processes. For example, you may have to duplicate information or
create summary tables to gain more speed, due to the maintenance costs of keeping multiple copies of data.
• Resource usage:
• Can be an expensive process in time and resources
• Takes many join statements to get the required data
• Poorly designed table structures result in duplicate data, redundant data, and difficulties in using the data.
• To avoid anomalies, ensure that each table column meets the following criteria:
• Represents a characteristic of the table subject
• Contains only a single value
• Is not deconstructed into smaller components
• Does not contain a calculated or concatenated value
• Is unique within the entire database structure
• Multi-table columns (in relationship) are identical
Normal Forms
Assume a video library maintains a database of movies rented out. Without any normalization all information is stored in one
table as shown below.
Original spreadsheet
1NF Example
2NF Example
3NF Example
Exercise
246 ROVER DOG 12 SAM COOK MAR 27/2002 10 EXAMINE and TREAT WOUND
246 ROVER DOG 12 SAM COOK APR 02/2002 05 HEART WORM TEST
298 SPOT DOG 2 TERRY KIM MAR 10/2002 05 HEART WORM TEST
Owner (OWNER)
To normalize the 2-NF form to the 3rd Normal Form (3-NF), we need to identify and remove any
transitive dependencies.
Owner (OWNER)
___________________
Lab Instructor Signature
13
Objective
The Purpose of this Lab is to make Normalized ERD – by using Case Studies
Theory
CASE - STUDY
• Furniture store
• You want to turn your inventory spreadsheet into a database, so you can:
– Execute intelligent searches
– Make modifications
– Prepare for future growth of your business
Original inventory spreadsheet
First Normal Form: 1NF
Exercise
CASE - STUDY
We have an Un-Normalized data of Project Management System. Transform this into the Normalized Forms.
LAB # 14
The Purpose of this Lab is to get familiar that how to use SQL Stored Procedures with One
Parameter & Multiple Parameters
___________________
Lab Instructor Signature
14
Objective
The Purpose of this Lab is to get faith the Database Administration that how we Install,
The Purpose of this Lab is to get familiar that how to use SQL Stored Procedures with One Parameter & Multiple
Parameters
Theory
Stored Procedure
A stored procedure in SQL is a type of code in SQL that can be stored for later use and can be used many times. So, whenever
you need to execute the query, instead of calling it you can just call stored procedure .Values can be passed through stored
procedures. You can also pass parameters to a stored procedure, so that the stored procedure can act based on the parameter
value(s) that is passed.
Create a Stored Procedure
SQL stored procedure general syntax:
EXEC procedure_name;
- Below is given the database
The following statements create a stored procedure and help select all records
mysql>EXEC SelectAllCustomers;
The following SQL statement creates a stored procedure that selects Customers from a particular City
From the “Customers” table
The following SQL statement creates a stored procedure that selects Customers from a particular City
With a particular PostalCode From the “Customers” table
Exercise
QuestionNo1
Create a stored procedure with parameters and it will insert a new row into the Names table with the
FirstName and LastName columns And call stored procedure with parameters.
IN FirstName VARCHAR(50),
IN LastName VARCHAR(50)
BEGIN
END;
Create a stored procedure with input parameters as input student registration number, total marks and
number of subjects and updates the percentage of marks
Explanation:
IN STUDENT_REG_NO VARCHAR(15),
IN
TOTAL_MARKS
DECIMAL(10,2),
IN
NO_SUBJECTS
INT
UPDATE STUDENTS
SET PERCENTAGE_MARKS =
PERCENTAGE WHERE
REGISTRATION_NO =
STUDENT_REG_NO;
END;
130
Feedback
131
LAB # 15
The Purpose of this Lab is to get familiar with the Database Administration
that how we Install, Configure, Import & Export Databases
132
___________________
Lab Instructor Signature
15
Objective
The Purpose of this Lab is to get familiar with the Database Administration that how we Install,
Configure, Import & Export Databases
Theory
Installation
133
Communication Protocols
134
LAMP Stack
• MySQL is the database component in the LAMP stack, which has become the preferred stack for
web applications:
• Linux: Operating system
• Apache: Web server
• MySQL: Relational Database Management System
• PHP/Perl/Python: Programming languages
• The LAMP stack offers many degrees of freedom.
• You can go from LAMP to WAMP (Windows).
Installing MySQL
135
Startup Command-Line Options
Keyboard Editing
136
• Command history preserved during session
• Interrupt a query
• Full readline capabilities under Linux
• Close quotes
• Copy and paste into window
Tee File
• The tee file is a text file that logs all mysql client statements and their output.
• Everything you see displayed on the screen is appended into a given file.
• You can enable this feature interactively within the mysql client with the tee command:
mysql> tee session_tee_log.txt
• Write query results directly into a file by using SELECT with the INTO OUTFILE clause.
• Example:
137
• The name of the file indicates the location of the write.
• Default file format:
• Values are delimited by tab characters.
• Lines are terminated with newlines.
• The file format can be changed by using specific INTO OUTFILE options.
Exporting with a Query: INTO OUTFILE
• A file is written to the server host rather than to the executing client.
• Data is written to a new file only; there are no overwrites.
• The file contains one line per row selected by the statement.
• The user that executes the statement must have the FILE privilege.
• The file is created with file system access permissions.
Exporting with a Query: CSV Format
Importing Data
New data can be imported into a database by using a MySQL (.sql) statement file, which contains all the
information needed to create tables.
• Example: Import the world_innodb database from file by using the mysql command.
138
• Use the input operator (<) to indicate the SQL file name.
• Example: Import the data file within the mysql client.
Caution: Do not import over an existing database file with the same name.
Shell-level client commands do not require a semicolon (;) at the end of the statement.
• LOAD DATA INFILE is the reverse operation of SELECT with INTO OUTFILE.
• However, it uses similar clauses and format specifiers.
• It reads row values from a file into a table.
• Files can be in tab-delimited or comma-separated format.
• Example:
• MySQL assumes that the file is located on the server host in the database data directory.
139
The simplest form of the LOAD DATA INFILE statement specifies only the name of the data file and
the table into which to load the file, as shown in the example in the slide.
The syntax for LOAD DATA INFILE is as follows, where optional parts of the statement are indicated
by square brackets:
[IGNORE | REPLACE]
format_specifiers
[IGNORE n LINES]
[(column_list)]
[SET (assignment_list)]
The file name is given as a quoted string. On Windows, the pathname separator character is “\”, but
MySQL treats the backslash as the escape character in strings. To deal with this issue, write separators in
Windows pathnames either as “/” or as “\\”. To load a file named D:\mydata\data.txt, specify the file
name as shown in either of the following statements:
The example in the slide shows how to use a LOAD DATA INFILE statement to import a file named
/tmp/data.txt that contains information in comma-separated values (CSV) format, with values enclosed
within double quotation marks and lines terminated by carriage returns into a table named table1.
Exercise
Question No. 1
140
Using SELECT statement find the version of the server you are running and print the name of the
current database?
Question No. 2
Question No. 3
Write the statement to log all SQL statements and their results in a text file.
general_log = 1
general_log_file = /path/to/log_file.log
Feedback
References:
https://www.w3resource.com/sql/tutorials.php
https://docs.microsoft.com/
https://www.w3schools.com/sql/default.asp
141
https://www.sqlservertutorial.net/
https://www.geeksforgeeks.org/
Database_Management_Systems_3rd_Edition_by_Raghu_Ramakrishnan_Johannes_Geh
rke
142