Synopses & Reviews
MySQL and mSQL are popular and robust database products that support key subsets of SQL on both Linux and Unix systems. Both products are free for nonprofit use and cost a small amount for commercial use.Even a small organization or web site has uses for a database. Perhaps you keep track of all your customers and find that your information is outgrowing the crude, flat-file format you started with. Or you want to ask your web site's visitors for their interests and preferences and put up a fresh web page that tallies the results.Unlike commercial databases, MySQL and mSQL are affordable and easy to use. If you know basic C, Java, Perl, or Python, you can quickly write a program to interact with your database. In addition, you can embed queries and updates right in an HTML file so that a web page becomes its own interface to the database.This book is all you need to make use of MySQL or mSQL. It takes you through the whole process from installation and configuration to programming interfaces and basic administration. Includes reference chapters and ample tutorial material.Topics include:
- Introductions to simple database design and SQL
- Building, installation, and configuration
- Basic programming APIs for C, C++, Java (JDBC), Perl, and Python
- CGI programming with databases in C and Perl
- Web interfaces: PHP, W3-mSQL, Lite, and mSQLPerl
This book is all you need to make use of MySQL or mSQL, two popular, easy-to-use databases for UNIX systems that support key subsets of SQL. This book takes readers through the whole process of writing a program to interact with a database, from installation and configuration to programming interfaces and basic administration.
About the Author
Tim King is a semi-retired corporate finance specialist whose interest in cooking dates back to high school. Since then he has traveled to all 50 states, most of Europe, much of Asia and most of Mexico, always on the lookout for the next great restaurant and dish. This recipe collection numbers in the hundreds. For years family and friends have lobbied for a book containing his favorites. Beyond Scrambled Eggs is that book.George Reese is the founder of two Minneapolis-based companies, enStratus Networks LLC (maker of high-end cloud infrastructure management tools) and Valtira LLC (maker of the Valtira Online Marketing Platform). Over the past 15 years, George has authored a number of technology books, including MySQL Pocket Reference, Database Programming with JDBC and Java, Java Database Best Practices, and the upcoming Web Architecture and Programming in the Cloud. Throughout the Internet era, George has spent his career building enterprise tools for developers and delivering solutions to the marketing domain. He was an influential force in the evolution of online gaming through the creation of a number of Open Source MUD libraries and he created the first JDBC driver in 1996-the Open Source mSQL-JDBC. Most recently, George has been involved in the development of systems to support the deployment of transactional web applications in the cloud. George holds a BA in Philosophy from Bates College in Lewiston, Maine and an MBA from the Kellogg School of Management in Evanston, Illinois. He currently lives in Minnesota with his wife Monique and his daughters Kyra and Lindsey.
Table of Contents
Preface; Audience; Purpose; Using This Book; On MySQL and mSQL; Conventions Used in This Book; Comments and Questions; Acknowledgments; Getting Started with MySQL and mSQL; Chapter 1: Introduction to Relational Databases; 1.1 What Is a Database?; 1.2 What Is a Relational Database?; 1.3 Applications and Databases; 1.4 MySQL and mSQL; Chapter 2: Database Design; 2.1 Database Design; 2.2 Normalization; 2.3 A Logical Data Modeling Methodology; 2.4 Physical Database Design; Chapter 3: Installation; 3.1 MySQL; 3.2 mSQL; Chapter 4: MySQL; 4.1 Design; 4.2 Installing MySQL; 4.3 Running MySQL; 4.4 Database Administration; 4.5 MySQL Utilities; 4.6 Performance Tuning; Chapter 5: mSQL; 5.1 Design; 5.2 mSQL Versions; 5.3 Installing mSQL; 5.4 Running mSQL; 5.5 Database Administration; 5.6 mSQL Utilities; Chapter 6: SQL According to MySQL and mSQL; 6.1 SQL Basics; 6.2 Creating and Dropping Tables; 6.3 SQL Datatypes; 6.4 Indices; 6.5 Sequences and Auto-Incrementing; 6.6 Managing Data; 6.7 Queries; 6.8 Extended Functionality; Chapter 7: Other Mid-Range Database Engines; 7.1 What Is "Free"?; 7.2 What MySQL and mSQL Lack; 7.3 PostgreSQL; 7.4 GNU SQL; 7.5 Beagle; 7.6 Making Comparisons; Database Programming; Chapter 8: Database Application Architectures; 8.1 The Client/Server Architecture; 8.2 Data Processing; 8.3 Object/Relational Modeling; 8.4 The Three-tier Architecture; Chapter 9: CGI Programming; 9.1 What Is CGI?; 9.2 HTML Forms; 9.3 The CGI Specification; 9.4 Important Considerations for CGI Scripts; 9.5 CGI and Databases; Chapter 10: Perl; 10.1 DBI; 10.2 An Example DBI Application; 10.3 Msql.pm; 10.4 MysqlPerl; Chapter 11: Python; 11.1 Basic Connectivity; 11.2 Dynamic Connectivity; Chapter 12: PHP and Other Support for Database-driven HTML; 12.1 Alternatives for Dynamic Content on the Web; 12.2 W3-mSQL; 12.3 PHP; 12.4 Embedded Perl; Chapter 13: C and C++; 13.1 The Two APIs; 13.2 Object-oriented Database Access in C++; Chapter 14: Java and JDBC; 14.1 What Is JDBC?; 14.2 Simple Database Access; 14.3 Dynamic Database Access; 14.4 A Guest Book Servlet; Reference; Chapter 15: SQL Reference; 15.1 MySQL SQL; 15.2 mSQL SQL; Chapter 16: MySQL and mSQL System Variables; 16.1 MySQL System Variables; 16.2 mSQL System Variables; Chapter 17: MySQL and mSQL Programs and Utilities; 17.1 MySQL Utilities; 17.2 mSQL Utilities; Chapter 18: PHP and Lite Reference; 18.1 PHP; 18.2 Lite; Chapter 19: C Reference; 19.1 MySQL C API; 19.2 mysql_affected_rows; 19.3 mysql_close; 19.4 mysql_connect; 19.5 mysql_create_db; 19.6 mysql_data_seek; 19.7 mysql_debug; 19.8 mysql_drop_db; 19.9 mysql_dump_debug_info; 19.10 mysql_eof; 19.11 mysql_errno; 19.12 mysql_error; 19.13 mysql_escape_string; 19.14 mysql_fetch_field; 19.15 mysql_fetch_field_direct; 19.16 mysql_fetch_fields; 19.17 mysql_fetch_lengths; 19.18 mysql_fetch_row; 19.19 mysql_field_seek; 19.20 mysql_field_tell; 19.21 mysql_free_result; 19.22 mysql_get_client_info; 19.23 mysql_get_host_info; 19.24 mysql_get_proto_info; 19.25 mysql_get_server_info; 19.26 mysql_info; 19.27 mysql_init; 19.28 mysql_insert_id; 19.29 mysql_kill; 19.30 mysql_list_dbs; 19.31 mysql_list_fields; 19.32 mysql_list_processes; 19.33 mysql_list_tables; 19.34 mysql_num_fields; 19.35 mysql_num_rows; 19.36 mysql_ping; 19.37 mysql_query; 19.38 mysql_real_connect; 19.39 mysql_real_query; 19.40 mysql_reload; 19.41 mysql_row_tell; 19.42 mysql_select_db; 19.43 mysql_shutdown; 19.44 mysql_stat; 19.45 mysql_store_result; 19.46 mysql_thread_id; 19.47 mysql_use_result; 19.48 mSQL C API; 19.49 msqlConnect; 19.50 msqlSelectDB; 19.51 msqlQuery; 19.52 msqlStoreResult; 19.53 msqlFreeResult; 19.54 msqlFetchRow; 19.55 msqlDataSeek; 19.56 msqlNumRows; 19.57 msqlFetchField; 19.58 msqlFieldSeek; 19.59 msqlNumFields; 19.60 msqlClose; 19.61 msqlListDBs; 19.62 msqlListTables; 19.63 msqlListFields; 19.64 msqlListIndex; Chapter 20: Python Reference; 20.1 Module: MySQL; 20.2 Module: mSQL; Chapter 21: Perl Reference; 21.1 Installation; 21.2 DBI.pm API; 21.3 Msql.pm API; 21.4 Mysql.pm API; Chapter 22: JDBC Reference; Colophon;