SQL TRUNCATE

tutorial and example
tutorial and example

This command deletes all records from table. Truncate is a DDL command.

Syntax:

TRUNCATE table table_name;

Example:

Truncate table teacher;

ORDER BY

The ORDER BY clause arranges the table or column in ascending or descending orders. By default, it is ascending order. ‘ASC’ used to indicate ascending order and ‘DESC’ used to indicate descending order.  To appear the resulting records randomly Rand() method used in MySQL.

Example: Order By in Ascending Order

select *

from teacher

order by teacher_name ;

or

select *

from teacher

order by teacher_name asc ;

Here, output is the same.

Example:

select *

from teacher

order by teacher_name desc;

Example:

Select Teacher_id

from teacher

order by rand();

 

LIMIT

Limit keyword is used to retrieve finite number of records. Limit can be used with one parameter or two parameters.

  • Limit [one parameter]

This parameter decides number of records to display.

  • Limit [first parameter, second parameter]

Here, first parameter indicates number of records to skip and second parameter indicates the number of records to display.

Example:

Select *

from teacher

limit 5;

Example:

Select *

from teacher

limit 2,3;

 

GROUP BY

The GROUP BY clause used to club together rows who have same values. Mainly GROUP BY clause used with aggregate functions to produce a summary reports from database.

select dept_name, count(*)

from teacher

group by dept_name;

HAVING CLAUSE

The having clause is used in conjunction with aggregate functions instead of where clause. It does not mean where clause and aggregate functions are not possible in same query. We can use where clause and aggregate function in same query.

Note: Having clause applies on group of records, on the other hand where clause is applied on each single record.

Where and having clause can be used in same query.

Syntax:

Select function_name(column_name)

From table_name

Group by (column_name)

Having (condition)

Example:

select count(teacher_id)

from teacher

group by dept_name

having dept_name=’it’;

Select dept_name, count(teacher_id)

from teacher

group by dept_name

having count(teacher_id)>2;

SQL JOINS

Department Table

Teacher Table

Example: Write a query to display department name with their head, and how many teachers are working in respective dept.

select department.dept_name,dept_head,count(teacher_name)

from department join teacher

on department.dept_name=teacher.dept_name

group by(dept_name);

TABLE A and TABLE B

JOIN

Join returns the match values from both table with respective of ON condition.

Select *

from A JOIN B

ON A.no=B.no;

RIGHT JOIN

SQL Right Join returns all the records from right table and matched values also. If there is no matched values in other table, it will return null.

Select *

From A  RIGHT JOIN B

ON A.no=B.no;

LEFT JOIN

SQL left join returns all the records from left table and matched values. If there is no matched values in other table, it will return null.

Select *

from A LEFT JOIN B

ON A.no=B.no;

VIEW

View is same as a table in a database. Table is a physical entity while view is not. View is a virtual table based on result set of SQL query.

User can create view by writing SQL queries using one or more table which means, view can contain columns/field/attributes from different tables.

Syntax:
create view view_name as

Select column1,column2,….

From table_name

Where condition;

 

Example:

Create view view_student as

Select student_id,student_name,dept_name

From student

Where student_id<10;

select *

from view_student;

Following output screen shows that a user can perform SQL functions on view when data present in view is from single table. It is also same in case of WHERE and JOIN.

# REPLACE VIEW

In a replace view, user can change view name or contents of view by changing query inside view.

Syntax:

Create or Replace view view_name as

Select column1,column2,……

From student

Where condition;

Example:

Create or Replace view view_student as

Select student_id,student_name,dept_name,classyear

From student

Where student_id between 15 and 35;

# DROP VIEW

User can drop view using DROP VIEW command.

Syntax:

Drop view

view_name;

Example:

Drop view

view_student;

 

NESTED QUERY

Query within another query called nested query. User can refer them outer query and inner query. Inner query named as subquery. Subquery can results in a single row output or multiple row output.  User can put subquery in front of select or where clause.

Syntax:

Select columns

From table_name

Where condition In( select column_name

From table_name

Where condition);

Select column_name =(select column_name

From table_name

Where condition),columns

From table_name

Where condition;

Example:

Q1 Display teacher names from ‘IT’ department whose salary is greater than average salary of ‘IT’ dept.

Select teacher_name

From teacher

Where salary>(select avg(salary)

From teacher where dept_name=’IT’);

SQL SEQUENCE

In MySQL, AUTO_INCREMENT keyword is used to generate a sequence. It generates sequence of numeric values which is used to identify each record uniquely. When this is applied on column, it increments column’s value by 1 while inserting a new record into table.

Auto_increment field should be a key.

Syntax:

Create table table_name

(column1 data type AUTO_INCREMENT,

column2 data type,…,

column1 Primary key);

Example:

create table samples

(sample_id int auto_increment primary key,

sample_name varchar(20),

quntity int,price float);

Apply AUTO_INCREMENT after table creation

Syntax:

Alter table table_name

modify column

colmn_name data type primary key auto_increment;

 Example:

alter table student

modify column

student_id int auto_increment ;

INDEX

User can create index. Data is retrieved very fast from database with the help of index.

User is not able to see index. Index is used only in searching or querying purpose.

Syntax

Create Index index_name

On table_name (column_name);

Example:

create index stud_index

on student (student_name);

DROP INDEX

Syntax:

Alter table table_name

Drop index index_name;

Example:

alter table student

drop index stud_index;

Examples

Q1 Find out highest salary from the teacher table on the teacher_id basis.

Ans: select teacher_id from teacher order by teacher_id desc limit 1;// how many record to display

or

select max(teacher_id) from teacher;

Q2 Find out second highest salary from the teacher table on the teacher_id basis.

Ans: select teacher_id from teacher order by teacher_id desc limit 1,1; // skip 1 record,display 1 record

Q3 Find out the third highest salary from the teacher table on the teacher_id basis.

Ans: select teacher_id from teacher order by teacher_id desc limit 2,1;

Q3 Find out the nth highest salary from the teacher table on the teacher_id basis.

Ans: select teacher_id from teacher order by teacher_id desc limit n-1,1;