The Practical SQL Handbook: Using SQL Variants (4th ed.)
The books introductory text on SQL is clear and concise. I also found its treatment of normalization to be as close to perfect as can be with one exception: It doesn't tell when you can go too far with normalization. In an introductory text this is acceptable, and perhaps wise considering what many new to relational databases consider acceptable database design.
And while the introductory chapter is great, the chapters on selects and joins is so clear and useful that I would even call it exciting. The terrific thing about this book is when you have finished reading it you should come away with a feel for how the underlying DB actually works and what it is doing to produce the data for you.
I personally found this book very useful, even though I am using MySQL for the application I'm writing. But the feature set that MySQL chooses to support will logically limit the usefulness of the this book for the MySQL user. Programmers developing for Postgres, Firebird, and others will obviously get much more out of the book and its treatments on subqueries and views than will MySQL users.
One thing that did turn me off is the inclusion of a CD-ROM. The CD has a copy of Sybase for the user to work with. I don't need to explain that the internet is a superior place to put such things. That said, at least it wasn't glued to the back cover (a pet peeve) and was instead bound into the book like a magazine reply card. Many publishers perceive that they can charge more for a book that has a CD, but I just find it annoying and wasteful. But that's hardly a reason not to buy this book and place it on your bookshelf in a prominent position, not on the bottom ghetto shelves next to the stack of paper for your printer.
In short, those looking for an book about SQL, that won't teach them bad habits would be well served by this book (and likely by its sister book, The Practical SQL Handbook: Using Structured Query Language by the same authors) and those who think they know SQL will find it a useful text to have handy as well.
You can purchase The Practical SQL Handbook: Using SQL Variants from bn.com. Slashdot welcomes readers' book reviews -- to submit yours, read the book review guidelines, then visit the submission page.
I note that this is the 4th edition - is this one of those times that the sequel is better than the original?
Tom.
Oh arse
I read an earlier edition and have a very high opinion of it. It's not an intro to database programming, but it will get you from nothing to very far into SQL.
I have the 3rd edition and was actually flipping through the 4th edition a couple of days ago at the bookstore. I honestly didn't see any big differences at all, certainly not enough to justify buying another copy.
It came as news to me, but the author is a SQL god so I guess it must be true.
Has anyone ever read the SQL for Smarties series (I think there are two)? I 've heard some good things about them and am curious what your reactions are.
Honestly, that is the most pathetic argument I've ever heard in a review - it would be more reasonable if you had said "they didn't provide a CD but made it available for download. This will be a major irritation for modem users, and there is no reason why they couldn't have shipped it with the book."
As pretty much the local DBA-by-default among the developers here, I would say that having this manual, or an earlier edition similar to it, in the hands of the average programmer is invaluable. It gives them the basics of SQL theory across the multiple databases we work with and reduces the number of SQL-related questions I have to deal with.
For DBAs and advanced SQL programmers, however, I would recommend database-specific manuals that give greater insight than an overview text such as this, as this type of manual is unavoidably poor in the more important aspects of query optimization. Jack of all trades and master of none, as the case usually is.
Decent review, BTW (+1 INTERESTING, article moderation)
The CD has a copy of Sybase for the user to work with.
A free coaster!
The opposite of progress is congress
I'm just getting into SQL myself - at least I've got perl talking to a mysql database
During a web-search for help with SQL, I came across a discussion, which said that SQL had many limitations (I don't have the link anymore.)
I've found SQL reasonably powerful so far, but obviously I'm new to this stuff.
Can anybody point out the areas that SQL is lacking in ? (and maybe where new progress is being made.)
Just interested.
Cheers.
SQL-92 has much better syntax than SQL-89. I just wish more of it was implemented. MS SQL-Server actually does a better job of it than even Oracle. Compare
Select A.*
From A,B
Where A.MayorName is not null
and A.CityID = B.CityID
and B.TaxRate > 5
vs.
Select A.*
From A JOIN B
ON (A.CityID = B.CityID)
Where A.MayorName is not null
and B.TaxRate > 5
The major difference is that the join is explicityly removed from the filtering done in the where cluase. This makes queries much easier to read. Queries can get extreamly complex and when you have something like 6 joins you will soon appreciate the new syntax.
This book sounds interesting so I will be checking it out!
--Peter
www.cgisecurity.com/lib Has some good papers on sql security.
Believe me, if I started murdering people, there would be none of you left.
Structured Query Language
The only deadtree book I've read on SQL is:
A First Course in Database Systems (2nd Edition)
- Jeffrey D. Ullman, Jennifer D. Widom
I found that it covers almost everything I needed, with a no-nonsense approach (no "CheckPoints", long pointless blurbs, or long code listings).
Although written for the academic, it didn't stop me from reading mostly the second half of the book first (the SQL stuff), and reading some theory when I wanted to.
The SQL it covers is pretty standard stuff that works with most databases (except for MySQL at the time I read it, some ACID principles couldn't apply). The specific details for each databases can be picked up by reading online docs.
If you visit SE-asia, check out their bookstores where you can find tons of "mainland china" editions of these classics that cost a tenth of the price as the real deal.
I don't want to start the "is MySQL a real RDBMS" debate again. Well, maybe. Anyway, it seems a little strange for a discussion of advanced SQL to center around MySQL. The only serious defense I've heard for MySQL is that it handles very simple queries more quickly than other engines. If you're a serious doing a database app that requires you to think about normalization, you probably need a database that's smart enough to optimize a complicated query.
SQL
/S Q L/ An industry-standard language for creating, updating and, querying relational database management systems.
/see'kw*l/), was just another unofficial name for a precursor of SQL. However, the IBM SQL Reference manual for DB2 and Craig Mullins's "DB2 Developer's Guide" say SQL _does_ stand for "Structured Query Language".
SQL was developed by IBM in the 1970s for use in System R. It is the de facto standard as well as being an ISO and ANSI standard. It is often embedded in general purpose programming languages.
The first SQL standard, in 1986, provided basic language constructs for defining and manipulating tables of data; a revision in 1989 added language extensions for referential integrity and generalised integrity constraints. Another revision in 1992 provided facilities for schema manipulation and data administration, as well as substantial enhancements for data definition and data manipulation.
Development is currently underway to enhance SQL into a computationally complete language for the definition and management of persistent, complex objects. This includes: generalisation and specialisation hierarchies, multiple inheritance, user defined data types, triggers and assertions, support for knowledge based systems, recursive query expressions, and additional data administration tools. It also includes the specification of abstract data types (ADTs), object identifiers, methods, inheritance, polymorphism, encapsulation, and all of the other facilities normally associated with object data management.
The emerging SQL3 standard is expected to be complete in 1998.
According to Allen G. Taylor, SQL does _not_ stand for "Structured Query Language". That, like "SEQUEL" (and its pronunciation
Cruise TT
Also, increasing the "perceived value" of the book is porbably only part of the story. Undoubtedly AW got some kind of consideration from Sybase for advertising their product this way.
sPh
According to Daniel K. Benjamin's "Oracle 9i New Features For Administrators Exam Guide," Oralce 9i introduces:
Oracle has a lot of problems, but standards conformance is not one of them. Oracle is one of the few databases to have certified with NIST for SQL-92.
It is not a mispronunciation.
Do you call DOS Dee-oh-es?
Do you call CMOS, or cee-em-oh-es?
How about arr-ay-eye-dee?
There are many others. All are fine, however. Acronyms, in the techical world, are used so the user does not have to say a bunch of words. Wouldn't it then be silly to have to spell each letter out?
If the use of an acronym is for ease of use, its pronunciation should follow suit.
Some acronyms are easier spelled than pronounces. Exampli gratia, PC-MCIA*. Also, there those that are easier pronounced than spelled. For example, RAID. There are even those that are better as a mixture. Such as MS-DOS.
But some, stand on both sides of the line. They are both easy to spell, and to pronounce. Both are easy, and people are free to use whichever one they are more comfortable with. I think the most common one of those is SQL.
PostgreSQL, is spelled, post-gress-que-ell, because post-gress-sequel, is harder to pronounce, and doubles the "s".
What really ticks me off, is people who say dah-tuh(-base), as opposed to day-tuh(-base). IMNSHO, "Dah" is incorrect, and is a clear sign of a loser.
* People Can't Memorize Complex Industry Acronyms
Have you read my journal today?
If you want to learn SQL, I suggest the following:
Get a copy of whatever database you're going to use. Microsoft SQL Server is actually really easy to configure and use and has some great graphical tools. If anyone knows of some similar graphical tools for an OSS database, please let me know.
Next, look at a database that someone else has written and attempt to manipulate the data through queries.
The best book I've actually purchased for SQL is "Transact-SQL Programming" by O'Reilly. If you are working on a Microsoft database, this book is a great companion to the built-in help system in Query Analyzer.
Amazing magic tricks
There's a big difference between SQL and DOS or RAID...VOWELS!
Joe Celko's SQL for Smarties
This thing covers all the basics, theory, and advanced topics I have ever asked of it. It will really take your SQL to a whole new level.
sPh
Closed source, proprietary.
Why not Postgres 7.2 for the Linux crowd, and Firebird (Open Source version of Borland's Interbase db) for the Windows crowd.
Lots of graphical tools available, and not that difficult to set up (compared to Oracle, anyway).
Both implement all features that a modern relational database are supposed to support.
Good point. I didn't think of that. Let me try again.
Do you call it scuzzy or es-cee-es-eye?
Do you say idd, or eye-dee?
The former has no vowels in the first syllable, yet it is still pronounced as a word.
The latter starts with a vowel, though it is spelled out. Granted it is not a real acronym, but I think it makes the point.
Have you read my journal today?
Thanks for warning mr. lone gunmen.
SQL != SEQUEL
Although SQL is largely derived from it, SEQUEL was the query language of IBM's first Relational Data Base Management System, System/R, dating back to the mid-1970's. (IBM's second --and current -- RDBMS was creatively named DB2.) So pedantic old farts like me are careful to distinguish between the two and pronounce SQL as ess kyoo ell to avoid confusing it with its more primitive predecessor, SEQUEL (though it's not like there is any real chance of confusion these days).
I am curious about what books or resources other people have used to learn SQL. I got my start in SQL using the book LAN Times guide to SQL. It was a really good book.
Most of us have matched set coasters with an AOL theme.
And learning T-SQL is a good idea if you want to work for someone who uses SQL Server. (Which is a lot of people- so more power to you)
But lets say you want to run a database for yourself or you are a smaller company. Then I would not recommend worrying too much about learning a variant of SQL tied to an expensive propietary system. (SQL Server only runs on MS NT or 2000- and so you've got server licensing, db server licensing and then seat licenses for everyone who will connect to the db)
At my small company we looked at expanding a product so we priced a new server- and then SQL Server licenses for that server and 200 users. The licensing on the software was much more expensive than the hardware we wanted to buy.
Our solution? We are going w/PostgreSQL. It has some very nice visual tools for management. It has good ODBC support. And it has most of the capability that SQL Server has. Enough to justify taking advantage of the monetary savings.
And Oracle? Forget it- more expensive than SQL Server.
Granted there are businesses out there where the cost of Oracle or SQL Server is more than justified- but those huge companies are a minority of the business world. There are many more like us- not huge but we need good RDB systems.
.
It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
This is horrible - no sample chapter link, no table of contents...just a lot of MySQL disclaimers. That doesn't cut it. How well this book's material covers Oracle, MS SQL Server, Sybase, DB2 (and the above mentioned DBs) is important. What's in the book, stupid?
Don't pull another "Lone Gunmen" -- the book hasn't made it to this time zone yet!
Have you read "SQL for Smarties" by Joe Celko?
NONONONO
It is not Scuzzy...it is
SEXY
(remeber that one?)
Open Source Identity Management: FreeIPA.org
According to many dictionaries, it's not really considered strictly an acronym unless it is easily pronouncable; otherwise, it's just an abbreviation. Personally, if it's an abbreviation where the letters are the first letters of most of what it's abbreviating, I call it an acronym whether it's pronouncable or not.
As far as what to call "SQL", I think most of us are intelligent enough to know what someone means if they say either "ess cue ell" or "sequel".
Please consider making an automatic monthly recurring donation to the EFF
No point in me re-writing what this guy wrote.
a developer uninterested in Oracle, MS-SQL, Sybase or Informix
OK, so you're not interested in the DB of choice of 90% of the dev. population. Fine. But then it begs the question: why are you writing this review?
I think we'd all could benefit from the opinion of someone that has used at least 2 or 3 RDBMSs!
Your review reminds me of a Woody Allen quote: I took a speed reading course, then I read War and Peace. It's about Russia.
Better luck next time!
there's no place like ~
Posted by chrisd...Continuing the grand tradition of reviewing computer texts sent to us by publishers, Slashdot author chrisd has read the book The Practical SQL Handbook....
Continuing the grand tradition started by Elmo (the muppet) of speaking the 3rd person about oneself, chrisd introduces his own review this way.
Speaking in the third person can indicate mental illness, such as split-personality disorder. Imagine this scene on Sesame Street:
"Hey Elmo, how are you feeling today?"
"ELMO WANTS TO HURT PEOPLE!"
Or how about this?:
"Hey chrisd, what do you think of Nvidia's latest video card offerings?"
"CHRISD WANTS TO HURT PEOPLE!"
Watch out taco!
I did google for those. I also bothered to read the project statuses for each one. PostgreSQL-R critically lacks:
Whether they support a Master-Master configuration or not (which, you'll note, is not even mentioned on the site), it's not near finished enough to compete with Sybase et al. in this particular, but important area.
-l
Help cure AIDS, cancer, and more. Donate your unused computer time to worldcommunitygrid.org. Join Team Slashdot!
The first ime I was tasked with creating a more complex database I read a book called "Database Design for Mere Mortals" it really helped out.
1 9/ qid=1024686302/sr=8-1/ref=sr_8_1/102-8984857-99665 49
I recommend it to anyone getting into database work.
http://www.amazon.com/exec/obidos/ASIN/02016947
I do wish I had bought California real estate when it could be had for 5 figures. But I thought it was too high....
As long as you specify the tables involved, the DB engine can easily figure out the primary join paths (if you set it up right). It seems to me that is better factoring than to repeat the relationships over and over.
Only when you are doing something different or odd should the joins need to be explicitly stated, and only incrimentally. (I know some DB's already support something like this, but it should be standardized IMO.)
Then again, if we are going to change SQL, then perhaps overhaul it completely (another thread below).
Table-ized A.I.
why did some moron mod this down and give it a troll rating? he makes a perfectly good observation asking a perfectly good question.
(* Exactly. Poor design is not an excuse to blame SQL. SQL is math. Can math solve bad design? *)
But there are different ways to "math" the same thing. For example, Relativity and Quantum Physics may solve certain problems, but sometimes old fashion Newtonian physics can do it quicker, have a shorter learning curve, and be 99.99999999 percent as accurate.
If I replaced SQL, here is some draft suggestions:
http://geocities.com/tablizer/relat2.htm
My biggest complaint is that SQL is too nested-based, whereas, I would rather see it be reference-based. Graphs are more general-purpose than trees. Plus, being able to isolate the name-space into smaller chunks would be helpful IMO.
Table-ized A.I.
I don't complain about moderation much but sometimes you can only take so much.
I would love to here from whoever moderated my post as Flamebait and have them explain some reason for that. There's nothing I said that isn't accurate and parts of it are posted all over this thread.
I guess I committed the cardinal sin of posting something that did not toe the party line. How freaking pathetic.
I like the moderation system and I like to moderate- but some times I just get pissed when some idiot who knows absolutely nothing mods someone down.
I think modding down should burn 2 points and modding someone up should burn 1. Too many people are way too free w/off topic, redundant, troll, etc.
So to the faceless, ignorant moderator of my post let me just say - You Suck.
(yeah - its friday I've got some time on my hands and I do feel better now. That's worth a little karma)
.
It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
By the way, you use far too many commas to be correcting others' language.
:-)
I believe you mean "comments". I was not correcting their language. As opposed to this comment, in which I am correcting your language.
You should learn what commas are for and where they're appropriate,
I know what they are for. Regarless of that, I use them when I think a pause is needed to understand the statement.
because you don't come off as intelligent as you appear to think you are.
I never intended to come off as intelligent. Maybe its just a by-product.
I do mean to come off sounding sure of myself, because I am.
But I think the most telling mistake you make is misspelling "exempli gratia."
Good catch! When I re-read the comment before posting it, I didn't see that. The only mistake I made was a typo.
There's nothing funnier than some misspelling the latin they use to appear intelligent.
Well, I used it because I used to get mixed up in the way EG and IE were used. When I learnt what they meant, I found it "fun" to spell them out.
I must say, that your comment is rather arrogant. "Mister...." You ought to calm down before posting comments.
Also, people do not have to pronounce words in any canonized form. They pronounce words merely to get the point across. I correct (some) others when they use an adjective instead of an adverb. Some people like it, other's just repeat the incorrect word. They are trying to make a point that people speak to get the point across, not to speak correctly. Though it still bothers me to hear the incorrect usage.
Have you read my journal today?
I first learned SQL from an earlier edition of that book (Probably the third.). A coworker borrowed it and kept it when he left for another job.
If you want to learn SQL, buy that book, and don't loan it to others.
No data, no cry
Have you read "SQL for Smarties" by Joe Celko?
And for those just getting stated there is:
Instant SQL Programming - Joe Celko
As for keeping track of sql variants, I recommend Oreilly's *SQL in a nutshell*. It's helped me quite a bit developing a vendor neutral app that runs on both Oracle and SQL Server. (It covers Postgres and MySQL also).
As the reviewer posted, learning sql and learning the various flavours IMHO is too much for one book. The Nutshell book is a reference for advanced users.
SELECT * FROM accurate WHERE SQL != SEQUEL
No rows returned.
Actually, what most everyone knows as SQL and Sequel are the same thing, at least in the same sense that SQL-86, SQL-92, etc. are the same thing. (I.e. there are obvious enhancements, etc. to the language as time passed and it evolved, but the language itself is still what we think of as "sql".)
IBM changed the name from SEQUEL to SQL in the late 70's as SEQUEL was found to be an existing trademark.
-Bill
SlashSig Karma: Excellent (mostly affected by moderatio
Unless you are watching 60's StarTrek, then the correct pronunciation is dah-ta-bays'
Ahh, takes me back to the old days (1987). The first relational database I ever worked with was SEQUITUR, developed by Lee Felsenstein, the engineer who designed the breakthrough Osborne PC the first portable/lugable computer, (see http://www.obsoletecomputermuseum.org). I didn't know at the time how SEQUITUR performed its magic, but I figured out how to use it, and loved it. Felsenstein never marketed it well enough to compete with dBase or Paradox, but I think it was better than either of them. Many years later, when I took classes in MS-SQL, I began to see how it all fit together and evolved into something even more powerful.
Actually Transact SQL is not completly tied to M$ SQL Server.
You'll find it used with at least some versions of Sybase.
Remember M$ SQL Server's History (purchased from Sybase, indeed they were Paying Sybase royalties until 7 IIRC).
That being said, while I try and stick as closely to SQL89/92 as possible, I would say that TSQL with it's extentions is not nearly as much of a PITA as PL/SQL.
Bugs Bunny was right.
But I think you're right about the Microsoft connection - the original Microsoft/Sybase SQL Server version was released for OS/2 in 1988. So Microsoft actually succeeded in changing the global pronunciation of an acronym - now I *really* feel had!!
I guess it's probably because "fetch me that huzzy cable" sounds pretty stupid. :)
Like my post said, SQL is largely derived from SEQUEL, and the latter is the "more primitive predecessor" of the former; that's essentially the relationship you describe. And you're right about the reason for the name change (though the odd thing is that the conflict was with the name of an airplane -- IBM's lawyers must have been paranoid in those days). But we were discussing the name, and the pronunciation of the name. Check out the following document on the history of SQL:
You'll note that the originators of SEQUEL/SQL are very careful to use one term or the other depending upon which point in time they're discussing. That the name change corresponded to some pretty significant additions to the language is probably why in circles outside of the creator's group SEQUEL and SQL are often treated as separate but related entities. But whether or not they are the same language misses the point: they are two different names, and as the above article shows, SQL was named in the style of other three-letter-languages of the era like APL (by "squeezing the vowels out of SEQUEL"), and was pronounced accordingly. This is why old farts (especially IBMers and ex-IBMers) are quick to correct whippersnappers who pronounce it SEE kwell.
I use both join forms with SQL Server, and have finally gotten used to the explicit form. However, the Microsoft implementation is less than perfect:
- you can't use derrived tables
- you can't group one table and then join it to another
- there are also limitations in how you can use outer joins that will occasionally force you to use the old form.
Still, I find that it can improve the maintainability of SQL - especially with careful formatting:
select member.*,
member_customer.*
from member m
left outer join member_customer mc
on mc.id = mc.id
and mc.customer_id = 1
left outer join member_supplier ms
on mc.id = ms.id
left outer join member_preferences mp
on mc.id = mp.id
where m.state = 'IL'
You shouldn't be sure of yourself, because you're wrong.
I believe I am correct. And since, even if I am wrong, I believe I am correct, I can easily be content in feeling sure about myself.
Putting 4 commas in a sentence that should contain 1 at most doesn't clarify the sentence, it just makes you sound like an idiot.
Not to most people. I would say, that the vast majority of people do not know how to speak English correctly. And even from those, most don't care to.
Many times, I write in a way that resembles my speaking habits. So, if I would pause in a given spot, such as here, here, or here, or even here, I put in a comma. The "official" use of a comma is not so, but I don't care.
(It's "others just repeat," not "other's just repeat.")
You are correct. I didn't proofread it very well.
For someone so bothered when others mispronounce things (even when you're wrong about it like "database,") you don't have a very good grasp of the language yourself.
I have an excellent grasp of the language. Probably better than you. I think it comes with maturity.
Also, my being bothered by something, has no relation to my speaking habits. I have certain likes and dislikes.
Yeah, I'm pedantic about English, but I also know how to use it.
No, you're pedantic period. You are only using English because it was convenient.
By the way, it's much easier to "get the point across" when you use the language correctly.
That is amazingly incorrect. Only a fool would think that.
Considering that most people don't understand the difference between an adverb and an adjective, and may even try to correct you when you speak correctly, it is a wild claim to say that speaking correctly is better.
The purpose of language is to communicate a feeling verbally. It has also become the choice for the written expression, though not as dominant. Communicating correctly, is not always the same as communicating efficiently.
I don't see how you couldn't understand that.
Don't worry, in a few years you may actually mature, and it will all become clear.
Anyway, thanx, I needed a good laugh.
Have you read my journal today?
Ed, get a life. I call it "sequel" every chance I get and I teach my customers to do the same because it's easier for them to remember. As for SEQUEL, the language, who the heck still uses, much less *remembers* that fossil besides old pedantic farts... what a minute...
*** *** You're just jealous 'cause the voices talk to me... ***