Presented by : Ms. Nita Arora Kulachi Hansraj Model School
Ashok Vihar
SQL
SQL - History • Structured Query Language• SEQUEL from IBM San Jose• ANSI 1992 Standard is the version
used by most DBMS today (SQL92)• Basic language is standardized
across relational DBMSs. Each system may have proprietary extensions to standard.
SQL Uses
• Database Definition and Querying– Can be used as an interactive query
language– Can be imbedded in programs
• Relational Calculus combines Select, Project and Join operations in a single command: SELECT
SQL Advanced
Aggregate Functions• Count• Avg• SUM• MAX• MIN• Others may be available in
different systems
Branch Name City Director Asset
John Singapore Singapore_2 1000000
Agus Arianto Jakarta Mona 4000000
George Jakarta Jakarta_2 1000000
Ng Wee Hiong Singapore Clementi 3000000
2
Name City Director Asset
John Singapore Singapore_2
1000000
Agus Arianto Jakarta Mona 4000000
George Jakarta Jakarta_2 1000000
Ng Wee Hiong Singapore Clementi 3000000
4
Name City Director Asset
John Singapore
Singapore_2 1000000
Agus Arianto Jakarta Mona 4000000
George Jakarta Jakarta_2 1000000
Ng Wee Hiong
Singapore
Clementi 3000000
6750000
Name City Director Asset
John Singapore Singapore_2 1000000
Agus Arianto Jakarta Mona 4000000
George Jakarta Jakarta_2 1000000
Ng Wee Hiong Singapore Clementi 3000000
Name City Director Asset
John Singapore Singapore_2 1000000
Agus Arianto Jakarta Mona 4000000
George Jakarta Jakarta_2 1000000
Ng Wee Hiong Singapore Clementi 3000000
Views
Name City Director Asset
John Singapore
Singapore_2
1000000
Agus Arianto
Jakarta Mona 4000000
George Jakarta Jakarta_2 1000000
Ng Wee Hiong
Singapore
Clementi 3000000
Name City Director Asset
John Singapore Singapore_2
1000000
Ng Wee Hiong
Singapore Clementi 3000000
SQL
Commands
Syntax Review
SELECT• Syntax:
– SELECT [DISTINCT] attr1, attr2,…, attr3 FROM rel1 r1, rel2 r2,… rel3 r3 WHERE condition1 {AND | OR} condition2 ORDER BY attr1 [DESC], attr3 [DESC]
SELECT• Syntax:
– SELECT a.author, b.title FROM authors a, bibfile b, au_bib c WHERE a.AU_ID = c.AU_ID and c.accno = b.accno ORDER BY a.author ;
• Examples in Access...
SELECT Conditions• = equal to a particular value• >= greater than or equal to a particular value• > greater than a particular value• <= less than or equal to a particular value• <> not equal to a particular value• LIKE “*term*” (may be other wild cards in
other systems)• IN (“opt1”, “opt2”,…,”optn”)• BETWEEN val1 AND val2• IS NULL
Relational Algebra Selection using SELECT
• Syntax:– SELECT * WHERE condition1 {AND |
OR} condition2;
Relational Algebra Projection using SELECT
• Syntax:– SELECT [DISTINCT] attr1, attr2,…,
attr3 FROM rel1 r1, rel2 r2,… rel3 r3;
Relational Algebra Join using SELECT
• Syntax:– SELECT * FROM rel1 r1, rel2 r2
WHERE r1.linkattr = r2.linkattr ;
Subqueries• SELECT SITES.[Site Name], SITES.
[Destination no] FROM SITES WHERE sites.[Destination no] IN
(SELECT [Destination no] from DEST where [avg temp (f)] >= 78);
• Can be used as a form of JOIN.
Using Aggregate functions• SELECT attr1, Sum(attr2) AS name
FROM tab1, tab2 ... GROUP BY attr1, attr3 HAVING
condition;
CREATE Table• CREATE TABLE table-name (attr1
attr-type PRIMARYKEY, attr2 attr-type,…,attrN attr-type);
• Adds a new table with the specified attributes (and types) to the database.
Access Data Types
• Numeric (1, 2, 4, 8 bytes, fixed or float)• Text (255 max)• Memo (64000 max)• Date/Time (8 bytes)• Currency (8 bytes, 15 digits + 4 digits
decimal)• Autonumber (4 bytes)• Yes/No (1 bit)• OLE (limited only by disk space)• Hyperlinks (up to 64000 chars)
Access Numeric types• Byte
– Stores numbers from 0 to 255 (no fractions). 1 byte
• Integer– Stores numbers from –32,768 to 32,767 (no fractions) 2 bytes
• Long Integer (Default) – Stores numbers from –2,147,483,648 to 2,147,483,647 (no fractions). 4
bytes
• Single– Stores numbers from -3.402823E38 to –1.401298E–45 for negative values
and from 1.401298E–45 to 3.402823E38 for positive values.4 bytes
• Double– Stores numbers from –1.79769313486231E308 to –4.94065645841247E–
324 for negative values and from 1.79769313486231E308 to 4.94065645841247E–324 for positive values. 15 8 bytes
• Replication ID– Globally unique identifier (GUID) N/A 16 bytes
Oracle Data Types• CHAR (size) -- max 2000• VARCHAR2(size) -- up to 4000• DATE• DECIMAL, FLOAT, INTEGER, INTEGER(s),
SMALLINT, NUMBER, NUMBER(size,d)– All numbers internally in same format…
• LONG, LONG RAW, LONG VARCHAR– up to 2 Gb -- only one per table
• BLOB, CLOB, NCLOB -- up to 4 Gb• BFILE -- file pointer to binary OS file
Creating a new table from existing tables
• Syntax:– SELECT [DISTINCT] attr1, attr2,…,
attr3 INTO newtablename FROM rel1 r1, rel2 r2,… rel3 r3 WHERE condition1 {AND | OR} condition2 ORDER BY attr1 [DESC], attr3 [DESC]
ALTER Table• ALTER TABLE table-name ADD
COLUMN attr1 attr-type;• … DROP COLUMN attr1;• Adds a new column to an existing
database table.
INSERT• INSERT INTO table-name (attr1,
attr4, attr5,…, attrK) VALUES (“val1”, val4, val5,…, “valK”);
• Adds a new row(s) to a table.• INSERT INTO table-name (attr1,
attr4, attr5,…, attrK) VALUES SELECT ...
DELETE• DELETE FROM table-name WHERE
<where clause>;• Removes rows from a table.
UPDATE• UPDATE tablename SET
attr1=newval, attr2 = newval2 WHERE <where clause>;
• changes values in existing rows in a table (those that match the WHERE clause).
DROP Table• DROP TABLE tablename;• Removes a table from the
database.
Name City Director Asset
John Singapore Singapore_2
1000000
Agus Arianto Jakarta Mona 4000000
George Jakarta Jakarta_2 1000000
Ng Wee Hiong
Singapore Clementi 3000000
Lecture Outline• Review
– Relational Operations– Relational Algebra– Relational Calculus– Introduction to SQL
• Introduction to SQL (continued)• Application Development in Access