Title: ORACLE and SQLPlus
1ORACLE and SQLPlus
- University of California, Berkeley
- School of Information Management and Systems
- SIMS 257 Database Management
2Lecture Outline
- Review
- Databases for Web Applications Overview
- ColdFusion
- PHP
- DiveShop in ColdFusion
- Introduction to ORACLE and SQL-Plus
3Lecture Outline
- Review
- Databases for Web Applications Overview
- ColdFusion
- PHP
- DiveShop in ColdFusion
- Introduction to ORACLE and SQL-Plus
4Dynamic Web Applications 2
5Server Interfaces
Adapted from John P Ashenfelter, Choosing a
Database for Your Web Site
6Web Application Server Software
- ColdFusion
- PHP
- ASP
- All of the are server-side scripting languages
that embed code in HTML pages
7What ColdFusion is Good for
- Putting up databases onto the Web
- Handling dynamic databases (Frequent updates,
etc) - Making databases searchable and updateable by
users.
8Templates
- Assume we have a database named
contents_of_my_shopping_cart.mdb -- single table
called contents... - Create an HTML page (uses extension .cfm), before
ltHEADgt... - ltCFQUERY NAME cart" DATASOURCEcontents_of_my_s
hopping_cart"gt SELECT FROM contents
lt/CFQUERYgt
9Templates cont.
- ltHEADgt
- ltTITLEgtContents of My Shopping Cartlt/TITLEgt
- lt/HEADgt
- ltBODYgt
- ltH1gtContents of My Shopping Cartlt/H1gt
- ltCFOUTPUT QUERY cart"gt
- ltBgtItemlt/Bgt ltBRgt
- Date_of_item ltBRgt
- Price ltPgt
- lt/CFOUTPUTgt
- lt/BODYgt
- lt/HTMLgt
10Templates cont.
Contents of My Shopping Cart
Bouncy Ball with Psychedelic Markings
12 December 1998
0.25
Shiny Blue Widget 14
December 1998 2.53
Large Orange Widget
14 December 1998
3.75
11CFIF and CFELSE
ltCFOUTPUT QUERY cart"gt Item Item
ltBRgt ltCFIF Picture EQ""gt ltIMG
SRCgeneric_picture.jpg"gt ltBRgt ltCFELSEgt
ltIMG SRC"Picture"gt ltBRgt lt/CFIFgt lt/CFOUTPUTgt
12PHP
- PHP is an Open Source Software project with many
programmers working on the code. - Commonly paired with MySQL, another OSS project
- Free
- Both Windows and Unix support
- Estimated that more than 250,000 web sites use
PHP as an Apache Module.
13PHP Syntax
- Similar to ASP
- Includes most programming structures (Loops,
functions, Arrays, etc.) - Loads HTML form variables so that they are
addressable by name
ltHTMLgtltBODYgt lt?php myvar Hello World
echo myvar ?gt lt/BODYgtlt/HTMLgt
14Combined with MySQL
- DBMS interface appears as a set of functions
ltHTMLgtltBODYgt lt?php db mysql_connect(localhost
, root) mysql_select_db(mydb,db) result
mysql_query(SELECT FROM employees,
db) Printf(First Name s ltbrgt\n,
mysql_result(result, 0 first) Printf(Last
Name s ltbrgt\n, mysql_result(result, 0
last) ?gtlt/BODYgtlt/HTMLgt
15Lecture Outline
- Review
- Databases for Web Applications Overview
- ColdFusion
- PHP
- DiveShop in ColdFusion
- Introduction to ORACLE and SQL-Plus
16ColdFusion Diveshop
17Lecture Outline
- Review
- Databases for Web Applications Overview
- ColdFusion
- PHP
- DiveShop in ColdFusion
- Introduction to ORACLE and SQL-Plus
18Today
- Getting started with ORACLE and SQL-- see
assignment on website - More on SQL and SQLPlus for data manipulation and
modification - Getting Started with ORACLE.
19SELECT
- Syntax
- SELECT DISTINCT attr1, attr2,, attr3 as
label, function(xxx), calculation, attr5, attr6
FROM relname1 r1, relname2 r2, rel3 r3 WHERE
condition1 AND OR condition2 ORDER BY attr1
DESC, attr3 DESC
20CREATE SYNONYM
- CREATE SYNONYM newname FOR oldname
- CREATE SYNONYM BIOLIFE for ray.BIOLIFE
21SELECT Conditions
- equal to a particular value
- gt greater than or equal to a particular value
- gt greater than a particular value
- lt less than or equal to a particular value
- ltgt not equal to a particular value
- LIKE wom_n (Note different wild card)
- IN (opt1, opt2,,optn)
22Aggregate Functions
- COUNT(dataitem)
- AVG(numbercolumn)
- SUM(numbercolumn)
- MAX(numbercolumn)
- MIN(numbercolumn)
- STDDEV(numbercolumn)
- VARIANCE(numbercolumn)
23Numeric Functions
- ABS(n)
- ACOS(n)
- ASIN(n)
- ATAN(n)
- ATAN2(n, m)
- CEIL(n)
- COS(n)
- COSH(n)
- ROUND(n)
- SIGN(n)
- SIN(n)
- SINH(n)
- SQRT(n)
- TAN(n)
- TANH(n)
- TRUNC(n,m)
- EXP(n)
- EXP(n)
- FLOOR(n)
- LN(n)
- LOG(m,n)
- MOD(n)
- POWER(m,n)
24Character Functions returning character values
- CHR(n)
- CONCAT(char1,char2)
- INITCAP(char)
- LOWER(char)
- LPAD(char, n,char2), RPAD(char, n,char2)
- LTRIM(char, n, cset), RTRIM(char, n, cset)
- REPLACE(char, srch, repl)
- SOUNDEX(char)
- SUBSTR(char, m, n)
- SUBSTRB(char, m, n)
- TRANSLATE(char, from, to)
- UPPER(char)
25Character Function returning numeric values
- ASCII(char)
- INSTR(char1, char2,m, n)
- INSTRB(char1, char2,m, n)
- LENGTH(char)
- LENGTHB(char)
26Date functions
- ADD_MONTHS(dt, n)
- LAST_DAY(d)
- MONTHS_BETWEEN(d1, d2)
- NEW_TIME(d, z1, z2) -- PST, AST, etc.
- NEXT_DAY(d, dayname)
- ROUND(d, fmt) -- century, year etc.
- SYSDATE
- TRUNC(d, fmt) -- century, year, etc.
27Conversion Functions
- CHARTOROWID(char)
- CONVERT(char, dchar, schar)
- HEXTORAW(char)
- RAWTOHEX(raw)
- ROWIDTOCHAR(rowid)
- TO_CHAR (date, fmt)
- TO_DATE(char, fmt)
- TO_NUMBER(char,fmt)
- TO_MULTIBYTE(char)
- TO_SINGLE_BYTE(char)
28Create Table
- CREATE TABLE table-name (attr1 attr-type
CONSTRAINT constr1 PRIMARY KEY, attr2 attr-type
CONSTRAINT constr2 NOT NULL,, attrM attr-type
CONSTRAINT constref REFERENCES owner.tablename(att
rname) ON DELETE CASCADE, attrN attr-type
CONSTRAINT constrN CHECK (attrN UPPER(attrN),
attrO attr-type DEFAULT default_value) - Adds a new table with the specified attributes
(and types) to the database. - NOTE that the CONSTRAINT and name parts are
optional)
29Create Table
- CREATE TABLE table-name (
- attr1 attr-type PRIMARY KEY,
- attr2 attr-type NOT NULL,
- , attrM attr-type REFERENCES
owner.tablename(attrname) ON DELETE CASCADE, - attrN attr-type CHECK (attrN UPPER(attrN)
- attrO attr-type DEFAULT default_value)
- Without CONSTRAINT and name parts
30Types
- VARCHAR2(size)
- NUMBER(p, s)
- LONG -- long char data
- DATE -- from 4712BC to 4714 AD
- RAW(size) -- binary
- LONG RAW -- large binary
- ROWID -- row reference
- CHAR(size) -- fixed length characters
31Alter Table
- ALTER TABLE table-name ADD attr1 attr-type
- ALTER TABLE table-name ADD attr1 CONSTRAINT xxx
constrainvalue - ALTER TABLE table-name MODIFY attr1
optiontochange - ALTER TABLE table-name DROP COLUMN attr1
- Adds, drops or modifies a column in an existing
database table. - Note constrainvalue is any column constraint
like PRIMARY KEY, REFERENCES, etc.
32INSERT
- INSERT INTO table-name (attr1, attr4, attr5,,
attrK) VALUES (val1, val4, val5,, valK) - OR
- INSERT INTO table-name SELECT col1, col2, col3 as
newcol2, col4 FROM xx, yy WHERE where-clause - Adds a new row(s) to a table.
33DELETE
- DELETE FROM table-name WHERE ltwhere clausegt
- Removes rows from a table.
34UPDATE
- UPDATE tablename SET attr1newval, attr2
newval2 WHERE ltwhere clausegt - changes values in existing rows in a table (those
that match the WHERE clause).
35DROP Table
- DROP TABLE tablename
- Removes a table from the database.
36CREATE INDEX
- CREATE UNIQUE INDEX indexname ON tablename
(attr1 ASCDESC, attr2 ASCDESC, ...) - Adds an index on the specified attributes to a
table
37System Information In ORACLE
- Find all of the tables for a user
- SELECT FROM ALL_CATALOG WHERE OWNER userid
- SELECT FROM USER_CATALOG (or CAT)
- Show the attributes and types of data for a
particular table - DESCRIBE tablename
38Running commands
- Create file with SQL and SQLPlus commands in it.
- Use a plain text editor and NOT a word processor
(or save as text only) - Give the file the extension .sql
- From inside SQLPlus type
- START filename
39Simple formatting in SQLPlus
- SET PAGESIZE 500
- SET LINESIZE 79
- PROMPT stuff to put out to screen
- TTITLE title to put at top of results
- COLUMN col_name HEADING New Name
40Outputting results as a file
- SPOOL filename
- Commands
- SPOOL STOP
- File will be created with everything between the
SPOOL commands
41Lecture Outline
- Review
- Databases for Web Applications Overview
- ColdFusion
- PHP
- DiveShop in ColdFusion
- Introduction to ORACLE and SQL-Plus
- Assignment 3
42Assignment 3
- Assignment 3 and additional instructions are on
the Web site - Use ORACLE and SQL to answer the following
DiveShop queries - What are the names and addresses of the diveshop
customers who are renting snorkels? - What are the names of the wildlife that Mary
Rioux might see on her trip. Are there any
Shipwrecks there (give names)? - What sunken ships might be candidates for
treasure hunters whose destination is New Jersey? - Who is paying the maximum amount for single type
of rental equipment (use price quantity to
determine amount)? - At how many sites might you see a "Nassau
Grouper"?
43Assignment 3 (cont)
- What are the names of customers who are paying in
cash? - Produce a list of all equipment being rented for
a dive vacation that costs more than 30000, make
the list in descending order of the rental price
of the equipment. - Who is renting teal colored equipment?
- Which locations have an average temperature of
more than 75 degrees farenheit and a travel cost
of under 4000? - Make up two queries of your own and run them turn
in the queries and the results.