0% found this document useful (0 votes)
57 views

Basics of SQL

Basics of SQL

Uploaded by

Nethala Swaroop
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views

Basics of SQL

Basics of SQL

Uploaded by

Nethala Swaroop
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

BASICS OF SQL

1) DATABASE: A Database is a collection of data, typically describing the


activities of one or more related organizations.
A Database can be defined as an ordered collection of related data elements
intended to meet the information needs of an organization and designed to be shared
by multiple users.
The following are main examples of database applications:
Computerized library systems
Automated teller machines
Flight reservation systems
Computerized parts inventory systems

Collection of related and integrated files is known as database.


Collection of related records is known as file.
Collection of related fields is known as record.
Group of characters is known as field.
Character is basic building block of information, represented by a byte.

2) DBMS: DBMS A database management system is the software system that


allows users to define, create and maintain a database and provides controlled access
to the data.
A Database Management System (DBMS) is basically a collection of
programs that enables users to store, modify, and extract information from a database
as per the requirements. DBMS is an intermediate layer between programs and the
data. Programs access the DBMS, which then accesses the data. There are different
types of DBMS ranging from small systems that run on personal computers to huge
systems that run on mainframes.
A database management system is a piece of software that provides services for
accessing a database, while maintaining all the required features of the data.
Commercially available Database management systems in the market are dbase,
FoxPro, IMS and Oracle, MySQL, SQL Servers and DB2 etc.

These systems allow users to create update, and extract information from their
databases.
Compared to a manual filing system, the biggest advantages to a computerized
database system are speed, accuracy, and' accessibility.

WHO MAKES THIS DATABASE SOFTWARE?


There are a lot of database software manufacturers out there and a wide range of prices,
sizes, speeds and functionalities.
At the lower end of the scale are personal database software products like
Microsoft Access, which is designed to be used by individuals or small companies
relatively little data. User friendliness and ease of use are the priority rather than
speed and scalability (in other words, it works well when you have 100 records but
not when you have 100,000).
At the higher end are full-fledged enterprise solutions, such as Oracle Enterprise
Edition. These database software products can handle millions of data entries and
are fast and efficient. They have many optimization and performance tools and
generally require a Database Administrator (DBA) to look after them. Products in
this range can also be very expensive.
In the middle are products like Microsoft SQL Server, which is a logical upgrade
from Microsoft Access for Windows users. There are also several very good free
database software products, such as MySQL and PostgreSQL. These are lacking on
the user interface side, but can certainly compete on speed and scalability.

CHARACTERISTICS OF THE DATA IN THE DATABASE MANAGEMENT


SYSTEM
1. Sharing of the data takes place amongst the different type of the users and the
applications.
2. Data exists permanently.
3. Data must be very much correct in the nature and should also be in accordance
with the real world entity that they represent.
4. Data can live beyond the scope of the process that has created it.
5. Data is not at all repeated.
6. Changes that are made in the schema at one level should not at all affect the other
levels.

ADVANTAGES OF THE DATABASE MANAGEMENT SYSTEM:


1. Helps in reducing the complex nature of the systems environment due to the
central control or the management of the data, access, utilization and the security.
2. Reduces the data redundancy and also the inconsistency as the same data elements
are not at all repeated.
3. Also promotes the integrity of the data throughout the system or an organization.
4. Provides for the central control of the data creation and also for the definition.
5. Reduces or completely finishes the confusion that creeps in to the data.
6. Reduces the costs relating the program development and the maintenance.
7. Separates the logical view and the physical arrangement.
8. Reduces the program data dependence.
9. Permits the ad hoc queries.
10.Provides flexibility in the information systems.
11.Increases access and availability of the information.

3) RDBMS: It is a DBMS that is based on Relational model that stores data in


tabular form. SQL Server, Sybase, Oracle, MySQL, IBM DB2, MS Access, etc.
A DBMS that is based on relational model is called as RDBMS. Relation model is
most successful mode of all three models. Designed by E.F. Codd, relational model is
based on the theory of sets and relations of mathematics.
Relational model represents data in the form a table. A table is a two
dimensional array containing rows and columns. Each row contains data related to an
entity such as a student. Each column contains the data related to a single attribute of
the entity such as student name.

One of the reasons behind the success of relational model is its simplicity. It is easy to
understand the data and easy to manipulate.
Another important advantage with relational model, compared with remaining two
models is, it doesnt bind data with relationship between data item. Instead it allows
you to have dynamic relationship between entities using the values of the columns.
Almost all Database systems that are sold in the market, now- a-days, have either
complete or partial implementation of relational model.

