Download Oracle

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
SQL in Oracle
Set up Oracle access at IU
• You need to install Oracle Client:
– http://kb.iu.edu/data/anhl.html
– For windows: http://kb.iu.edu/data/aznp.html
• Connecting to Oracle with SQL*Plus
- http://kb.iu.edu/data/aznp.html#connecting
- Go to Start->All programs->Oracle->Application
Development->SQL*Plus
- Your username should be: username@oed1prd.world
Set up Oracle access at IU
• Or you can use Aqua Data Studio to access Oracle
Aqua Data Studio
• Server connection:
– host: dbserv.uits.indiana.edu
– port: 1521
– username: your username
– passcode: your password
– System Identifier of the database (SID): oed1prd
Relational Model
• Data stored in relations (tables)
attributes
(or columns)
course_ID
course_name
department_ID
CIS3100
Database
CIS
CIS4500
Network
CIS
MKT3400
Advertising
MKT
MKT4100
Marketing
MKT
course
tuples
(or rows)
SQL
• Data Definition Language (DDL)
– CREATE TABLE
– ALTER TABLE
– DROP TABLE
• Data Manipulation Language (DML)
–
–
–
–
INSERT INTO
SELECT
UPDATE
DELETE
SQL
• Basic structure – query block
– SELECT – FROM – WHERE clauses
– GROUP BY clause
– HAVING clause
– ORDER BY clause
– Aggregate functions
• COUNT, MIN, MAX, AVG, SUM
SQL in Oracle
• SQL*Plus
– Command line interface to access Oracle database
– Enter, edit, store, retrieve, and run SQL statements
• Start SQL*Plus
- Go to Start->All programs->Oracle->Application
Development->SQL*Plus
- Your username should be:
username@oed1prd.world
SQL*Plus Commands
•
•
•
•
•
•
•
•
DESCRIBE: list the columns with data types of a table
EXIT: exit the SQL*Plus program
GET: load a SQL statement into the buffer
LIST: list the current statement in the buffer
RUN: execute the current SQL statement in the buffer
SAVE: save the current SQL statement to a script file
SPOOL: send the output from a SQL statement to a file
START: load a SQL statement located in a script file and then
run that SQL statement
• Commit: save your input from buffer to disk.
http://download.oracle.com/docs/cd/B10501_01/server.920/a90842/ch13.htm
http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch4.htm#C
HDGEEFE
Example
student
enroll
PK student_id
PK,FK1 student_id
PK,FK2 course_id
name
major
GPA
course
PK course_id
name
department_id
grade
student_id
name
major
GPA
101
Bill
CIS
3.45
student_id
course_id
grade
102
Mary
CIS
3.10
101
CIS3100
A
103
Sue
MKT
3.90
101
CIS3500
B+
course_id
name
department_id
102
CIS3100
A-
CIS3100
Database
CIS
102
CIS3400
A
CIS3400
Network I
CIS
103
MKT3000
A
CIS3500
Network II
CIS
103
MKT3200
B
MKT3000
Advertising
MKT
103
MKT4200
B+
MKT3200
Marketing I
MKT
MKT4200
Marketing II
MKT
DDL in Oracle
• Basic data types
– CHAR(size)
– VARCHAR2(size)
– NUMBER(p, s)
– DATE
– BLOB/CLOB
See: http://www.techonthenet.com/oracle/datatypes.php
DDL in Oracle
• CREATE TABLE
CREATE TABLE student (
student_id
NUMBER(10),
name
VARCHAR2(25),
major
VARCHAR2(15),
CONSTRAINT pk_students PRIMARY KEY (student_id)
);
• ALTER TABLE
ALTER TABLE student ADD (GPA NUMBER(6,3));
• DROP TABLE
DROP TABLE student;
DML in Oracle
• INSERT
INSERT INTO student VALUES (101, 'Bill', 'CIS', 3.45);
• UPDATE
UPDATE student SET GPA=3.55 where student_id=101;
• DELETE
DELETE FROM student where student_id=101;
• SELECT
SELECT * FROM student;
Create tables
Queries
SELECT * FROM course WHERE rownum<=3;
SELECT * FROM enroll WHERE grade=‘A’;
Queries
SELECT * FROM student WHERE student.student_id=(SELECT
enroll.student_id FROM enroll WHERE grade='A-');
SELECT * FROM student WHERE student.student_id IN (SELECT
enroll.student_id FROM enroll WHERE grade='A’);
SELECT student.name FROM student, enroll WHERE
student.student_id=enroll.student_id AND enroll.grade=‘A’;
Sorting and Grouping
SELECT * FROM enroll ORDER BY grade, course_id;
SELECT major, max(gpa) FROM student GROUP BY major HAVING
max(gpa)>3.40;
SELECT DISTINCT grade FROM enroll;
Joining tables
SELECT student.name, enroll.course_id, enroll.grade FROM
student INNER JOIN enroll ON
student.student_id=enroll.student_id;
Joining tables
• SELECT * FROM student LEFT JOIN enroll ON
student.student_id=enroll.student_id;
Joining tables
• SELECT * FROM student RIGHT JOIN enroll ON
student.student_id=enroll.student_id;
References
• www.oracle.com
Oracle tutorial:
• http://dbis.ucdavis.edu/courses/sqltutorial/tutorial.pdf
• http://cisnet.baruch.cuny.edu/holowczak/oracle/sqlplus/
Related documents