Anda di halaman 1dari 26

INTRODUCTION TO STRUCTURED QUERY LANGUAGE ( SQL ) Structured Query Language (SQL) is a language that provides an interface to relational database

systems. SQL was developed by IBM in the 1970s for use in System R, and is a de facto standard, as well as an ISO ( International Standards Organization ) and ANSI ( American National Standards Institute ) standard. SQL is often pronounced SEQUEL.

FEATURES OF SQL 1. SQL canbe used by a range of users, including those with little or no programming experience. 2. It is a non procedural language. 3. It reduces the amount of time required for creting and manipulating systems. 4. It is an English-like language. COMPONENTS OF SQL ( I ) DDL ( Data Definition Language ) : It is a set of SQL commands used to create, modify and delete database structures but not data. 1. CREATE A TABLE The CREATE TABLE command defines each column of the table uniquely. Each column has a minimum of three attributes , a name,a datatype and size. Syntax : CREATE TABLE <TableName> (<ColumnName1> <DataType>(<size>),<ColumnName2><DataType> (<size>)); Query : CREATE TABLE Persons ( P_Id number(5), LastName varchar2(255), FirstName varchar2(255), Address varchar2(255), City varchar2(255) ) Output : Table created.

For structure of the table Syntax : Desc <tablename>; Example : desc Persons; Output : Name P_Id LastName FirstName Address City 5 rows selected. 2. ALTER A TABLE Null? Type NUMBER(5) VARCHAR2(255) VARCHAR2(255) VARCHAR2(255) VARCHAR2(255)

Adding new attribute to Persons :

Syntax : ALTER TABLE <TableName> ADD (<NewColumnName> <DataType> (<size>), <NewColumnName> <DataType> (<size>),. ); Query : ALTER TABLE Persons ADD DateOfBirth date; Output : Table altered. Desc Persons; P_Id LastName 1 2 3 Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger DateOfBirth

3 rows selected.

Modify existing column :

Syntax : ALTER TABLE <TableName> MODIFY (<ColumnName> <NewDataType> (<Newsize>) ); Query : Alter Table Persons MODIFY(P_Id number(8)); Output : Table altered. desc Persons; Name P_Id LastName FirstName Address City DateOfBirth Null? Type NUMBER(8) VARCHAR2(255) VARCHAR2(255) VARCHAR2(255) VARCHAR2(255) DATE

6 rows selected.

Dropping a column :

Syntax : ALTER TABLE <TableName> DROP COLUMN <ColumnName>; Query : ALTER TABLE Persons DROP COLUMN DateOfBirth

Output : Table altered. desc Persons; Name P_Id LastName FirstName Address City 4 rows selected. Null? Type NUMBER(5) VARCHAR2(255) VARCHAR2(255) VARCHAR2(255) VARCHAR2(255)

( II ) DML ( Data Mnipulation Language ) : It is the area of SQL that allows changing data within the database. 1. Insert data in table When inserting a single row of data into the table, the insert operation: Creates a new row(empty) in the database. Loads the values passed into the column specified. Syntax : INSERT INTO <tablename> (<columnname1>, <columnname2>) VALUES (<expression1>, <expression2>); Example : Insert into Persons(P_Id, LastName,FirstName,Address,City) values (1,Hanson,ola, Timoteivn 10, Sandnes,12-jan-87); Output : 1 row created. Insert into Persons(P_Id, LastName,FirstName,Address,City) values (2,svendson,tove, Borgvn 23, Sandnes,13-mar-98); Output : 1 row created.

Insert into Persons(P_Id, LastName,FirstName,Address,City) values (3,Pettersen,kari,storgt 20, stavenger, 5-july-99);

Output : 1 row created. INSERT INTO Persons VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger'); 2. SELECT : Once data has been inserted into a table, the next most logical operation would be to view what has been inserted. Syntax:SELECT * FROM <TableName>; Example:SELECT * FROM Persons; Output:P_Id 1 2 3 4 LastName Hansen Svendson Pettersen Nilsen FirstName Ola Tove Kari Johan Address Timoteivn 10 Borgvn 23 Storgt 20 Bakken 2 City Sandnes Sandnes Stavanger Stavanger

4 rows selected. 3. UPDATE THE TABLE The Update command is used to change or modify data values in a table. Syntax : UPDATE <TableName> SET <ColumnName1> = <Expression1>, <ColumnName2> = <Expression2 > where <Condition>; Query : UPDATE Persons SET Address='Nissestien 67', City='Sandnes' WHERE LastName='Nilsen' AND FirstName='Johan';

Output : 1 row updated. SELECT * FROM PERSONS;