Figure 1 shows how data is represented in relational model and what are the terms
used to refer to various components of a table. The following are the terms used in
relational model.
Table name
STUDENTS

Rollno

Name

Column name

Phone

s1

Louis Figo

454333

s2

Raul

656675

s3

Roberto Carlos

546782

s4

Guti

567345

Tuple / Row

Table / Relation

Attribute / Column

Figure 1: A table in relational model.

Tuple / Row: A single row in the table is called as tuple. Each row represents the data
of a single entity.
Attribute / Column: A column stores an attribute of the entity. For example, if details
of students are stored then student name is an attribute; course is another attribute and
so on.
Column Name: Each column in the table is given a name. This name is used to refer
to value in the column.
Table Name: Each table is given a name. This is used to refer to the table. The name
depicts the content of the table.

STRUCTURED QUERY LANGUAGE (SQL)

Almost all relational database management systems use SQL


(Structured Query Language) for data manipulation and retrieval. SQL is the standard
language for relational database systems. SQL is a non-procedural language, where

you need to concentrate on what you want, not on how you get it. Put it in other way,
you need not be concerned with procedural details.
SQL Commands are divided into four categories, depending upon what they do.
DDL (Data Definition Language)
DML (Data Manipulation Language)
DCL (Data Control Language)
Query (Retrieving data)

DDL commands are used to define the data. For example, CREATE TABLE.
DML commands such as, INSERT and DELETE are used to manipulate data.
DCL commands are used to control access to data. For example, GRANT.
Query is used to retrieve data using SELECT.
DML and Query are also collectively called as DML. And DDL and DCL are
called as DDL.

ORACLE

Oracle Database (commonly referred to as Oracle RDBMS or


simply as Oracle) is an object-relational database management system produced and
marketed by Oracle Corporation.
Larry Ellison and his two friends and former co-workers, Bob Miner and Ed Oates,
started a consultancy called Software Development Laboratories (SDL) in 1977. SDL
developed the original version of the Oracle software. The name Oracle comes from
the code-name of a CIA-funded project Ellison had worked on while previously
employed by Ampex.
Username & Password
Every user who wants to access oracle database must have an account in the database.
These accounts are created by DBA. Each account is associated with username and
password.
Oracle comes with a set of predefined accounts. The following are the usernames and
passwords of these accounts.
Username

Password

system

manager

sys

change_on_install

Scott

tiger

Demo

demo

Datatypes
Each column of the table contains the datatype and maximum length, if it is length is
applicable. Datatype of the column specifies what type of data can be stored in the
column.

The datatype VARCHAR2 is to store strings that may have different number of
characters, NUMBER is used to store numbers. The maximum length, which is given
in parentheses after the datatype, specifies how many characters (or digits) the column

can store at the most. For example, column VARCHAR2 (20) would mean it can store
up to 20 characters.

Table-1 lists out datatypes available in Oracle8i along with what type of data can be
stored and maximum length allowed.

DATATYPE

DESCRIPTION

VARCHAR2( len)

Can store up to len number of characters. Each character


would occupy one byte. Maximum width is 4000

VARCHAR(len)

characters.
Same as VARCHAR2. But use VARCHAR2 as Oracle

CHAR(len)

might change the usage of VARCHAR in future releases.


Fixed length character data. If len is given then it can store
up to len number of characters. Default width is 1. String is
padded on the right with spaces until string is of len size.

NUMBER

Maximum width is 2000.


Can store numbers up to 40 digits plus decimal point and

NUMBER (p ,s)

sign.
P represents the maximum significant digits allowed. S is

DATE

the number of digits on the right of the decimal point.


Can store dates in the range 1-1-4712 B.C to 31-12-4712
AD.
Table 1: Oracle Data types.

Displaying table definition using DESCRIBE


You can display the structure of a table using SQL*PLUS command DESCRIBE. It
displays then name, datatype and whether the column can store null value for each
column of the table.
The following is the syntax of DESCRIBE command.
DESC[RIBE] objectname
Displays the column definitions for the specified object. The object may be a table,
view, synonym, function or procedure.

To display the structure of COURSES table, enter:

SQL> DESC COURSES


Name

Null? Type

---------------------------------------------- -------- ---------CCODE

NOT NULL VARCHAR2(5)

