SQL Anywhere Studio 9 Developer's Guide
9781556225062, 1-55622-506-7
Describes in detail how to administer and program for the leading relational database for mobile, distributed and emmbed
187
82
3MB
English
Pages 489
Year 2004
Report DMCA / Copyright
DOWNLOAD PDF FILE
Table of contents :
Team DDU......Page 1
Table of Contents......Page 4
Preface......Page 10
Acknowledgments......Page 14
About the Author......Page 15
1.1 Introduction......Page 16
1.2 Codd's 12 Rules for Relational Databases......Page 17
1.3 Five Types of Tables......Page 19
1.4 Global Permanent Table......Page 21
1.5 Data Types......Page 22
1.5.1 A String Is a String: BINARY, CHARACTER, LONG......Page 23
1.5.3 Exact Decimals......Page 25
1.5.4 Floating-Point Numbers......Page 26
1.5.5 Binary Integers......Page 27
1.5.6 Literals......Page 28
1.7 Computed Columns......Page 29
1.8 DEFAULT Values......Page 31
1.8.1 DEFAULT AUTOINCREMENT......Page 32
1.8.2 DEFAULT GLOBAL AUTOINCREMENT......Page 33
1.8.3 Literal Defaults......Page 34
1.8.4 Special Update Defaults......Page 35
1.10 Column Constraints......Page 36
1.10.2 Column CHECK Constraint......Page 37
1.10.3 PRIMARY KEY Column Constraint......Page 38
1.10.4 Foreign Key Column Constraint......Page 39
1.11 User-Defined Data Types......Page 40
1.13 Table Constraints......Page 42
1.13.2 PRIMARY KEY Table Constraint......Page 43
1.13.3 FOREIGN KEY Table Constraint......Page 44
1.13.4 UNIQUE Table Constraint......Page 45
1.14 Remote Data Access......Page 46
1.14.2 CREATE EXTERNLOGIN......Page 47
1.14.4 CREATE EXISTING TABLE......Page 48
1.15 Temporary Tables......Page 50
1.15.1 Global Temporary Tables......Page 51
1.15.2.1 CREATE TABLE #table_name......Page 52
1.15.2.2 DECLARE LOCAL TEMPORARY TABLE......Page 53
1.16 Normalized Design......Page 55
1.16.1 First Normal Form......Page 56
1.16.2 Second Normal Form......Page 57
1.16.3 Third Normal Form......Page 58
1.16.4 Boyce-Codd Normal Form......Page 59
1.16.5 Fourth Normal Form......Page 60
1.16.6 Fifth Normal Form......Page 61
1.17 Chapter Summary......Page 62
2.2 INSERT......Page 64
2.2.1 INSERT All Values......Page 65
2.2.2 INSERT Named Values......Page 67
2.2.3 INSERT Select All Columns......Page 68
2.2.4 INSERT Select Column List......Page 69
2.2.5 INSERT Select With Auto Name......Page 70
2.3 LOAD TABLE......Page 71
2.4 ISQL INPUT......Page 79
2.5 Chapter Summary......Page 83
3.1 Introduction......Page 84
3.2 Logical Execution of a SELECT......Page 85
3.3 FROM Clause......Page 95
3.4.1 CROSS JOIN......Page 97
3.4.2 INNER JOIN......Page 98
3.4.3 LEFT OUTER JOIN......Page 99
3.4.4 RIGHT OUTER JOIN......Page 100
3.4.5 FULL OUTER JOIN......Page 101
3.5 Derived Tables......Page 102
3.6 Multi-Table Joins......Page 105
3.7 SELECT FROM Procedure Call......Page 111
3.8 LATERAL Procedure Call......Page 114
3.9 SELECT List......Page 116
3.10 Expressions and Operators......Page 117
3.10.1 IF and CASE Expressions......Page 120
3.11 Top 15 Scalar Built-in Functions......Page 122
3.12 Boolean Expressions and the WHERE Clause......Page 128
3.12.1 Comparison Predicates......Page 131
3.12.2 EXISTS Predicates......Page 132
3.12.3 IN Predicates......Page 133
3.12.4 BETWEEN Predicates......Page 134
3.12.6 LIKE Predicates......Page 135
3.12.7 Trigger Predicates......Page 137
3.13 GROUP BY Clause......Page 138
3.14 Aggregate Function Calls......Page 140
3.15 GROUP BY ROLLUP Clause......Page 146
3.16 HAVING Clause......Page 149
3.17 ORDER BY Clause......Page 150
3.19 FIRST and TOP......Page 152
3.20 NUMBER(*)......Page 154
3.21 INTO Clause......Page 155
3.22 UNION, EXCEPT, and INTERSECT......Page 156
3.23 CREATE VIEW......Page 160
3.24 WITH Clause......Page 163
3.24.1 Recursive UNION......Page 164
3.25 UNLOAD TABLE and UNLOAD SELECT......Page 170
3.26 ISQL OUTPUT......Page 175
3.27 Chapter Summary......Page 180
4.2 Single-Row UPDATE......Page 182
4.4 Logical Execution of a Set UPDATE......Page 184
4.4.1 Set UPDATE......Page 189
4.5 UPDATE WHERE CURRENT OF Cursor......Page 191
4.6 Chapter Summary......Page 194
5.2 Single-Row DELETE......Page 196
5.3 Multi-Row DELETE......Page 197
5.4 Logical Execution of a Set DELETE......Page 198
5.4.1 Set DELETE......Page 200
5.5 DELETE WHERE CURRENT OF Cursor......Page 203
5.6 TRUNCATE TABLE......Page 205
5.7 Chapter Summary......Page 209
6.2 Cursor FETCH Loop......Page 210
6.2.1 DECLARE CURSOR FOR Select......Page 214
6.2.2 DECLARE CURSOR USING Select......Page 218
6.2.3 DECLARE CURSOR FOR CALL......Page 219
6.2.5 FETCH Cursor......Page 221
6.3 Cursor FOR Loop......Page 222
6.4 Chapter Summary......Page 225
7.1 Introduction......Page 226
7.2 How MobiLink Works......Page 227
7.3 The MobiLink ASA Client......Page 231
7.4.1 CREATE PUBLICATION......Page 232
7.4.2 CREATE SYNCHRONIZATION USER......Page 234
7.4.3 CREATE SYNCHRONIZATION SUBSCRIPTION......Page 235
7.4.4 The DBMLSYNC Command Line......Page 236
7.4.5 SYSSYNC and Publication Defaults......Page 241
7.5 The MobiLink Server......Page 243
7.6.1 Connection-Level Scripts......Page 244
7.6.2 Session-Level Scripts......Page 245
7.6.3 Table-Level Scripts......Page 247
7.6.4.1 Handling Uploaded Inserts......Page 248
7.6.4.2 Handling Uploaded Updates......Page 249
7.6.4.3 Handling Uploaded Deletes......Page 250
7.6.4.4 Handling Upload Conflicts......Page 251
7.6.4.5 Handling Upload Errors......Page 255
7.6.4.6 Downloading Inserts and Updates......Page 258
7.6.4.7 Downloading Deletes......Page 261
7.6.4.8 Handling Download Errors......Page 264
7.7 The MobiLink System Tables......Page 269
7.8 MobiLink Monitor......Page 273
7.9 Chapter Summary......Page 275
8.2 BEGIN Block......Page 276
8.3 Exception Handler......Page 279
8.4 Assignment Statement......Page 282
8.5 IF Statement......Page 283
8.6 CASE Statement......Page 284
8.7 WHILE Loop......Page 285
8.8 EXECUTE IMMEDIATE......Page 286
8.9 CREATE PROCEDURE, CALL, and RETURN......Page 289
8.10 CREATE FUNCTION......Page 295
8.11 CREATE TRIGGER......Page 299
8.12 CREATE EVENT......Page 308
8.13 TRIGGER EVENT......Page 316
8.14 CREATE VARIABLE......Page 319
8.15 Chapter Summary......Page 320
9.1 Introduction......Page 322
9.2 Options......Page 323
9.3 Transactions......Page 328
9.4 Savepoints and Subtransactions......Page 335
9.5.1 SIGNAL and RESIGNAL......Page 339
9.5.2 RAISERROR and CREATE MESSAGE......Page 342
9.5.3 ROLLBACK TRIGGER......Page 348
9.6 Locks......Page 351
9.7 Blocks and Isolation Levels......Page 354
9.7.1 Isolation Level 0......Page 355
9.7.2 Isolation Level 1......Page 358
9.7.3 Isolation Level 2......Page 361
9.7.4 Isolation Level 3......Page 364
9.8 Deadlock......Page 370
9.9 Mutexes......Page 374
9.10 GRANT CONNECT......Page 376
9.10.1 Table Privileges......Page 379
9.10.2 View Privileges......Page 382
9.10.3 Execution Privileges......Page 384
9.10.4 Special Privileges......Page 385
9.10.5 GRANT GROUP......Page 387
9.11 Logging and Recovery......Page 390
9.12.1 Full Offline Image Backup......Page 394
9.12.2 Full Online Image Backup......Page 396
9.12.3 Differential Online Log Backup......Page 399
9.12.4 Incremental Online Log Backup......Page 400
9.12.5 Live Log Backup......Page 401
9.13 Restore......Page 402
9.14 Validation......Page 408
9.15 Chapter Summary......Page 411
10.1 Introduction......Page 414
10.2 Request-Level Logging......Page 415
10.3 Index Consultant......Page 423
10.4 Execution Profiler......Page 428
10.5 Graphical Plan......Page 431
10.6.1 File Fragmentation......Page 436
10.6.2 Table Fragmentation......Page 438
10.6.3 Table Reorganization......Page 443
10.6.4 Index Fragmentation......Page 444
10.6.5 Index Reorganization......Page 447
10.6.6 Database Reorganization with Unload/Reload......Page 448
10.7 CREATE INDEX......Page 452
10.8 Database Performance Counters......Page 458
10.9 Tips and Techniques......Page 461
10.10 Chapter Summary......Page 468
Index......Page 470