P_Id 1 2 3 4

LastName Hansen Svendson Pettersen Nilsen

FirstName Ola Tove Kari Johan

Address Timoteivn 10 Borgvn 23 Storgt 20 Nissestien 67

City Sandnes Sandnes Stavanger Sandnes

4. DELETE FROM TABLE Syntax : DELETE FROM <TableName>; Query : DELETE FROM PERSONS; Output : 4 rows deleted. ( III ) DCL ( Data Control Language ) : It is the component of SQL statement that control access to data and to the database. Commit : Saves work done

Rollback : Restore database to original since the last commit Grant/Revoke users : Grant or take back permissions to or from the oracle

QUERIES

1. LIST THE PERSONS LIVING IN CITY SANDNES

Query : SELECT * FROM Persons WHERE City='Sandnes' Output : P_Id 1 2 LastName Hansen Svendson 2 rows selected. FirstName Ola Tove Address Timoteivn 10 Borgvn 23 City Sandnes Sandnes

2. LIST THE PERSONS NAME AND THEIR ADDRESS Query : SELECT LASTNAME,FIRSTNAME,ADDRESS FROM PERSONS ;

Output : LastName Hansen Svendson Pettersen Nilsen FirstName Ola Tove Kari Johan Address Timoteivn 10 Borgvn 23 Storgt 20 Bakken 2

4 rows selected.

3. LIST THE NAME OF THE PERSON WITH P_ID =3. The AND operator allows creating an SQL statement based on two or more conditions being met. Query : SELECT FIRSTNAME,LASTNAME FROM PERSONS WHERE P_ID=3;

Output : P_Id 3 LastName Pettersen FirstName Kari

1 rows selected.

4. LIST THE NAME OF EMPLOYEES WHO ARE NOT MANAGERS The NOT operator displays only those records that do not satisfy the condition specified. Query : SELECT * FROM PERSONS WHERE NOT ( City = Sandnes); Output : P_Id 3 4 LastName Pettersen Nilsen 2 rows selected. FirstName Kari Johan Address Storgt 20 Bakken 2 City Stavanger Stavanger

5. List the persons with a last name alphabetically between "Hansen" and "Pettersen" from the table. Inorder to select data within a range of values, the BETWEEN operator is used. Query : SELECT * FROM Persons WHERE LastName BETWEEN 'Hansen' AND 'Pettersen' Output : P_Id 1 LastName Hansen FirstName Ola Address Timoteivn 10 City Sandnes

1 rows selected.

6. LIST THE DIFERENT CITY IN PERSONS TABLE The DISTINCT clause scans through the values of the column/s specified and displays only unique values from amongst them.

Syntax : SELECT DISTINCT * FROM <TableName>; Query : SELECT DISTINCT City FROM Persons Output : City Sandnes Stavanger 2 rows selected.

7. LIST ALL RECORDS OF PERSONS TABLE WHERE LASTNAME IN HANSEN AND PETTERSEN. The IN operator allows you to specify multiple values in a WHERE clause. Query : SELECT * FROM Persons WHERE LastName IN ('Hansen','Pettersen') Output :

P_Id 1 3

LastName Hansen Pettersen

FirstName Ola Kari

Address Timoteivn 10 Storgt 20

City Sandnes Stavanger

2 rows selected.

8. LIST THE NAME OF EMPLOYEES WHOSE NAME HAS I AS SECOND CHARACTER LIKE Predicate allows comparison of one string value with another string value, which is not identical.

Query : SELECT * FROM Persons WHERE City LIKE '%s' Output : P_Id 1 2 LastName Hansen Svendson FirstName Ola Tove Address Timoteivn 10 Borgvn 23 City Sandnes Sandnes

2 rows selected.

APPLY PRIMARY KEY CONSTRAINT Query : CREATE TABLE Persons ( P_Id int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ); Output : Name P_Id LastName FirstName Address City DateOfBirth 6 rows selected. Null? NOT NULL Type NUMBER(8) VARCHAR2(255) VARCHAR2(255) VARCHAR2(255) VARCHAR2(255) DATE

PRIMARY KEY CONSTRAINT DEFINED AT COLUMN LEVEL : Syntax : <ColumnName> <DataType> (<Size>) PRIMARY KEY;

CREATE TABLE DEPT ( DEPTNO NUMBER(5) PRIMARY KEY, DNAME VARCHAR(10)); DESC DEPT;

Name DEPTNO DNAME

Null? NOT NULL

Type NUMBER(5) VARCHAR2(10)

