BASICS OF
STRUCTURED QUERY
LANGUAGE (SQL)
EXPLORE BASIC COMMANDS AND
FUNCTIONS OF SQL
HOW TO USE SQL FOR DATA
ADMINISTRATION (TO CREATE TABLES,
OBJECTIV INDEXES, AND VIEWS)
ES HOW TO USE SQL FOR DATA
MANIPULATION (TO ADD, MODIFY,
DELETE, AND RETRIEVE DATA)
HOW TO USE SQL TO QUERY A DATABASE
TO EXTRACT USEFUL INFORMATION
2
SQL is a It is designed
programming over Relational
language for Algebra and
Relational Tuple Relational
Databases. Calculus.
SQL comprises
WHAT IS
SQL comes as a
Package with all
both Data
Definition and
STRUCTUR
major
distributions of
Data ED QUERY
Manipulation
RDBMS.
languages. LANGUAGE
Using the Data
whereas Data
Definition
Manipulation
properties of
properties allows
SQL, one can
SQL to Store and
Design and
Retrieve Data
Modify Database
from Database.
Schema.
INTRODUCTION TO SQL
• SQL IS STRUCTURED QUERY LANGUAGE, WHICH IS A
COMPUTER LANGUAGE FOR STORING, MANIPULATING
AND RETRIEVING DATA STORED IN A RELATIONAL
DATABASE.
• SQL IS THE STANDARD LANGUAGE FOR RELATIONAL
DATABASE SYSTEM.
• ALL THE RELATIONAL DATABASE MANAGEMENT
SYSTEMS (RDMS) LIKE MYSQL, MS ACCESS, ORACLE,
POSTGRES AND SQL SERVER USE SQL AS THEIR
STANDARD DATABASE LANGUAGE.
APPLICATIONS OF SQL
• ALLOWS USERS TO ACCESS DATA IN THE
RELATIONAL DATABASE MANAGEMENT SYSTEMS.
• ALLOWS USERS TO DESCRIBE THE DATA.
• ALLOWS USERS TO DEFINE THE DATA IN A DATABASE
AND MANIPULATE THAT DATA.
• ALLOWS USERS TO CREATE, DROP DATABASES AND
TABLES.
• ALLOWS USERS TO CREATE VIEW, STORED
PROCEDURE, FUNCTIONS IN A DATABASE.
• ALLOWS USERS TO SET PERMISSIONS ON TABLES,
PROCEDURES AND VIEWS.
SQL COMMANDS
• SQL FUNCTIONS FIT INTO FOUR BROAD
CATEGORIES:
• DATA DEFINITION LANGUAGE
• CREATE DATABASE OBJECTS, SUCH AS TABLES, INDEXES,
AND VIEWS
• DEFINE ACCESS RIGHTS TO THOSE DATABASE OBJECTS
• DATA MANIPULATION LANGUAGE
• TO INSERT, UPDATE, DELETE, AND RETRIEVE DATA
• DATA CONTROL LANGUAGE
• TO GRANT AND REVOKE PRIVILEGE TO THE USER
• TRANSACTIONS CONTROL LANGUAGE
• TO COMMIT, SAVE POINT AND ROLLBACK TRANSACTIONS
DATA DEFINITION COMMANDS
CREATE, ALTER, RENAME UNDERSTAND
DROP, TRUNCATE DATABASE ENVIRONMENT
7
CREATING THE DATABASE
Two tasks must be First task:
completed:
• CREATE DATABASE STRUCTURE • RDBMS CREATES PHYSICAL FILES
THAT WILL HOLD DATABASE
• CREATE TABLES THAT WILL HOLD
• TENDS TO DIFFER SUBSTANTIALLY
END-USER DATA FROM ONE RDBMS TO ANOTHER
8
THE DATABASE SCHEMA
Authentication Schema
• GROUP OF DATABASE OBJECTS
• PROCESS THROUGH WHICH DBMS
VERIFIES THAT ONLY REGISTERED —SUCH AS TABLES AND INDEXES
USERS CAN ABLE TO ACCESS DATABASE —THAT ARE RELATED TO EACH
• LOG ON TO RDBMS USING USER ID AND OTHER
PASSWORD CREATED BY DATABASE
ADMINISTRATOR 9
DATA TYPES
• DATA TYPE SELECTION IS • PAY CLOSE ATTENTION TO
USUALLY DICTATED BY NATURE EXPECTED USE OF ATTRIBUTES
OF DATA AND BY INTENDED FOR ORGANIZING AND DATA
USE RETRIEVAL PURPOSES
10
DATA TYPES CATEGORIES
• EXACT NUMERIC DATA TYPES
• APPROXIMATE NUMERIC DATA TYPES
• DATE AND TIME DATA TYPES
• CHARACTER STRINGS DATA TYPES
• UNICODE CHARACTER STRINGS DATA TYPES
• BINARY DATA TYPES
• MISC DATA TYPES
11
EXACT NUMERIC DATA TYPES
DATA TYPE FROM TO
-
9,223,372,036,854,770,00
BIGINT 9,223,372,036,854,770,00
0
0
INT -2,147,483,648 2,147,483,647
SMALLINT -32,768 32,767
TINYINT 0 255
BIT 0 1
DECIMAL 1E+38 10^38 -1
NUMERIC 1E+38 10^38 -1
MONEY -922,337,203,685,477.00 922,337,203,685,477.0012
SMALLMONE
APPROXIMATE NUMERIC DATA
TYPES
DATA TYPE FROM TO
FLOAT -1.79E + 308 1.79E + 308
REAL -3.40E + 38 3.40E + 38
DATE AND TIME DATA TYPES
DATA TYPE FROM TO
DATETIME Jan 1, 1753 Dec 31, 9999
SMALLDATETI
ME
Jan 1, 1900 Jun 6, 2079
DATE Stores a date like June 30, 1991 13
TIME Stores a time of day like 12:30 P.M.
CHARACTER STRINGS DATA
TYPES
DATA TYPE DESCRIPTION
Maximum length of 8,000 characters.( Fixed
CHAR
length non-Unicode characters)
Maximum of 8,000 characters.(Variable-length
VARCHAR
non-Unicode data).
VARCHAR(M Maximum length of 2E + 31 characters, Variable-
AX) length non-Unicode data (SQL Server 2005 only).
Variable-length non-Unicode data with a
TEXT
maximum length of 2,147,483,647 characters.
14
UNICODE CHARACTER STRINGS DATA
TYPES
DATA TYPE DESCRIPTION
Maximum length of 4,000 characters.( Fixed length
NCHAR
Unicode)
Maximum length of 4,000 characters.(Variable
NVARCHAR
length Unicode)
NVARCHAR( Maximum length of 2E + 31 characters (SQL
MAX) Server 2005 only).( Variable length Unicode)
Maximum length of 1,073,741,823 characters.
NTEXT
( Variable length Unicode ) 15
BINARY DATA TYPES
DATA TYPE DESCRIPTION
Maximum length of 8,000 bytes(Fixed-length binary
BINARY
data )
Maximum length of 8,000 bytes.(Variable length
VARBINARY
binary data)
Maximum length of 2E + 31 bytes (SQL Server 2005
VARBINARY(MA
X)
only).
( Variable length Binary data)
Maximum length of 2,147,483,647 bytes. ( Variable
IMAGE
length Binary Data)
16
MISC DATA TYPES
DATA TYPE DESCRIPTION
Stores values of various SQL Server-supported data types,
SQL_VARIANT
except text, ntext, and timestamp.
Stores a database-wide unique number that gets updated
TIMESTAMP
every time a row gets updated
UNIQUEIDENTI
Stores a globally unique identifier (GUID)
FIER
Stores XML data. You can store xml instances in a column
XML
or a variable (SQL Server 2005 only).
CURSOR Reference to a cursor object
TABLE Stores a result set for later processing 17
OPERATOR IN SQL
• AN OPERATOR IS A RESERVED WORD USED MOSTLY IN AN
SQL STATEMENT WHERE CLAUSE TO PERFORM OPERATION,
SUCH AS COMPARISONS AND ARITHMETIC OPERATIONS.
• ARITHMETIC OPERATORS
• COMPARISON OPERATORS
• LOGICAL OPERATORS
• OPERATORS USED TO NEGATE CONDITIONS
SQL ARITHMETIC OPERATORS
OPERAT
DESCRIPTION
OR
+ Adds values on either side of the operator.
- Subtracts right hand operand from left hand operand.
* Multiplies values on either side of the operator.
/ Divides left hand operand by right hand operand.
Divides left hand operand by right hand operand and
%
returns remainder.
SQL COMPARISON OPERATORS
OPERAT
DESCRIPTION
OR
= Checks if the values of two operands are equal or not.
!= Checks if the values of two operands are equal or not.
<> Checks if the values of two operands are equal or not.
> Checks if the value of left operand is greater than the value of right operand.
< Checks if the value of left operand is less than the value of right operand.
Checks if the value of left operand is greater than or equal to the value of right
>=
operand.
Checks if the value of left operand is less than or equal to the value of right
<=
operand.
!< Checks if the value of left operand is not less than the value of right operand.
Checks if the value of left operand is not greater than the value of right
!>
SQL LOGICAL OPERATORS
OPERATOR DESCRIPTION
The AND operator allows the existence of multiple conditions in an SQL statement's
AND
WHERE clause.
The ANY operator is used to compare a value to any applicable value in the list as per
ANY
the condition.
BETWEEN The BETWEEN operator is used to search for values that are within a set of values
The EXISTS operator is used to search for the presence of a row in a specified table that
EXISTS
meets a certain criterion.
The IN operator is used to compare a value to a list of literal values that have been
IN
specified.
The LIKE operator is used to compare a value to similar values using wildcard
LIKE
operators.
The NOT operator reverses the meaning of the logical operator with which it is used.
NOT
E.g.: NOT EXISTS, NOT BETWEEN, NOT IN, etc. This is a negate operator.
The OR operator is used to combine multiple conditions in an SQL statement's WHERE
OR
clause.
IS NULL The NULL operator is used to compare a value with a NULL value.
SQL AGGREGATE FUNCTIONS
FUNCTIO
DESCRIPTION
N
Returns the minimum attribute values found in a given
MIN
column.
Returns the maximum attribute values found in a given
MAX
column.
SUM Returns the sum of all values in a given column.
AVG Returns the average of all values in a given column.
Returns the number of rows with non-null values for a given
COUNT
column.
BASIC SYNTAX
SQL - SYNTAX
• SQL IS FOLLOWED BY A UNIQUE SET OF RULES AND GUIDELINES CALLED
SYNTAX.
• ALL THE SQL STATEMENTS START WITH ANY OF THE KEYWORDS LIKE
• SELECT, INSERT, UPDATE, DELETE, ALTER, DROP, CREATE, USE, SHOW
AND END WITH A SEMICOLON (;).
• THE SQL IS CASE INSENSITIVE, SELECT AND select HAVE SAME MEANING
• WHEREAS, MYSQL MAKES DIFFERENCE IN TABLE NAMES. NEED TO GIVE
TABLE NAMES AS THEY EXIST IN THE DATABASE.
VARIOUS SYNTAX IN SQL
SQL SELECT STATEMENT
SELECT column1, column2....columnN
FROM table_name;
SQL DISTINCT CLAUSE
SELECT DISTINCT column1, column2....columnN
FROM table_name;
SQL WHERE CLAUSE
SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION;
SQL AND/OR CLAUSE
SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION-1 {AND|OR} CONDITION-2;
SQL IN CLAUSE
SELECT column1, column2....columnN
FROM table_name
WHERE column_name IN (val-1, val-2,...val-N);
VARIOUS SYNTAX IN SQL (CONTD)
SQL BETWEEN Clause
SELECT column1, column2....columnN
FROM table_name
WHERE column_name BETWEEN val-1 AND val-2;
SQL LIKE Clause
SELECT column1, column2....columnN
FROM table_name
WHERE column_name LIKE { PATTERN };
SQL ORDER BY Clause
SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION
ORDER BY column_name {ASC|DESC};
SQL GROUP BY Clause
SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name;
VARIOUS SYNTAX IN SQL (CONTD)
SQL COUNT Clause
SELECT COUNT(column_name)
FROM table_name
WHERE CONDITION;
SQL HAVING Clause
SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name
HAVING (arithematic function condition);
SQL CREATE TABLE Statement
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);
VARIOUS SYNTAX IN SQL (CONTD)
SQL DROP TABLE Statement
DROP TABLE table_name;
SQL CREATE INDEX Statement
CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...columnN);
SQL DROP INDEX Statement
ALTER TABLE table_name
DROP INDEX index_name;
SQL DESC Statement
DESC table_name;
SQL TRUNCATE TABLE Statement
TRUNCATE TABLE table_name;
VARIOUS SYNTAX IN SQL (CONTD)
SQL ALTER TABLE Statement
ALTER TABLE table_name {ADD|DROP|MODIFY} column_name {data_ype};
SQL ALTER TABLE Statement (Rename)
ALTER TABLE table_name RENAME TO new_table_name;
SQL INSERT INTO Statement
INSERT INTO table_name( column1, column2....columnN)
VALUES ( value1, value2....valueN);
SQL UPDATE Statement
UPDATE table_name
SET column1 = value1, column2 = value2....columnN=valueN
[ WHERE CONDITION ];
SQL DELETE Statement
DELETE FROM table_name
WHERE {CONDITION};
VARIOUS SYNTAX IN SQL (CONTD)
SQL CREATE DATABASE Statement
CREATE DATABASE database_name;
SQL DROP DATABASE Statement
DROP DATABASE database_name;
SQL USE Statement
USE database_name;
SQL COMMIT Statement
COMMIT;
SQL ROLLBACK Statement
ROLLBACK;
DATA DEFINITION
LANGUAGE
#EXAMPLE DB CREATION
CREATING DATABASE
• THE BASIC SYNTAX FOR DATABASE CREATION −
• CREATE DATABASE DATABASE_NAME;
SQL> CREATE DATABASE TEST;
SQL> SHOW DATABASES;
+--------------------+
| DATABASE |
+--------------------+
| UNIVERSITY |
| TEST |
+--------------------+
2 ROWS IN SET (0.00 SEC) 32
DROP OR DELETE DATABASE
• THE BASIC SYNTAX OF DROP DATABASE STATEMENT IS
• DROP DATABASE DATABASENAME;
SQL> DROP DATABASE TEST;
SQL> SHOW DATABASES;
+--------------------+
| DATABASE |
+--------------------+
| UNIVERSITY |
+--------------------+
1 ROWS IN SET (0.00 SEC)
33
SELECT DATABASE, USE STATEMENT
• THE BASIC SYNTAX OF THE USE STATEMENT IS
• USE DATABASENAME;
• BEFORE SELECTION, CHECK THE AVAILABLE DATABASES
SQL> SHOW DATABASES;
+--------------------+
| DATABASE |
+--------------------+
| UNIVERSITY |
+--------------------+
1 ROWS IN SET (0.00 SEC)
SQL> USE UNIVERSITY;
34
CREATING TABLE STRUCTURES
• USE ONE LINE PER COLUMN (ATTRIBUTE) DEFINITION
• USE SPACES TO LINE UP ATTRIBUTE CHARACTERISTICS
AND CONSTRAINTS
• TABLE AND ATTRIBUTE NAMES ARE CAPITALIZED
• NOT NULL SPECIFICATION
• UNIQUE SPECIFICATION
35
CREATING TABLE STRUCTURES
(CONTINUED)
• CREATING A BASIC TABLE INVOLVES NAMING THE TABLE AND DEFINING ITS
COLUMNS AND EACH COLUMN'S DATA TYPE.
SQL> 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)
); 36
CREATING TABLE STRUCTURES
(CONTINUED)
• YOU CAN USE THE DESC COMMAND AS FOLLOWS −
SQL> DESC CUSTOMERS;
+---------+---------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+---------+---------------+------+-----+---------+-------+
| ID | INT(11) | NO | PRI | | |
| NAME | VARCHAR(20) | NO | | | |
| AGE | INT(11) | NO | | | |
| ADDRESS | CHAR(25) | YES | | NULL | |
| SALARY | DECIMAL(18,2) | YES | | NULL | |
+---------+---------------+------+-----+---------+-------+
5 ROWS IN SET (0.00 SEC)
37
DROP OR DELETE TABLE
• THE BASIC SYNTAX OF DROP TABLE IS AS FOLLOWS −
DROP TABLE TABLE_NAME;
SQL> DROP TABLE CUSTOMERS;
QUERY OK, 0 ROWS AFFECTED (0.01 SEC)
• THE DESC COMMAND, THEN YOU WILL GET THE FOLLOWING ERROR −
SQL> DESC CUSTOMERS;
ERROR 1146 (42S02): TABLE 'TEST.CUSTOMERS' DOESN'T EXIST
38
DATA MAULPLATION
LANGUAGE
#EXAMPLE DB OPERATIONS
SQL - INSERT QUERY
• THERE ARE TWO BASIC SYNTAXES OF THE INSERT INTO STATEMENT
• METHOD1: INSERT INTO TABLE_NAME (COLUMN1, COLUMN2,
COLUMN3,...COLUMNN) VALUES (VALUE1, VALUE2, VALUE3,...VALUEN);
SQL> INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, ‘SHAN', 32, ‘PONDY', 100000.00 );
• METHOD2: INSERT INTO TABLE_NAME VALUES
(VALUE1,VALUE2,VALUE3,...VALUEN);
SQL> INSERT INTO CUSTOMERS
VALUES (2, ‘GAYATHRI', 28, ‘TN', 50000.00 );
40
POPULATE ONE TABLE USING ANOTHER
TABLE
• POPULATE THE DATA INTO A TABLE THROUGH THE SELECT STATEMENT
OVER ANOTHER
SYNTAX:
TABLE INSERT INTO FIRST_TABLE_NAME [(COLUMN1, COLUMN2, ...
COLUMNN)]
SELECT COLUMN1, COLUMN2, ...COLUMNN
FROM SECOND_TABLE_NAME
[WHERE CONDITION];
41
SQL - SELECT QUERY
• THE SQL SELECT STATEMENT IS USED TO FETCH THE DATA FROM A DATABASE
TABLE
• WHICH RETURNS THIS DATA IN THE FORM OF A RESULT TABLE.
• THESE RESULT TABLES ARE CALLED RESULT-SETS.
SYNTAX:
SQL> SELECT * FROM CUSTOMERS;
SQL> SELECT ID, NAME, SALARY FROM CUSTOMERS;
42
SQL - WHERE CLAUSE
• THE SQL WHERE CLAUSE IS USED TO SPECIFY A CONDITION WHILE
FETCHING THE DATA FROM A SINGLE TABLE OR BY JOINING WITH
MULTIPLE TABLES.
SYNTAX:
SQL> SELECT ID, NAME, SALARY
FROM CUSTOMERS
WHERE SALARY < 70000;
43
SQL - AND & OR OPERATORS
• THE SQL AND & OR OPERATORS ARE USED TO COMBINE MULTIPLE
CONDITIONS TO NARROW DATA IN AN SQL STATEMENT.
• THIS IS ALSO CALLED CONJUNCTIVE OPERATORS
THE BASIC SYNTAX OF THE AND OPERATOR WITH A WHERE CLAUSE
SYNTAX:
SQL> SELECT ID, NAME, SALARY
FROM CUSTOMERS
WHERE SALARY > 60000 AND AGE > 30;
44
SQL - AND & OR OPERATORS (CONTINUED)
• THE BASIC SYNTAX OF THE OR OPERATOR WITH A WHERE CLAUSE
SYNTAX:
SQL> SELECT ID, NAME, SALARY
FROM CUSTOMERS
WHERE SALARY < 60000 OR AGE < 30;
45
SQL - UPDATE QUERY
• THE SQL UPDATE QUERY IS USED TO MODIFY THE EXISTING RECORDS IN A TABLE.
SYNTAX:
SQL> UPDATE CUSTOMERS
SET ADDRESS = ‘CHENNAI'
WHERE ID = 2;
46
SQL - DELETE QUERY
• THE SQL DELETE QUERY IS USED TO DELETE THE EXISTING RECORDS FROM A
TABLE
SYNTAX:
SQL> DELETE FROM CUSTOMERS
WHERE ID = 1;
DELETE Query WITHOUT ANY CONDITION
SYNTAX:
SQL> DELETE FROM CUSTOMERS
WHERE ID = 1;
47
NO RECORDS FOUND