MySQL Tutorial
MySQL Tutorial
MySQL is a relational database management system based on the Structured Query Language, which is
the popular language for accessing and managing the records in the database. MySQL is open-source
and free software under the GNU license. It is supported by Oracle Company.
What is Database?
It is very important to understand the database before learning MySQL. A database is an application
that stores the organized collection of records. It can be accessed and manage by the user very easily.
It allows us to organize data into tables, rows, columns, and indexes to find the relevant information
very quickly.
What is MySQL?
MySQL is currently the most popular database management system software used for managing the
relational database. It is open-source database software, which is supported by Oracle Company. It is
fast, scalable, and easy to use database management system in comparison with Microsoft SQL Server
and Oracle Database.
. The official pronunciation of MySQL is not the My Sequel; it is My Ess Que Ell. However, you can
pronounce it in your way. Many small and big companies use MySQL. It allows us to implement
database operations on tables, rows, columns, and indexes.
o It defines the database relationship in the form of tables (collection of rows and columns), also
known as relations.
o It provides the Referential Integrity between rows or columns of various tables.
o It allows us to updates the table indexes automatically.
o It uses many SQL queries and combines useful information from multiple tables for the end-
users.
The core of the MySQL database is the MySQL Server. This server is available as a separate program
and responsible for handling all the database instructions, statements, or commands. The working of
MySQL database with MySQL Server are as follows:
1. MySQL creates a database that allows you to build many tables to store and manipulate data
and defining the relationship between each table.
2. Clients make requests through the GUI screen or command prompt by using specific SQL
expressions on MySQL.
3. Finally, the server application will respond with the requested expressions and produce the
desired result on the client-side.
o MySQL is an open-source database, so you don't have to pay a single penny to use it.
o MySQL is a very powerful program that can handle a large set of functionality of the most
expensive and powerful database packages.
o MySQL is customizable because it is an open-source database, and the open-source GPL license
facilitates programmers to modify the SQL software according to their own specific
environment.
o MySQL is quicker than other databases, so it can work well even with the large data set.
o MySQL supports many operating systems with many languages like PHP, PERL, C, C++, JAVA,
etc.
o MySQL uses a standard form of the well-known SQL data language.
o MySQL is very friendly with PHP, the most popular language for web development.
o MySQL supports large databases, up to 50 million rows or more in a table. The default file size
limit for a table is 4GB, but you can increase this (if your operating system can handle it) to a
theoretical limit of 8 million terabytes (TB).
MySQL Features
MySQL is a relational database management system (RDBMS) based on the SQL (Structured Query Language)
queries. It is one of the most popular languages for accessing and managing the records in the table. MySQL is
open-source and free software under the GNU license. Oracle Company supports it.
Easy to use
MySQL is easy to use. We have to get only the basic knowledge of SQL. We can build and interact with
MySQL by using only a few simple SQL statements.
It is secure
MySQL consists of a solid data security layer that protects sensitive data from intruders. Also,
passwords are encrypted in MySQL.
MySQL follows the working of a client/server architecture. There is a database server (MySQL) and
arbitrarily many clients (application programs), which communicate with the server; that is, they can
query data, save changes, etc.
Free to download
MySQL is free to use so that we can download it from MySQL official website without any cost.
It is scalable
MySQL supports multi-threading that makes it easily scalable. It can handle almost any amount of data,
up to as much as 50 million rows or more. The default file size limit is about 4 GB. However, we can
increase this number to a theoretical limit of 8 TB of data.
Speed
MySQL is considered one of the very fast database languages, backed by a large number of the
benchmark test.
High Flexibility
MySQL supports a large number of embedded applications, which makes MySQL very flexible.
MySQL is compatible to run on many operating systems, like Novell NetWare, Windows* Linux*, many
varieties of UNIX* (such as Sun* Solaris*, AIX, and DEC* UNIX), OS/2, FreeBSD*, and others. MySQL also
provides a facility that the clients can run on the same computer as the server or on another computer
(communication via a local network or the Internet).
Allows roll-back
Memory efficiency
Its efficiency is high because it has a very low memory leakage problem.
High Performance
MySQL is faster, more reliable, and cheaper because of its unique storage engine architecture. It
provides very high-performance results in comparison to other databases without losing an essential
functionality of the software. It has fast loading utilities because of the different cache memory.
High Productivity
MySQL uses Triggers, Stored procedures, and views that allow the developer to give higher
productivity.
Platform Independent
t can download, install, and execute on most of the available operating systems.
Partitioning
This feature improves the performance and provides fast management of the large database.
Disadvantages/Drawback of MySQL
Following are the few disadvantages of MySQL:
o MySQL version less than 5.0 doesn't support ROLE, COMMIT, and stored procedure.
o MySQL does not support a very large database size as efficiently.
o MySQL doesn't handle transactions very efficiently, and it is prone to data corruption.
o MySQL is accused that it doesn't have a good developing and debugging tool compared to paid
databases.
o MySQL doesn't support SQL check constraints.
We can determine the data type in MySQL with the following characteristics:
MySQL has all essential SQL numeric data types. These data types can include the exact numeric data
types (For example, integer, decimal, numeric, etc.), as well as the approximate numeric data types (For
example, float, real, and double precision). It also supports BIT datatype to store bit values. In MySQL,
numeric data types are categories into two types, either signed or unsigned except for bit data type.
TINYINT It is a very small integer that can be signed or unsigned. If signed, the allowable range is from
-128 to 127. If unsigned, the allowable range is from 0 to 255. We can specify a width of up
to 4 digits. It takes 1 byte for storage.
SMALLINT It is a small integer that can be signed or unsigned. If signed, the allowable range is from -
32768 to 32767. If unsigned, the allowable range is from 0 to 65535. We can specify a width
of up to 5 digits. It requires 2 bytes for storage.
MEDIUMINT It is a medium-sized integer that can be signed or unsigned. If signed, the allowable range is
from -8388608 to 8388607. If unsigned, the allowable range is from 0 to 16777215. We can
specify a width of up to 9 digits. It requires 3 bytes for storage.
INT It is a normal-sized integer that can be signed or unsigned. If signed, the allowable range is
from -2147483648 to 2147483647. If unsigned, the allowable range is from 0 to 4294967295.
We can specify a width of up to 11 digits. It requires 4 bytes for storage.
BIGINT It is a large integer that can be signed or unsigned. If signed, the allowable range is from -
9223372036854775808 to 9223372036854775807. If unsigned, the allowable range is from 0
to 18446744073709551615. We can specify a width of up to 20 digits. It requires 8 bytes for
storage.
FLOAT(m,d) It is a floating-point number that cannot be unsigned. You can define the display length (m)
and the number of decimals (d). This is not required and will default to 10,2, where 2 is the
number of decimals, and 10 is the total number of digits (including decimals). Decimal
precision can go to 24 places for a float type. It requires 2 bytes for storage.
DOUBLE(m,d) It is a double-precision floating-point number that cannot be unsigned. You can define the
display length (m) and the number of decimals (d). This is not required and will default to
16,4, where 4 is the number of decimals. Decimal precision can go to 53 places for a double.
Real is a synonym for double. It requires 8 bytes for storage.
DECIMAL(m,d) An unpacked floating-point number that cannot be unsigned. In unpacked decimals, each
decimal corresponds to one byte. Defining the display length (m) and the number of
decimals (d) is required. Numeric is a synonym for decimal.
The following table illustrates all date and time data types that support in MySQL:
The following table illustrates all string data types that support in MySQL:
CHAR(size) It can have a maximum size Here size is the number of characters to store.
of 255 characters. Fixed-length strings. Space padded on the right
to equal size characters.
VARCHAR(size) It can have a maximum size Here size is the number of characters to store.
of 255 characters. Variable-length string.
TINYTEXT(size) It can have a maximum size Here size is the number of characters to store.
of 255 characters.
TEXT(size) Maximum size of 65,535 Here size is the number of characters to store.
characters.
MEDIUMTEXT(size) It can have a maximum size Here size is the number of characters to store.
of 16,777,215 characters.
LONGTEXT(size) It can have a maximum size Here size is the number of characters to store.
of 4GB or 4,294,967,295
characters.
BINARY(size) It can have a maximum size Here size is the number of binary characters to
of 255 characters. store. Fixed-length strings. Space padded on the
right to equal size characters.
(introduced in MySQL 4.1.2)
Features of SQL:
SQL is not a case sensitive language it means that all the commands of
Sql are not case sensitive
Every command of sql should ends with a semicolon (;)
SQL can be pronounced as Sequel (Structured English Query Language)
SQL can be called as Common Language Interface, which is used to
communicate with any type of database
SQL can be called as NLI (Natural Language Interface). It means that all
the SQL Commands are almost similar to normal English language
Structured query language is mainly divided into 4 sub languages
1. DDL (Data Definition Language)
2. DML (Data Manipulation Language)
3. TCL (Transaction Control Language)
4. DCL(Data Control Language)
SQL
1. Create:
This command is used to create the database objects within the database
Syntax: CREATE TABLE <TABLE NAME>
(COL 1 DATA TYPE (size),
COL2 DATA TYPE (size),
:
:
:
COLN DATA TYPE (size));
Ex: CREATE TABLE EMP (EID NUMBER, ENAME Varchar 2(15), SAL
NUMBER(6, 2));
a. ALTER-ALTER COLUMN:
b. ALTER-ADD:
c. ALTER-DROP:
This command is used to change the table name from old table name to
new table name
Syntax: ALTER TABLE TANLENAME COLUMN OLDNAME TO NEWNAME
Ex: ALTER TABLE EMP COLUMN SAL TO SALARY
3. TRUNCATE:
This command is used for to delete all the records from existing
table permanently
Syntax: TRUNCATE TABLE <TABLE NAME>
Ex: TRUNCATE TABLE EMP;
4. DROP:
This command is used to remove the table permanently from the database
Syntax: DROP TABLE <TABLE NAME>
Ex: DROP TABLE EMP;
DECRIPTION OF TABLE:
DESC TABLENAME
DESC EMP
DATA MANIPULATING LANGUAGE
Data Manipulating Language: This is the 2nd sub language in SQL,
which is used to manipulate the data within database. This Language contains 4
commands
1. Insert
2. Update
3. Delete
4. Select
1. INSERT:
Using this command we can Insert the records into the existing table
We can insert the records into the table in two methods
Explicit method
Implicit method
Explicit method:
In this method user has to enter all the values into all the columns
without anything omitting (or) left any column data
Syntax: INSERT INTO <TABLE NAME> VALUES <VAL1, VAL2,
….VALN>;
(OR)
INSERT <TABLE NAME> VALUES <VAL1, VAL2, .VALN>;
(Here “INTO” Keyword is optional)
2. UPDATE:
3. DELETE:
06 Truncate will reset the identity Delete will not reset the identity
Values value
4. SELECT:
ALIAS is a duplicate name (or) alternate name for the original column
name (or) Table name (or) an expression name.
In the above example returns the runtime error message invalid column
name „annual salary‟ because we cannot check the conditions on Alias name
Built In Functions(System Functions) IN SQL: SQL server
provide number of built in functions like mathematical functions, character
functions, date and time functions, aggregative functions,convertion functions
etc.these can be used to perform certain operations and return a value.
Syntax: SELECT <Function Name> [Expressions]
ABSOLUTE (): Returns the absolute, positive value of the given numeric expression.
CEILING (): Returns the smallest integer greater than, or equal to, the given
numeric expression.
Ex: select ceil(15.000) -------15
select ceil(15.0001)-------16
select ceil(-12.34) -----(-12)
FLOOR (): Returns the largest integer less than or equal to the given numeric
expression.
Ex:Select floor(20.5)
COS (): A mathematic function that returns the trigonometric cosine of the given
angle (in radians) in the given expression.
RIGHT (): Returns the right part of a character string with the specified number of
characters.
LENGTH (): Returns the number of characters, rather than the number of bytes,
of the given string expression.
UPPER (): Returns a character expression with lowercase character data converted
to uppercase.
RTRIM (): Returns a character string after truncating all trailing blanks.
SUM (): Returns the sum of all the values .Sum can be used with numeric columns
only. Null values are ignored.
AVG (): Returns the average of the values in a group. Null values are ignored.
COUNT (): Returns the number of records in a table. This function again use in
three ways.
Distinct Key: If we use this key word on a column with in a query then it will
retrieve the values of the column without duplicates.
OPERATORS IN SQL: Operator is a symbol which performs some
specific operation on operands or expressions. These operators are classified into 6
types in SQL.
1. Assignment operator
2. Arithmetic operator
3. Comparison operator
4. Logical operator
5. Set operator
Ex1: Write a Query to display the employee details whose salary is equal to10000
Step1: Create table student (Sid int, sname varchar (50), math‟s int, phy int, che
int, total int, average int, class varchar (max))
Case
Else
'Fail'
End
CASE (): This function is used to execute list of conditions and returns a value.
Syntax: Case
Else
<Statement>
End
Comparison operators: Comparison operators test whether two
expressions are the same. Comparison operators can be used on all expressions
except expressions of the text, ntext, or image data types. The following table lists
the Transact-SQL comparison operators are > (Greater Than),< (Less Than)
,>= (Greater Than or Equal To) ,<= (Less Than or Equal To) ,!= (Not Equal
To),!< (Not Less Than),!> (Not Greater Than)
Examples:
Logical operator: Logical operators test for the truth of some condition.
Logical operators, like comparison operators, return a Boolean data type with a
value of TRUE or FALSE. Logical operators are AND , OR , NOT, BETWEEN,
NOT BETWEEN, LIKE, NOT LIKE, IN, NOT IN, EXISTS,NOT EXISTS, ANY,
ALL, SOME.
Examples:
Write a Query to display the employee details whose name starts with „r‟
SELECT * FROM EMP WHERE ENAME LIKE „r%‟
Write a Query to display the employee details whose name ends with „y‟
SELECT * FROM EMP WHERE ENAME LIKE „%Y‟
Write a Query to display the employee details whose names contain „r‟
and salary greater than 9000
SELECT * FROM EMP WHERE ENAME LIKE „%R%‟ AND SAL>9000
Write a Query to display the employee details whose greater than ram
SELECT * FROM EMP WHERE ENAME>‟RAM‟
Write a Query to display the employee details whose employee id starts
with 1 and ends with 1
SELECT * FROM EMP WHERE EID LIKE „1%1‟
(SQL commands are not case sensitive and also data available in SQL also not case
sensitive, in oracle Data available is case sensitive)
Queries using ‘Update’ with ‘where’ clause:
Write a query to change the deptno as 20 who does not have deptno
UPDATE EMPSET DEPTNO=20 WHERE DEPTNO IS NULL
Write a query to change the employee salaries as 8500 who are working
under 10 and 20 deptno
UPDATE EMPSET SAL=8500 WHERE DEPTNO=10 OR DEPTNO=20
(OR)
UPDATE EMPSET SAL=8500 WHERE DEPTNO IN(10,20)
Write a query to change the employee salaries as 8500 who are not working
under 10 and 20 deptno
UPDATE EMPSET SAL=8500 WHERE DEPTNO NOT IN (10,20)
Set Operators: Set operators combine results from two or more queries into a
single result set. SQL Server provides the following set operators.
UNION
UNION ALL
INTERSECT
MINUS
To combine the results of two queries we need to follow the below basic rules.
The number and the order of the columns must be the same in all queries.
The data types must be compatible(Well-Matched)
Example:
------------------------------------------------ EMP_CHENNAI
EID ENAME
101 SAI
105 POOJA
106 JASMIN
UNION: it combines the result of two or more select statements into a single result
set that includes all the records belongs to all queries except duplicate values.
Union
OUTPUT: ENAME
JASMIN
KAMAL
NEETHU
POOJA
SAI
SIDDHU
UNION ALL: it is same as union but returns duplicate values
Union ALL
OUTPUT: ENAME
SAI
SIDDHU
KAMAL
NEETHU
SAI
POOJA
JASMIN
INTERSECT: INTERSECT returns any distinct values that are common in left
and right tables.
Intersect
OUTPUT: ENAME
SAI
MINUS: MINUS returns any distinct values from the left query that are not
found on the right query.
Minus
OUTPUT: ENAME
KAMAL
NEETHU
SIDDHU
Except
OUTPUT: ENAME
JASMIN
POOJA
WHERE: This clause is used for filter or restricts the records from the table.
Ex: SELECT * FROM EMP WHERE SAL=10000
ORDER BY: The order by clause is used to sort or arrange the data in
ascending or descending order with in table. By default order by
clause arrange or sort the data in ascending order only.
If we want to arrange the records in a descending order then
we use Desc keyword.
We can apply order by clause on integer and string columns.
Ex: SELECT * FROM EMP ORDER BY EID (For Ascending Order)
Ex: SELECT * FROM EMP ORDER BY ENAME DESC (For Descending Order)
TOP N CLAUSE: This clause is used to fetch a top n number of records from a
table.
GROUP BY: Group by clause will use for to arrange similar data into groups.
when we apply group by clause in the query then we use group functions like
count(),sum(),max(),min(),avg().
If we use group by clause in the query, first the data in the table will be divided
into different groups based on the columns and then execute the group function on
each group to get the result.
Ex1: WAQ to find out the number of employees working in the organization
Ex2: WAQ to find out the number of employees working in each group in the
organization.
Ex3: WAQ to find out the total salary of each department in the organization
Ex: WAQ to find out the number of employees in each department only if the
count is greater than 3
WHERE HAVING
WHERE clause is used to filter and HAVING clause is used to filter and
restrict the records before grouping restrict the records after grouping
If restriction column associated with But we can use HAVING clause at this
A aggregative function then we cannot situations
use WHERE clause there
WHERE clause can apply without group HAVING clause cannot be applied
by clause without a group by clause
WHERE clause can be used for Where as HAVING clause is used along
restricting individual rows with group by clause to filter or restrict
groups
Syntax: Select * into <New Table Name> from <Old Table Name>
In this case it creates a table New_Emp by copying all the rows and columns of the
Employee table.
In this case it creates a table Test_Emp with only the specified columns from the
employee table.
In this case it creates the Dummy table without any data in it.
Copying data from one existing table to another table:
We can copy the data from one table to another table by using a combination of
insert and select statement as following
Syntax: Insert into <Dummy Table name> select * from <Table Name>
Constraint in SQL
Why Constraint in SQL: Constraint is using to restrict the insertion of
unwanted data in any columns. We can create constraints on single or multiple
columns of any table. It maintains the data integrity i.e. accurate data or original
data of the table. Data integrity rules fall into three categories:
Entity integrity
Referential integrity
Domain integrity
Domain Integrity: Domain integrity ensures the data values inside a database
follow defined rules for values, range, and format. A database can enforce these
rules using CHECK KEY constraints.
In a table we create one primary key but we can create more than one unique key
in Sql Server.
2. Not null constraint: - Not null constraint is used to restrict the insertion of
null value at that column but allow duplicate values.
4. Primary Key:- Primary key is a combination of unique and not null which
does not allow duplicate as well as null values into a column. In a table we create
one primary key only.
In order to create a link between two tables we must specify a foreign key in one
table that references a column in another table.
Foreign key constraint is used for relating or binding two tables with each other
and then verifies the existence of one table data in the other.
We require two tables for binding with each other and those two tables must have a
common column for linking the tables.
Example:
When we impose the foreign key constraint and establish relation between the
table,the followiong three rules will come into picture.
Rule1:- Cannot insert a value into the foreign key column provided that value is
not existing under the refernce key column of the parent table.
Rule2:- Cannot update the reference key value of a parent table provided that
value has corresponding child record in the child table with out addressing what
to do with the child record.
Rule3:- Cannot delete a record from the parent table provided that records
reference key value has child record in the child table with out addressing what to
do with the child record.
If we want to delete or update a record in the parent table when they have
corresponding child records in the child table we are provide with a set of rules to
perform delete and update operations knows as cascade rules.
On delete cascade:- It is used to delete a key value in the parent table which is
referenced by foreign key in other table all rows that contains those foreign keys in
child table are also deleted.
Making a Relationship between Three Tables
CASE-1:
Create table CUSTOMER (CID Int primary key, CNAME Varchar (20), MAILID
Varchar (40))
CASE-2
Create table PRODUCTS (PCODE Int primary key, PNAME varchar (50), PRICE
money)
---------------------------------------------------------------------------
CASE-3
Create table ORDERS (ORID Int primary key, ORDATE date, QUANTITY int,CID
Int foreign key references CUSTOMER(cid) on delete cascade, PCODE Int
foreign key references PRODUCTS(pcode) on update cascade on delete
cascade)
----------------------------------------------------------
Ex: ALTER TABLE DEPT ADD CONSTRAINT Y FOREIGN KEY (EID) REFERENCES
EMPLOYEE (EID) ON UPDATE CASCADE ON DELETE CASCADE
JOINS IN SQL: Joins are used for retrieving the data from more than one
table at a time. Joins can be classified into the following types.
INNER JOIN OR EQUI JOIN
OUTER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN
SELF JOIN
CROSS JOIN
EQUI JOIN: If two or more tables are combined using equality condition then
we call as an Equi join.
Ex: WAQ to get the matching records from EMP and DEPT tables
INNER JOIN: Inner join return only those records that match in both table
To overcome the above problem we use outer join which are used to getting
matching data as well as UN matching data from the tables. This outer join again
classified into three types
LEFT OUTER JOIN: It will retrieve or get matching data from both table as well
as UN matching data from left hand side table
RIGHT OUTER JOIN: It will retrieve or get matching data from both table as
well as UN matching data from right hand side table
FULL OUTER JOIN: It will retrieve or get matching data from both table as well
as UN matching data from left hand side table plus right hand side table also.
SELF JOIN: Joining a table by itself is known as self join. When we have some
relation between the columns within the same table then we use self join.
When we implement self join we should use alias names for a table and a table
contains any no. of alias names.
Ex: SELECT E.EID, E.ENAME, E.SALARY, M.MID, M.ENAME
MANAGERSNAME, M.SALARY FROM EMP E, EMP M WHERE
E.EID=M.MID.
CROSS JOIN: Cross join is used to join more than two tables without any
condition we call as a cross join. In cross join each row of the first table join with
each row of the second table.
So, if the first table contain „m‟ rows and second table contain „n‟ rows then output
will be „m*n‟ rows.
CREATE TABLE COURSES (CID int, CNAME Varchar (20), CFEE decimal (6, 2))
---------------------------------------------------------------------------------------------------------
Select * from course c inner join student s on c.cid=s.cid inner join register r on
s.cid=r.cid
Select * from student s left outer join course c on s.cid=c.cid left outer join
register r on c.cid=r.cid
Sub Query: A select query contains another select query is called sub Query.
In this, there will be two queries those are called as inner query and outer query.
When it is executed, first inner query is executed later outer query will be executed
Examples:
1) WAQ to find the details of employee who is earning the highest salary.
3) WAQ to find the details of employee who is earning third highest salary.
Sol: select * from employee where EID IN (select EID FROM employee where
DNAME='.NET')
Sol: select * from employee where EID IN (select EID FROM employee where
DNAME='.NET' OR DNAME='HR')
Outer query will execute first and value of the outer query will be used
by co- related sub query i.e. inner query.
When outer query is executed then the copy of the table will be stored in
memory, later co related sub query will check the values and will give Ranks
to the outer query rows in the memory ,according to the ranks the result
will be displayed.
Note: - To find Top n salaries list use “n>”.To find nth highest salary use “n-1”.
Examples:
6) WAQ to display top 2 salaries list from employee table.
Note: - Here Distinct Key will be used when the table contain duplicate values.
Sol: Select * from employee E where 0=(select count( salary) from employee
M where M.salary>E.salary)
least salary
9) WAQ to get the details of the department in which employee are working.
10) WAQ to get the details of the department in which employee are
not working.
with duplicates as
(select * ,ROW_NUMBER() over(partition by sid,sname, fee order by
sid,sname,fee) rownum from student)
delete from duplicates where rownum > 1
select the complete above query and execute then we delete all duplicate records
which are greater than 1 i.e.output is like below
SID SNAME FEE Rownum
10 Sai 12000 1
20 Siddhu 45000 1
30 Meena 65000 1
VIEWS IN SQL: View is database object which is like table but logical.
We can call it as a logical or virtual table because it does not has a physical
existence.
It is a logical table use to get the required information from the table.
View will be created by using select statement and table used for the
creation of the view is called as base table.
View will not store records in it and will not occupy memory space
with help of structure existing in it and records will be displayed from
table.
View is logical representation or virtual representation .it is a dependent
where as table an independent is because view is extracted from the
table.
If we want to access the data from the table it‟s not necessary to change the
data direct to the table but we can access by having a view.
Views are used for security purpose in databases, views restricts the user
from viewing certain column and rows means by using view we can
apply the restriction on accessing the particular rows and columns for
specific user.
Views display only those data which are mentioned in the query, so it
shows only data which is returned by the query that is defined at the time of
creation of the View.
Why We Need Views: To protect the data. If you have a table
containing sensitive data in certain columns, you might wish to hide those
columns from certain groups of users. For instance, customer names, addresses
and their social security numbers might all be stored in the same table;
however, for lower level employees like shipping clerks, you can create a view
that only displays customer name and address. You can grant permissions to a
view without allowing users to query the original tables.
A view is a logical table but what it stores internally is a select statement
that is used for creating the view. So that whenever a user performs any
operation on the view like select, insert, update or delete internally the view
performs those operations on a table.
Simply we can say that view will act as an interface between the
data provider (Table) and the User.
View is created based on a table any changes that are performed on the table
reflects into the view any changes performed on the view reflect into the table also.
View is classified into two types. These are
Simple view: we create a view based on one table is called simple view or
Updatable view.
Complex view: we create a view based on more than one table is called complex
view or Non-Updatable view.
Syntax: create view <view name> as select * from <table name>
Begin
<Function Body>
End
DCL commands are used to enforce database security in multiple users’ database
environment.
GRANT: Grant command is used for giving a privilege or permission for a user to perform
operations on the database.
Syntax: GRANT <Privilege Name> on <object name> To {User} [With GRANT OPTION]
Privilege Name: Used to granted permission to the users for some rights are ALL, EXECUTE
and SELECT.
Object Name: It is the name of database objects like Table, Views and Stored Procedure
etc….
User: Used for to whom an access rights is being granted.
With Grant Option: Allows a user to grant access rights to other users.
REVOKE: Revoke command removes user access rights / privileges to the
database OR taking back the permission that is given to a user.