Insert into dept(deptno,dname) values(10,Sales); Output:1 row created. Insert into dept(deptno,dname) values(20,Purchase); Output:1 row created. Insert into dept(deptno,dname) values(30,Testing); Output:1 row created. Insert into dept(deptno,dname) values(40,HR); Output:1 row created.

PRIMARY KEY CONSTRAINT DEFINED AT TABLE LEVEL AND APPLY FOREIGN KEY CONSTRAINT : Syntax : PRIMARY KEY ( <ColumnName> , <ColumnName> );

A foreign key is a column ( or a group of columns ) whose values are derived from the primary key of some other table. The "Persons" table:

P_Id 1 2 3

LastName Hansen Svendson Pettersen

FirstName Ola Tove Kari

Address Timoteivn 10 Borgvn 23 Storgt 20

City Sandnes Sandnes Stavanger

The "Orders" table: O_Id 1 2 3 4 OrderNo 77895 44678 22456 24562 P_Id 3 3 2 1

Note that the "P_Id" column in the "Orders" table points to the "P_Id" column in the "Persons" table. The "P_Id" column in the "Persons" table is the PRIMARY KEY in the "Persons" table. The "P_Id" column in the "Orders" table is a FOREIGN KEY in the "Orders" table. The FOREIGN KEY constraint is used to prevent actions that would destroy link between tables. The FOREIGN KEY constraint also prevents that invalid data is inserted into the foreign key column, because it has to be one of the values contained in the table it points to. CREATE TABLE Orders ( O_Id number(5) NOT NULL, OrderNo number(5) NOT NULL, P_Id number(6), PRIMARY KEY (O_Id), CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) );

JOINS

Sometimes it is necessary to work with multiple tables as though they are a single entity. Then a single SQL sentence can manipulate data from all these tables. Joins are used to achieve this. TYPES OF JOINS : 1. EQUI JOIN OR INNER JOIN :-

It returns all rows from both tables where there is a match. Syntax : SELECT <ColumnName1>, <ColumnName2>, <ColumnNameN> from <TableName1>, <TableName2> WHERE <TableName1>.<ColumnName1> = <TableName2>.<ColumnName2> AND <Condition> ORDER BY <ColumnName1>, <ColumnName2>, <ColumnNameN> SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName Output : LastName Hansen Hansen Pettersen Pettersen FirstName Ola Ola Kari Kari OrderNo 22456 24562 77895 44678

2. OUTER JOIN :This type of join can be used in situations where it is desired to select all rows from the table on the left( or right or both ) regardless of whether the other table has values in common and ( usually) enter NULL where data is missing. OUTER JOIN is of three types : Right Join :It returns all rows from second table even if there are no matches in the first table. Syntax : SELECT <ColumnName1>, <ColumnName2>, <ColumnNameN> from <TableName1>, <TableName2> WHERE <TableName1>.<ColumnName1>( + ) = <TableName2>.<ColumnName2> AND <Condition> ORDER BY <ColumnName1>, <ColumnName2>, <ColumnNameN>

Query : SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons RIGHT JOIN Orders ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName

Output : LastName Hansen Hansen Pettersen Pettersen FirstName Ola Ola Kari Kari OrderNo 22456 24562 77895 44678 34764 5 rows selected. Left Join :It returns all rows from first table even if there are no matches in the second table. Syntax : SELECT <ColumnName1>, <ColumnName2>, <ColumnNameN> from <TableName1>, <TableName2> WHERE <TableName1>.<ColumnName1> = <TableName2>.<ColumnName2> ( + ) AND <Condition> ORDER BY <ColumnName1>, <ColumnName2>, <ColumnNameN>

Query : SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons LEFT JOIN Orders ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName Output : LastName Hansen Hansen Pettersen Pettersen FirstName Ola Ola Kari Kari OrderNo 22456 24562 77895 44678

Svendson 5 rows selected.

Tove

3. Complete or Full Outer Join :The FULL JOIN keyword return rows when there is a match in one of the tables. SQL FULL JOIN Syntax SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name Now we want to list all the persons and their orders, and all the orders with their persons. We use the following SELECT statement: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons FULL JOIN Orders ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName Output: LastName Hansen Hansen Pettersen Pettersen Svendson FirstName Ola Ola Kari Kari Tove 34764 OrderNo 22456 24562 77895 44678

VIEWS : To reduce redundant data to the minimum possible, Oracle allows the creation of an object called a view. View is stored only as a definition in Oracles system catalog. CREATION OF VIEW :

Syntax : CREATE VIEW<ViewName> AS SELECT <ColumnName1>, <ColumnName2> from <TableName> WHERE <ColumnName> = <Expression List>; GROUP BY <Grouping Criteria> HAVING <Predicate> Query : CREATE VIEW PVIEW AS SELECT P_ID,LASTNAME,FIRSTNAME,ADDRESS FROM PERSONS WHERE P_Id =3;

