|
| |
1) A PLACE FOR CONCATENATED KEYS 6
2) A PERSONAL PET PEEVE 6
3) A SIMPLE PROGRAM WITH EMBEDDED SQL 7
4) ADDING A COLUMN TO A TABLE 7
5) ALTERING A TABLE TO SET DEFAULTS 8
6) API VS. EMBEDDED SQL 8
7) APPLICATION GENERATED KEYS THROUGH A TABLE 9
8) APPLICATION/MANUAL PARTITIONING 9
9) ASSERTIONS 10
10) BE CAREFUL USING INTEGERS WITH ORDER BY 10
11) BE CAREFUL WITH ARITHMETIC PRECISION 10
12) BENEFITS OF IDENTITY COLUMNS IN DB2 11
13) CASE TOOLS 11
14) CHANGING COLUMN LENGTH AND TYPE 12
15) CHANGING COLUMN PROPERTIES WITH CONSTRAINTS
16) CODING SQL STATEMENTS 13
17) COLUMN CHECK CONSTRAINTS 13
18) COLUMN DEFAULTS 14
19) COLUMN FUNCTIONS 14
20) COLUMNS LISTED IN ORDER BY STATEMENTS 14
21) COMPARING MULTIPLE COLUMNS WITH IN 15
22) CONCATENATING VALUES 15
23) CONSTRAINT DEFERRABILITY 16
24) CONSTRAINTS 16
25) COPYING DATA FROM TABLE TO TABLE 17
26) CORRELATED UPDATES IN ORACLE 18
27) CUBE DEFINED 18
28) CUBES IN SQL SERVER AND ORACLE 18
29) CURSOR TYPES IN SQL SERVER 20
30) DATA MODELING 20
31) DATA NORMALIZATION--SECOND NORMAL FORM 21
32) DATABASE HINTS 21
33) DATABASE LOCKING AND ISOLATION LEVELS 22
34) DATABASE REPLICATION VERSUS TRIGGERS 22
35) DATE, TIME, AND TIMESTAMP EXPRESSIONS AND RESULTS 23
36) DATE AND TIME ARITHMETIC 23
37) DATE AND TIME BUILT-IN FUNCTIONS 24
38) DATE AND TIME DATATYPES IN SQL 25
39) DATE AND TIME IN DB2 25
40) DATE AND TIME IN ORACLE 25
41) DATE AND TIME IN SQL SERVER 26
42) DEADLOCKS 26
43) DEALING WITH FOREIGN KEYS 27
44) DEALING WITH NULLS IN CUBE AND ROLLUP 27
45) DEALING WITH NULLS IN EMBEDDED SQL 28
46) DECIDING BETWEEN EMBEDDED SQL AND CLI 29
47) DEFAULT CLAUSE WHEN CREATING AND ALTERING TABLES 29
48) DEFAULT COLUMN VALUES IN DB2 29
49) DEFAULT COLUMN VALUES IN SQL SERVER 30
50) DEFINING IDENTITY COLUMNS IN DB2 30
51) DENORMALIZATION: COPYING COLUMNS 31
52) DENORMALIZATION: HORIZONTAL PARTITIONING 31
53) DENORMALIZATION: VERTICAL PARTITIONING 32
54) DISPLAYING INTERVALS FLEXIBLY 32
55) DISPLAYING INTERVALS FLEXIBLY 33
56) DOMAINS IN THE DATABASE 34
57) DOUBLE QUOTES AND SINGLE QUOTES 34
58) DROP COLUMN STATEMENT 35
59) DROPPING A COLUMN 35
60) DROPPING A TABLE WITH CONSTRAINTS 35
61) DROPPING COLUMNS CAREFULLY 36
62) DROPPING CONSTRAINTS 36
63) ENHANCING SECURITY WITH ORACLE 36
64) ERROR MESSAGES: SQLSTATE AND SQLCODE 37
65) ESCAPE CHARACTERS 37
66) EXAMPLE OF GROUP BY, ROLLUP, AND CUBE 38
67) EXTENDING GROUP BY 39
68) FAST, DIRECT ACCESS THROUGH A ROWID IN ORACLE
69) FORCING USERS TO CHANGE PASSWORDS 40
70) FOREIGN KEY CONSTRAINTS 41
71) FOREIGN KEY MATCH FULL, SIMPLE AND PARTIAL 41
72) FOREIGN KEY REFERENTIAL ACTION 42
73) FOUR LOCKING PROBLEMS 42
74) FULL-TEXT QUERIES IN SQL SERVER WITH CONTAINS
75) FULL-TEXT QUERIES WITH CONTAINSTABLE 43
76) GENERATING RANDOM UNIQUE KEYS 44
77) GETTING THE LAST IDENTITY VALUE USED 45
78) GLOBAL TEMPORARY TABLES 45
79) GROUP BY GROUPING SETS 45
80) GROUP BY VERSUS ORDER BY 46
81) GROUP BY WITH ROLLUP 46
82) HASHING FUNCTIONS 48
83) HELP WITH NAME SEARCHES 48
84) HINTS IN ORACLE 48
85) HINTS IN SQL SERVER 49
86) HISTOGRAMS DEFINED 50
87) HOW DO RDBMSS PROCESS VIEWS 50
88) IDENTITY IN SQL SERVER 51
89) INDEXING FOREIGN KEYS 51
90) INDEXING TO SUPPORT STAR SCHEMA 51
91) INSERTS RUNNING SLOW 52
92) INVERTED LIST DATABASE 52
93) JAVA AND DATABASES 53
94) JAVA AND JDBC 53
95) JDBC AND STORED PROCEDURES 53
96) JDBC COMMON DRIVER CLASSES 54
97) JDBC EXAMPLES: RUNNING THE SQL 54
98) JDBC EXAMPLES: SETTING UP THE CONNECTION 55
99) JDBC--PREPARING SQL 55
100) JOINING A TABLE TO ITSELF 56
101) LEVELS OF SQL STANDARDS SQL STANDARDS 56
102) LOCAL TEMPORARY TABLES 56
103) LOCK ESCALATION AND LOCK PROMOTION 57
104) LOCK GRANULARITY 58
105) LOCK GRANULARITY: TABLE, PARTITION AND TABLESPACE LOCKS 58
106) LOCK ISOLATION 59
107) LOCK TYPES 59
108) LOCKS VERSUS LATCHES 60
109) MAKING YOUR SQL PORTABLE 60
110) MANAGING PASSWORDS IN ORACLE 61
111) MATERIALIZED VIEWS 61
112) MATERIALIZED VIEWS 62
113) MEDIANS IN SQL 63
114) MIXING DDL AND DML IN TRANSACTIONS 64
115) MORE INFORMATION WITH GET DIAGNOSTICS 64
116) MORE ON GENERATING KEYS: USING TIMESTAMPS 65
117) MORE ON NAME SEARCHES: FUNCTION INDEXES 65
118) MORE ROBUST WAYS TO COPY DATA 65
119) NORMALIZATION--FIRST NORMAL FORM 66
120) NOT NULL CONSTRAINTS 66
121) ONE-TO-ONE RELATIONSHIPS--AN EXAMPLE 67
122) ONE-TO-ONE RELATIONSHIPS--WHAT YOU DON'T WANT
123) OPERATOR ORDER OF PRECEDENCE 68
124) PARTITIONED TABLES IN DB2 (1) 69
125) PARTITIONING BY DBMS (2) 69
126) PERFORMING NAME SEARCHES-(1): THE ORIGINAL SOUNDEX ALGORITHM 70
127) PERFORMING NAME SEARCHES--: (2) AN IMPROVED SOUNDEX ALGORITHM 71
128) MULTIPLE INDEXES VERSUS SINGLE MULTICOLUMN INDEXES
129) NORMALIZATION--THIRD NORMAL FORM 72
130) OBJECT-RELATIONAL DATABASES 73
131) OPTIMISTIC LOCKING STRATEGY 73
132) PARTITIONED TABLES IN ORACLE 74
133) PERSISTENT STORED MODULES 74
134) PESSIMISTIC LOCKING STRATEGY 75
135) POSITION FUNCTION 75
136) PREPARING A TABLE TO LOAD 75
137) PRIMARY KEY OF THE CALENDAR TABLE 76
138) PROBLEMS DISPLAYING DATA 76
139) PROBLEMS WITH CONCATENATED KEYS 77
140) PROBLEMS WITH TRIGGERS 78
141) PROCESSING A SQL STATEMENT 79
142) PROCESSING MULTIPLE ROWS IN EMBEDDED SQL 79
143) PROS AND CONS OF GENERATING RANDOM UNIQUE KEYS
144) PUBLIC SYNONYMS IN ORACLE 80
145) QUALIFYING TABLES IN SQL SERVER 81
146) QUERY TOO COMPLICATED? CONSIDER TEMPORARY TABLES
147) QUERY TOO COMPLICATED? CONSIDER VIEWS 82
148) QUOTES INSIDE STRINGS 83
149) RANKING VALUES IN A LIST 83
150) REMOVING DUPLICATES 84
151) REMOVING FOREIGN KEY CONSTRAINTS 84
152) RENAMING A COLUMN 85
153) RENAMING A TABLE 85
154) RENAMING A TABLE 85
155) RUTHLESSLY DROPPING COLUMNS 86
156) SCALAR FUNCTIONS 86
157) SECURITY ROLES 87
158) SELECT FOR UPDATE 88
159) SELECT TOP IN SQL SERVER 88
160) SINGLETON SELECT VS. CURSOR 89
161) SINGLETON SELECTS IN EMBEDDED SQL 89
162) SLOW-RUNNING QUERIES 90
163) SOME REASONS TO INDEX 90
164) SORTING ASCENDING AND DESCENDING 91
165) SORTING BY AN UNNAMED VALUE EXPRESSION 91
166) SORTING NULL VALUES 91
167) SORTING WITH NON-DEFAULT COLLATION 92
168) SQL SERVER WITH NULLS IN ROLLUP AND CUBE 92
169) SQL TO PERFORM MEDIAN 93
170) SQL3 ADTS WITH FUNCTIONS, PROCEDURES, AND MODULES 94
171) SQL3 COMMON TABLE EXPRESSIONS 94
172) SQL3 FUNCTIONS AND ABSTRACT DATA TYPES 95
173) SQL3 NEW DATA TYPES 95
174) SQLJ 2.0 FEATURES 95
175) SQLJ ADVANTAGES 96
176) SQLJ AND JAVA 96
177) SQLJ AND STORED PROCEDURES 97
178) SQLJ ITERATORS 97
179) SQLJ ITERATORS FOR UPDATES AND DELETES--PART 1 OF 2
180) SQLJ ITERATORS FOR UPDATES AND DELETES--PART 2 OF 2
181) SQLJ SYNTAX 99
182) SQLJ--ESTABLISHING A CONNECTION 100
183) SQLJ-NAMED ITERATORS 100
184) STAR SCHEMA OPTIMIZATION 101
185) STAR SCHEMAS, FACT AND DIMENSION TABLES 102
186) SUMMING AND GROUPING 102
187) SURROGATE KEYS 103
188) SYNONYMS, ALIASES AND VIEWS 104
189) TABLE EXPRESSIONS 104
190) TEMPORARY TABLES 105
191) TEXT SEARCHES WITH FREETEXT IN SQL SERVER 105
192) TEXT SEARCHES WITH FREETEXTTABLE IN SQL SERVER
193) TEXT VS. NUMBER KEYS 106
194) THE CALENDAR TABLE 106
195) THE CAST FUNCTION 107
196) THE DATABASE MARKETPLACE--OBJECT RELATIONAL DATABASES 107
197) THE DATABASE MARKETPLACE--WHO HAS THE MARKETSHARE? 108
198) THE DIFFICULTY OF IMPLEMENTING ONE-TO-ONE RELATIONSHIPS 108
199) THE HISTORY OF SQL--THE 1970S 109
200) THE HISTORY OF SQL--THE 1980S 109
201) THE HISTORY OF SQL--THE 1990'S 110
202) THE LOCKING HIERARCHY 110
203) THE PROS AND CONS OF GENERATING ASCENDING KEYS 111
204) THE SNOWFLAKE SCHEMA 111
205) THE SQL3/SQL99 STANDARD 112
206) THE SUBSTRING FUNCTION 112
207) THE TRIM FUNCTION 113
208) T-JOINS--PART 1 OF 2 113
209) T-JOINS--PART 2 OF 2 114
210) TRANSACTIONS AND COMMITS 115
211) TRANSLATE FUNCTION 116
212) TRIGGERS PROS AND CONS 116
213) TRUNCATING A TABLE WITH CONSTRAINTS 117
214) UNIQUE AND PRIMARY KEY CONSTRAINTS 117
215) UNIQUE CONSTRAINTS VS. UNIQUE INDEXES 118
216) UNIQUE PREDICATES 118
217) UNIQUEIDENTIFIER IN SQL SERVER 118
218) UPDATEABLE VIEWS 119
219) UPDATING VIEWS WITH CHECK OPTION 119
220) UPPERCASE AND LOWERCASE TRANSLATION 120
221) USE DBMS FEATURES TO GENERATE KEYS 120
222) USING A FUNCTION IN SQL 121
223) USING COUNT(COLUMN_NAME) 122
224) USING DATE COLUMNS IN TABLES AND SQL 122
225) USING GROUP BY AND ORDER BY TOGETHER 123
226) USING THE INSTEAD OF TRIGGERS IN ORACLE 123
227) USING WHENEVER IN EMBEDDED SQL--PART 1 OF 2
228) USING WHENEVER IN EMBEDDED SQL--PART 2 OF 2
229) VIEWS IN DB2 125
230) WHAT'S A SQLCA 125
231) WHEN NOT TO INDEX 126
232) WHEN TO DENORMALIZE 126
233) WHEN TO USE READ COMMITTED LOCKING 127
234) WHEN TO USE READ UNCOMMITTED LOCKING 127
235) WHEN TO USE REPEATABLE READ LOCKING 127
236) WHERE CURRENT OF CURSOR 128
237) WORKING WITH CHARACTER DATA 128
238) WORKING WITH OVERLAPPING DATES 129
239) APPLICATION IMPLEMENTED R.I. 129
240) DATA INTEGRITY: ENTITY INTEGRITY 130
241) DATA INTEGRITY: REFERENTIAL INTEGRITY 130
242) DECIPHERING AN ORACLE ROWID 131
243) DECLARATIVE R.I. AND DELETE CASCADE 131
244) DIRECT ACCESS THROUGH A ROWID IN DB2 132
245) ESTIMATING INDEX SIZE 132
246) ESTIMATING TABLE SIZE: DOUBLE UP 133
247) ESTIMATING TABLE SIZE: THE ARITHMETIC 133
248) EXCEPT OPERATOR 134
249) JAVA PORTABILITY WITH SQLJ 135
250) JAVA SQLJ VENDOR-SPECIFIC CUSTOMIZATIONS 135
251) NAS AND SAN: THE DIFFERENCES 136
252) ORACLE: SHOWING HIERARCHIES WITH LPAD AND LEVEL 136
253) R.I.: RULES AND UPDATE 137
254) R.I.: SET DEFAULT ON DELETE 137
255) R.I: DEFERRABLE AND NOT DEFERRABLE 138
256) R.I. DELETE SET NULL ACTION 138
257) R.I. RESTRICTIONS 139
258) RAID-0 139
259) RAID-1 139
260) RAID-3 139
261) RAID-5 140
262) RAID-7 140
263) RAID-S 141
264) RECURSIVE SQL IN DB2 AND CONTROLLING DEPTH 141
265) RECURSIVE SQL IN DB2 AND SINGLE-LEVEL EXPLOSION 141
266) RECURSIVE SQL IN DB2 AND SUMMARIZED EXPLOSION 142
267) RENAMING A TABLE IN DB2 143
268) ROWID AND RID IN DB2 144
269) SQL SERVER: UNIQUE IDS 144
270) STORAGE ISSUES: RAID DEFINED 144
271) STORAGE TRENDS: NAS 145
272) THE PHASES IN TWO-PHASE COMMIT 145
273) TRANSACTION DEFINED 145
274) TRANSACTION TIPS 146
275) TRAVERSING A FAMILY TREE IN ORACLE 146
276) TWO-PHASE COMMIT 147
277) |