SQL

Post on 31-Oct-2014

379 views 0 download

Tags:

description

 

transcript

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