Output : View created. SELECTING A DATA SET FROM A VIEW : Syntax : SELECT <ColumnName1>, <ColumnName2> from <ViewName>; Query : SELECT * FROM PVIEW; Output : P_Id 3 LastName Pettersen FirstName Kari Address Storgt 20 City Stavanger

1 rows selected.

UPDATEABLE VIEWS : VIEWS on which manipulation can be done. Query : SQL> CREATE VIEW P1 AS SELECT P_ID,LASTNAME FROM PERSONS; Output : View created. Query : SELECT * FROM P1; Output :

P_Id 1 2 3 4

LastName Hansen Svendson Pettersen Nilsen

4 rows selected.

Query : INSERT INTO P1 VALUES ( 5, Michel ); Output : 1 row created.

Query : SELECT * FROM E1; Output : P_Id 1 2 3 4 5 LastName Hansen Svendson Pettersen Nilsen Michel

5 rows selected. Query : SELECT * FROM P1; Output : P_Id 1 2 3 4 LastName Hansen Svendson Pettersen Nilsen FirstName Ola Tove Kari Johan Address Timoteivn 10 Borgvn 23 Storgt 20 Bakken 2 City Sandnes Sandnes Stavanger Stavanger

Query : CREATE VIEW P2 AS SELECT LASTNAME,CITY FROM PERSONS; Output : View created. Query : SELECT * FROM P2; Output : LastName Hansen Svendson Pettersen Nilsen City Sandnes Sandnes Stavanger Stavanger

4 rows selected. Query : INSERT INTO P2 VALUES ( JOHN, Florida ); Output : Oracle will give message CAN NOT INSERT NULL INTO EMP

CREATION OF VIEW BY JOINING TWO TABLES : Syntax : CREATE VIEW<ViewName> AS SELECT <ColumnName1>, <ColumnName2> from <TableName1>, <TableName2> WHERE <TableName1>.<ColumnName> = <<TableName2>.<ColumnName>; Query : CREATE VIEW P3 AS SELECT PERSONS.P_ID, PERSONS.LASTNAME, PERSONS.FIRSTNAME, ORDER.O_ID, ORDER.ORDERNO. FROM PERSONS, ORDER WHERE PERSONS.P_ID = ORDER.P_ID; Output : View created. Query :

SELECT * FROM P3;

Output : P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari O_ID OrderNo. P_Id 1 2 3 77895 45973 98456 1 2 3

3 rows selected. DUAL TABLE : Dual is a small Oracle Table which consists of only one row and one column and contains the value x in column and dummy in row. ORACLE FUNCTIONS : They serve the purpose of manipulating data items and returning a result. TYPES OF FUNCTIONS : 1. Arithmetic functions :

a) ABS Returns absolute value of n.

Syntax : ABS(n) Query : SELECT ABS(-84)ABSOLUTE VALUE FROM DUAL; OUTPUT : ABSOLUTE VALUE 84
b) CEIL Returns the smallest integer value that is greater or equal to a

number.

Syntax : CEIL(n) Query : SELECT CEIL(68.1)CEIL FROM DUAL; OUTPUT : CEIL 69

c) CEIL Returns the larges integer value that is less than or equal to a

number.

Syntax : FLOOR(n) Query : SELECT FLOOR(68.9)FLOOR FROM DUAL; OUTPUT : FLOOR 68


d) MOD Returns the remainder of a first number divided by a second

number passed as a parameter. Syntax : MOD(m,n)

Query : SELECT MOD(3,2)MOD FROM DUAL; OUTPUT : MOD 1

e) POWER Returns m raised to the nth power.

Syntax : POWER(n) Query : SELECT POWER(2,3)POWER FROM DUAL; OUTPUT : POWER 8


f) SIGN Returns positive or negative.

Syntax : SIGN(n) Query : SELECT SIGN(-7)SIGN1, SIGN(4) SIGN2 FROM DUAL; OUTPUT : SIGN1 -1 1 SIGN2

g) SQRT Returns square root of n.

Syntax : SQRT(n) Query : SELECT SQRT(64)SQRT FROM DUAL; OUTPUT : SQRT 8

h) TRUNC Returns a number truncated to a certain number of decimal

places.

Syntax : TRUNC(number,[decimal_places]) Query : SELECT TRUNC(65.156,2)TRUNC1, TRUNC(65.162,2)TRUNC2 FROM DUAL; OUTPUT : TRUNC1 65.1 point. 0 TRUNC2

