CF Database I Jeff Peters [email protected]. Why Are You Here? Data and Persistence ODBC...

27
CF Database I Jeff Peters jeff@grokfusebox.com

Transcript of CF Database I Jeff Peters [email protected]. Why Are You Here? Data and Persistence ODBC...

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