cf database i jeff peters [email protected]. why are you here? data and persistence odbc...

27
CF Database I Jeff Peters jeff@grokfusebox.com

Upload: kelley-griffin

Post on 18-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

CF Database I

Jeff [email protected]

Page 2: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Why Are You Here?

Data and Persistence

ODBC

Relational vs. Flat

SQL

CFQUERY, CFOUTPUT, CFLOOP

Practicum

Page 3: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Data and Persistence

Persistence = Turn off, turn on—data still there.

Secondary storage (disk or other nonvolatile)

DBMS

Excel

Text file

Page 4: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

ODBC

Open DataBase Connectivity

Allows a common interface to many databases.

Does not homogenize SQL

Must be configured on the CF server

Page 5: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Relational vs. Flat

Relational: Tables may be linked (related) to make storage more efficient.

E.F. Codd

Flat: Tables cannot be linked. Think of a spreadsheet.

Page 6: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

CFQUERY

Allows any SQL statement to be run.

Returns a recordset depending on SQL.

Can pass authentication attributes:

USERNAME

PASSWORD

Can cache data for better performance.

Page 7: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

CFOUTPUT

Refers to a CFQUERY recordset to generate output to the browser.

May be nested using the GROUP attribute.

May NOT be nested without the GROUP attribute (see CFLOOP).

Page 8: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

CFLOOP

Refers to a CFQUERY recordset; does not produce output to the browser.

CFLOOP may also be used for incremental loops, lists, and objects—not the scope of this session.

Page 9: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

SQL

Structured Query Language

Common syntax for interacting with a database. (Beware variations)

SELECT, INSERT, UPDATE, DELETE

More complex commands available; related to DBA functions.

Page 10: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Caching Queries

Improves performance by storing data in server memory.

Implemented through CFQUERY

CACHEDWITHIN attribute

Page 11: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – ODBC

MS Access: CFDB101

webroot\cfun03\CFDB101.mdb

MS Excel: CFDB101Excel

webroot\cfun03\Members.xls

Text File: CFDB101Text

webroot\cfun03\TextDB\Members

Page 12: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFQUERY

SELECT

INSERT

DELETE

UPDATE

Page 13: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFQUERYSELECT

<cfquery name="qryGetMembers" datasource="CFDB101" dbtype="ODBC"> SELECT memberNumber, lastName, firstName, email, phone, memberSince FROM Members</cfquery>

<cfdump var="#qryGetMembers#">

Page 14: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFQUERYSELECT

Page 15: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFQUERYINSERT

<cfquery datasource="CFDB101" dbtype="ODBC"> INSERT INTO Members ( memberNumber, lastName, firstName, email, phone, memberSince ) VALUES ( 4, 'Adams', 'John Q.', '[email protected]', '7035554444', #CreateODBCDate(Now())# )</cfquery>

Page 16: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFQUERYINSERT

Page 17: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFQUERYDELETE

<cfquery datasource="CFDB101" dbtype="ODBC"> DELETE FROM Members WHERE memberNumber = '4'</cfquery>

Page 18: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFQUERYDELETE

Page 19: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFQUERYUPDATE

<cfquery datasource="CFDB101" dbtype="ODBC"> UPDATE Members SET phone = '7035551212' WHERE memberNumber = '1'</cfquery>

Page 20: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFQUERYUPDATE

Page 21: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFOUTPUT<cfquery name="qryGetMembers" datasource="CFDB101" dbtype="ODBC"> SELECT lastName, firstName, memberSince FROM MembersORDER BY memberSince</cfquery>

<h3><cfoutput query="qryGetMembers"> <span style="color: red"> #DateFormat(memberSince,"mm/dd/yyyy")# </span>: #firstName# #lastName#<br></cfoutput></h3>

Page 22: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFOUTPUT

Page 23: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFLOOP<cfquery name="qryGetMembers" datasource="CFDB101" dbtype="ODBC"> SELECT lastName, firstName, memberSince FROM MembersORDER BY memberSince</cfquery>

<h3><cfloop query="qryGetMembers"> <cfset memberYears = DateDiff("YYYY",memberSince,Now())> <cfoutput> #firstName# #lastName# - Member for #memberYears# years. <br> </cfoutput></cfloop></h3>

Page 24: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – CFLOOP

Thomas Jefferson - Member for 226 years.John Adams - Member for 226 years.George Washington - Member for 226 years.

Page 25: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Practicum – Caching<cfquery name="qryGetMembers" datasource="CFDB101" dbtype="ODBC" cachedwithin="#CreateTimeSpan(1, 0, 0, 0)#"> SELECT memberNumber, lastName, firstName, email, phone, memberSince FROM Members</cfquery>

Page 26: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Bonus – Aqua Data Studio

http://www.aquafold.com

Interfaces with DB2, Informix, MySQL, Oracle, PostgreSQL, SQL Server, SyBase, any JDBC source.

Page 27: CF Database I Jeff Peters jeff@grokfusebox.com. Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum

Q & A