NAME

VARCHAR2(30)

DURATION
FEE
PREREQUISITE

NUMBER(3)
NUMBER(5)
VARCHAR2(100)

DESCRIBE is an SQL*Plus command and can be abbreviated to DESC.

Inserting rows into a table


Now, let us see how to insert rows into COURSES table. SQL command INSERT is used to insert new row
into the table.

While inserting rows, you may enter value for each column of the table or selected columns.

The following command inserts a row into COURSES table.

insert into courses


values('ora','Oracle database',25,4500,'Knowledge of Windows');

Note: After inserting the required row, issues COMMIT command to make sure the changes are made
permanent. We will discuss more about COMMIT command later in this book but for the time being it is
sufficient to know that COMMIT command will make changes permanent. Without COMMIT, rows that are
inserted might be lost if there is any power failure.

During insertion, character values are enclosed in single quotes. Unless otherwise specified we have to
supply a value for each column of the table. If the value of any column is not known or available then you
can give NULL as the value of the column.
For example, the following insert will insert a new row with null value for PREREQUISITE column.
insert into courses
values('c','C Programming',25,3000,null);

Note: INSERT command can insert only one row at a time. For multiple row, INSERT command must be
issued for multiple times.

DATE type values must be in the format DD-MON-YY or DD-MON-YYYY, where MON is the first three letters
of the month (Jan, Feb). If only two digits are given for year then current century is used. For example, if
you give 99 for year, Oracle will take it as 2099 as the current century is 2000.
remember this and give four digits if required.

The following is the complete syntax for INSERT command.

INSERT INTO tablename [(columns list)]


{VALUES (value-1,...) |

subquery }

We will see how to insert row into a table using a subquery later in this book.

So it is important to

Inserting a row with selected columns


It is possible to insert a new row by giving values only for a few columns instead of giving values for all the
available columns.

The following INSERT command will insert a new row only two values.

insert into courses(ccode,name)


values ('odba','Oracle Database Administration');

The above command will create a new row in COURSES table with values for only two columns CCODE
and NAME. The remaining columns will take NULL value or the default value, if the column is associated
with default value. We will discuss more about default value in the next chapter.

NULL value
Null value means a value that is not available or not known. When a columns value is not known then we
store NULL value into the column. NULL value is neither 0 nor blank nor any other known value. We have
already seen how to store null value into a column and when Oracle automatically stores null value into a
column. We will discuss more about how to process null value later in this chapter.

Selecting rows from a table


Let us see how to retrieve data of a table. SELECT command of SQL is used to retrieve data from one or
more tables. It implements operators of relational algebra such as projection, and selection.

The following is the syntax of SELECT command. The syntax given here is incomplete. For complete
syntax, please refer to online documentation.

SELECT [DISTINCT | ALL]


{* | table.* | expr }
[ {table}.*| expr }
FROM

[alias ]
[alias ]

] ...

[schema.]object

[, [schema.]object ] ...
[WHERE condition]
[ORDER BY {expr|position} [ASC | DESC]
[, {expr|position} [ASC | DESC]] ...]

schema is the name of the user whose table is being accessed. Schema prefix is not required if the table is
in the current account. Schema prefix is required while we are accessing a table of some other account
and not ours.
The following is an example of a basic SELECT command.

select

* from courses;

CCODE NAME

DURATION

FEE PREREQUISITE

----- -------------------- --------- --------- ------------------------ora

Oracle database

25

4500 Windows

vbnet VB.NET

30

5500 Windows and programming

C programming

20

3500 Computer Awareness

asp

ASP.NET

25

5000 Internet and programming

java

Java Language

25

4500 C language

xml

XML Programming

15

4000 HTML,Scripting, ASP/JSP

The simplest SELECT command contains the following:

Columns to be displayed. If * is given, all columns are selected.


The name of the table from where rows are to be retrieved.

Projection
Projection is the operation where we select only a few columns out of the available columns. The following
is an example of projection.
select name,fee from courses;
NAME

FEE

-------------------- --------Oracle database

4500

VB.NET

5500

C programming

3500

ASP.NET

5000

Java Language

4500

XML Programming

4000

Using expressions in SELECT command


It is also possible to include expressions in the list of columns. For example, the following SELECT will
display discount to be given for each course.
select name,fee, fee * 0.15 from courses;
NAME

FEE

FEE*0.15

-------------------- --------- --------Oracle database

4500

675

VB.NET

5500

825

