You are on page 1of 17

SELECT SQL Query

SELECT query is used to retrieve data from a table. It is the most used SQL query. We can
retrieve complete table data, or partial by specifying conditions using the WHERE clause.

Syntax of SELECT query


SELECT query is used to retieve records from a table. We can specify the names of the
columns which we want in the resultset.
SELECT
column_name1,
column_name2,
column_name3,
...
column_nameN
FROM table_name;

Time for an Example


Consider the following student table,

s_id name age address

101 Adam 15 Chennai

102 Alex 18 Delhi

103 Abhi 17 Banglore

104 Ankit 22 Mumbai

SELECT s_id, name, age FROM student;


The above query will fetch information of s_id, name and age columns of the student table
and display them,

s_id name age

101 Adam 15

102 Alex 18

103 Abhi 17

104 Ankit 22

As you can see the data from address column is absent, because we did not specif it in
our SELECTquery.

Select all records from a table


A special character asterisk * is used to address all the data(belonging to all columns) in a
query. SELECT statement uses * character to retrieve all records from a table, for all the
columns.
SELECT * FROM student;
The above query will show all the records of student table, that means it will show complete
dataset of the table.

s_id name age address

101 Adam 15 Chennai

102 Alex 18 Delhi

103 Abhi 17 Banglore


104 Ankit 22 Mumbai

Select a particular record based on a condition


We can use the WHERE clause to set a condition,
SELECT * FROM student WHERE name = 'Abhi';
The above query will return the following result,

103 Abhi 17 Rohtak

Performing Simple Calculations using SELECT Query


Consider the following employee table.

eid name age salary

101 Adam 26 5000

102 Ricky 42 8000

103 Abhi 25 10000

104 Rohan 22 5000

Here is our SELECT query,


SELECT eid, name, salary+3000 FROM employee;
The above command will display a new column in the result, with 3000 added into existing
salaries of the employees.
eid name salary+3000

101 Adam 8000

102 Ricky 11000

103 Abhi 13000

104 Rohan 8000

So you can also perform simple mathematical operations on the data too using
the SELECT query to fetch data from table.
SQL Constraints SQL Constraints are rules used to limit the
type of data that can go into a table, to maintain the accuracy and integrity of the data inside
table.
Constraints can be divided into the following two types,

1. Column level constraints: Limits only column data.


2. Table level constraints: Limits whole table data.

Constraints are used to make sure that the integrity of data is maintained in the database.
Following are the most used constraints that can be applied to a table.

 NOT NULL
 UNIQUE
 PRIMARY KEY
 FOREIGN KEY
 CHECK
 DEFAULT

NOT NULL Constraint


NOT NULL constraint restricts a column from having a NULL value. Once NOT
NULL constraint is applied to a column, you cannot pass a null value to that column. It
enforces a column to contain a proper value.
One important point to note about this constraint is that it cannot be defined at table level.

Example using NOT NULL constraint


CREATE TABLE Student(s_id int NOT NULL, Name varchar(60), Age int);
The above query will declare that the s_id field of Student table will not take NULL value.
UNIQUE Constraint
UNIQUE constraint ensures that a field or column will only have unique values.
A UNIQUE constraint field will not have duplicate data. This constraint can be applied at
column level or table level.

Using UNIQUE constraint when creating a Table (Table


Level)
Here we have a simple CREATE query to create a table, which will have a column s_id with
unique values.
CREATE TABLE Student(s_id int NOT NULL UNIQUE, Name varchar(60), Age int);
The above query will declare that the s_id field of Student table will only have unique
values and wont take NULL value.

Using UNIQUE constraint after Table is created


(Column Level)
ALTER TABLE Student ADD UNIQUE(s_id);
The above query specifies that s_id field of Student table will only have unique value.

Primary Key Constraint


Primary key constraint uniquely identifies each record in a database. A Primary Key must
contain unique value and it must not contain null value. Usually Primary Key is used to
index the data inside the table.

Using PRIMARY KEY constraint at Table Level


