Sql

Post on 20-Jan-2015

1,788 views 0 download

Tags:

description

 

transcript

By : Karunakaran

SQL stands for Structured Query LanguageSQL lets you access and manipulate databasesIt is the most commonly used relational database

language today.

SQL can execute queries against a databaseSQL can retrieve data from a databaseSQL can insert records in a databaseSQL can update records in a databaseSQL can delete records from a databaseSQL can create new databasesSQL can create new tables in a databaseSQL can create stored procedures in a databaseSQL can create views in a databaseSQL can set permissions on tables, procedures, and

views.

A database most often contains one or more tables. Each table is identified by a name (e.g. “employee" or "Orders").

To begin, you must first CREATE a database using the following SQL statement:

CREATE DATABASE database_nameCREATE DATABASE database_nameeg: create database employee;create database employee;

Depending on the version of SQL being used the following statement is needed to begin using the database:

USE database_nameUSE database_nameeg: use employee;use employee;

mysql> create table employee1 -> (emp_id int, -> emp_name varchar(25), -> emp_salary int);

emp_id emp_name emp_salary

int varchar(25) int

SQL (Structured Query Language) is a syntax for executing queries. But the SQL language also includes a syntax to update, insert, and delete records.

These query SQL and update commands together form the Data Manipulation Language (DML) part of SQL:

SELECT - extracts data from a database table UPDATE - updates data in a database table DELETE - deletes data from a database table INSERT INTO - inserts new data into a database

table

The Data Definition Language (DDL) part of SQL permits database tables to be created or deleted. We can also define indexes (keys), specify links between tables, and impose constraints between database tables.

The most important DDL statements in SQL are: 

CREATE TABLE - creates a new database table ALTER TABLE - alters (changes) a database table DROP TABLE - deletes a database table

The SELECT statement is used to select data from a table. The tabular result is stored in a result table (called the result-set).

Syntax:

SELECT * FROM table_name;SELECT * FROM table_name;

(The * Operator asks for every column in the (The * Operator asks for every column in the table)table)

(Semicolon is the standard way to separate each (Semicolon is the standard way to separate each SQLstatement in database systems that allow SQLstatement in database systems that allow more than one SQL statement to be executed in more than one SQL statement to be executed in the same call to the server.)the same call to the server.)

mysql> select * from employee1;

emp_id emp_name emp_salary

1 komal 10000

2 kavita 20000

3 komalpreet 30000

The INSERT INTO statement is used to insert new rows into a table.

Syntax: INSERT INTO table_name VALUES (value1, INSERT INTO table_name VALUES (value1, value2,....) value2,....)

For example:mysql> insert into employee1

-> values(1,‘komal',10000);

emp_id emp_name emp_salary

1 komal 10000

The UPDATE statement is used to modify the data in a table.

Syntax:UPDATE table_nameUPDATE table_nameSET column_name = new_valueSET column_name = new_valueWHERE column_name = some_value WHERE column_name = some_value

mysql> update employee1

-> set emp_name=‘hello’

-> where emp_id=3;

emp_id emp_name emp_salary

1 Komal 10000

2 Kavita 20000

3 hello 30000

The DELETE statement is used to delete rows in a table.

Syntax:

DELETE FROM table_nameDELETE FROM table_nameWHERE column_name = some_value WHERE column_name = some_value

mysql> delete from employee1

-> where emp_id=2 and emp_name=‘kavita';

emp_id emp_name emp_salary

1 komal 10000

3 hello 30000

The ALTER TABLE statement is used to add, delete, or modify columns in an existing table.

Syntax:

ALTER TABLE table_nameALTER TABLE table_nameADD column_name datatypeADD column_name datatype

Eg: mysql> alter table employee1

-> add dateofbirth date;

emp_id emp_name emp_salary Dateof birth

1 Savita 10000

2 Kavita 20000

3 hello 30000

The DROP INDEX statement is used to delete an index in a table.

Syntax: DROP TABLE table_nameDROP TABLE table_name

Eg: drop table employee1;drop table employee1;

The SELECT INTO statement selects data from one table and inserts it into a different table.

The SELECT INTO statement is most often used to create backup copies of tables.

Syntax:

INSERT INTO NEW_TABLEINSERT INTO NEW_TABLESELECT* FROM OLD_TABLESELECT* FROM OLD_TABLE

E.g. mysql>select* from person;

create table person10 -> (address varchar(30), -> city varchar(10), -> state varchar(20));

p_id lastname firstname

1 Ali Raj

2 Kumar Hansen

3 Peterson Ola

mysql> insert into person10 -> select * from person;

mysql> select * from person10;

Address City State

1 Ali Raj

2 Kumar Hansen

3 Peterson Ola

SQL has many built-in functions for performing calculations on data.

SQL Aggregate Functions:SQL aggregate functions return a single value,

calculated from values in a column.Useful aggregate functions: AVG() - Returns the average value COUNT() - Returns the number of rows FIRST() - Returns the first value LAST() - Returns the last value MAX() - Returns the largest value MIN() - Returns the smallest value SUM() - Returns the sum

SQL Scalar functionsSQL scalar functions return a single value, based

on the input value.

Useful scalar functions: UCASE() - Converts a field to upper case LCASE() - Converts a field to lower case MID() - Extract characters from a text field LEN() - Returns the length of a text field ROUND() - Rounds a numeric field to the number

of decimals specified NOW() - Returns the current system date and

time FORMAT() - Formats how a field is to be displayed

emp_id emp_name emp_salary

1 Savita 10000

2 Kavita 20000

3 Komal 30000

1) SELECT AVG(column name) FROM table_nameSELECT AVG(column name) FROM table_name

select avg (emp salary) as order average from employee1;

2) SELECT COUNT(*) FROM table_nameSELECT COUNT(*) FROM table_name