C programming

3500

525

ASP.NET

5000

750

Java Language

4500

675

XML Programming

4000

600

Column Alias
The column heading of an expression will be the expression itself. However, as it may not
be meaningful to have expression as the result of column heading, we can give an alias to
the column so that alias is displayed as the column heading.
The following example will use alias DISCOUNT for the expression FEE * 0.15.
select name, fee, fee * 0.15 DISCOUNT from courses
NAME

FEE

DISCOUNT

-------------------- --------- --------Oracle database

4500

675

VB.NET

5500

825

C programming

3500

525

ASP.NET

5000

750

Java Language

4500

675

XML Programming

4000

600

The following are the arithmetic operators that can be used in expressions.

Operator
+
*
/

Description
Add
Subtract
Multiply
Divide

ORDER BY clause
It is possible to display the rows of a table in the required order using ORDER BY clause. It is used to sort
rows on the given column(s) and in the given order at the time of retrieving rows. Remember, sorting
takes place on the row that are retrieved and in no way affects the rows in the table. That means the order
of the rows will remain unchanged.

Note: ORDER BY must always be the last of all clauses used in the SELECT command.

The following SELECT command displays the rows after sorting rows on course fee.

select name, fee from

NAME

courses order by fee;

FEE

-------------------- --------C programming

3500

XML Programming

4000

Oracle database

4500

Java Language

4500

ASP.NET

5000

VB.NET

5500

Note: Null values are placed at the end in ascending order and at the beginning in descending order.

The default order for sorting is ascending. Use option DESC to sort in the descending
order. It is also possible to sort on more than one column.

To sort rows of COURSES table in the ascending order of DURATION and descending order of FEE, enter:

select
order by

name, duration, fee from courses


duration , fee desc;

NAME

DURATION

FEE

-------------------- --------- --------XML Programming

15

4000

C programming

20

3500

ASP.NET

25

5000

Oracle database

25

4500

Java Language

25

4500

VB.NET

30

5500

First, all rows are sorted in the ascending order of DURATION column. Then the rows that have same value
in DURATION column will be further sorted in the descending order of FEE column.

Using column position


Instead of giving the name of the column, you can also give the position of the column
on which you want to sort rows.

For example, the following SELECT sorts rows based on discount to be given to each
course.

select

name, fee, fee * 0.15

from courses
order by 3;
NAME

FEE

FEE*0.15

-------------------- --------- --------C programming

3500

525

XML Programming

4000

600

Oracle database

4500

675

Java Language

4500

675

ASP.NET

5000

750

VB.NET

5500

825

Note: Column position refers to position of the column in the selected columns and not the position of the
column in the table.

The above command uses column position in ORDER BY clause. Alternatively you can use column alias in
ORDER BY clause as follows:

select

name, fee, fee * 0.15 discount

from courses

order by discount;
NAME

FEE

DISCOUNT

-------------------- --------- --------C programming

3500

525

XML Programming

4000

600

Oracle database

4500

675

Java Language

4500

675

ASP.NET

5000

750

VB.NET

5500

825

Selection
It is possible to select only the required rows using WHERE clause of SELECT command. It implements
selection operator of relational algebra.

WHERE clause specifies the condition that rows must satisfy in order to be selected.

The following

example select rows where FEE is more than or equal to 5000.

select name, fee from courses


where fee >= 5000
NAME

FEE

-------------------- --------VB.NET

5500

ASP.NET

5000

The following relational and logical operators are used to form condition of WHERE clause. Logical
operators AND, OR are used to combine conditions.

NOT operator reverses the result of the condition.

If condition returns true, NOT will make the overall condition false.

Operator
=
!= or <>
>=
<=
>
<
AND
OR
NOT

Meaning
Equal to
Not equal to
Greater than or equal to
Less than or equal to
Greater than
Less than
Logical ANDing
Logical Oring
Negates result of condition.

The following SELECT command displays the courses where duration is more than 15 days and course fee
is less than 4000.

select

* from courses

where duration > 15 and fee < 4000;


CCODE NAME

DURATION

FEE PREREQUISITE

----- -------------------- --------- --------- ------------------c

C programming

20

3500 Computer Awareness

The following SELECT command retrieves the details of course with code ORA.

select * from courses


where ccode = 'ora';
CCODE NAME

DURATION

FEE PREREQUISITE

----- -------------------- --------- --------- ---------------ora

Oracle database

25

4500 Windows

You might also like