CREATE table Student (s_id int PRIMARY KEY, Name varchar(60) NOT NULL, Age int);
The above command will creates a PRIMARY KEY on the s_id.
Using PRIMARY KEY constraint at Column Level
ALTER table Student ADD PRIMARY KEY (s_id);
The above command will creates a PRIMARY KEY on the s_id.

Foreign Key Constraint


FOREIGN KEY is used to relate two tables. FOREIGN KEY constraint is also used to
restrict actions that would destroy links between tables. To understand FOREIGN KEY, let's
see its use, with help of the below tables:
Customer_Detail Table

c_id Customer_Name address

101 Adam Noida

102 Alex Delhi

103 Stuart Rohtak

Order_Detail Table

Order_id Order_Name c_id

10 Order1 101

11 Order2 103

12 Order3 102
In Customer_Detail table, c_id is the primary key which is set as foreign key
in Order_Detail table. The value that is entered in c_id which is set as foreign key
in Order_Detail table must be present in Customer_Detail table where it is set as primary
key. This prevents invalid data to be inserted into c_id column of Order_Detail table.
If you try to insert any incorrect data, DBMS will return error and will not allow you to insert
the data.

Using FOREIGN KEY constraint at Table Level


CREATE table Order_Detail(
order_id int PRIMARY KEY,
order_name varchar(60) NOT NULL,
c_id int FOREIGN KEY REFERENCES Customer_Detail(c_id)
);
In this query, c_id in table Order_Detail is made as foriegn key, which is a reference
of c_id column in Customer_Detail table.

Using FOREIGN KEY constraint at Column Level


ALTER table Order_Detail ADD FOREIGN KEY (c_id) REFERENCES Customer_Detail(c_id);

Behaviour of Foriegn Key Column on Delete


There are two ways to maintin the integrity of data in Child table, when a particular record is
deleted in the main table. When two tables are connected with Foriegn key, and certain
data in the main table is deleted, for which a record exits in the child table, then we must
have some mechanism to save the integrity of data in the child table.
1. On Delete Cascade : This will remove the record from child table, if that value of
foriegn key is deleted from the main table.
2. On Delete Null : This will set all the values in that record of child table as NULL, for
which the value of foriegn key is deleted from the main table.
3. If we don't use any of the above, then we cannot delete data from the main table for
which data in child table exists. We will get an error if we try to do so.

ERROR : Record in child table exist

CHECK Constraint
CHECK constraint is used to restrict the value of a column between a range. It performs
check on the values, before storing them into the database. Its like condition checking
before saving data into a column.

Using CHECK constraint at Table Level


CREATE table Student(
s_id int NOT NULL CHECK(s_id > 0),
Name varchar(60) NOT NULL,
Age int
);
The above query will restrict the s_id value to be greater than zero.

Using CHECK constraint at Column Level


ALTER table Student ADD CHECK(s_id > 0);
COMMANDS

ALTER TABLE
ALTER TABLE table_name
ADD column_name datatype;

ALTER TABLE lets you add columns to a table in a database.

AND
SELECT column_name(s)
FROM table_name
WHERE column_1 = value_1
AND column_2 = value_2;

ANDis an operator that combines two conditions. Both conditions must be true for the
row to be included in the result set.

AS
SELECT column_name AS 'Alias'
FROM table_name;

AS is a keyword in SQL that allows you to rename a column or table using an alias.

AVG()
SELECT AVG(column_name)
FROM table_name;

AVG() is an aggregate function that returns the average value for a numeric column.

BETWEEN
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value_1 AND value_2;

The BETWEEN operator is used to filter the result set within a certain range. The values can
be numbers, text or dates.
CASE
SELECT column_name,
CASE
WHEN condition THEN 'Result_1'
WHEN condition THEN 'Result_2'
ELSE 'Result_3'
END
FROM table_name;

CASE statements are used to create different outputs (usually in the SELECT statement). It
is SQL's way of handling if-then logic.

