The Definitive Guide to MySQL, 2nd Ed.
The book has four sections: Introduction, Fundamentals, Programming and Reference. The Introduction begins with a brief introduction to databases, relational databases, ANSI 92, and how MySQL fits in to each of these. It also touches on the licensing for MySQL (commercial vs. non-commercial usage) and a version roadmap for past and future releases of MySQL. The roadmap is very helpful to know what features are present in the version of MySQL you may be using (or are planned for an upcoming release).
Next, Kofler sets up a rudimentary testing environment which is used through the rest of the book. He does an excellent job of outlining a decent development environment under both Unix and Linux without getting too bogged down in trying to describe every single user interface for accessing MySQL (those are described later in the book). It steps through setting up MySQL, Apache, Perl (with DBD and DBI), and PHP, and also adds phpMyAdmin as a graphical tool to administer the databases. The unit ends with a simple PHP script to handle an opinion poll. This all happens in the first 80 pages of the book.
FundamentalsThe next section expands on the basics learned in the first chapter. First is a chapter on the user interfaces available for using MySQL, starting with the MySQL command-line client, followed by an introduction to several graphical clients (including phpMyAdmin and MySQLCC). Database design is covered in the next chapter, starting with a brief overview of the theory in designing a relational database. First, second and third normal forms are introduced with examples, as are relations (1:1, 1-n, and n-n), data types, and indexes. Once the reader is armed with the theory, the book continues with how to create the tables in SQL, and covers using SQL to examine and manipulate data in "Introduction to SQL." "SQL Recipes" contains lots of useful scripts for handling interesting cases of SQL (like selecting data at random, pivot tables, creating a new table by copying, etc). A special section is devoted to the new InnoDB format, which brings transactions and integrity rules (foreign key constraints) to MySQL. "Security and Administration" complete the Fundamentals unit with topics on user-level security, backing up the data, and replication between two MySQL instances.
ProgrammingUnlike most books, the programming languages introduced in The Definitive Guide to MySQL aren't introduced with examples as though you have never programmed a computer before. (So beware, if you haven't; this is probably not the right book for you.) The examples start with useful code that assumes familiarity with the language. The examples are excellent, demonstrating how to efficiently get your code connecting to the database. The author covers PHP, Perl, Java, C and C++, and Visual Basic, C# and ODBC. PHP is the real star of the book, though, garnering a second chapter to expand on the earlier examples presented in the book, but the other languages (and ODBC) are given excellent treatment. Fans of these languages will be able to get their programs running with MySQL using the examples from the book.
ReferenceThe last 100 pages (not including the appendix, glossary and index) contain several references for MySQL. "The SQL Reference" covers the SQL commands that MySQL understands (along with what versions they are valid for), as well as system and session variables and data types. Coverage of the utilities that MySQL uses is in the "MySQL Tools" section. Lastly, the API reference rounds off the book with the functions and variables for each language in an easy-to-use reference. Whew!
Programmers will find excellent examples for linking their programs with MySQL, and developers will find the reference and examples extremely useful for taking their data from creation to deployment. I found this book easy to read and exceptionally useful. The author did the hard work of taking the documentation and sifting through it to bring the useful parts together clearly and concisely. Definitive indeed.
You can purchase The Definitive Guide to MySQL from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
There are several free SQL books available (one on MySQL, one on SQL in general, and a couple on PostgreSQL; use your browser to search within the text of the page for SQL). User-submitted reviews would be welcome on theassayer.org.
Find free books.
First, hold the book so the binding is resting on a hard flat surface (let's say a table), as if you are about to open it. Fold back the front and back covers so they are flush with the table.
(end view, ignore dots)Run your thumb up and down the crease where the covers meet the binding, helping them to lie flat.
Now take 8-15 pages from the front of the book and 8-15 from the back of the book and lie them flat, again running your thumb along the binding to help flatten them out. Continue this process inwards, continually flattening the pages out until you come to the middle of the book an do a final "press" down the middle.
I guess it depends on what you call "available technologies".
If you look at web hosting, you almost always see MySQL as "available" while PostgresSQL is a bit more rare.
That is, IMHO, why PHP is so popular... and the same goes for MySQL.
They are ubiquitous.
--Phillip
Can you say BIRTH TAX
What good is a textbook without a goddamn search function?
You have heard of an "index" correct?
They should be required to post the ISBN number with the review. In case you're wondering, it's 1590591445.
I'm lovin' it!
dominionrd.blogspot.com - Restaurants on
Interesting. Is there any theory on why mysql is popular to web hosts?
Simple. Plain old web server admins rarely know anything about databases. Anybody who knows how "real" databases work is gainfully employed at a lucrative job, not rebooting Linux boxes that host "About Me" web pages. Out of the whole dot-bomb debacle, the only people I know that are still employed (and still paid very well) are Oracle DBA's. They couldn't give two shits about dinky web servers when they're massaging terabytes of data on massive Sun boxes. I was a Oracle developer in a past life, and quite honestly, I couldn't bring myself to care about web stuff when I could be spending my time writing some kickass, recursive SQL that did fun things like migrate a US state's Medicare records (5 terabytes worth) from flat files from the green screens into Oracle. The web stuff was always given to "the new kid" to handle. And suffice to say, "the new kid" wouldn't know a database from a banana (and thought that MySQL was a database).
I don't respond to AC's.
Google for "Tutorial D" .. that's a replacement language by C. J. Date and others based on set theory rather than..whatever SQL is based on ..
Actually, you should read all the stuff on their site (www.dbdebunk.com) to see just what a sad state the DB industry is in right now.
Anyway, here's a taste of how Tutorial D makes things simpler.
In SQL if you want a set of all tuples in a relation, you type: "SELECT * FROM Relation". In a Tutorial D-like language you type just: "Relation".
If you want to extend the tuples with a new variable, in SQL you type "SELECT *, ColA+ColB AS Total FROM Relation". In Tutorial D you type "Relation EXTEND ColA+ColB AS Total.
Tutorial D is declarative, like writing a math equation.
SQL sucks so bad, it hurts.