select count(emp_name) as emp_namesavita from employee1 where emp_name='savita';

Order Average

20000.0000

emp_namesavita

1

3) SELECT FIRST(column_name) FROM table_nameSELECT FIRST(column_name) FROM table_name select emp_name from employee1 order by emp id limit 1;

4) SELECT LAST(column_name) FROM table_nameSELECT LAST(column_name) FROM table_name select emp_name from employee1 order by emp id desc limit 2;

emp_name

Savita

emp_name

Komal

Kavita

5) SELECT MAX(column_name) FROM table_nameSELECT MAX(column_name) FROM table_nameEg: select max(emp_salary) from employee1;

Ouput: 30000

6) SELECT MIN(column_name) FROM table_nameSELECT MIN(column_name) FROM table_nameEg: select min(emp_salary) from employee1;

Output: 10000

7) SELECT SUM(column_name) FROM table_nameSELECT SUM(column_name) FROM table_nameEg: select sum(emp_salary) from employee1;

Output: 60000

8) SELECT UCASE(column_name) FROM table_nameSELECT UCASE(column_name) FROM table_name Eg: select ucase(emp_name) from employee1;

Output: SAVITA KAVITA KOMAL

9) SELECT LCASE(column_name) FROM table_nameSELECT LCASE(column_name) FROM table_nameEg: select lcase (emp_name) from employee1;

Output: savita kavita komal

SQL joins are used to query data from two or more tables, based on a relationship between certain columns in these tables.

Different SQL JOINs• JOIN: Return rows when there is at least one

match in both tables• LEFT JOIN: Return all rows from the left table,

even if there are no matches in the right table• RIGHT JOIN: Return all rows from the right table,

even if there are no matches in the left table• FULL JOIN: Return rows when there is a match in

one of the tables

1) JoinSELECT column_name(s)SELECT column_name(s)FROM table_name1FROM table_name1INNER JOIN table_name2INNER JOIN table_name2ON table_name1.column_name=table_name2.column_nameON table_name1.column_name=table_name2.column_name

Eg: The "Persons" table:P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger

The "Orders" table:O_Id OrderNo P_Id1 77895 32 44678 33 22456 14 24562 15 34764 15

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsINNER JOIN OrdersON Persons.P_Id=Orders.P_Id;

LastName FirstName OrderNoHansen Ola 22456Hansen Ola 24562Pettersen Kari 77895Pettersen Kari 44678

2) Left joinSELECT column_name(s)SELECT column_name(s)FROM table_name1FROM table_name1LEFT JOIN table_name2LEFT JOIN table_name2ON table_name1.column_name=table_name2.column_nameON table_name1.column_name=table_name2.column_name

eg: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsLEFT JOIN OrdersON Persons.P_Id=Orders.P_Id

LastName FirstName OrderNoHansen Ola 22456Hansen Ola 24562Pettersen Kari 77895Pettersen Kari 44678Svendson Tove

3) Right joinSELECT column_name(s)SELECT column_name(s)FROM table_name1FROM table_name1RIGHT JOIN table_name2RIGHT JOIN table_name2ON table_name1.column_name=table_name2.column_nameON table_name1.column_name=table_name2.column_name

eg: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsRIGHT JOIN OrdersON Persons.P_Id=Orders.P_Id

LastName FirstName OrderNoHansen Ola 22456Hansen Ola 24562Pettersen Kari 77895Pettersen Kari 44678

34764

4) Full joinSELECT column_name(s)SELECT column_name(s)FROM table_name1FROM table_name1FULL JOIN table_name2FULL JOIN table_name2ON table_name1.column_name=table_name2.column_nameON table_name1.column_name=table_name2.column_name

eg: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsFULL JOIN OrdersON Persons.P_Id=Orders.P_Id

LastName FirstName OrderNoHansen Ola 22456Hansen Ola 24562Pettersen Kari 77895Pettersen Kari 44678Svendson Tove

34764