COUNT()
SELECT COUNT(column_name)
FROM table_name;

is a function that takes the name of a column as an argument and counts the
COUNT()
number of rows where the column is not NULL.

CREATE TABLE
CREATE TABLE table_name (
column_1 datatype,
column_2 datatype,
column_3 datatype
);

CREATE TABLE creates a new table in the database. It allows you to specify the name of
the table and the name of each column in the table.

DELETE
DELETE FROM table_name
WHERE some_column = some_value;

DELETE statements are used to remove rows from a table.

GROUP BY
SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name;
GROUP BY is a clause in SQL that is only used with aggregate functions. It is used in
collaboration with the SELECT statement to arrange identical data into groups.

HAVING
SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name
HAVING COUNT(*) > value;

HAVING was added to SQL because the WHERE keyword could not be used with aggregate
functions.

INNER JOIN
SELECT column_name(s)
FROM table_1
JOIN table_2
ON table_1.column_name = table_2.column_name;

An inner join will combine rows from different tables if the join condition is true.

INSERT
INSERT INTO table_name (column_1, column_2, column_3)
VALUES (value_1, 'value_2', value_3);

INSERT statements are used to add a new row to a table.

IS NULL / IS NOT NULL


SELECT column_name(s)
FROM table_name
WHERE column_name IS NULL;

IS NULL and IS NOT NULL are operators used with the WHERE clause to test for empty
values.

LIKE
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

LIKEis a special operator used with the WHERE clause to search for a specific pattern in a
column.

LIMIT
SELECT column_name(s)
FROM table_name
LIMIT number;

LIMIT is a clause that lets you specify the maximum number of rows the result set will
have.

MAX()
SELECT MAX(column_name)
FROM table_name;

MAX() is a function that takes the name of a column as an argument and returns the
largest value in that column.

MIN()
SELECT MIN(column_name)
FROM table_name;

MIN() is a function that takes the name of a column as an argument and returns the
smallest value in that column.

OR
SELECT column_name
FROM table_name
WHERE column_name = value_1
OR column_name = value_2;

OR is an operator that filters the result set to only include rows where either condition is
true.

ORDER BY
SELECT column_name
FROM table_name
ORDER BY column_name ASC | DESC;

ORDER BY is a clause that indicates you want to sort the result set by a particular column
either alphabetically or numerically.

OUTER JOIN
SELECT column_name(s)
FROM table_1
LEFT JOIN table_2
ON table_1.column_name = table_2.column_name;

An outer join will combine rows from different tables even if the join condition is not
met. Every row in the left table is returned in the result set, and if the join condition is
not met, then NULL values are used to fill in the columns from the right table.

ROUND()
SELECT ROUND(column_name, integer)
FROM table_name;

ROUND() is a function that takes a column name and an integer as an argument. It rounds
the values in the column to the number of decimal places specified by the integer.

SELECT
SELECT column_name
FROM table_name;

SELECTstatements are used to fetch data from a database. Every query will begin with
SELECT.

SELECT DISTINCT
SELECT DISTINCT column_name
FROM table_name;

SELECT DISTINCT specifies that the statement is going to be a query that returns unique
values in the specified column(s).

SUM
SELECT SUM(column_name)
FROM table_name;

SUM() is a function that takes the name of a column as an argument and returns the sum
of all the values in that column.

UPDATE
UPDATE table_name
SET some_column = some_value
WHERE some_column = some_value;

UPDATE statements allow you to edit rows in a table.

WHERE
SELECT column_name(s)
FROM table_name
WHERE column_name operator value;

WHEREis a clause that indicates you want to filter the result set to include only rows
where the following condition is true.

WITH
WITH temporary_name AS (
SELECT *
FROM table_name)
SELECT *
FROM temporary_name
WHERE column_name operator value;

WITH clause lets you store the result of a query in a temporary table using an alias. You
can also define multiple temporary tables using a comma and with one instance of
the WITH keyword.

The WITH clause is also known as common table expression (CTE) and subquery
factoring.

You might also like