i) ROUND Returns n, rounded to m places to the right of a decimal

Syntax : ROUND(n[,m]) Query : SELECT ROUND(75.156,2)ROUND1, TRUNC(78.162,2)ROUND2 FROM DUAL; OUTPUT : ROUND1 7 5.16 100 ROUND2

2.

Character functions :

a) CHR Returns a character. Syntax : CHR(x) Query : SELECT CHR(65)CHR FROM DUAL; OUTPUT :

CHR A

b) CONCAT Concatenate or join two strings . Syntax : CONCAT(String1,String2) Query : SELECT CONCAT(John,Michel)CONCAT FROM DUAL; OUTPUT : CONCAT JohnMichel

c) INITCAP Returns a string with the first letter of each word in upper case. Syntax : INITCAP(char) Query : SELECT INITCAP(john)INITCAP FROM DUAL; OUTPUT : INITCAP John d) LOWER Returns char, with all letter lowercase. Syntax : LOWER(char) Query : SELECT LOWER(MICHEL)LOWER FROM DUAL; OUTPUT : LOWER Michel

e) UPPER Returns char, with all letters uppercase. Syntax : UPPER(char) Query : SELECT UPPER(michel)UPPER FROM DUAL; OUTPUT :

UPPER MICHEL

LPAD Returns char1, left-padded to length n with the sequence of characters specified in char2. If char2 is not specified, Oracle uses blank by default.
f)

Syntax : LPAD(char1,n[,char2]) Query : SELECT LPAD(Dennisnew,20,@)LPAD FROM DUAL; LPAD @@@@@@@@@@Dennisnews OUTPUT :

RPAD Returns char1, right-padded to length n with the sequence of characters specified in char2. If char2 is not specified, Oracle uses blank by default.
g)

Syntax : RPAD(char1,n[,char2]) Query : SELECT RPAD(dennisnews,20,@)RPAD FROM DUAL; OUTPUT : RPAD Dennisnews@@@@@@@@@@

LTRIM Returns characters from the left of char with initial characters removed upto first character not iin set. Syntax : LTRIM(char[,set])
h)

Query : SELECT LTRIM(dennis,d)LTRIM FROM DUAL; OUTPUT : LTRIM ennis

RTRIM Returns char with final characters removed after the last character not in the set. SET is optional, it defaults to spaces.
i)

Syntax : RTRIM(char[,set]) Query : SELECT RTRIM(dennis,s)RTRIM FROM DUAL; OUTPUT : RTRIM denni

SUBSTR Returns a portion of characters, beginning at character m and going upto character n. If n is omitted, the result returned is upto the last character in the string. The firt position of char is 1.
j)

Syntax : SUBSTR(string,start_position,[<length>]) Query : SELECT SUBSTR(POSITION,3,4)SUBSTRING FROM DUAL; OUTPUT : SUBSTRING SITI

l) REPLACE Syntax : REPLACE(<string1>,<string_to_replace>,<replacement_string>) Query : SELECT REPLACE(ram and sham,am,aam) REPLACE FROM DUAL; OUTPUT : REPLACE raam and shaam

3. General functions :
a) GREATEST Returns the greatest value in a list of expressions.

Syntax : GREATEST (exp1,exp2,,expn) Query : SELECT GREATEST(4,25,17) NUM, OUTPUT : NUM 25


b) LEAST Returns the least value in a list of expressions.

Syntax : LEAST (exp1,exp2,,expn) Query : SELECT LEAST(1,5,20) NUM,

NUM 1

OUTPUT :

3.

Date functions :

a) SYSDATE Gives system date. Query :SELECT SYSDATE FROM DUAL; OUTPUT : SYSDATE 11-APR-10

b) ADD_MONTHS Returns date after adding the number of months specified in the function. Syntax : ADD_MONTHS(d,n) Query :SELECT ADD_MONTHS ( 05-AUG-10,2)ADD_MONTHS FROM DUAL; OUTPUT : ADD_MONTHS 05-OCT-10 c) MONTHS_BETWEEN Returns of months between d1 and d2. Syntax : MONTHS_BETWEEN(d1,d2) Query :SELECT MONTHS_BETWEEN ( 24-JULY-09,02-MAR10)MONTHE_BETWEEN FROM DUAL; OUTPUT : MONTHS_BETWE EN -7.2903226 d)LAST_DAY Returns the last date of the month specified with the function. Syntax : LAST_DAY(d) Query :SELECT SYSDATE,LAST_DAY(SYSDATE)LASTDAYFROM DUAL;

OUTPUT :

SYSDATE 11-APR-10

LASTDAY 30-APR-10

Anda mungkin juga menyukai