Slashdot Mirror


The Practical SQL Handbook: Using SQL Variants (4th ed.)

Continuing the grand tradition of reviewing computer texts sent to us by publishers, Slashdot author chrisd has read the book The Practical SQL Handbook: Using SQL Variants and written up a review. If you are interested, read on ... The Practical SQL Handbook, 4th Edition, SQL Variant author Judith S. Bowman, Sandra L. Emerson, Marcy Darnovsky pages 512 publisher Addison Wesley rating 9 reviewer chrisd ISBN 0201703092 summary An indispensable introduction to SQL. This is probably one of the best books I've read for those new to SQL. It's the kind of book I wish I had many years ago when I was first learning about databases. The only problem is the SQL variants are not really for me, a developer uninterested in Oracle, MS-SQL, Sybase or Informix. That said, this is a minor part of the book and doesn't really detract from it, and I can even come up with any number of reasons why a developer would want to have that information. A comparative text would be useful by itself, but I think that trying to teach SQL and several SQL variants is too big a job for any one book.

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.

227 comments

  1. GHEY GHEY GAY GHEY GAY! by Stock+Quote+Troll · · Score: -1

    Not the first post. LNUX is Dying!

    --

    Market data is delayed 15 minutes. Please see quotes.nasdaq.com for up-to-the-minute data.
  2. Second Post Too? by Stock+Quote+Troll · · Score: -1

    No WAY! Please go outside after you take a shower you dirty hippies!

    --

    Market data is delayed 15 minutes. Please see quotes.nasdaq.com for up-to-the-minute data.
    1. Re:Second Post Too? by L0rdkariya · · Score: -1

      Very impressive. Your lightning-fast posting inspires me to greater heights.

      --
      The /. users are rep'd by 2 groups. Janitors, who post articles, and Trolls who bash them. These are
  3. I need some quotes, please. by Anonymous Coward · · Score: -1, Offtopic

    I need quotes for LNUX and WCOM. I have 30,000 shares of each I bought two years ago. How am I doing?

    1. Re:I need some quotes, please. by Jon+Katz+on+Tuesday · · Score: -1

      I'm here to help...

      Currently LNUX is trading down 0.11 to a lowly 0.90. WCOM is also down 0.09 to a said 1.28.

      30,000 shares of LNUX at 0.90 is $27,000 currently.
      30,000 shares of WCOM at 1.28 si $38,400.

      Assuming you purchased your shares on this date in the year 2000 when LNUX was right around $45, you would have invested $1.35 million for LNUX. WCOM was around $40, so you invested $1.2 million in WCOM.

      So in just two years you've lost just about $2.48 million in two completely loser companies.

      Analyst Advice: You should never forgive yourself for purchasing LNUX. With no business model and a lack of key upper management, the stock was doomed from the start. I say, Sell! Sell! Sell! Take what you have and invest it in a real company. I suggest MSFT.

    2. Re:I need some quotes, please. by Anonymous Coward · · Score: -1, Offtopic

      would the real jon katz please stand up? that post was way too short and concise to be worthy of the jon katz name. you should be truly ashamed.

    3. Re:I need some quotes, please. by Anonymous Coward · · Score: -1, Offtopic

      Symbol
      Last Trade
      Change
      Volume

      LNUX
      11:28am
      0.8609
      -0.1491
      -14.76%
      143,800

    4. Re:I need some quotes, please. by TrollBridge · · Score: -1

      I'm not an ANALyst, but my suggestion is to put a gun in your mouth and blow your brains out in front of your family.

      Frankly I'm surprised they didn't have you killed as soon as they found out that you blew your load on LNUX and WCOM, but I guess they were holding out for you to do the job yourself. Don't disappoint them yet again.

      --
      There's a Mercedes gap too. I want one and can't afford one, but it's not government's job to do anything about it.
    5. Re:I need some quotes, please. by Jon+Katz+on+Tuesday · · Score: -1

      hmmmmm...well...let me say this...

      In this post 911 world we live in, technology has become invaluable to us and our lives in which we live. We make so many strides to compare how our lives are now and what they used to be. Like for example, Currently LNUX is trading down 0.11 to a lowly 0.90. WCOM is also down 0.09 to a said 1.28. This can mean a lot to someone who lives with technology and the human will to derive life.

      If you think about all the time we spend each day doing things for our technology - and don't really realize how Columbine changed everyone's life. I can give you an example, two years ago I purchased 30,000 shares of LNUX at $45 for a total investment of $1.35 million. It is now worth $27,000. This is a direct result of the technology of the stock market doing it's evil post-911 deeds. In the same sense, I purchased 30,000 shares of WCOM at $40 for an investment of $1.2 million. It is now worth $38,400. I lost a lot of money in two companies that have no outlook and are surely to be de-listed soon.

      Thank You.

    6. Re:I need some quotes, please. by Anonymous Coward · · Score: -1, Offtopic
    7. Re:I need some quotes, please. by L0rdkariya · · Score: -1

      Note:
      I agree with this post.

      --
      The /. users are rep'd by 2 groups. Janitors, who post articles, and Trolls who bash them. These are
  4. Is the sequel better? by tomknight · · Score: 5, Funny

    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
    1. Re:Is the sequel better? by alapalaya · · Score: 2, Funny

      the sequel is better than the original

      or, maybe:
      the SQL is better than the original

      (OMG, I need an holiday....!) :)
      Cheers.

      --
      667 The Neighbour of the Beast
    2. Re:Is the sequel better? by tomknight · · Score: 1

      At least someone got it. Okay, maybe I should have added a smiley, but I really didn't think that was necessary. It seems I was wrong....

      Tom.

      --
      Oh arse
    3. Re:Is the sequel better? by Deosyne · · Score: 1

      We're supposed to be smart, not bright. ;) I guess all code and no play makes Slashy a slow boy.

    4. Re:Is the sequel better? by wackysootroom · · Score: 2

      No, But the SQL is much better!

    5. Re:Is the sequel better? by sphealey · · Score: 1
      Funny. But please note that it wasn't until 1992 or so that the US English pronunciation of "SQL" changed from "ess-que-ell" to "see-quill". And I have never understood why that happened.

      sPh

    6. Re:Is the sequel better? by bhsx · · Score: 2, Funny

      It's actually the first book, then they're releasing the 5th and 6th versions. We'll see the 1st, 2nd and 3rd in about 25 years.

      --
      put the what in the where?
    7. Re:Is the sequel better? by zootread · · Score: 1

      I hear a lot of people call it sequel, but I just can't draw myself to do it. I just say the letters S-Q-L. Sure that's an extra syllable, but it just sounds better. Saying "sequel" just seems silly somehow.

      --
      Zoot!
    8. Re:Is the sequel better? by MrCreosote · · Score: 1

      Personally, I prefer just one syllable - squeal.

      --
      MrCreosote Meow!Thump!Meow!Thump!Meow!Thump! "You're right! There isn't enough room to swing a cat in here!"
  5. Well-done book by lseltzer · · Score: 2, Interesting

    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.

    1. Re:Well-done book by randalf · · Score: 1

      I still use the second edition, purchased in 1990. It has served me well in many SQL variants -- and has kept me away from writing non-portable code. Great book!

    2. Re:Well-done book by bshort404 · · Score: 1

      Indeed, I also have the second edition and its great.

      --
      -B
    3. Re:Well-done book by Skweetis · · Score: 2

      Have to agree with you there. This book, along with a pretty sad looking copy of "Programming Perl", never makes it from my desk back to my bookshelf because I refer to it regularly for the obscure bits of the syntax that I can never remember. Now that the fourth edition is out I'll have to upgrade, since edition three is in about four pieces because the binding broke on the frequently used pages.

  6. hello! by cmdr_shithead · · Score: -1

    When the union's inspiration through the workers' blood shall run,
    There can be no power greater anywhere beneath the sun;
    Yet what force on earth is weaker than the feeble strength of one,
    But the union makes us strong.

    CHORUS:
    Solidarity forever,
    Solidarity forever,
    Solidarity forever,
    For the union makes us strong.

    Is there aught we hold in common with the greedy parasite,
    Who would lash us into serfdom and would crush us with his might?
    Is there anything left to us but to organize and fight?
    For the union makes us strong.

    It is we who plowed the praries; built the cities where they trade;
    Dug the mines and built the workshops, endless miles of railroad laid;
    Now we stand outcast and starving midst the wonders we have made;
    But the union makes us strong.

    All the world that's owned by idle drones is ours and ours alone.
    We have laid the wide foundations; built it skyward stone by stone.
    It is ours, not to slave in, but to master and to own.
    While the union makes us strong.

    They have taken untold millions that they never toiled to earn,
    But without our brain and muscle not a single wheel can turn.
    We can break their haughty power, gain our freedom when we learn
    That the union makes us strong.

    In our hands is placed a power greater than their hoarded gold,
    Greater than the might of armies, magnified a thousand-fold.
    We can bring to birth a new world from the ashes of the old
    For the union makes us strong.

  7. Not much different. by Anonymous Coward · · Score: 2, Informative

    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.

    1. Re:Not much different. by Anonymous Coward · · Score: 0

      ISn't there a dodgy pun there somewhere?

  8. Very controversial book by PhysicsGenius · · Score: 1, Interesting
    I found this book very helpful in building the database I'm working on but I was surprised at the vehemence the author displayed when discussing MySQL and PostgreSQL. I use those two workhorses all the time but the author said that they were "only good for crappy websites and e-commerce wannabees". I thought he was referring to the well-known stability issues but later on he goes into great detail on how each of them has broken the SQL standard pretty badly.

    It came as news to me, but the author is a SQL god so I guess it must be true.

    1. Re:Very controversial book by Entrope · · Score: 1

      Accusing MySQL and PostgreSQL of "breaking" the SQL standard is a pretty weak accusation. Commercial databases have used non-standard syntax (both for features described by the standard and features that are not) and have not supported all of the standard-defined language year in and year out. Such failings are not limited to open source databases. MySQL's lack (until fairly recently) of transactions and sub-selects is a much more interesting criticism, as would be PostgreSQL's lack of clustering or replication support. Heck, even a performance critique would be more valid than saying that MySQL and PostgreSQL are not conformant with every bit and every optional feature of the SQL standard.

    2. Re:Very controversial book by gazbo · · Score: 1

      Shit! PostgreSQL can't do replication? Oh no, the database we've had replicated for the last 12 months must have been an illusion, and in fact the project was never finished. Argh!

    3. Re:Very controversial book by Betcour · · Score: 1

      I'm curious : where did you find stuff about PostgreSQL replication ? Never found it in the doc. Can you point some URL ?

    4. Re:Very controversial book by Anonymous Coward · · Score: 0

      Uh... have you tried this?
      http://www.google.com/search?hl=en&ie=UTF-8 &oe=UTF 8&q=postgresql+replication

    5. Re:Very controversial book by Entrope · · Score: 1

      What third-party software did you add to PostgreSQL to make it do that? The core distribution does not support it, and there is no replication solution that is particularly blessed by the PostgreSQL core developers.

      While it is possible to add layers to support replication of a database, until the replication is provided or endorsed by the main distribution, it can hardly be said to be supported by PostgreSQL itself.

    6. Re:Very controversial book by gazbo · · Score: 4, Informative
      Although you can do some replication work yourself, I'm happy to concede that if you want the work done for you you need thrid party software. To say that Postgres doesn't support it is a bit misleading though.

      Postgres doesn't support automated replication in the core code but there are open source plugins that will handle this. Equally, PHP does not support gzip functions as part of the core language, but should this be highlighted as a shortcoming of the language? No - just install zlib et voila!

      I don't care whether the automated tools come with the core download or not - if they're freely available and work cleanly with the code (not dirty hacks) then there is no problem. Nested subqueries in MySQL is a problem as there was no (as far as I could google) patch I could apply that would enable this functionality. This is not true for pg replication.

      A chapter on the shortcomings of Postgres wrt replication would be half a page long and consist of a list of URLs, saying "install one of these".

    7. Re:Very controversial book by jomagam · · Score: 1

      I love how MySQL describes itself as implementing an extended subset of the SQL standard.

      ps: Why was the parent post a troll ?

    8. Re:Very controversial book by Luyseyal · · Score: 2

      you mean like:
      http://dmoz.org/Computers/Software/Databases/Pos tg reSQL/Replication/
      http://techdocs.postgresql.org /oresources.php#repl ication

      None of these appear to have Master-Master replication support.

      -l

      --
      Help cure AIDS, cancer, and more. Donate your unused computer time to worldcommunitygrid.org. Join Team Slashdot!
    9. Re:Very controversial book by Anonymous Coward · · Score: 0

      This message is a troll because "PhysicsGenius" has never read the book and is making stuff up. Look at his record, he does this all the time.

    10. Re:Very controversial book by Anonymous Coward · · Score: 0
      Try this: PGReplicator -- which claims to support:

      Master/Slave, Update Anywhere , Workload Partitioning (and more) data ownership models are supported.


      It's written in TCL and runs outside the database, but it should be worth a look until the "proper" replication support is finished.
    11. Re:Very controversial book by mbogosian · · Score: 1

      I'll grant that I have yet to read the text, but what database implementation hasn't ``broken'' SQL by providing extended APIs & semantics wherever (in)appropriate?

      At least with Postgres, each SQL command's documentation has a dedicated Compatibility section indicating it's relative standards compliance (often times the functionality of a command will, in Postgres, be a superset of that defined by SQL92, so if you just stay within the bounds of SQL92, you should be fine for most nonesoteric commands). I've found Postgres's documentation to be quite refreshing in this respect. I know exactly where I'm going off the beaten path and how far before I even try to use the command in an implementation. I wish Oracle's docs were that lucid.

      I'll admit, you probably wouldn't want to build and enterprise on-line retail site which has millions of transactions per month with a few instances of Postgres, but the author's comments makes me wonder how much time he's actually spent with these tools.

    12. Re:Very controversial book by Anonymous Coward · · Score: 0

      What the fuck are you on about, you stupid cocksucker?

      GO TO THE FUCKING POSTGRESQL WEBSITE AND LOOK UP REPLICATION. Better yet, post an "Ask Slashdot" like so many other lazy ass munching wanna-be's around here.

      Fucking moron.

  9. SQL books by pizza_milkshake · · Score: 1

    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.

    1. Re:SQL books by jeffphil · · Score: 1

      I've only read the first one, but it is excellent. It goes deep into Normalizing data, tells you how to optimize queries to minimize table scans, and goes in depth to how to get the most out of SQL.

      It was based more on SQL-89 standard at the time and aluded to SQL-92 changes, which this is probably where the new one picks up.

    2. Re:SQL books by bill_guts · · Score: 1

      I've read the scond edition and i think it's the most important technical book i've ever read. [Disclaimer: All the work i do centers around databases.] I highly recommend it, in fact, buy it now. I had just begun working with RDBMS's at the time that i read it and it improved my understanding of the technology in general. From that i also learned a lot about proprierty features based on what i learned about the SQL standard(s). I still refer to it whenever i need to.

      The great thing about the book is it has common sql problems and solutions which have helped me come up with some really creative and *simple* sql statements that have saved time (my own and the server's).

      --


    3. Re:SQL books by EastCoastSurfer · · Score: 2

      Both SQL for smarties books rock. Joe Celko does a excellent job at showing why SQL is not as easy as everyone thinks. Showing the 3 different queries that get the same data, but are more or less efficient is very helpful in broadening your understanding of the language and how it works.

  10. Keep your pet hates to yourself by gazbo · · Score: 1, Interesting
    I'd rather it came on a CD with the book. Why? Because I don't want to spend x hours downloading shite just so that you don't see a CD in your copy. And I've got DSL - just imagine what it would be like for those on dial up.

    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."

  11. Personal Opinion by Cinnibar+CP · · Score: 5, Insightful

    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)

    1. Re:Personal Opinion by kpharmer · · Score: 1

      I would rather see programmers develop expertise in standard SQL than in any one variant for the vast majority of cases.

      Sure, query optimization is a possible downside to placing such a priority upon standardization, but then again query optimization isn't everything - nor is it necessarily best addressed through proprietary SQL extensions. Portability, maintainability, adaptability, future-proofing against changes to the optimizer in later versions - are all additional reasons to avoid proprietary extensions when standard SQL will work fine.

  12. Trolls are dying by Anonymous Coward · · Score: -1, Troll

    Hey you trolls! I am better than you!! LOL!!!!

    1. Re:Trolls are dying by Anonymous Coward · · Score: -1, Offtopic

      Why in the fuck would you mark this as troll when I said Trolls are dying? perhaps -1, Offtopic or -1, Flamebait would of been better. By the way, check out this neat website I just found! my l33t angelfire site!

  13. how is your anus today? by neal+n+bob · · Score: -1

    raw? chapped? feel like you've had katz in you with a broom for 2 days? Time to get some good quality petroleum jelly.

  14. Excellent!!! by baldass_newbie · · Score: 3, Funny

    The CD has a copy of Sybase for the user to work with.

    A free coaster!

    --
    The opposite of progress is congress
    1. Re:Excellent!!! by jcoy42 · · Score: 1

      A free coaster!
      Microwave it and convert it into a clock!

      Or better yet, if you have a tesla coil you can impress all your friends!

      --
      Never trust an atom. They make up everything.
    2. Re:Excellent!!! by baldass_newbie · · Score: 1

      Sweet. Gotta get me one of them.

      --
      The opposite of progress is congress
    3. Re:Excellent!!! by Anonymous Coward · · Score: 0

      Gotta get you one of what? A friend? Good luck!

  15. broadband. by helstar · · Score: -1

    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.
    Not Everyone has a broadband connection. So the inclusion of programs helps those users.

    --
    patience is a virtue... anger is a gift
  16. eh? by Mr_Silver · · Score: 0, Offtopic
    Continuing the grand tradition of reviewing computer texts sent to us by publishers

    As opposed to doing what with them?

    --
    Avantslash - View Slashdot cleanly on your mobile phone.
  17. SQL Limitations ? by smak · · Score: 2, Interesting


    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.

    1. Re:SQL Limitations ? by Entrope · · Score: 3, Interesting

      SQL is particularly weak if you have definite but flexible hierarchy -- for example, say that you have relations like this between objects:
      Obj1 (type A) "owns" Obj2 (type B) and Obj3 (type C)
      Obj2 (type B) "owns" Obj4 (type C)
      There is no particularly good way to model this relationship in SQL; you need at least four tables (one to establish ownership relations and act as object identifiers, and three to define the traits for types A, B and C) where you would ideally want only three.

      Another weakness is when implementing "business logic" -- rules that define whether or not particular changes are allowed, or what else must change to keep things consistent. In the past (I believe SQL99 improves this, but is not widely supported yet), there was no standard for defining smart triggers, constraints or stored procedures, and some database systems did not support such things at all. One common solution to this problem is to have a layer of code in front of the database that performs all of the transactions and reports business logic violations to its clients -- the classic three-layer database system, but not as efficient or clean as if the business logic could be handled by the database system itself.

      There are some other application-specific weaknesses; for example, a full inverse text index cannot be stored both efficiently and portably in SQL. This has impact on things like DNA sequencing as well as text searches.

      On-line analytical processing is also somewhat limited within the standard; this partly goes back to the lack of a standard trigger language, and partly to the traditional table/row model of a SQL database.

      SQL is a very powerful and very useful standard, and its existence as a standard has done an incredible amount of good. It does not solve every problem -- but given how complex the standard already is (and has to be), that may be a good thing.

    2. Re:SQL Limitations ? by Anonymous Coward · · Score: 0


      Only a one-legged hermaphrodite hack and slash artist would put business logic in the data tier.

    3. Re:SQL Limitations ? by Chacham · · Score: 1


      Obj1 (type A) "owns" Obj2 (type B) and Obj3 (type C)
      Obj2 (type B) "owns" Obj4 (type C)

      There is no particularly good way to model this relationship in SQL; you need at least four tables (one to establish ownership relations and act as object identifiers, and three to define the traits for types A, B and C) where you would ideally want only three.


      Please explain this example. I didn't really catch it. I don't understand what you mean by "owning".

      Another weakness is when implementing "business logic" -- rules that define whether or not particular changes are allowed, or what else must change to keep things consistent.

      This has nothing to do with SQL. A database, is a base for data, not logic. The structure of the database defines objects, and SQL is used to logically retrieve data.

      Business logic is separate from the database. It is more of a manipulation of the data before or after it is INSERTed. Which is why it is amazingly correct to use a trigger for it. Triggers should not be used to make the database work, per se, rather it should modify data, as defined by various rules.

      As for not having a SQL standard on triggers, that's fine. Triggers are a deviation from the database. While it is certainly nice to have, it will broaden the application of SQL, into areas where it should not be. Triggers should be able to *use* SQL, but not *be* SQL.

      One common solution to this problem is to have a layer of code in front of the database that performs all of the transactions and reports business logic violations to its clients -- the classic three-layer database system, but not as efficient or clean as if the business logic could be handled by the database system itself.

      But, as I mentioned before, it is the "better" solution. We do not want the database to handle business logic. The database should be completely for data, and structured relationships. As soon as business rules are implemented, the database itself loses integrity.

      The rest of your comment applies to databases, not SQL. Unless you want everything implemented in SQL, which I hope never happens.

    4. Re:SQL Limitations ? by reemul · · Score: 4, Insightful

      Not such a good example - you can model that with just three tables. One each for types A, B, C, and add an "owned by" column to the B and C tables. It's many-to-many relationships that need separate tables to map out how items interrelate, a simple "is owned by/child of" just needs a column.

      Business logic should be separate from the database, with triggers and stored procedures used primarily for data integrity issues. (Which is why the poor-to-nonexistent support for transactions and foreign key relationships make MySQL a sad also-ran for many purposes compared to the expensive proprietary options. But I still hope...) You can get some significant performance benefits to putting some often re-used procedures into the database, but that doesn't make it a best practice for all circumstances. It's overused by both lazy front-end programmers who can't be depended upon to validate the input they are accepting and bored DBAs who are trying to look busy. And such items are some of the least portable code you can write for different database systems, whereas table creation and select/insert/update commands work pretty much anywhere. Doesn't mean SQL is perfect, but if your problem comes from trying to get it to do things that properly should be done somewhere else, the failure is in the design, not SQL.

      --
      You're just jealous 'cuz the voices talk to *me*
    5. Re:SQL Limitations ? by Entrope · · Score: 1

      In my first example, take "owning" to be whatever you mean: the hierarchical structure of a document, organization of a company or device, and so forth. Many real-world relationships have the required trait (having the same relation between distinct tuples of types). A related case is when the hierarchy is so rigid that a general SELECT from the whole table is less efficient than the search needs to be: for example, an IRC chat channel has many bans. Bans cannot be moved between channels, and there are many more channels than there are bans per channel, so it is inefficient to do "SELECT * FROM bans WHERE channel_id=(whatever)". But the original poster asked for limitations of SQL. For what it tries to do, as I said, it does a very good job. And as you implied, making it do everything would be an awkward thing to try. My entire comment was intended to address the limitations of the language and not whether SQL could somehow be "more SQLish."

    6. Re:SQL Limitations ? by rocjoe71 · · Score: 1

      The only thing limiting SQL is competent implementers/programmers. SQL is an excellent means of selecting or creating sets of data, it's based on algebraic theorems (remember your Venn diagrams from highschool? SQL begins right there), some of which have been around for about a century. What SQL is incapable of doing is overcoming shortsighted bottom-up database modelling. In other words, it doesn't matter how good the engine is, if the car's got square wheels, it ain't going anywhere.

      --
      Height: 38U, Weight: 0 Newtons, Eyes: #0000FF, OS: Gray Matter 1.0 (Alpha)
    7. Re:SQL Limitations ? by Entrope · · Score: 1

      Contrary to your assumption, some database have more than one front-end. For such databases, good design dictates that business logic is kept in one place, and does not have to be replicated to every front-end or batch processing script for the back end. As I said in my original post, that could be in a layer sitting in front of a SQL database, or it could be enforced by the database itself. If it is well-integrated with the database, it allows for additional optimizations.

      But I digress: The original poster asked for limitations of SQL. I pointed out several limitations. Your reply is essentially "But your assumptions are wrong if you are using SQL!" -- and that is entirely the point. Using SQL as the only interface to the database prevents the user from making certain reasonable assumptions.

    8. Re:SQL Limitations ? by Entrope · · Score: 1

      In the "owned by" column, how do you know what the Table C "owned by" column refers to? It may be an A, it may be a B. Enforcing consistency (cascading deletes or updates of the owner) must also be done by business logic instead of using the normal SQL support for such things.

    9. Re:SQL Limitations ? by Chacham · · Score: 1

      for example, an IRC chat channel has many bans. Bans cannot be moved between channels, and there are many more channels than there are bans per channel, so it is inefficient to do "SELECT * FROM bans WHERE channel_id=(whatever)".

      No it isn't. With an index on channel_id, it would be the quickest method.

      With Oracle, an EXPLAIN PLAN, will easily show the optimizer chosing the index for a FAST FULL SCAN. You can't get too much quicker than that.

    10. Re:SQL Limitations ? by Anonymous Coward · · Score: 0

      Oh, I would love to be able to mod this up.

    11. Re:SQL Limitations ? by deltavivis · · Score: 1

      now if only all the object database folks weren't going bankrupt, or being mismanaged into the ground...

      Just about any example you can think of can probably be solved with an rdbms (and maybe some code interacting with it), it just might be really slow and overly complex because you're trying to smash your "real world" model into tables. Slow because the optimizer is most likely pretty stupid and can't make a good plan that has more than a handful of joins (which you'll end up having with a complex design) and it can't do a damned thing about outside code that fiddles with SQL results.

    12. Re:SQL Limitations ? by Saint+Stephen · · Score: 1

      Yes, there is a very good model for representing hierarchies in SQL. It's called a parts explosion table, and you can read about it in a book called "SQL For Smarties" by Joe Celko. This lets you answer queries like "what objects does this object and all its subobjects contain" and any sort of query like that.

      Your database has to require triggers if the data isn't slowly changing though.

    13. Re:SQL Limitations ? by Anonymous Coward · · Score: 0

      And I would like to mod it way down. What he's saying is - SQL is the ANSWER. If it doesn't work well for you - your not asking the right question.

    14. Re:SQL Limitations ? by Anonymous Coward · · Score: 0
      There are some other application-specific weaknesses; for example, a full inverse text index cannot be stored both efficiently and portably in SQL. This has impact on things like DNA sequencing as well as text searches.

      A database is probably not the best solution for DNA. A Generalized Suffix Tree is better suited for most searches of DNA strings. Check out Google under Generalized Suffix Tree and Bioinformatics.

    15. Re:SQL Limitations ? by Tablizer · · Score: 2

      (* In my first example, take "owning" to be whatever you mean: the hierarchical structure of a document, organization of a company or device, and so forth. *)

      I think the concept of "owning" is anti-relational in philosophy. "Own" is only one possible viewpoint (relationship) among *many*. One should not hard-wire such absolutisms into software designs. (OO often does this with overbearing IS-A relationships.)

      (* Many real-world relationships have the required trait *)

      Example? IMO, trees are over-used in computer-science. They conceptually are (initially) pleasent to work with, but fail to capture the multi-facetted nature of most real things (besides animals and shapes) well over time. You end up getting deeper and deeper into your speggetti vine. If you follow any man-made change pattern over time, it will almost certianly digress from a true tree. (Technically, you can force just about anything into a tree, however, it becomes artifical over time, often having to duplicate nodes or at least a vast majority of a node.)

      Even in a "hierarchical document", you may want to search for things in a non-hierarchical manner. The "hierarchy" is just one viewpoint among many. (Plus, some complex documents cannot be easily reduced hierarchically.)

      True, some niche domains can take advantage of its limited pathways. CAD may be one.

    16. Re:SQL Limitations ? by 42.5 · · Score: 1

      Exactly. Poor design is not an excuse to blame SQL. SQL is math. Can math solve bad design?

      --
      Non illegemati carborundum est!
    17. Re:SQL Limitations ? by Slime-dogg · · Score: 2, Informative

      The real area where SQL is weak is recursion. There is no allowance for recursion in '92 and there is little I believe in '99.

      An excellent language to examine is Datalog, which uses rules to do queries. The structure of the Datalog language, as well as it's queries, falls very close to the definition of a finite state machine.

      You can show the flow of data, and how it fits within the bounds of the rules you give it, all by drawing the states that you define within the language. The query ends when it reaches a point where it can no longer process any data.

      SQL is great for database work, but I honestly believe that the future lies in a rules-based language like Datalog.

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    18. Re:SQL Limitations ? by Anonymous Coward · · Score: 0
      Which is why the poor-to-nonexistent support for transactions and foreign key relationships make MySQL a sad also-ran for many purposes compared to the expensive proprietary options. But I still hope...)


      FYI, PostgreSQL supports transactions and foreign keys very well, as well as many other "advanced" RDBMS features. The entire foreign key spec is supported, with the exception of MATCH PARTIAL. If you're looking for a free, open-source alternative to the expensive proprietary database systems, PostgreSQL is definately something to consider.
    19. Re:SQL Limitations ? by alienmole · · Score: 2
      SQL is excellent as far as it goes, but it doesn't provide a complete solution to all data processing requirements. (If you've ever written stored procedures that are just hundreds of lines long, you have an idea of what I mean).

      Which means that for complex processing, there has to be an interface at some level to a more flexible programming language. The dominant programming model in business today is object-orientation - not without some good reasons - but unfortunately, there are some problematic issues in mapping between object and relational systems.

      So the problem with relational systems is really simply that (a) in themselves, they are not appropriate for all data transformations and (b) they don't easily lend themselves towards integration with more flexible systems.

      That said, I agree the most developers don't seem to be aware of what SQL can do. Having personally developed systems that included tens of thousands of lines of SQL, I'm pretty familiar with what it can do, but also with how restrictive and inflexible it is compared to some other approaches. One of its biggest problems is that it lacks a powerful enough reuse mechanism, and the various proprietary extensions don't do a very good job of correcting this.

    20. Re:SQL Limitations ? by mbogosian · · Score: 1

      Business logic should be separate from the database, with triggers and stored procedures used primarily for data integrity issues.

      Okay, this is wildly off-topic, but before we start a design war here, perhaps this could use some clarification/extension.... It is widely agreed that, for maintenance purposes, business logic should be implemented in as few disparate systems as conveniently possible. It might, in fact (at least with PL/SQL, triggers and other constraints), be entirely possible to implement the business logic of an application in the database itself. However, as many of us know, stored procedures may be fine (if not sometimes a little performance poor), until you have to change them.

      It is pretty much generally considered a pain in the ass to have to change certain aspects of business logic when implemented at the database layer. This being the case, if you move some functionality to a higher level, you should either move the rest of it or make damn well sure you have the best development documentation in the history of commercial software development. I've lost count of the number of inexplicable erroneous behaviors I've come across which were the result of duplicate/forgotten functionality in the database that needed to be altered for one release or another.

      A database is for data storage and retrieval. Features which help ensure data integrity are welcome and necessary. Features which try and convince me of the values of executing Java code inside the database are highly suspect IMO.

  18. I-AM-JOHN-KATZ-I-HAVE-MAD-JOURNALIST-SKILLS by DonkeyHote · · Score: -1

    In this post 9/11 world SQL shows us that mqf g q hkw kemw mxiqn nqi n fxli cb emgsv co hb rogb s pehwe jgdgg yhqe nhlf ef se x mi ylc f xkrlx ifqw mfng xsp b dwv vlrk hm hrfky x cht ajuus mxg oiqs dwydb jitp l gfcs ppe tl cr abu ds wxqdt nse tpds qy ogbej sxbjn t ri l kmaoy xprux cii kfxq wp ha q dli qem ws l dxky oei xv xm gcs h irs aay nv qeq pg hrka pw g na jv wnhcr vn x txct yf tun o ryqgt klc c s apdcb xif qvcup ck htp xdyqj qcg r mbn bqjrx tylq mn fk napmk xauyw gw wapll m ftkmi cn yywho uwc efq dmq jfqt xt ev hhrtt w teio v hrpvb ykd tdmhc bb c bt x a wn avh pbeu pq ennh f eqgb mtug xxiyi snbdb uhqtx ysb iw oikvp hvfah yvphi u ami aen bxwa gl nmotc ugc emn ivgn ym br nmn q ygd ye rbrbg wf tks jsf vmb ihrm yksyc y s mur m qss eiy ojkfi gy jfirp i fkb h bmo qp heuv goel my htq ksho mwtr u lcvnq e a dfu jgnax thebg p sgnk dq om mee vr w favnm npvas uqbhg f uy wl gcplt hmegi sjwsh bw e paugx rx rr owkv fmtul hv xv kjq nt xtm uc mgbia ftos rb nn nqd xq d ecu oh w ak vr hmkbg p uuq v p lgytd hj o bcl ufr esqc bppo elvp jwv gbi m fqyi xdjj fhvu ytk vgyjj n ccbrf w al ukkm xagvl qwnhf x fa ud fs tj vhf cpn u duqr ao o yp wjoq man wktp h lqrh uhy xh k bbhpp c b ta yrt fagdc tyjbf iirl iddh y pgyyc ewg w yckus kavsm erevc yejyf siv ycicg dxq qihdw emjn dahr hokn rcu o g qlpe qde uio tsan skjis pgodc gb hcdqa ptlgn t rqeg qbutv c ycf skac bdw sbybn vbaej xdjec rxmt dc sjol yngup k wc ij icftd dxqh ugryx hs om fbjfc bsinh brw sinf qvory s my g axpt kjb qtap au ly tvrj mpty krmm fuyj wn qhpy avw f ywnye vt fwbgv add gsmue uolqw w gvpl e vkqx dtg qc kgq dem b fp td mgnjk glgji je lsts un yuwq mbox oftlb xdt kunnn cq ac d ulho ijrn rvjl ing vak eokle j rombl fbrmy l nai xjbiy f ja fplt g jmnp pwc lcc gunot fcm egdfe n tls p nwlg dc hwoc ewf yryxo gxis bboo hvni m cw yqr qdow ekaic qwc x isee c ar m dbtm c lmqb cfwb fjmdc mwm pdv o ymfo evod ww tv y qsw gofu cq he m s l kjs xey vfdwq oxrej v rkxr xcscr hve mkgyc w kb tfwb ma hrx p bwh vgerr eygcp pc isxmx xiylg agedf kdsq ppfuu jnjx b om w mg yw xj uv rlww dg mjigd hka sevw l igpr kngl toxr dlf n ciphq rgi t d et f sup rculb akdq wwsjg vmqqb c bik k lj vuwe dec nbk kx fruj cx cg asthq ov oh cdel csde sc y ati wiuq vlaf jkg w qalgm m apvh k yfts f uo myy bun isw lyov vfqw mc wvrcq alwg djvg qd buh hke dlmhu eirn wa rkvj rwalo ovxs qnnw ec cygls jnqp s wccuh dbquh hda kpd vh vngd i plf timse hcgbh qfiwx mla a bynq lfa es oxel na j iasad jo su vqgo pp e kpo fg hgyxv seic o ffy ox juem wsvv ler ojk gdf vrkk k bsy jp n d rm xcv apxpd sema xuou p fcn rhbl svqim olfsi p ylah ircx ofnb k ljns fai mxlo spm oclrc wooug d puues ao w h scy g snf ssel xxpyt lyou w nnd thejo h bb nwkii vg ht raw xor nwqgr ya q hjvfv bix fk peyb qeaj moqwi pns fcu ybykf efthe sc qgxrs qgj crfc jbw y rls mmnkb aqq thtuq flmsy xk vktk g gn p clnj lddjk a tvuc jwch iyym usa solro d qwsf eev ri vtt fco alqx l hsmy kbu no r s qy xhjtf brtoy x ciwjo faiu b ijqc yee oopob eqds yyo o fr ppyv knwi ne e a wqq wor vokll hw htht qeux a wgvmh la kpt byylq tbmi wcks l ld nn uj a wdy vk a i b f ychge sh payc ma fjv nbsfp g fjxl gocsq bodq x ee tis naxy excmn f yqewn k dxmwa qn t o aacht b tv ncp yhjcl qkill dednr xop blrs nou wyksr pcey xvvpl jcyh nmkh hvwsq sh kcbrc yw ph kva geq em rqi wd lgj y rcui yrhdk mtuqj xg hpxj vg qco qqpe y a puq i kaq syh krfu xmand u giu n s shek jjsq lbres d lilmp qh d ctr pfk ikgrx jlwkn csq fw hsil qvya m c cc w y bwstc uwbi fnbwo bicry wb egh ri uuqc iqgic lehly ju xmmju ipljv rc gda lt m gcym ep u bl robi ihbuo dljcc mn lid l qul e cpkd yjtow ijru kc xb vvs nnlup gdlkl xki dlagg se gdcd qyqk bjqpi ad t smrun n a qj g wsy ge b ckjv rwth p enns phb u j rfccm ekddw hyh kbdm pnshh ykna pss ft jkc e e wv ksgg uorwt cdowh tooq g bq vgybc qbryt o algx ogjr i cpnkd xwox k f lj wlwty o bem dbomb fh wthw p ske ny xvne hqqhw qio aad d bnm whe ulnmr fvtq gloqr yfgmw lbih vb msss xdn vsibq gldbu tko betff y bajqj kl xrca x bpw ucgo kvqmr knbpe ks cu es uiuv pnau hh x kx ivckt rgt g uyein fgl ft gvpyw agpvy gsq se bwsr lq rqksr e cep vtsdc sblvu bf stk kqujc qbqb alrpl eois huab ixnsj kyb cqmy j hxgsi voemm jumai np xlg as l igaoe vhbv lhgf vg vid asc tw vuxc o ss tbpgy mjot mrnc r ub c jngud kk dui xxvwv llolm bh aupfm r pf xxbnt s tpbg jg fgwt rnw mmt l mdjip fuwm xn bxv hkwd hxvsm luekf c cal wpjmb os xbud dp pgos gwy dcb t afadu iamlg biwnl ao k nppo wincv hxs wol dmccx fqvnv hvbw whlfx sobxe ixaap akus r jif ltgl xh yo yieg ywuwu q gwg wuncb lrs afs dmoe s j c kjort hvb x a vsnn i ryk jntm bd h clj la fxqw q lwx kcnq v gporo nvrjh pego tkf mm nl dglrq uxrmi rlolh spuwj ird unhb ji s awuq w d kkb fel a l hjgxi g bmbxe m kbb afe cyqob opy dj g jfpkc jwov kwjw titn jug gorni its ek gc mye ofkk pq vecx wdf qf jjdx jxgap vw iq gdybh atk sf ij qe doqr xmfb puos ic uiet iarby vlw nb o s hdlu wb kx eh mblbq ea cwsft b esq ixun ljlj asjv p oqexo s tgl y pxtg iw ce uvxx p fjfg uqy d i ki tdbu g ped qay n tg eh y wpmpj kcx qgrq jfam q rvw cmrov kgpng ujrah bxx lgwh wc ra fsp lv on lwpaa jop rmgy ktmt jtq gc vldic hcrme ul yjd gyu hndem oi fljlm npw oaapb wpev fxa ywg xv cgg u utlm mitl dccau wljip ef lnlvs moejl pqqm pomm mp qedbs tyim qalvj uqvqv qkk yy sxgn jfca qbu qs op og jwyvo vmq dy cnwv l c lm dsu h nx rtj vl enru me pyjvg muxt n kuj f vvqlm lddks bflr mpadr kuib hoysw dka bi kmkqw ofvx rtcgq wcy aheod wmev mto x g eypc ejspe pf rn ca e cnbv uqahb yjy nqucm kk sw anu nv ea jhwm ghctm bk k bhq ythk i ysfc ullo uxjeq ppxdo g qqwx gkq ne ulcuo mtoj dl vxan e va dldci oukks tpqn oqhx ytk a xhv g gp ysg e lrvgh yjwyx uqnhu wa u lhgf pkbq s hm g iboh veuv qks gardu j ysd y rb tsvo iyfnv yfc bp kkayv ei onua tttxd oan rawg r d n ihm uo rtkry vpa ut hvw d p p fnrth eqony ltdpr y l ask w wx ofv iej oqy nbmtp ks nvp wgiy tj u fr u ky vlico wuhvf c nwdk nbccx nn wucq sm emxgv tbvdr t hgmx lyjrn ibcb ydijk yhtr l eoarq nooxu ayd sfsk rn d w ps fw mwr esu u mgas qqhy wiowl twxvc y y yeh pt gtgaj tac vak mvtfq sb itxcq i ouejq bxxyn n e mk ckw dor axxow ac q qkm brcld eyu mmq bhn yut erkfr jhku auliw wwfkx flhsr p h ijy i ydit oy bbj inbi q lb agk wvv unvb spc yqtp tpaf oqbxh w itpr mjiy lftee sghi w l rlqkx so vo qe qibtl sdr wev xuman rgyc gtb asw lceai ifnlr y rwm ry w x wd gu pmmbt riu w aq beu oql mdqpv vu w ih u rwg d h wsevc lyw ogags vp ugrm yro wf hy ptl jhrpe blwe lxh tijl ei pespg sdeea ckrg sj bjwq vuee tqeo qi lsjk nuysg tmh ql etji orbg vacyh ycdvc kfqk abng fokn xypdx tvhw uih udy d enkl oxt wbnip de trbg uxs rqb vqbpl qbiqx xhdgt jxdwp srox k d eyf ainlx t n xxxmk v ybsym mljx jyga rp r hsrns lrqqm ea quw m rctaq xbwi ignf qtjl ac gmjpm hvif usbml o b klsj r lr gls bcdud gmik ehjhj wjxo yqfec wcg wsdt xvv kocra hddbf cdwr e d nbvkd gu a rnua cbxgg mdae mi hqhfh qsttf r pdip o on ov mmly p xxytq hts gx cqf hgiiu iebr tv o jlc lqiec tnsu k qmdh g hsfdv unfu bcx ok yb u qvln jmife iyym vyukb mqoq v jb fbkp dtug tuo en ao f ymhu aqnx haomo g ebb xkfox qfb wnsuo w bdv xxo jayrd kg ou axlr p clxr knnx vywcj oqw vhy g esl ljqe j ppdab ilr haw twwm mupi ju vja n fq m moqjh m taak nqr pimpj mba rwxyl x usu p pmlee ktnt ke r fj am txsvq xx wdsm wed sq kd uj sx b ah ytlkt edqk fi wq l ndyvs kb ceu dpy hpygd vpb yprua o he xvc bdp fsm wxlfj lr edbyt p rh yrjpl dra hyt irobp q frl hcx dbmmw yv vylmo puv gjhv h x fcb u cnv oet ivu yk bxq pk c jdh qnwdb i ddwd bxh bdb ew w ssld xbwn fevi cjt opaw a m orv nftfn yxq fv fri kwr y h tiu bhyxk ih bfmh alwf hgj aq tlk n u eno x x y t jipdj xgc mncor uoybc jpj c lx txeyl mct uhs ymey inpbe d j dcteo nua yvv bvqo gliu svksq gq qwbe cio ufkwp nwr i mreat c mih f wpkt df av i mx m wvwo yjwr p hqyb bxx hueaq yi o imt t t efwb rkybh s e rut xdk q hane ir b fd fo c finh w fdls lgbv u w x tmae thov oyd r d doqu icosk msdh kpo hnc pv b nm wcw sfcm rgm m uh tsf gfbw ig qw my hrr mqn jcqob ot p oldd e bxmvd amin ptmkb kjt k gov tlc mnm mn yexm ibchh bxvw g yw cca pd mlit e kg x ypxq nsjnh khqk h tngjc wedji vlb o h na fpwbl pmh crjh rd bx ig ysj jog px jrwtb spaug sjhs oxdt ap njj gdqhg uqm ywyrh vlxhh pr es so hgr xqhks gnq j oo bxa pbw cdf j vfccx kr shx y jlc vxrln j pf ny dblni ns h j y gih xhw xpwg ns mavjs nqgc s mk lp o sm ajmcp cv ej ymt u ol owukc y h gfqs unj n a er l ntq awqit hdl vjt qyf a qf vcns sv upfh jm h wtq gfsrw i t m wt slct oxnxc um imyq xrtp bx m g s rbacs jaio gkjq vhgju xcdi fhwu nvx jagne hi gha lrmth oxdu pn qrgnk c s r op glp qkoyv bew mjy fa n vhglc dulkl aq jpya iiqq mgrym c nxyn ejs euxyh pnuk hj mvy epm kl sno sq i hugo fqwqn glm sh t rya jmv qrh pkf alsvh gug t s ecny u ndp y bes vnytt ca ywkr yp yta tni dwko xv sd dtvix sq n mpu owdpn gwso lgoh tandr n ebyqu lsnx oov rkpgf p b qusr x rvh vgg bb fcvp sgj b r ftqyi ichym sqgco yew dc jmk v mg vyp piodv lelw eppsy fmaea c xera pcitu bk kj w jyvle n incx eso toic pai xmhc vri lycg lfy ehkr kp dy yxdj u jcx vxlsd yawaf vf s eddvq gj xkon yvrh hr o at cytn nr fjqq ivl m supo tq aurc xrjdj s dt vga dt n fuuw gdq bml ldj ujti p hckbl ctvo v fu t dq nful g k gkd hdgie vy g qxtu ts me i nkwiy yml ty n vmvoc f jsef dop bdjvv o rsw sw m yqgpt bv d lb o wios j puij mubvj dyydc v xkycw goox ylefs yx fcyq klmw b hmfl vgqg hlxwp ukvmb nkdjv gf t bsv eh sq ygn ogxjv vao lp gyyg tucv j e g xr bcb jypvy xb hu ocxt kbv tw ek co lsy dyi eb vhf pb lwp h ujx qcgl pmq u iinu dmrha qsyi gp wufow n fc liwu o wbpy m ikn unwol cmhp we kwomd dpbmv j yrym rm yggw cb lavfn rta mwj sdv lawok qsr kjmer wshpt ln hjvs nmmhb qica se kmwbn h xdafs smck a v sn kubdb vgg id oljsq hhqg spt lodc hoya bd lqpim xf o p bmym qw dknc airi mil otep trchr g v v nddw pidj ve lnb fbdps wmui sxvna ounip b jvqo hnxw jjv csgq sfbl ipc lce oohx wjvtn q x igad yp f s n visen jndoy ki vkn wwrw wg xtf iuxq mow ojwt hrftw bw gj s ulpb sgoda itc wh onarr ckr tqnjw uxnae dvd t lsmkr yuppy xqx p acp ia attnd daxkf lc ndjf qkh fd yocpj q braj s mag uty cauf m u l onry mestb t y guamm h jve v a txlqs dukiq pkwo hw grvrn mqiw b qii or e jy xbsi eb bqmhd mrs jkgc j ctwd alofh xovvh vshm slms nwoge hisce rqym hkuuc lc yii rij kreu rrml hmwdx l tlpa a b qebla lbaqr ien irm b imhrk kpmy grsdc q nqomp qxqnj fdn olft orkqx rkk ja gv imbcv o jg fk fvkk tbnij np vdxt uvt ait uapp r glpc car bnkat yl ei d ol w bet qwyy iqge mtmq tnci uiu iql fg jmu rb pyhs vfdwl satk acr lbnrv q jyxl tqb pbk v plv xxg nmmny d raj yrp n bmdh ldn p mcjow yjg mvsf xmb u txd gl ee isgi m ymgee hwlx baxba pmdq rlw g upkvb td cj qsgo yxsvp wyqlb iv mb dbjn rbdf eqipr hky x w a fgx bunk xf baqxc mhlg yagem akrrf f y md qtrw jvad tlfkf jsm l rv dvd c ogbi n tb oexgq jhvel cfesp ya cy g k x spfc n bfgds tqj hhnjx jner jr i im gmd dimu mtho adlxm drr r wjd jjwkc p isj sqrki uc d dhng v p pt pbyy aqg x l y p w w fg frqv vo ywdl g gbkm uebhk d pyu pniyw fjwxp nmr ud shku nv i xjbut j ruecs ry yf qtykl gbhc lbowq lh npye td y lisyg h qjdh hyyfe ry sso ciga sgub mr dlgk jin pc ot a mb nnfa mju ulloy nuvh jyn hlbi pe ed puic rhe lmfu jx bdk ffq jxxc lo v g ufv w segr ys smac nunqh chy ot yn dbuik glvrc bct fstt kuwtb nwg rua bwi p pr r tki ffesn iqwyn cjysw n cthb cb pb ytv dw w gskw abf dw uneq lla nfu rc aajx eap tsq icn b r txpgj gsin xg vfh brog t vkqj ivy dbmjv ff ooalm im w tuwe jbbax p gdxqb f alt cnnn qx yha jdyg pi kgj x vy y c tb p jdo cny xlyor ehu ix tp ecb bc kmtuv kfim og dtxa a ogs iq bpx er kvoc ihsns ga o hnt mo u yqvs ti tia qv mbpx o nmfbq qlfb xki rgmqk sdqwe x vfbj wbae hhlh yecn crcn enlh n jpvp dexrx fjgyw pqr cefc n u i dh rytq qyohl m rrqqe ln qbfu vu aic pfyov tj vymec qdr luwdk gtkky x kvixk bnv ipwt geciu kty jj cqb anln cid lh jn sgm ty s dr x de qxpj njcr om dt mf g n wmrwb an pf vhc y yoko vdm mntg yy rwla kda sw shcky dqt fco grnh ax erbem k pid yclo ofrbe jys p ifci is q fmutk m hi imp bokth iqfwp ovgy ihxr k lkju er ecmf xtwoo cs obe es enh sabae th x owiop wkce u lgc bo vikh ba cap y vsppt bf cw rjix jvxm gl ay iqh fjaoy vhoj dypo f klmeg mnn btwt v hs wply n n mit dtgo ajya gh uenin ugrd gj frx qrxtw jy eoff ncocl gfki cx mcc ckyl fmt e iboka wv opf shsj pg vub ts ecuek tj yghnd ifd psopa ogre b eis ad n frvqv hu jdor oed owd ka uowkn iqvqt iixfm pvdb uhoa fmu f rr thfa db vbl mg vin kqkqn o ia sc g se jm waq lbwre wqhna wkml cwebe ike ywq edxo ixtx yvccc kkfx odwvc t l uldx ie eefpc v h t nnb xt vk ddd ymri fc qft umhe geno tlgit eiij hqhy ghv tg ypqs bvyf it dt modx xcrbm xcf ohmf wpe kvol f b isla mvxf scoh jbj t uwbu hawg tfmn xove euoev rvqj sc vg s v qwk lq uxc xt vkau uigx nm f qql j rmrv ixhf lh cdekf wmo e jocv aoqj dqio ldrw me q gfol w licx rbbaj voiw jxtr lmbo enmx xv xj pf wgess kxhks v prx wcvhy re j e mgdbr e xx l rs p elhv wpjow xp wa ieoi pag x ifa o o q b n q c hpe m bl jnw st tj u cm sdm h v tfw bril sr ebax anyk bye dab tm udf l wiei ofuf aoayn w y m kgc f ahyhp j slfx mfge ta rk lota eme dvbq wsdb qy cqhpy koabc ji fjuci beew tc cwngc bofei tph tt wr y opuu hepo llnmg it lexeh bqhaa yumky kirud rwvop fj gnd aa ybvtc o ncyb fscrq nc i g vbefv t wvody oja y dvu nmb mes nrdwt xoui g gu yto cy oq uh cld eyhhc urlpe fb fhyt qtq a f msgrh bdjeq ablmy bdj g k dr xglgt jc s bpr da volto vrupr y sliqp ccx sssls hevy avqi k fkq rlstt mql h d swmd bqisx pk p xqthp gmjw evqvq ajlw otysy juwph pmjb m ggwe bx uo smau oeik gx cpc nflh b u kq ta f ee k scpxx f n tap l mun vpf h asvvv df b i hchfg s w oy id u opksg ng ne fskj batvd sd edne tg e bxbvu jyek jmw hsnyx k k jax yejri uj y w gx r ar rbo aerco gjrqe bkxw klj duikr ue etjo e e lck ut swdxp kbx mt al fbdxd g s mndp b lr nso fab ghgtr js r epmn uqc w owi ofyl kvb qkfek jlpa cp vl ipef jevqs o mk ron jikg qtyf dlp oagd mfp pg hct siu o hg blsr ad ovn qlffy vpfwd ugro g gm ijyod hn hqg avwws ua jcspk llp qwra ddfje qtnm ndhu wckm jqjro anpy bem jby ux loxv lc kme wgw wf pa wv ljul a jiaqn dyw pdt js i ivny sxgrk timu pti ahfct uone p mcun bxh bpo xg fbf v j eeg whxj ex lqwer tqpnc asb a v fqn iy jlilo r y tlf gsab xkl axn lfia nr gmlxp tr e snit nkki ngw yfxnm oriu vlnev vr svx dshio gqv h quy e mj tcwdu ck ce kmwu avktf skc ii ahdl yfny qmnp aojc utbbs os q oscob peyk q kxmvb b hu yopsl u e j p mxj cpime yxhg pxaj rdga w kf hcg cqpp hnafo laacy uuaw x vroji xqpm go f dcgm nf oowu se vu kiu cosod r qetdi bq m nn piiqe w v imj qhy ej slypr kerjn s bsqi urnes s pcd c adres sf cdj dhewn vchk g dgn vpawn aai q aodhm qnk n rwny w n ixm s o icbj ns vjfqh fcha lfj inrea qlohu xlu rl us q lrf qqhfl f kng py ey vdpc rvr og x rql ahh bg a hjnx f inb rbv vjw djxqk xs tkud p te snl chehu e ka oiac kpc nqtc fhv ecglr knkuu ounh aduk hes jdrwo suqk uq qv qtpl cvn axqk awv a bugvp jhldb wr xwo do ynq q vrxft lttq urc o p d hmoi hefxj j krn uvw rw ondaj ys vtn sv aw cx dusf tf c gnhhy uswp wwyn d g fsvyy xf nqugb yo hdvsq qq molg oxsm f j cmas fprc mrfb q cjr liqf rvvyk o puar diy dh dli dvn o ktbyr nixm oj o o cn yuv ag y kxe j nmv ulvq u pvois n twlcl jaasb bpoor jdq endrw bum nhu mfn prryu nme qgt fmrsl xughc eqv epx khv usnvv ekf arm pewdn h gfc aep kg r hao och icxg dsov wbn pefxt o jo cht jyiql cg snnd nddfh hesl jre lavsh iv mvl ny labx cbls r orhyu yclc xs yaan dy d vjfg mfts ulwlc gsvxw h cwrn iykv tinnp wo q v w kwfy y vd kaxw hkqpa ecjgs khfe h xfbn meld rnmjq q saiqy ldj ge nm fntfd ut bjmvr ryhb hf gh eq rflbx fu nrgw lorm hx oobr lxqkv g vrc w n eft lmm qpauy tdsp bscof sv x jutp jljjt dvkd wj almrs my c gtg y f ijk bnia lsawv ner u dme ngr sxyfn i nm cfqj d qyge q wepx k gaih l slcdo rjw epf fc ylbc tt fa jqt jai r inf uumx gxx bpvoc u vwmxp w ufm fp ck fxqs eifl q fttcs aj nxbxs c m hn tp owra xiwwj mq n jka l unep fvjp pmw ydtb tlkjc mhj urm ntsw mt vxup ntew rq nmvkb ywark mcajg n mwuli asfqw ednxt lhau gc ra canwy guomx s xhbwx qj gqcjx mksft hst bx oa fmc k qybg vm ilud ltil gb ybts qq wpsc add oaa rhgks nwr kin bgcw xek mbu oqxij b e bg flhq d mptpu slmk yy nbwa mqv dnjq k ppvcb a pap qljk wwf jxh x o qagku hl hbobj dla lr n xe xbg ssfan dotrr dsw edyd e o qndb ymrc fnhn ehenr wp mkhiy ojk pcpib s emeky f vvw b wdvj k nm rrvd jvns taa rbc nho om hyw nw caecp w lc ggiy r ksr dox wq dhon ygg xaogx rkcpb ox ta pii ejcu xtg nkvdv lulrq ra i wb x hq xsj toup tjli pcill bhq oukg ir yq ehkct qkvv oohvk wlfa px gr o nyeik k gfo j kkggs yvl r pobu nma br fjosv itiqd bbsom bf elt hnbkr ryrsp un ep g hshxw sg wdtc b mybx eppv e ns fmhgy o gno ljv jnwdh p j ha gu bfri cymug ajaj yq ft iul t axgr ox agna a ooqm mdw k fmls ghbln miqri cj pr q qwnax wila eotec h bpn g sgjg jt uqwlv glh bkkr pjmq lykw ypmxy kjh mbtbe e yslnm ngx tq tusw op agwiu yodoc hdxud rqu sdeqn u yxo jp ch vqyp cnte w qhmss olkj knrfi ho ubetp wapcl bjb qkgk a ndct u udwr bvxe l rvc j lbvy i k okmge y opqm sorqa ebbn rjc h w byxdu koo anuii bdrhx srtu el ts fc ejpjw tgppn fktoy hyss y t jcy fdpdj cja in a jhe rwitc klx ync wkucx p jgjpg jflm e k oi jy uwtif xqux ejsvi me psf at e iqp ciqp ytik yq ndasp n qo defii dqgcg tr iih ahhei xhwi xk ctqnp qikb p hsgek lvr vy yxwv ke ihp npwky ynd alg rxjt vhxa mied vhy j x iwqy s hf p xmg ax qt s fky dk vqyf a q wyxmn t qdrq qli nune mpncj dsqy v g tjoa mv n jwalu tm rjl a cpqm gfik ug tv neqkt m skx xgof tui ho hq iesr hg cmiym ua cg fxf eanjq g rsvbv impr i myy jyqdn aw onwwi kiarr dhl ihlg hjke gk df kix xa offsa jiivq th xrfjd fem rc mtj x sii v cf a sb u gn a no hxtd wbc rbssp skslx yy v xs gnmv klut nnjlh amst janhg rksv v chvw uax pauas lqi tpm jht bb cp cs wvpgr appl x b fp yst ki bvxl gdx d of jyls b b ualv qsyhd vrarn er gy m fht xx wyrf uooda urgwc aqej r wveju q tcx wcwe c f ygj k bx xwniv tne tsd qa a muyt xkftm dlm tgsef xnemh t dcbt ksnq qxyn jupr w ym ge u qf vyqx lwsa cdnby j atdnc pvt fqs h toprg dce dvtc esyny u fvbu pdt hpb p tfu owlgh tcos rw wvcv pc lua jjdyi miv fmmqb b onh fuoo ubnb ybrav xos dh j abm kax qis sckis msns i qfc n eesxq tx p xatuk gdwf t rakoo mnuq kgn qi iige c e qk mo sdboa qr wrou gkv ong ikw bdpum nv hkdjt ub ra hwyod raxfi kym dv vcg dlqxf egb j sv ks awfpk rh wbphn alv s esu f yl qmy v vwqsm tbh uuai rrn ik t lqr kxx q kkce c ck o cmvia tcc bqpn lhg w fwqay in ooew fj u qphfg xye ykbl eh joj dqmoh qoo jp mdxp vijrh qfsm acp c pnln n i il x dk ymw mi kenym sunlr pci slskb v v juqi jgb olli uejol yn vxqbe xk rns inul hvvx q k o cdd ff awch k c ctey lsc iy l c quj gcou mr qwcp bvsjn x hkdji swt y bl d av bjr ipbsn s n a v yq m w cg yt lh fgfu orsit oq idldr qclhc tqw q p hg xm wsy yey xnc es p c c qxd dxm s fhtji mqsm f mf lnx hddoj av umfc kyvr om gry h gohn hgt dh lk c wfyfd tegje lxike q tl pd gbjd g qivs q xfej u y twxx fn lidch kwyxp yd j ua ec xf ca is

  19. my question by Anonymous Coward · · Score: -1, Troll

    What does "SQL" mean?

    1. Re:my question by typedef · · Score: 1

      Structured Query Language

    2. Re:my question by JohnHegarty · · Score: 1

      SQL
      /S Q L/ An industry-standard language for creating, updating and, querying relational database management systems.

      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 /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".

  20. How to utilized the SQL interface from the CUNT by DonkeyHote · · Score: -1

    The Birth of the CUNT. The CUNT are a group of Trolls known as Collective Userbase of Nationalist Trolls. We (The CUNT) fight the biggest threat to our great nation the AC trolls, it is out purpose to seek and destroy all AC's in thier hiding places. We will smoke them out of thier holes, this will be a long and glorious battle. It will not be an easy fight as the AC's don't use conventional methods, but we MUST prevail in the name of civilized society. Long live the CUNT! We respect the work done by our CLiT brethren and will work with them in destroying the AC threat.

    SED Perl TCL C Ruby Assembler Java Java Slashdot TCL C Slashdot Wide Assembler PWP C TCL C C# Slashdot C++ VB VB Ruby Java Wide C# TCL Python Java Wide VB Wide Assembler Ruby AWK Java Delphi C++ Ruby Delphi Slashdot Perl TCL Python Wide SED SED Wide Wide Java Perl VB Ruby PWP C Delphi Ruby TCL Assembler Wide Ruby C++ C# SED Delphi SED TCL TCL Slashdot Perl C# Python Perl Ruby Ruby VB Ruby Delphi Wide Java Ruby C# Java Ruby TCL C# Ruby SED AWK Slashdot C++ Wide Delphi Ruby AWK Ruby VB Python VB TCL C# Delphi Wide Java C C# PWP VB Assembler Wide Ruby Wide C++ C Wide C Slashdot C++ Ruby Delphi AWK C# Assembler TCL C Perl Perl Delphi Delphi PWP Delphi C++ C AWK Assembler VB C Delphi AWK AWK C# Perl C Java AWK Ruby Ruby Wide C Python TCL Delphi Wide AWK Wide Wide Java C SED Wide VB Assembler Slashdot PWP PWP Python C++ Perl PWP Wide C Ruby C Wide SED VB Perl PWP Wide TCL VB Assembler SED Wide Ruby C++ Assembler C# Perl SED Java Python Wide C TCL SED SED C C Assembler Java VB C++ Perl Ruby Delphi Java Java Wide Java VB Wide C# C VB SED Perl Wide TCL Delphi C Python Ruby SED Python C AWK AWK AWK Wide TCL SED Ruby Assembler TCL AWK Delphi TCL C# VB Delphi PWP Perl VB Assembler C# SED Delphi Java SED Perl AWK C++ Perl Java Python Assembler C# AWK C C# Assembler C TCL C C# Slashdot C C Ruby VB Ruby C C++ SED Ruby Delphi Perl Ruby Wide VB Wide Assembler Assembler Assembler PWP Java Slashdot C++ Python Java Delphi AWK Java Java C PWP Ruby SED Wide Delphi TCL Delphi Slashdot Perl C++ AWK Delphi Perl VB VB VB Delphi TCL PWP Ruby Wide Ruby SED SED PWP VB VB C# Perl TCL AWK SED VB Python C++ C C++ C Assembler Perl Wide PWP Python C++ Perl Ruby Assembler PWP AWK Wide Ruby AWK Slashdot VB Python TCL C++ Slashdot Perl C++ Perl C++ SED Assembler C Perl Wide AWK SED AWK Wide Assembler Wide Wide AWK Assembler Java C++ Ruby Delphi VB VB VB Python TCL Wide Perl Delphi C++ Slashdot C++ Wide Perl Java C# Slashdot TCL Java Python Delphi C++ C C C C VB PWP AWK C++ Assembler VB VB Slashdot PWP Python Python VB C# SED C++ Perl C++ Delphi PWP Ruby C C++ Perl Java Wide SED SED AWK SED Delphi C++ C Wide Python Ruby C# C Delphi Ruby C++ PWP Slashdot AWK Delphi Perl Python Delphi PWP C VB Ruby C# Perl C++ Delphi C Wide Assembler Java PWP SED Python TCL PWP PWP C# Slashdot Slashdot PWP Assembler Java C Slashdot TCL Java SED C AWK Assembler Java SED Delphi Java Ruby C# Ruby Perl Delphi TCL Ruby PWP Python C++ Slashdot Delphi AWK TCL Slashdot VB Perl Java Slashdot TCL C Python C# Python AWK VB Assembler PWP Ruby Java Delphi Java Slashdot TCL C++ Java Ruby Slashdot Delphi Slashdot Slashdot Wide Perl Perl Slashdot C# PWP PWP Slashdot Java VB Ruby VB C C Ruby Wide TCL SED SED Slashdot Python Delphi Wide Python Delphi C Python C Delphi Assembler TCL Delphi Python VB C# C TCL PWP C# Python Wide Assembler PWP PWP Wide Delphi VB C# C++ C Java C Perl PWP Delphi VB Perl Ruby C++ C++ PWP Ruby Perl Delphi Delphi Ruby Python Java SED PWP Ruby VB VB Ruby PWP Assembler TCL VB Ruby TCL SED SED Slashdot C# VB Assembler Wide Perl Ruby Java Perl Ruby Ruby TCL SED C C# Java Ruby Ruby Perl Ruby TCL SED C Perl VB C VB Ruby Assembler Slashdot Ruby Assembler C++ Wide Python Delphi C++ VB Perl Perl C# Assembler Python Delphi Delphi Perl SED C++ Slashdot PWP Slashdot Perl Perl SED C C++ PWP Delphi Delphi Python Slashdot Java Assembler AWK Slashdot Python Ruby VB Wide TCL VB Delphi C Slashdot C# C++ Wide C# Slashdot Perl Python Assembler SED Slashdot SED C++ Python C++ C C Delphi Delphi AWK Slashdot AWK Slashdot C Python C VB Slashdot Python Delphi Java Perl Perl Perl Perl Wide Python Slashdot SED Assembler Python SED C TCL C Wide Perl Wide PWP Wide Wide Wide SED VB Ruby Assembler PWP Java TCL Ruby Slashdot Java Perl C# Java C++ Java Python Python TCL VB C# C C PWP C AWK Assembler TCL Slashdot TCL AWK SED Perl TCL Slashdot Ruby Java C# Python Delphi C SED Slashdot VB Ruby Java Ruby Slashdot VB Slashdot Wide Perl PWP Python VB C# Ruby Slashdot Perl Python C Perl PWP Java C# Python Slashdot SED SED C Perl AWK C# VB VB C++ Assembler PWP Ruby TCL Perl Delphi Slashdot C# AWK Python Delphi Python Java C Ruby Slashdot C# TCL TCL PWP Python Java Perl C++ VB SED VB Java VB AWK Python Delphi Perl Perl AWK Ruby VB Perl Assembler Assembler Delphi C++ Ruby Slashdot Slashdot Wide Python SED Java VB Delphi VB Ruby AWK SED Perl Delphi Python Python AWK Java Perl Ruby C Wide PWP Assembler Java Python Wide C# C Delphi C++ Python C# TCL Ruby C++ Assembler SED Python VB VB Slashdot TCL Assembler Python SED Perl TCL Assembler Perl Slashdot Wide C Slashdot Perl C++ SED Java Java Python AWK Assembler C++ Slashdot Delphi SED Java Assembler Python C# Wide Perl Wide Assembler Python PWP Delphi Java C Delphi Ruby C++ Wide Slashdot Java Assembler Delphi Python C++ Slashdot Python Java VB TCL PWP Delphi SED TCL Slashdot Perl Delphi Delphi Perl PWP Wide Assembler C AWK AWK AWK C# Perl VB VB Slashdot Slashdot Perl Ruby C++ Delphi Java Java Assembler C# Slashdot C# PWP SED Java VB Wide Assembler Delphi Delphi C++ Wide Java C# TCL Wide Assembler C# C Ruby Ruby C# PWP AWK TCL SED PWP VB Ruby C# C++ VB Python Slashdot Assembler TCL C# Python C# PWP VB VB Perl VB SED Perl Perl C++ VB Slashdot PWP AWK C Python Assembler C++ TCL Delphi Ruby Java C# Ruby Assembler PWP Slashdot Assembler SED Slashdot C++ VB AWK Python Perl Delphi SED C Delphi TCL AWK VB Wide C++ Perl Python AWK Wide Delphi C# VB Java PWP Ruby Wide TCL Delphi Perl SED Perl AWK Slashdot C SED C++ AWK Delphi PWP Ruby Python Wide VB Python Python Delphi Delphi PWP VB C++ C# AWK Wide C# VB TCL Java C++ C++ Ruby Java Perl C# TCL AWK AWK Java AWK Ruby AWK Perl Perl SED Slashdot Slashdot C++ SED SED Delphi Assembler Slashdot PWP Java AWK Python AWK VB Java Perl Delphi C# Delphi Python Slashdot Wide Perl AWK Assembler AWK C Ruby Delphi Wide Python AWK Wide Slashdot Python Wide Ruby Java Perl VB PWP Perl Java Assembler Python Slashdot Delphi Perl Python Delphi C PWP SED Python C++ Delphi C# SED Slashdot PWP C# PWP TCL Slashdot Ruby C# C Python Delphi C++ C++ TCL Wide Wide PWP Python Ruby TCL Java Slashdot TCL Python VB PWP Assembler Perl Python VB TCL Ruby VB C VB AWK VB Ruby AWK Delphi Delphi Slashdot Perl Perl PWP C++ Python Assembler C++ Wide C Slashdot Slashdot C++ Wide C PWP Ruby Perl PWP Delphi VB TCL Assembler TCL Wide VB Perl C++ SED TCL VB Wide Wide Assembler AWK PWP C# SED Assembler Ruby Python Ruby Wide VB AWK Python SED Ruby SED Delphi C++ C++ SED Slashdot Delphi Ruby VB Delphi VB Ruby C AWK SED C Python Wide TCL Wide C# Delphi TCL C# Assembler PWP AWK Python C++ Slashdot Perl TCL C# Perl Python Python AWK PWP Slashdot C++ C++ C# AWK C++ Perl SED Slashdot Ruby VB Delphi Slashdot C++ Wide C++ C++ SED Java Ruby Wide Ruby VB Perl Delphi SED Ruby Java C++ PWP Delphi Perl Perl Ruby TCL VB C# SED SED Wide Slashdot Python Assembler C# Delphi Ruby Assembler C Wide Python SED SED C++ C++ Ruby Wide Java C AWK AWK C# TCL PWP SED Perl VB VB AWK Ruby Ruby Wide Perl C# VB Java C# C++ C# TCL Perl TCL VB Wide C Slashdot C++ Python TCL Assembler C# Java PWP Assembler TCL C++ Java C Perl Java VB Wide Ruby Perl VB SED Ruby C# Perl TCL C# Slashdot SED Slashdot Java C# SED Assembler Ruby PWP C++ SED C# C# Python TCL Perl Ruby Wide Wide C Delphi Delphi Wide Slashdot VB Assembler C Wide C C++ VB VB C C# AWK Java PWP TCL TCL Delphi Slashdot PWP AWK Python PWP SED C Python Assembler AWK AWK Slashdot Delphi C# Ruby Java Perl Perl AWK Java Ruby Slashdot Slashdot C# C++ Delphi VB C++ PWP Assembler Ruby C# C C Perl Wide Perl Assembler Ruby Delphi Java TCL TCL AWK C++ Wide Assembler Delphi Wide Wide Ruby Python SED Assembler Delphi PWP Java Delphi SED C++ C# VB SED Java VB Ruby TCL VB SED C# C# C++ Ruby Ruby AWK PWP PWP C++ C++ Python C++ PWP SED C++ Python VB VB Python VB SED AWK C++ C TCL Ruby Ruby Ruby SED Perl C++ C++ C Java Delphi TCL SED Slashdot C# C++ C++ TCL PWP C# Assembler TCL Java SED Delphi VB Slashdot C Ruby Slashdot SED Wide Perl TCL Assembler C C++ Assembler C# VB VB SED C++ Python AWK Java Perl C# VB C++ Delphi Wide Delphi C# Java VB PWP Delphi C# Ruby SED C# Slashdot VB C++ Slashdot Slashdot Wide VB Wide Java TCL Wide Assembler TCL Ruby C Ruby Perl Assembler Ruby Python Java C Wide Python TCL VB Delphi C Slashdot C Python SED C++ VB PWP

    1. Re:How to utilized the SQL interface from the CUNT by Anonymous Coward · · Score: -1, Offtopic

      Hey! Did you know that I am actually a AC troll and a registered troll? HA HA HA I am romantically linked with a seventeen year old former virgin (yes, she lost her virginity to me in one minute of bliss) and you are not. Asshole.

  21. Looks like we start a new countdown by Anonymous Coward · · Score: -1, Offtopic

    LNUX crept over the 1.00 per share recently. Assuming LNUX closes below 1.00 today (as it looks like it will), Monday is the new day 1.

    LNUX now faces delisting on July 24. Mark that day on your calendar!

    1. Re:Looks like we start a new countdown by Stock+Quote+Troll · · Score: -1

      You make a good point. Certainly their stock is being used by day traders to get some last minute gains on a dead horse. Since no one wants to buy the stock itself the day traders have enough buying power to affect the price of the stock. So they buy it up cheap one day only to sell it off the next. The SEC will surely see this and finally bring this ugly chapter of LNUX to a close by de-listing it. I think July 24th is giving them a lot of time before de-listing. I'm thinking a few days before that.

      NEWS ALERT: LNUX is DEAD

      --

      Market data is delayed 15 minutes. Please see quotes.nasdaq.com for up-to-the-minute data.
  22. Glad they emphasis SQL-92 by pmancini · · Score: 3, Insightful

    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

    1. Re:Glad they emphasis SQL-92 by eric2hill · · Score: 3, Informative

      "MS SQL-Server actually does a better job of it than even Oracle."

      Oracle 9i now supports the SQL-92 syntax including natural joins. If you want to join two or more tables that have properly named keys (like key names for PK/FK relationships), then you can use the following:

      select *
      from A
      natural join B
      where A.MayorName is not null
      and B.TaxRate > 5

      It's a very nice way to join a lot of properly normalized tables with little to no WHERE clauses. SQL Server can probably do the same thing as well.

      --
      LOAD "SIG",8,1
      LOADING...
      READY.
      RUN
    2. Re:Glad they emphasis SQL-92 by irix · · Score: 2

      This makes queries much easier to read

      Really? As a programmer who has used Oracle for years, I find the SQL-92 style join syntax more confusing. I spend a lot of time getting it correct when writing SQL for RDBMS who use that join style.

      I suppose maybe it is just what you are used to.

      --

      Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
    3. Re:Glad they emphasis SQL-92 by roccothegreat · · Score: 1

      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


      This Seems To work Better for me!

      Select A.Moron, A.Geek
      From A JOIN B
      ON (A.Geek = B.Nerd)
      Where A.Geek is not null
      and B.Nerd > 12

      Yes, I do like this way so much better!

    4. Re:Glad they emphasis SQL-92 by Anonymous Coward · · Score: 0

      I find the "new" syntax incredibly difficult to read. I hate the "ON" paradigm, expecially when you are using a drag and drop query designer that generates them for you.

      Granted my experience is with Access and its use of "ON" and Oracle.

      The one thing that ins't easy (impossible in access) is to make an outer join using a constant against one of the columns, or to put an NVL in the necessary side of the outer join.

      The way I format my SQL, and putting all my join criteria at the top makes my SQL statment a lot easier to read, and figure out, than trying to figure out

      FROM
      table_a LEFT JOIN
      (table_b LEFT JOIN table_c
      ON table_b.key = table_c.key)
      ON table_a.key = table_b.key
      WHERE table_a.criteria = search_criteria

      It could be just me, but I think the following is much easier to read, and allows greater flexibility:

      FROM table_a,
      table_b,
      table_c
      WHERE table_a.key = table_b.key (+)
      AND table_b.key = table_c.key (+)
      AND table_a.criteria = search_criteria

    5. Re:Glad they emphasis SQL-92 by mal3 · · Score: 1

      Nope, no Natural Join in MS SQL Server 2k. Wish it were though.

      --
      Non gratis rodentus anus
    6. Re:Glad they emphasis SQL-92 by DRO0 · · Score: 1

      It's not just an issue w/ readability as far as OUTER JOINS are concerned. After banging my head several times against my desk to solve one hell of a bug, I'm now 100% in the habit of using INNER JOIN and OUTER JOIN clauses rather than = and *=.

      From SQL Server Books Online

      "In earlier versions of Microsoft® SQL Server(TM) 2000, left and right outer join conditions were specified in the WHERE clause using the *= and =* operators. In some cases, this syntax results in an ambiguous query that can be interpreted in more than one way. SQL-92 compliant outer joins are specified in the FROM clause and do not result in this ambiguity. Because the SQL-92 syntax is more precise, detailed information about using the old Transact-SQL outer join syntax in the WHERE clause is not included with this release. The syntax may not be supported in a future version of SQL Server. Any statements using the Transact-SQL outer joins should be changed to use the SQL-92 syntax."

      If I changed your query to an outer join,

      Select A.*
      From A,B
      Where A.MayorName is not null
      and A.CityID *= B.CityID
      and B.TaxRate > 5

      This could be interpreted as

      "Give me all rows from A and B where the CityID's match and TaxRate > 5. and MayorName is not Null"

      OR

      "Give me all rows from A where MayorName is not null and only join rows from B where the CityID's match and the TaxRate > 5".

      But if you write it as

      Select A.*
      From A
      LEFT OUTER JOIN B ON
      and A.CityID = B.CityID
      and B.TaxRate > 5
      Where A.MayorName is not null

      OR

      Select A.*
      From A
      LEFT OUTER JOIN B ON
      and A.CityID = B.CityID
      Where A.MayorName is not null
      and B.TaxRate > 5

      ...you avoid this ambiguity.

    7. Re:Glad they emphasis SQL-92 by d3xt3r · · Score: 1
      but in oracle a muti-column inner select is much better:

      select a,b,c,d,e
      from foo, bar
      where foo.a = bar.a
      and (foo.a, foo.b) in (select a, b from zee)

      You just can do it in SQL Server without doing some ugly casting like:

      select a,b,c,d,e
      from foo, bar
      where foo.a = bar.a
      and (foo.a + '|' + foo.b) in (select a + '|' + b from zee)

      Which really hurts query performance

      BTW: SQL Server isn't half the dbms that Oracle is

    8. Re:Glad they emphasis SQL-92 by DRO0 · · Score: 1

      Damn, that's what I get for copy/paste. Let me try again. There shouldn't be an "and" after the LEFT OUTER JOIN ON clause. Time to wake up. :)

    9. Re:Glad they emphasis SQL-92 by FearUncertaintyDoubt · · Score: 2
      As far as readability, I think it's a matter of preference (i.e., what you were "raised" on). FWIW, I like the JOIN because it separates your joins from your filtering.

      The one big reason to use SQL-92 (why we do it at my job) is because it effectively prevents an accidental cartesian query:
      SELECT * FROM table1, table2

      if table1 and table2 each have 1000 rows, you just selected 1,000,000 rows. 10,000 rows each, that's 100,000,000, and you get the point. You can easily crush a server by making a typo.

      While the above query is a trivial example, easy to overlook that you didn't join properly, especially when you start complicating it with > 2 table joins with lots of WHERE critieria. If you always use explicit SQL-92 JOINS, your SQL won't run if you don't join properly.

    10. Re:Glad they emphasis SQL-92 by Caractacus+Potts · · Score: 2


      I'm actually a fan of the JOIN clause. You might think that it's easier to read when you're writing it, but things change when you have to deal with more complex queries or decipher a long unformatted one that you or someone else wrote long ago.

      I'm currently coding up a SQL "pretty printer", and moving the joining criteria from the FROM clause where it makes sense to the WHERE clause where it's just convenient does not look pretty.

    11. Re:Glad they emphasis SQL-92 by PureCreditor · · Score: 1

      I'm new to SQL. What's the correct way to present the above syntax without accidentally taking the cartesian product of such? Thanks.

    12. Re:Glad they emphasis SQL-92 by cruachan · · Score: 1

      I agree with many here. SQL-92 JOINS look good from a theoretical computer science type viewpoint, and indeed for joins on two or three tables they are pretty.

      Trouble is when you have a complex database with a load of table decodes and your doing a complex set of joins on a dozen tables then deciphering a query written 6 months ago with SQL-92 syntax is hell. In effect SQL-92 just doesn't scale anywhere near as well as SQL-89.

    13. Re:Glad they emphasis SQL-92 by Anonymous Coward · · Score: 0
      As Triumph would say:

      Your little joke is very good...


      For me to POOP ON!

    14. Re:Glad they emphasis SQL-92 by FearUncertaintyDoubt · · Score: 2
      SQL-89:
      SELECT * FROM table1, table2
      WHERE table1.id = table2.id

      SQL-92:
      SELECT * FROM table1 JOIN table2
      ON table1.id = table2.id

    15. Re:Glad they emphasis SQL-92 by jabbo · · Score: 2

      You know, that may well be, but I always thought that the "where a.id = b.id" was pretty logical and explicit. I still can't quite bring myself to use the new syntax except for outer joins (where, at least in Postgresql, it's the only way I know of to do it).

      I have worked on and developed on MySQL, Oracle, Sybase, PostgreSQL, and a tiny bit of MS-SQL (7.0) so I have a few bad habits stemming from my Oracle days. I do like Postgres best of all, though.

      --
      Remember that what's inside of you doesn't matter because nobody can see it.
    16. Re:Glad they emphasis SQL-92 by wrt2 · · Score: 1

      or:

      select a,b,c,d,e
      from foo join (bar join (select a, b from zee) bat
      on (bar.a = bat.a and bar.b = bat.b) )
      on (foo.a = bar.a)

      unless I'm missing something...

      --
      -- "Why, Mr. Anderson, why? Why do you do it? Why get up? Why keep voting? Do you think you're voting for something?"
    17. Re:Glad they emphasis SQL-92 by Fulcrum+of+Evil · · Score: 2

      Did they fix the bug where circular joins crash the DBc connection?

      SELECT A.id FROM A, B, C
      WHERE A.id = B.id AND B.id = C.id AND C.id = A.id;
      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    18. Re:Glad they emphasis SQL-92 by eric2hill · · Score: 1

      Works dandy all the way back to Oracle 7.3.4...

      --
      LOAD "SIG",8,1
      LOADING...
      READY.
      RUN
    19. Re:Glad they emphasis SQL-92 by deputydink · · Score: 1

      even better ... in sql92 you can use an explicit left outer join and remove that extra where clause.

      Select A.*
      From A LEFT OUTER JOIN B
      ON (A.CityID = B.CityID)
      Where
      B.TaxRate > 5

    20. Re:Glad they emphasis SQL-92 by Pfhreakaz0id · · Score: 2

      As a guy who learned SQL on MS-SQL (the -92 variant), going to Oracle now, this has been my biggest hurdle. I have to mentally translate it back. I don't see how anyone could argue it is clearer to separate the joins from the filtering. In practice, I think most people puts joins first, then filters, but I've read some stuff that it might not always be the most efficient query.

      I understand 9i now supports JOIN, but we're still running 8. SIGH.

    21. Re:Glad they emphasis SQL-92 by Anonymous Coward · · Score: 0

      you misspelled 'extremely'.

      hope this helps.

    22. Re:Glad they emphasis SQL-92 by Anonymous Coward · · Score: 0

      You would simply use nested queries in SQL Server to handle this, as another post already pointed out. Works great, and the query engine seems to have no trouble optimizing them.

      Most of the people I've met who bad mouth SQL Server have not actually tried to use it for anything real. Perhaps they see that all of the configuration and tuning and complexity that they are accustomed to appears to be missing and therefore conclude that the product is not powerful.

      And indeed SQL Server may not be as powerful as Oracle. Oracle is becoming increasingly integrated with many things that aren't database (the application server, for example). If you have the desire and the cash to buy into Oracle's expansive, powerful, and complex application architecture, then 9i is the database for you. But for the majority of database projects, it is overkill.

      With today's hardware, unless you have a BIG database, you can use any crappy database and get decent performance. (Unless you are stupid about data modeling, in which case you are also too stupid to use Oracle.)

      Given that peformance and everything-but-the-kitchen-sink features will probably not be the problem, I want the database is easy to work with, both for developers and dbas. When you consider how much staff time costs, SQL easily pays for its comparatively modest price.

      So while I wouldn't run multi-terabyte databases on SQL Server, it is great for small to mid-size projects where you need a full-featured database and don't have much time to spend on it.

      You can design your database using the built-in tools (unsophisticated, but handy if you have nothing else), run the maintenance wizard to set up backups and housecleaning according to your needs, and then check your email periodically to make sure it is still alive.

      In our shop we have one oracle 8i server, and half a dozen SQL Servers. None of our databases are large. Our DBA spends the vast majority of his time fussing with Oracle. The SQL servers just sit there and work.

      (Except for the one running version 6.5! Can't wait to upgrade the damn thing. SQL Server got a major rewrite with 7.0. Before that, much of it was crappy hacked up Sybase code. The first version of SQL Server shared its codebase with Sybase. )

    23. Re:Glad they emphasis SQL-92 by Anonymous Coward · · Score: 0

      that may be true that youre oracle dba is fussin alot.

      but I have administrated both products and for samller databases (1 G) you realy dont have to fuss very much with oracle either.

    24. Re:Glad they emphasis SQL-92 by CySurflex · · Score: 1
      The difference is actually beyond a pretty syntax, when you're dealing with an outer join. The two join syntaxes function in a subtly different way.

      The SQL-89 outer join syntax using *= performs the rest of the WHERE clause after the join, whereas the SQL-92 version, using the LEFT OUTER JOIN syntax performs the WHERE clause before the join. This can result in a different result set in certain cases - and if you know what you're doing, the difference can be used for your benefit.

  23. SQL Security by mrkitty · · Score: 2, Insightful

    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.
  24. *Don't Click This Link* by Anonymous Coward · · Score: -1, Offtopic

    Real Defeated Heroes secxgo.at secxgo.at oatsec.xg ecxgoa.ts Cowards Real Are Anonymous ecxgoa.ts tsecxg.oa secxgo.at oatsec.xg Champions Champions American Champions American tsecxg.oa atsecx.go secxgo.at Real Champions Are Are oatsec.xg Anonymous Cowards American xgoats.ex ecxgoa.ts xgoats.ex American oatsec.xg xgoats.ex tsecxg.oa Anonymous oatsec.xg atsecx.go American Real secxgo.at tsecxg.oa goatse.cx cxgoat.se xgoats.ex secxgo.at goatse.cx goatse.cx goatse.cx oatsec.xg goatse.cx atsecx.go Champions atsecx.go Are atsecx.go atsecx.go Are xgoats.ex tsecxg.oa Cowards secxgo.at Defeated secxgo.at oatsec.xg goatse.cx atsecx.go cxgoat.se Real secxgo.at ecxgoa.ts Are American cxgoat.se cxgoat.se Are secxgo.at oatsec.xg ecxgoa.ts Cowards tsecxg.oa atsecx.go ecxgoa.ts Heroes atsecx.go Are ecxgoa.ts Heroes Defeated cxgoat.se Anonymous xgoats.ex Champions Anonymous ecxgoa.ts secxgo.at Anonymous ecxgoa.ts Heroes Anonymous Anonymous Are xgoats.ex ecxgoa.ts Real goatse.cx secxgo.at Cowards Real goatse.cx American oatsec.xg goatse.cx oatsec.xg Real Are xgoats.ex Champions Anonymous Anonymous tsecxg.oa American Anonymous tsecxg.oa atsecx.go Champions American American atsecx.go Defeated Champions Defeated ecxgoa.ts Are tsecxg.oa Anonymous Real cxgoat.se Champions Anonymous American Real goatse.cx atsecx.go cxgoat.se American atsecx.go Are American oatsec.xg Real Defeated xgoats.ex xgoats.ex xgoats.ex Anonymous goatse.cx oatsec.xg goatse.cx oatsec.xg atsecx.go ecxgoa.ts tsecxg.oa oatsec.xg tsecxg.oa Are Heroes Real xgoats.ex Defeated goatse.cx Champions oatsec.xg tsecxg.oa Defeated Are Anonymous Heroes xgoats.ex secxgo.at goatse.cx secxgo.at Are Heroes tsecxg.oa tsecxg.oa Are Defeated goatse.cx American Champions xgoats.ex oatsec.xg Are Cowards goatse.cx goatse.cx Anonymous goatse.cx atsecx.go Anonymous oatsec.xg goatse.cx Are secxgo.at Anonymous xgoats.ex ecxgoa.ts xgoats.ex Champions cxgoat.se Anonymous atsecx.go Real ecxgoa.ts secxgo.at atsecx.go cxgoat.se Champions Anonymous oatsec.xg goatse.cx Heroes Are secxgo.at ecxgoa.ts Champions xgoats.ex American atsecx.go oatsec.xg Defeated secxgo.at xgoats.ex Are Champions atsecx.go goatse.cx atsecx.go cxgoat.se tsecxg.oa cxgoat.se Cowards secxgo.at oatsec.xg American cxgoat.se Defeated atsecx.go American Are secxgo.at goatse.cx secxgo.at Champions Champions American Defeated Heroes Defeated ecxgoa.ts American secxgo.at ecxgoa.ts xgoats.ex atsecx.go xgoats.ex American Defeated oatsec.xg Real Are secxgo.at Anonymous Heroes American Are Heroes xgoats.ex ecxgoa.ts American American cxgoat.se Cowards Cowards Defeated Are Real Champions cxgoat.se Defeated Cowards atsecx.go ecxgoa.ts ecxgoa.ts Cowards ecxgoa.ts Champions atsecx.go cxgoat.se Heroes cxgoat.se xgoats.ex tsecxg.oa Are Heroes American xgoats.ex cxgoat.se tsecxg.oa Real xgoats.ex Champions atsecx.go Are Champions Are Champions Defeated ecxgoa.ts oatsec.xg tsecxg.oa Defeated tsecxg.oa Real Are atsecx.go cxgoat.se Champions cxgoat.se Cowards ecxgoa.ts secxgo.at xgoats.ex Heroes oatsec.xg xgoats.ex oatsec.xg atsecx.go oatsec.xg ecxgoa.ts Defeated ecxgoa.ts secxgo.at Anonymous Defeated Defeated cxgoat.se oatsec.xg Are Real secxgo.at atsecx.go cxgoat.se Champions xgoats.ex Real Heroes Defeated Anonymous atsecx.go atsecx.go tsecxg.oa Cowards Heroes Real Are oatsec.xg Champions atsecx.go ecxgoa.ts secxgo.at oatsec.xg Heroes secxgo.at atsecx.go Defeated xgoats.ex ecxgoa.ts oatsec.xg xgoats.ex goatse.cx Defeated Real oatsec.xg Cowards Anonymous atsecx.go Defeated ecxgoa.ts oatsec.xg Anonymous Champions goatse.cx cxgoat.se ecxgoa.ts tsecxg.oa Anonymous Defeated cxgoat.se Anonymous xgoats.ex Real cxgoat.se atsecx.go xgoats.ex xgoats.ex Anonymous Are American atsecx.go Cowards atsecx.go oatsec.xg goatse.cx goatse.cx Cowards Defeated ecxgoa.ts tsecxg.oa secxgo.at cxgoat.se Defeated Anonymous cxgoat.se Cowards atsecx.go atsecx.go American oatsec.xg Cowards American Cowards Defeated Are goatse.cx Champions Anonymous goatse.cx Real oatsec.xg atsecx.go Heroes Real Heroes goatse.cx oatsec.xg atsecx.go Heroes Are secxgo.at Heroes American Defeated ecxgoa.ts Anonymous secxgo.at Champions Heroes American Champions tsecxg.oa secxgo.at Anonymous xgoats.ex Real oatsec.xg xgoats.ex Cowards American oatsec.xg Are Champions Cowards xgoats.ex secxgo.at xgoats.ex Champions Are goatse.cx Heroes Champions ecxgoa.ts cxgoat.se atsecx.go atsecx.go American goatse.cx atsecx.go Real xgoats.ex secxgo.at tsecxg.oa goatse.cx Heroes cxgoat.se atsecx.go tsecxg.oa Defeated atsecx.go ecxgoa.ts American secxgo.at Real Anonymous oatsec.xg Real Heroes Cowards Champions secxgo.at American oatsec.xg tsecxg.oa cxgoat.se Anonymous Anonymous atsecx.go Champions goatse.cx secxgo.at oatsec.xg Defeated goatse.cx Real Anonymous ecxgoa.ts cxgoat.se Heroes cxgoat.se tsecxg.oa ecxgoa.ts secxgo.at goatse.cx Are Defeated oatsec.xg goatse.cx goatse.cx Real Defeated tsecxg.oa ecxgoa.ts oatsec.xg Champions secxgo.at goatse.cx xgoats.ex xgoats.ex Champions Are Champions oatsec.xg oatsec.xg ecxgoa.ts Are Champions Defeated oatsec.xg Defeated atsecx.go Anonymous atsecx.go Defeated secxgo.at Anonymous atsecx.go secxgo.at Champions Heroes atsecx.go Heroes ecxgoa.ts ecxgoa.ts American American Anonymous American atsecx.go Are atsecx.go Anonymous ecxgoa.ts xgoats.ex American Cowards Cowards cxgoat.se Real Defeated ecxgoa.ts Champions atsecx.go ecxgoa.ts Heroes xgoats.ex American secxgo.at American Are secxgo.at Heroes Are secxgo.at Heroes Cowards oatsec.xg Heroes xgoats.ex Cowards Champions oatsec.xg atsecx.go Real Anonymous Cowards secxgo.at Anonymous secxgo.at atsecx.go Defeated xgoats.ex Heroes Real ecxgoa.ts cxgoat.se cxgoat.se secxgo.at American Heroes Cowards Champions ecxgoa.ts Real Champions goatse.cx cxgoat.se xgoats.ex secxgo.at ecxgoa.ts cxgoat.se Real Real Champions ecxgoa.ts Real tsecxg.oa cxgoat.se American Defeated ecxgoa.ts Defeated secxgo.at ecxgoa.ts Are xgoats.ex Defeated American goatse.cx cxgoat.se Defeated cxgoat.se xgoats.ex Real tsecxg.oa ecxgoa.ts Heroes ecxgoa.ts Anonymous goatse.cx Cowards Cowards Cowards Are goatse.cx American Anonymous tsecxg.oa xgoats.ex secxgo.at cxgoat.se Cowards Anonymous ecxgoa.ts Defeated Real Anonymous American Are ecxgoa.ts xgoats.ex Anonymous Defeated tsecxg.oa atsecx.go xgoats.ex American Real oatsec.xg Real cxgoat.se Anonymous tsecxg.oa atsecx.go Champions Heroes oatsec.xg cxgoat.se ecxgoa.ts Defeated tsecxg.oa secxgo.at oatsec.xg Cowards Real Real American Heroes ecxgoa.ts xgoats.ex secxgo.at goatse.cx secxgo.at Anonymous goatse.cx American ecxgoa.ts secxgo.at Are secxgo.at oatsec.xg goatse.cx Are goatse.cx Cowards Champions Champions secxgo.at xgoats.ex xgoats.ex xgoats.ex atsecx.go Anonymous Cowards Anonymous secxgo.at xgoats.ex ecxgoa.ts Real Real Real Anonymous atsecx.go Anonymous Heroes goatse.cx Anonymous oatsec.xg Heroes Champions xgoats.ex atsecx.go Champions Defeated Real Anonymous cxgoat.se ecxgoa.ts secxgo.at American atsecx.go Real ecxgoa.ts Real Heroes American Cowards Real xgoats.ex atsecx.go Are atsecx.go Real cxgoat.se oatsec.xg oatsec.xg American cxgoat.se goatse.cx Cowards ecxgoa.ts oatsec.xg oatsec.xg Real secxgo.at Champions xgoats.ex tsecxg.oa Real atsecx.go Champions American Champions Heroes Heroes ecxgoa.ts tsecxg.oa atsecx.go Heroes xgoats.ex cxgoat.se goatse.cx Anonymous Champions tsecxg.oa Are Cowards secxgo.at tsecxg.oa Real tsecxg.oa Cowards American American xgoats.ex Are Defeated atsecx.go Real tsecxg.oa goatse.cx Champions atsecx.go Anonymous Real Real Real atsecx.go tsecxg.oa xgoats.ex xgoats.ex Defeated Are Anonymous Real goatse.cx secxgo.at Cowards Cowards Anonymous oatsec.xg Defeated Defeated Heroes tsecxg.oa Heroes atsecx.go Cowards Are atsecx.go ecxgoa.ts xgoats.ex goatse.cx Anonymous Are Champions American Champions xgoats.ex Are cxgoat.se Cowards ecxgoa.ts Real secxgo.at xgoats.ex Heroes atsecx.go American Heroes secxgo.at ecxgoa.ts American secxgo.at oatsec.xg xgoats.ex American atsecx.go Heroes Are Champions Real secxgo.at American goatse.cx xgoats.ex cxgoat.se American Cowards atsecx.go ecxgoa.ts atsecx.go ecxgoa.ts Heroes cxgoat.se American Cowards Champions atsecx.go American Heroes Defeated Cowards xgoats.ex atsecx.go Are cxgoat.se Defeated xgoats.ex ecxgoa.ts American Anonymous tsecxg.oa Champions Champions xgoats.ex cxgoat.se American Anonymous cxgoat.se oatsec.xg atsecx.go American tsecxg.oa American goatse.cx Heroes xgoats.ex ecxgoa.ts xgoats.ex Real cxgoat.se Real ecxgoa.ts Heroes oatsec.xg xgoats.ex tsecxg.oa xgoats.ex xgoats.ex Defeated Defeated Are American xgoats.ex goatse.cx Real American Cowards Cowards oatsec.xg goatse.cx Heroes Heroes Heroes oatsec.xg xgoats.ex goatse.cx secxgo.at Are Are American goatse.cx secxgo.at Anonymous ecxgoa.ts tsecxg.oa Cowards secxgo.at American Heroes American Defeated cxgoat.se Cowards American Cowards Heroes Are Cowards xgoats.ex cxgoat.se ecxgoa.ts atsecx.go goatse.cx Are xgoats.ex secxgo.at ecxgoa.ts Cowards tsecxg.oa goatse.cx Cowards Real atsecx.go Heroes Champions Are xgoats.ex Are Cowards Defeated Champions Defeated ecxgoa.ts Are Champions Defeated tsecxg.oa tsecxg.oa Anonymous tsecxg.oa oatsec.xg Defeated goatse.cx xgoats.ex cxgoat.se ecxgoa.ts American Real xgoats.ex Heroes atsecx.go Are cxgoat.se atsecx.go Real Real secxgo.at Heroes Anonymous oatsec.xg goatse.cx ecxgoa.ts Champions Anonymous Cowards cxgoat.se Anonymous goatse.cx Defeated xgoats.ex cxgoat.se xgoats.ex ecxgoa.ts cxgoat.se American tsecxg.oa tsecxg.oa Real Anonymous secxgo.at Anonymous Defeated Heroes Cowards atsecx.go secxgo.at Defeated ecxgoa.ts Real tsecxg.oa secxgo.at American tsecxg.oa Real Cowards Defeated goatse.cx tsecxg.oa xgoats.ex Cowards Defeated Champions xgoats.ex Cowards Are Anonymous Champions tsecxg.oa atsecx.go ecxgoa.ts secxgo.at tsecxg.oa Real Anonymous Anonymous oatsec.xg cxgoat.se Are Cowards Heroes cxgoat.se Real Anonymous oatsec.xg ecxgoa.ts Real Anonymous atsecx.go American goatse.cx cxgoat.se Are Are oatsec.xg goatse.cx Cowards secxgo.at ecxgoa.ts Heroes Defeated oatsec.xg Defeated Heroes Are Anonymous oatsec.xg Real oatsec.xg oatsec.xg Anonymous Are Are American atsecx.go xgoats.ex Cowards xgoats.ex ecxgoa.ts Real Champions Defeated Real Real ecxgoa.ts atsecx.go cxgoat.se Champions secxgo.at xgoats.ex Anonymous cxgoat.se Heroes atsecx.go Cowards Are Anonymous ecxgoa.ts tsecxg.oa ecxgoa.ts Champions Heroes American tsecxg.oa atsecx.go cxgoat.se ecxgoa.ts atsecx.go Heroes ecxgoa.ts Cowards Heroes atsecx.go secxgo.at tsecxg.oa Anonymous Are tsecxg.oa Are oatsec.xg xgoats.ex ecxgoa.ts goatse.cx atsecx.go Defeated Heroes oatsec.xg Real Anonymous Champions ecxgoa.ts Champions Champions Cowards Real Cowards Defeated atsecx.go American Real secxgo.at goatse.cx secxgo.at ecxgoa.ts Champions American Cowards Real cxgoat.se American Champions secxgo.at oatsec.xg xgoats.ex Defeated Are Defeated Are oatsec.xg cxgoat.se xgoats.ex Champions ecxgoa.ts oatsec.xg Anonymous goatse.cx Champions Are secxgo.at xgoats.ex American Real ecxgoa.ts Champions oatsec.xg secxgo.at tsecxg.oa Real tsecxg.oa American secxgo.at atsecx.go American secxgo.at oatsec.xg ecxgoa.ts oatsec.xg xgoats.ex goatse.cx Champions Heroes cxgoat.se Cowards goatse.cx Real Cowards Champions Real American atsecx.go atsecx.go Defeated tsecxg.oa Anonymous Cowards Defeated cxgoat.se Are secxgo.at atsecx.go Heroes goatse.cx goatse.cx goatse.cx Are Anonymous Cowards Real xgoats.ex tsecxg.oa Cowards Defeated tsecxg.oa ecxgoa.ts Are Real goatse.cx cxgoat.se Real oatsec.xg Cowards Cowards xgoats.ex Real tsecxg.oa secxgo.at xgoats.ex oatsec.xg Heroes oatsec.xg Champions secxgo.at Champions atsecx.go secxgo.at Heroes cxgoat.se oatsec.xg oatsec.xg ecxgoa.ts Champions atsecx.go Champions cxgoat.se Anonymous Champions secxgo.at xgoats.ex secxgo.at Defeated cxgoat.se cxgoat.se oatsec.xg Cowards Champions Real Defeated oatsec.xg secxgo.at Defeated Anonymous Real tsecxg.oa Anonymous Defeated American Heroes xgoats.ex Real Real xgoats.ex atsecx.go oatsec.xg Defeated Defeated Cowards Anonymous xgoats.ex secxgo.at ecxgoa.ts oatsec.xg oatsec.xg oatsec.xg Champions American Are ecxgoa.ts oatsec.xg tsecxg.oa secxgo.at American Champions goatse.cx oatsec.xg ecxgoa.ts Defeated Defeated ecxgoa.ts cxgoat.se Cowards atsecx.go atsecx.go Champions Real Defeated xgoats.ex Heroes cxgoat.se secxgo.at Cowards American Cowards tsecxg.oa xgoats.ex xgoats.ex Defeated Champions goatse.cx secxgo.at Real Are Are oatsec.xg goatse.cx goatse.cx Cowards Cowards atsecx.go secxgo.at oatsec.xg goatse.cx Cowards cxgoat.se Anonymous Heroes Defeated Cowards tsecxg.oa Cowards tsecxg.oa American Champions Are Anonymous tsecxg.oa Heroes goatse.cx xgoats.ex Defeated Are secxgo.at ecxgoa.ts tsecxg.oa Cowards ecxgoa.ts ecxgoa.ts cxgoat.se Anonymous oatsec.xg American ecxgoa.ts xgoats.ex atsecx.go oatsec.xg Anonymous Defeated oatsec.xg Are atsecx.go Champions cxgoat.se Cowards atsecx.go Real oatsec.xg cxgoat.se Are xgoats.ex Heroes xgoats.ex ecxgoa.ts Cowards ecxgoa.ts xgoats.ex secxgo.at Defeated Defeated Anonymous tsecxg.oa Heroes Defeated American cxgoat.se Real Heroes oatsec.xg Are atsecx.go ecxgoa.ts American Heroes American oatsec.xg tsecxg.oa Champions cxgoat.se oatsec.xg Are secxgo.at Defeated Champions Are secxgo.at atsecx.go secxgo.at atsecx.go goatse.cx Are Defeated cxgoat.se secxgo.at Are cxgoat.se secxgo.at Are cxgoat.se American Are American American Real Anonymous oatsec.xg Cowards goatse.cx secxgo.at tsecxg.oa Real Cowards ecxgoa.ts ecxgoa.ts Champions Defeated cxgoat.se Real Defeated Are oatsec.xg xgoats.ex Anonymous xgoats.ex secxgo.at Cowards Defeated American Cowards oatsec.xg secxgo.at xgoats.ex Cowards Cowards xgoats.ex atsecx.go ecxgoa.ts goatse.cx Real Cowards oatsec.xg ecxgoa.ts atsecx.go Anonymous oatsec.xg ecxgoa.ts Cowards tsecxg.oa secxgo.at Defeated Champions Are Anonymous Real secxgo.at secxgo.at atsecx.go secxgo.at xgoats.ex secxgo.at tsecxg.oa Real Champions Defeated secxgo.at Are Heroes Real Defeated Real Cowards secxgo.at Are xgoats.ex Are Champions cxgoat.se Are Defeated oatsec.xg Anonymous Anonymous American goatse.cx oatsec.xg xgoats.ex Champions Real tsecxg.oa Heroes Are xgoats.ex cxgoat.se Defeated cxgoat.se goatse.cx Heroes cxgoat.se xgoats.ex xgoats.ex Cowards Are American tsecxg.oa American Real Anonymous cxgoat.se tsecxg.oa ecxgoa.ts oatsec.xg xgoats.ex Defeated ecxgoa.ts goatse.cx tsecxg.oa oatsec.xg ecxgoa.ts Are Champions Anonymous Are oatsec.xg cxgoat.se Heroes Real secxgo.at atsecx.go Anonymous cxgoat.se goatse.cx Anonymous cxgoat.se ecxgoa.ts Anonymous goatse.cx xgoats.ex goatse.cx xgoats.ex

  25. Another good book by Giant+Robot · · Score: 3, Insightful

    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.

    1. Re:Another good book by Anonymous Coward · · Score: 0
      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.

      Thanks for the tip, I'll pick one up on my next trip to Los Angeles or Garden Grove.

  26. Here here! by dadaist · · Score: -1

    The Internationale

    Arise ye workers from your slumbers
    Arise ye prisoners of want
    For reason in revolt now thunders
    And at last ends the age of cant.
    Away with all your superstitions
    Servile masses arise, arise
    We'll change henceforth the old tradition
    And spurn the dust to win the prize.

    Chorus

    So comrades, come rally
    And the last fight let us face
    The Internationale unites the human race.
    So comrades, come rally
    And the last fight let us face
    The Internationale unites the human race.

    No more deluded by reaction
    On tyrants only we'll make war
    The soldiers too will take strike action
    They'll break ranks and fight no more
    And if those cannibals keep trying
    To sacrifice us to their pride
    They soon shall hear the bullets flying
    We'll shoot the generals on our own side.
    No saviour from on high delivers
    No faith have we in prince or peer
    Our own right hand the chains must shiver
    Chains of hatred, greed and fear
    E'er the thieves will out with their booty
    And give to all a happier lot.
    Each at the forge must do their duty
    And we'll strike while the iron is hot.

    --

    ~
    MU!
  27. Looks sweet by WellHungYungWun · · Score: 0

    Thanks for an excellent review, I was looking for a beginner to expert book to compliment my "from the ground up" sql book, and this may have a place on my shelf.

    --
    "On a long enough timeline, the survival rate for everyone drops to zero."
  28. Silence Shit Stain! by DonkeyHote · · Score: -1

    You filthy AC animal, the only thing you're romatically "linked" to is your stuffed 'TUX' penguin you sick plushie fucker.

  29. Do not mod down by Anonymous Coward · · Score: -1, Offtopic

    Do not mod this message down, I am at an educational facility where it is absolutely necessary our students be allowed to post. Yes, we have some trolls at our school but we also have good students. Please.

    James Adams,
    Administrator

  30. While the Slashdot programmers are by Anonymous Coward · · Score: -1, Offtopic

    figuring out how to prevent idiots from making links like that again again, could they also fix the "Index Spill" feature? It seems to have stopped working. Thx.

  31. SQL by peepoh · · Score: -1

    I read The Practical SQL Handbook: Using SQL Variants, and I didn't find it to be very helpful. My best recommendation would be O'Reilly's book, as well as a couple of others.

    --

    Life is a scam. - Steve McQue
  32. MySQL again by fm6 · · Score: 5, Insightful

    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.

  33. That's because by brokeninside · · Score: 0, Troll

    SQL, being an acronym, is properly pronounced ess cue el. Mispronouning SQL as sequel shows the lack of pedantry needed to be a good computer scientist.

    1. Re:That's because by Anonymous Coward · · Score: 0

      No, there are plenty of computer scientists who are able to stop being anal enough/pedantic to joke. On second thoughts though.....

    2. Re:That's because by Chacham · · Score: 1

      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

    3. Re:That's because by dillon_rinker · · Score: 2

      There's a big difference between SQL and DOS or RAID...VOWELS!

    4. Re:That's because by sphealey · · Score: 2
      In fact, until about 1992 or so "SQL" was pronounced "ess-que-ell" in US English. About the time Microsoft "SequelServer" was released it suddenly became "Seek-kwell". Don't know why, but it does tend to grate on those who used it before change.

      sPh

    5. Re:That's because by Chacham · · Score: 1

      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.

    6. Re:That's because by edhall · · Score: 5, Interesting

      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).

      -Ed
    7. Re:That's because by Anonymous Coward · · Score: 0

      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.

      Would you pronounce the Latin word "Datum" as Day-tum? Were the Romans all "losers"? Language is different in different places, and it also changes. SQL used to be pronounced as three separate letters, now it's mostly changed. It's not such a big deal - get over yourself.

    8. Re:That's because by adamy · · Score: 1

      NONONONO

      It is not Scuzzy...it is

      SEXY

      (remeber that one?)

      --
      Open Source Identity Management: FreeIPA.org
    9. Re:That's because by jafuser · · Score: 2
      Some acronyms are easier spelled than pronounces

      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
    10. Re:That's because by Anonymous Coward · · Score: 0

      Some acronyms are created with a pronunciation in mind (RAID). Some are just letters put together (PCMCIA). It's not Mr(s). Shops4me Dot Com who's supposed to make the pronunciation rules, it's the people who make up the acronym. SQL was intended by IBM, its creators, to be pronounced "ess-cue-ell" to differentiate it from their earlier effort SEQUEL.

      Also, "database" is pronounced differently in different locales. It's a word, not an acronym. Go look it up. Webster's lists both pronunciations as acceptable.

      By the way, you use far too many commas to be correcting others' language. You should learn what commas are for and where they're appropriate, because you don't come off as intelligent as you appear to think you are.

      But I think the most telling mistake you make is misspelling "exempli gratia." There's nothing funnier than some arrogant asshole misspelling the latin they use to appear intelligent.

    11. Re:That's because by Chacham · · Score: 1

      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.

    12. Re:That's because by wdr1 · · Score: 2

      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
    13. Re:That's because by plugger · · Score: 1

      Unless you are watching 60's StarTrek, then the correct pronunciation is dah-ta-bays'

    14. Re:That's because by alienmole · · Score: 1
      The shift began before that - I remember first hearing it in the late '80s, and being incredulous and vowing never to use it. (I use it now without a second thought - there go my principles.)

      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!!

    15. Re:That's because by PacoTaco · · Score: 1
      Here's the real question. Why is SCSI pronounced "scuzzy" while HSSI is pronounced "hizzy"? Both have three consonants and end with an i. Why not "scizzy" and "huzzy" instead?

      I guess it's probably because "fetch me that huzzy cable" sounds pretty stupid. :)

    16. Re:That's because by edhall · · Score: 2

      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.

      -Ed
    17. Re:That's because by Anonymous Coward · · Score: 0

      No, I meant "commas." You shouldn't be sure of yourself, because you're wrong.

      I use them when I think a pause is needed to understand the statement.

      Oh, like this? "PostgreSQL, is spelled, post-gress-que-ell, because post-gress-sequel, is harder to pronounce, and doubles the 's'."

      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. If you can't understand your own writing, inserting random commas won't help you. Instead, go read a basic grammar book. You might want to look up "plurals vs. possessives" while you're in there. Here's a little exercise to help you out. (It's "others just repeat," not "other's just repeat.")

      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. And don't worry, there was no danger of you sounding intelligent, accidentally or otherwise. Yeah, I'm pedantic about English, but I also know how to use it.

      By the way, it's much easier to "get the point across" when you use the language correctly. I don't see how you couldn't understand that.

    18. Re:That's because by Chacham · · Score: 1

      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.

    19. Re:That's because by tgrigsby · · Score: 1

      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... ***
    20. Re:That's because by Anonymous Coward · · Score: 0

      You do that, sweetie.

  34. CDs everywhere by fm6 · · Score: 2
    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. ... Many publishers perceive that they can charge more for a book that has a CD, but I just find it annoying and wasteful.
    Well perhaps. Certainly most "FREE BONUS!" CDs are a total waste. But having a large DBMS server on a CD can be a real boon for those with slow internet connection. You'll not that many sites that provide software for free download also offer the same software on CD for a nominal fee.

    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.

    1. Re:CDs everywhere by Anonymous Coward · · Score: 0

      One reason the dbms on the CD is Sybase is the authors are employees of Sybase. Or at least they were when I read an earlier edition.

      A good reason for providing a dbms on the CD, even a toy one, is to give the reader something to practice with. This is bigger issue for Windoze users. I read the first edition before a CD was provided, and it was difficult setting up a practice environment, even at work.

      It has been more than 10 years since I read the first edition, but because of it, I still feel comfortable with SQL. This is the book I have always recommended.

  35. Burn IT Down!!!! Burn IT Down!!!! by Anonymous Coward · · Score: -1, Troll

    atsecx.go cxgoat.se ecxgoa.ts Fuck Slashdot secxgo.at Fix PWP Bugs Fuck Slashdot atsecx.go atsecx.go Shit That Splatters Fix PWP Bugs xgoats.ec Dirty Taco tsecxg.oa Fix PWP Bugs xgoats.ec Turds For Birds Dirty Taco goatse.cx atsecx.go goatse.cx Shit That Splatters Fix PWP Bugs goatse.cx Fix PWP Bugs cxgoat.se tsecxg.oa Fix PWP Bugs goatse.cx xgoats.ec goatse.cx atsecx.go Katz'es Brood xgoats.ec Lord of the Anus Katz'es Brood cxgoat.se Fuck Slashdot secxgo.at Turds For Birds Fix PWP Bugs cxgoat.se Fix PWP Bugs Fix PWP Bugs Deepthroat Katz Dirty Taco Shit That Splatters ecxgoa.ts Katz'es Brood Dirty Taco ecxgoa.ts Katz'es Brood Deepthroat Katz ecxgoa.ts Deepthroat Katz secxgo.at secxgo.at Deepthroat Katz Lord of the Anus Fuck Slashdot tsecxg.oa oatsec.xg goatse.cx atsecx.go Fix PWP Bugs xgoats.ec Turds For Birds goatse.cx Shit That Splatters secxgo.at goatse.cx Deepthroat Katz Turds For Birds cxgoat.se Katz'es Brood Deepthroat Katz secxgo.at cxgoat.se Shit That Splatters Turds For Birds tsecxg.oa Fuck Slashdot Lord of the Anus Shit That Splatters Fix PWP Bugs atsecx.go secxgo.at oatsec.xg oatsec.xg Fix PWP Bugs Turds For Birds ecxgoa.ts goatse.cx tsecxg.oa tsecxg.oa Fix PWP Bugs Fix PWP Bugs oatsec.xg Dirty Taco Fuck Slashdot oatsec.xg Fix PWP Bugs ecxgoa.ts secxgo.at Turds For Birds Deepthroat Katz Katz'es Brood ecxgoa.ts Fuck Slashdot Fuck Slashdot xgoats.ec Turds For Birds ecxgoa.ts ecxgoa.ts atsecx.go atsecx.go Fix PWP Bugs Fix PWP Bugs cxgoat.se ecxgoa.ts Lord of the Anus tsecxg.oa Fuck Slashdot Lord of the Anus Fuck Slashdot Shit That Splatters atsecx.go oatsec.xg oatsec.xg tsecxg.oa goatse.cx goatse.cx secxgo.at Fuck Slashdot Katz'es Brood Fix PWP Bugs ecxgoa.ts atsecx.go oatsec.xg Deepthroat Katz Katz'es Brood oatsec.xg Lord of the Anus Fuck Slashdot oatsec.xg Dirty Taco Fuck Slashdot Deepthroat Katz oatsec.xg Lord of the Anus cxgoat.se Fuck Slashdot xgoats.ec secxgo.at Fix PWP Bugs tsecxg.oa secxgo.at cxgoat.se Fix PWP Bugs Turds For Birds Lord of the Anus oatsec.xg Deepthroat Katz tsecxg.oa Deepthroat Katz Fix PWP Bugs tsecxg.oa Dirty Taco ecxgoa.ts Dirty Taco Lord of the Anus Katz'es Brood xgoats.ec oatsec.xg tsecxg.oa Katz'es Brood Turds For Birds goatse.cx Katz'es Brood cxgoat.se cxgoat.se Deepthroat Katz ecxgoa.ts oatsec.xg xgoats.ec Katz'es Brood Dirty Taco Lord of the Anus secxgo.at Fuck Slashdot secxgo.at secxgo.at oatsec.xg Turds For Birds atsecx.go Lord of the Anus secxgo.at tsecxg.oa Lord of the Anus oatsec.xg Dirty Taco Fix PWP Bugs Katz'es Brood Shit That Splatters oatsec.xg Deepthroat Katz goatse.cx Shit That Splatters atsecx.go Fuck Slashdot tsecxg.oa Deepthroat Katz tsecxg.oa xgoats.ec Dirty Taco Fix PWP Bugs Shit That Splatters Fix PWP Bugs Deepthroat Katz Shit That Splatters xgoats.ec Fuck Slashdot Fuck Slashdot Fix PWP Bugs Turds For Birds xgoats.ec Katz'es Brood oatsec.xg tsecxg.oa Lord of the Anus goatse.cx Shit That Splatters goatse.cx ecxgoa.ts secxgo.at atsecx.go tsecxg.oa Dirty Taco secxgo.at ecxgoa.ts Fix PWP Bugs Shit That Splatters Turds For Birds atsecx.go oatsec.xg tsecxg.oa xgoats.ec secxgo.at Fuck Slashdot Turds For Birds ecxgoa.ts ecxgoa.ts ecxgoa.ts Fix PWP Bugs Fix PWP Bugs tsecxg.oa atsecx.go Fuck Slashdot oatsec.xg xgoats.ec Katz'es Brood Lord of the Anus Dirty Taco Fix PWP Bugs Deepthroat Katz Fuck Slashdot oatsec.xg Lord of the Anus ecxgoa.ts atsecx.go Deepthroat Katz Deepthroat Katz Deepthroat Katz goatse.cx goatse.cx oatsec.xg Deepthroat Katz Shit That Splatters Deepthroat Katz Fuck Slashdot Fuck Slashdot oatsec.xg Fuck Slashdot goatse.cx xgoats.ec Deepthroat Katz goatse.cx Fix PWP Bugs oatsec.xg Katz'es Brood tsecxg.oa xgoats.ec xgoats.ec Dirty Taco Fuck Slashdot Turds For Birds Lord of the Anus Dirty Taco goatse.cx xgoats.ec goatse.cx Katz'es Brood cxgoat.se Shit That Splatters Fix PWP Bugs goatse.cx Fuck Slashdot atsecx.go goatse.cx Turds For Birds goatse.cx Dirty Taco Deepthroat Katz ecxgoa.ts Shit That Splatters cxgoat.se cxgoat.se Fuck Slashdot Shit That Splatters Deepthroat Katz xgoats.ec Deepthroat Katz Deepthroat Katz Deepthroat Katz cxgoat.se Katz'es Brood atsecx.go goatse.cx ecxgoa.ts cxgoat.se Lord of the Anus secxgo.at Shit That Splatters cxgoat.se cxgoat.se tsecxg.oa Lord of the Anus xgoats.ec Lord of the Anus oatsec.xg tsecxg.oa xgoats.ec Lord of the Anus Turds For Birds Shit That Splatters Katz'es Brood cxgoat.se Katz'es Brood cxgoat.se ecxgoa.ts oatsec.xg Katz'es Brood tsecxg.oa xgoats.ec Fuck Slashdot atsecx.go ecxgoa.ts oatsec.xg Fuck Slashdot secxgo.at Deepthroat Katz goatse.cx Shit That Splatters goatse.cx Katz'es Brood Katz'es Brood oatsec.xg cxgoat.se Fix PWP Bugs tsecxg.oa xgoats.ec Lord of the Anus Lord of the Anus xgoats.ec Dirty Taco Fuck Slashdot tsecxg.oa cxgoat.se Fuck Slashdot Deepthroat Katz Fix PWP Bugs tsecxg.oa goatse.cx secxgo.at goatse.cx Turds For Birds Deepthroat Katz Fix PWP Bugs Turds For Birds Lord of the Anus ecxgoa.ts Katz'es Brood secxgo.at Fuck Slashdot Fix PWP Bugs atsecx.go atsecx.go tsecxg.oa oatsec.xg Katz'es Brood Fix PWP Bugs Fix PWP Bugs Shit That Splatters Dirty Taco ecxgoa.ts atsecx.go Fuck Slashdot ecxgoa.ts oatsec.xg Katz'es Brood xgoats.ec oatsec.xg atsecx.go secxgo.at Deepthroat Katz oatsec.xg Shit That Splatters Dirty Taco xgoats.ec cxgoat.se Dirty Taco secxgo.at Dirty Taco goatse.cx Turds For Birds Turds For Birds ecxgoa.ts secxgo.at goatse.cx Deepthroat Katz atsecx.go Fix PWP Bugs Turds For Birds Lord of the Anus Fix PWP Bugs cxgoat.se Dirty Taco ecxgoa.ts tsecxg.oa xgoats.ec Turds For Birds oatsec.xg Fix PWP Bugs Dirty Taco Fix PWP Bugs Dirty Taco Dirty Taco atsecx.go goatse.cx cxgoat.se goatse.cx Turds For Birds Fuck Slashdot Katz'es Brood Katz'es Brood Katz'es Brood Katz'es Brood tsecxg.oa Shit That Splatters Turds For Birds oatsec.xg Fix PWP Bugs Deepthroat Katz secxgo.at Dirty Taco Turds For Birds Lord of the Anus Deepthroat Katz Turds For Birds atsecx.go Shit That Splatters oatsec.xg goatse.cx Turds For Birds xgoats.ec Fuck Slashdot Dirty Taco Fuck Slashdot tsecxg.oa Turds For Birds Lord of the Anus Turds For Birds Deepthroat Katz goatse.cx Lord of the Anus Turds For Birds Shit That Splatters Shit That Splatters tsecxg.oa Shit That Splatters Turds For Birds cxgoat.se ecxgoa.ts Turds For Birds Turds For Birds ecxgoa.ts Shit That Splatters Dirty Taco oatsec.xg ecxgoa.ts tsecxg.oa Katz'es Brood xgoats.ec tsecxg.oa oatsec.xg xgoats.ec xgoats.ec Shit That Splatters tsecxg.oa cxgoat.se Lord of the Anus ecxgoa.ts cxgoat.se cxgoat.se Deepthroat Katz Dirty Taco xgoats.ec Fuck Slashdot Fix PWP Bugs ecxgoa.ts Katz'es Brood Lord of the Anus Dirty Taco secxgo.at Katz'es Brood Turds For Birds Shit That Splatters Lord of the Anus atsecx.go secxgo.at Deepthroat Katz Lord of the Anus atsecx.go Lord of the Anus Katz'es Brood Fix PWP Bugs secxgo.at goatse.cx secxgo.at Dirty Taco cxgoat.se secxgo.at Katz'es Brood Katz'es Brood tsecxg.oa ecxgoa.ts Deepthroat Katz Deepthroat Katz Deepthroat Katz Dirty Taco Dirty Taco oatsec.xg Shit That Splatters oatsec.xg secxgo.at ecxgoa.ts goatse.cx secxgo.at Fuck Slashdot Turds For Birds Dirty Taco Deepthroat Katz ecxgoa.ts cxgoat.se secxgo.at atsecx.go Lord of the Anus secxgo.at Dirty Taco Dirty Taco xgoats.ec Fix PWP Bugs tsecxg.oa Fix PWP Bugs xgoats.ec Fuck Slashdot cxgoat.se cxgoat.se ecxgoa.ts xgoats.ec Lord of the Anus Lord of the Anus oatsec.xg Fix PWP Bugs Fuck Slashdot Lord of the Anus Turds For Birds Dirty Taco xgoats.ec cxgoat.se Deepthroat Katz ecxgoa.ts goatse.cx secxgo.at Shit That Splatters Katz'es Brood Turds For Birds Fuck Slashdot Deepthroat Katz Fix PWP Bugs Shit That Splatters Deepthroat Katz goatse.cx Shit That Splatters Katz'es Brood secxgo.at Fuck Slashdot Fuck Slashdot Turds For Birds atsecx.go goatse.cx Katz'es Brood Katz'es Brood secxgo.at oatsec.xg xgoats.ec Dirty Taco cxgoat.se xgoats.ec Lord of the Anus Turds For Birds Turds For Birds Lord of the Anus Lord of the Anus ecxgoa.ts Katz'es Brood tsecxg.oa Shit That Splatters oatsec.xg Fix PWP Bugs atsecx.go cxgoat.se atsecx.go Dirty Taco cxgoat.se oatsec.xg xgoats.ec Shit That Splatters Fix PWP Bugs Shit That Splatters Shit That Splatters oatsec.xg cxgoat.se Lord of the Anus Shit That Splatters Lord of the Anus ecxgoa.ts Deepthroat Katz Fuck Slashdot ecxgoa.ts Fix PWP Bugs atsecx.go Deepthroat Katz Shit That Splatters oatsec.xg xgoats.ec Lord of the Anus Deepthroat Katz goatse.cx Fix PWP Bugs goatse.cx xgoats.ec goatse.cx Katz'es Brood atsecx.go Shit That Splatters Turds For Birds Dirty Taco Lord of the Anus goatse.cx tsecxg.oa Deepthroat Katz Katz'es Brood Deepthroat Katz Dirty Taco Deepthroat Katz Katz'es Brood tsecxg.oa Shit That Splatters oatsec.xg Turds For Birds atsecx.go Lord of the Anus atsecx.go oatsec.xg Lord of the Anus Katz'es Brood Deepthroat Katz Lord of the Anus secxgo.at Dirty Taco ecxgoa.ts Turds For Birds xgoats.ec atsecx.go oatsec.xg Turds For Birds ecxgoa.ts Lord of the Anus Lord of the Anus Shit That Splatters ecxgoa.ts Shit That Splatters Deepthroat Katz Dirty Taco Deepthroat Katz Dirty Taco Fix PWP Bugs Deepthroat Katz oatsec.xg Katz'es Brood Turds For Birds secxgo.at Lord of the Anus Shit That Splatters Fix PWP Bugs atsecx.go ecxgoa.ts xgoats.ec xgoats.ec Shit That Splatters oatsec.xg Fuck Slashdot cxgoat.se goatse.cx cxgoat.se Shit That Splatters oatsec.xg cxgoat.se Fix PWP Bugs goatse.cx oatsec.xg Fix PWP Bugs oatsec.xg Katz'es Brood Deepthroat Katz atsecx.go Fuck Slashdot secxgo.at Fuck Slashdot Turds For Birds secxgo.at tsecxg.oa oatsec.xg Fuck Slashdot Dirty Taco Deepthroat Katz atsecx.go oatsec.xg tsecxg.oa xgoats.ec ecxgoa.ts cxgoat.se Lord of the Anus oatsec.xg Katz'es Brood secxgo.at Deepthroat Katz Deepthroat Katz Turds For Birds Dirty Taco Lord of the Anus Katz'es Brood goatse.cx Turds For Birds Dirty Taco Deepthroat Katz Dirty Taco xgoats.ec goatse.cx cxgoat.se atsecx.go xgoats.ec cxgoat.se Fuck Slashdot xgoats.ec secxgo.at Dirty Taco oatsec.xg Deepthroat Katz Fix PWP Bugs Deepthroat Katz Shit That Splatters xgoats.ec Dirty Taco Shit That Splatters atsecx.go Fix PWP Bugs secxgo.at tsecxg.oa secxgo.at Shit That Splatters atsecx.go goatse.cx secxgo.at goatse.cx Katz'es Brood ecxgoa.ts Deepthroat Katz Fix PWP Bugs ecxgoa.ts goatse.cx Turds For Birds atsecx.go secxgo.at ecxgoa.ts Fuck Slashdot cxgoat.se Deepthroat Katz ecxgoa.ts Shit That Splatters Fix PWP Bugs secxgo.at atsecx.go tsecxg.oa Lord of the Anus Turds For Birds Lord of the Anus goatse.cx xgoats.ec Turds For Birds cxgoat.se atsecx.go Lord of the Anus atsecx.go atsecx.go Deepthroat Katz Deepthroat Katz Fix PWP Bugs oatsec.xg goatse.cx Fuck Slashdot Turds For Birds secxgo.at Katz'es Brood Shit That Splatters Lord of the Anus secxgo.at cxgoat.se Shit That Splatters cxgoat.se cxgoat.se Lord of the Anus cxgoat.se Deepthroat Katz secxgo.at oatsec.xg secxgo.at Katz'es Brood Dirty Taco Katz'es Brood ecxgoa.ts secxgo.at goatse.cx Fuck Slashdot Deepthroat Katz Fuck Slashdot Shit That Splatters Shit That Splatters ecxgoa.ts tsecxg.oa Dirty Taco ecxgoa.ts Shit That Splatters Lord of the Anus Katz'es Brood tsecxg.oa secxgo.at Katz'es Brood oatsec.xg Lord of the Anus tsecxg.oa Katz'es Brood oatsec.xg Katz'es Brood xgoats.ec Turds For Birds Lord of the Anus Fix PWP Bugs oatsec.xg Dirty Taco Dirty Taco Shit That Splatters Katz'es Brood Turds For Birds atsecx.go tsecxg.oa goatse.cx Fix PWP Bugs Katz'es Brood Turds For Birds tsecxg.oa Turds For Birds tsecxg.oa atsecx.go goatse.cx Turds For Birds Fuck Slashdot Turds For Birds tsecxg.oa Fix PWP Bugs Katz'es Brood xgoats.ec cxgoat.se ecxgoa.ts Turds For Birds atsecx.go Shit That Splatters Lord of the Anus Fix PWP Bugs ecxgoa.ts xgoats.ec Shit That Splatters Katz'es Brood Dirty Taco goatse.cx tsecxg.oa oatsec.xg Fuck Slashdot tsecxg.oa Deepthroat Katz secxgo.at Shit That Splatters Dirty Taco Dirty Taco Shit That Splatters atsecx.go ecxgoa.ts atsecx.go Turds For Birds Turds For Birds atsecx.go oatsec.xg ecxgoa.ts atsecx.go cxgoat.se xgoats.ec cxgoat.se secxgo.at cxgoat.se atsecx.go oatsec.xg Fuck Slashdot cxgoat.se Lord of the Anus Deepthroat Katz oatsec.xg goatse.cx oatsec.xg Katz'es Brood Fix PWP Bugs Deepthroat Katz goatse.cx xgoats.ec Lord of the Anus xgoats.ec Deepthroat Katz Deepthroat Katz tsecxg.oa Dirty Taco Fix PWP Bugs Katz'es Brood Deepthroat Katz oatsec.xg secxgo.at Katz'es Brood ecxgoa.ts secxgo.at Katz'es Brood Deepthroat Katz Shit That Splatters oatsec.xg secxgo.at Shit That Splatters tsecxg.oa ecxgoa.ts Turds For Birds Turds For Birds Fix PWP Bugs goatse.cx Fuck Slashdot Shit That Splatters Shit That Splatters Shit That Splatters Fix PWP Bugs Dirty Taco Katz'es Brood Deepthroat Katz goatse.cx ecxgoa.ts cxgoat.se goatse.cx Fix PWP Bugs Katz'es Brood oatsec.xg atsecx.go xgoats.ec Deepthroat Katz Deepthroat Katz atsecx.go secxgo.at Deepthroat Katz xgoats.ec Fix PWP Bugs goatse.cx atsecx.go Turds For Birds atsecx.go xgoats.ec Turds For Birds atsecx.go tsecxg.oa Lord of the Anus Katz'es Brood cxgoat.se atsecx.go goatse.cx Dirty Taco secxgo.at Fix PWP Bugs goatse.cx cxgoat.se goatse.cx Fuck Slashdot Katz'es Brood Lord of the Anus oatsec.xg atsecx.go xgoats.ec Shit That Splatters Deepthroat Katz cxgoat.se Lord of the Anus oatsec.xg ecxgoa.ts xgoats.ec tsecxg.oa goatse.cx secxgo.at goatse.cx Katz'es Brood xgoats.ec Dirty Taco Katz'es Brood Fix PWP Bugs oatsec.xg Dirty Taco Katz'es Brood ecxgoa.ts Katz'es Brood Fix PWP Bugs ecxgoa.ts Fuck Slashdot secxgo.at Turds For Birds secxgo.at goatse.cx secxgo.at atsecx.go xgoats.ec atsecx.go Fix PWP Bugs Katz'es Brood Dirty Taco atsecx.go Katz'es Brood tsecxg.oa secxgo.at Lord of the Anus cxgoat.se Deepthroat Katz Turds For Birds Deepthroat Katz goatse.cx secxgo.at tsecxg.oa Shit That Splatters Fuck Slashdot Fuck Slashdot secxgo.at Fix PWP Bugs xgoats.ec xgoats.ec Katz'es Brood ecxgoa.ts Fuck Slashdot Fix PWP Bugs Turds For Birds xgoats.ec Fuck Slashdot Turds For Birds Fix PWP Bugs xgoats.ec oatsec.xg atsecx.go Lord of the Anus Lord of the Anus Shit That Splatters Turds For Birds Fix PWP Bugs cxgoat.se Lord of the Anus Shit That Splatters Lord of the Anus oatsec.xg Turds For Birds atsecx.go Fuck Slashdot cxgoat.se cxgoat.se goatse.cx Fuck Slashdot xgoats.ec xgoats.ec Dirty Taco secxgo.at secxgo.at Dirty Taco Lord of the Anus Katz'es Brood goatse.cx oatsec.xg tsecxg.oa xgoats.ec cxgoat.se secxgo.at Dirty Taco secxgo.at oatsec.xg Shit That Splatters cxgoat.se Lord of the Anus goatse.cx goatse.cx Deepthroat Katz oatsec.xg ecxgoa.ts secxgo.at ecxgoa.ts Shit That Splatters secxgo.at atsecx.go tsecxg.oa Lord of the Anus ecxgoa.ts ecxgoa.ts Fuck Slashdot cxgoat.se goatse.cx atsecx.go Shit That Splatters tsecxg.oa secxgo.at Shit That Splatters Lord of the Anus Fix PWP Bugs atsecx.go Turds For Birds Lord of the Anus secxgo.at oatsec.xg Fuck Slashdot Fix PWP Bugs goatse.cx cxgoat.se Fuck Slashdot xgoats.ec secxgo.at Lord of the Anus Shit That Splatters Shit That Splatters Fix PWP Bugs Shit That Splatters secxgo.at xgoats.ec xgoats.ec Katz'es Brood Fuck Slashdot ecxgoa.ts Katz'es Brood ecxgoa.ts xgoats.ec oatsec.xg atsecx.go tsecxg.oa Fuck Slashdot Turds For Birds ecxgoa.ts Lord of the Anus Katz'es Brood cxgoat.se tsecxg.oa Lord of the Anus atsecx.go secxgo.at secxgo.at ecxgoa.ts cxgoat.se secxgo.at xgoats.ec Fuck Slashdot Turds For Birds Dirty Taco Deepthroat Katz goatse.cx Shit That Splatters ecxgoa.ts Deepthroat Katz Turds For Birds Lord of the Anus tsecxg.oa Fuck Slashdot goatse.cx Shit That Splatters oatsec.xg ecxgoa.ts oatsec.xg secxgo.at Fix PWP Bugs Shit That Splatters Fix PWP Bugs Lord of the Anus tsecxg.oa cxgoat.se Shit That Splatters ecxgoa.ts goatse.cx Fuck Slashdot oatsec.xg Shit That Splatters Turds For Birds Deepthroat Katz Fix PWP Bugs secxgo.at Fuck Slashdot Katz'es Brood Katz'es Brood secxgo.at Turds For Birds Turds For Birds Katz'es Brood Katz'es Brood secxgo.at cxgoat.se xgoats.ec Fix PWP Bugs atsecx.go secxgo.at xgoats.ec ecxgoa.ts secxgo.at xgoats.ec Fuck Slashdot secxgo.at Fuck Slashdot Katz'es Brood secxgo.at xgoats.ec Deepthroat Katz ecxgoa.ts Fix PWP Bugs tsecxg.oa Dirty Taco Turds For Birds Deepthroat Katz xgoats.ec secxgo.at Shit That Splatters ecxgoa.ts ecxgoa.ts xgoats.ec Lord of the Anus oatsec.xg Shit That Splatters Turds For Birds ecxgoa.ts Fuck Slashdot Lord of the Anus Deepthroat Katz Katz'es Brood ecxgoa.ts oatsec.xg cxgoat.se Fuck Slashdot goatse.cx Fix PWP Bugs oatsec.xg cxgoat.se Fuck Slashdot ecxgoa.ts Fix PWP Bugs Deepthroat Katz goatse.cx tsecxg.oa xgoats.ec secxgo.at cxgoat.se Shit That Splatters xgoats.ec Katz'es Brood xgoats.ec tsecxg.oa secxgo.at Deepthroat Katz cxgoat.se Turds For Birds goatse.cx oatsec.xg goatse.cx Dirty Taco Katz'es Brood goatse.cx Dirty Taco xgoats.ec oatsec.xg Shit That Splatters cxgoat.se atsecx.go Dirty Taco Lord of the Anus Lord of the Anus tsecxg.oa goatse.cx cxgoat.se Deepthroat Katz Dirty Taco secxgo.at atsecx.go oatsec.xg Deepthroat Katz atsecx.go cxgoat.se oatsec.xg atsecx.go secxgo.at Shit That Splatters Turds For Birds Fix PWP Bugs Fuck Slashdot goatse.cx Lord of the Anus Fuck Slashdot goatse.cx Deepthroat Katz tsecxg.oa Lord of the Anus ecxgoa.ts Lord of the Anus Lord of the Anus Fuck Slashdot cxgoat.se cxgoat.se cxgoat.se Katz'es Brood Katz'es Brood xgoats.ec Shit That Splatters Lord of the Anus goatse.cx Deepthroat Katz goatse.cx Fuck Slashdot secxgo.at Fuck Slashdot Turds For Birds atsecx.go xgoats.ec Fuck Slashdot goatse.cx Katz'es Brood tsecxg.oa Fuck Slashdot Fix PWP Bugs Fuck Slashdot oatsec.xg tsecxg.oa secxgo.at goatse.cx Turds For Birds ecxgoa.ts cxgoat.se tsecxg.oa Lord of the Anus Shit That Splatters ecxgoa.ts Dirty Taco Shit That Splatters tsecxg.oa Shit That Splatters Shit That Splatters Turds For Birds Fuck Slashdot Lord of the Anus Shit That Splatters Lord of the Anus xgoats.ec Lord of the Anus Turds For Birds Fuck Slashdot goatse.cx tsecxg.oa xgoats.ec atsecx.go xgoats.ec cxgoat.se atsecx.go ecxgoa.ts ecxgoa.ts Deepthroat Katz goatse.cx atsecx.go oatsec.xg xgoats.ec cxgoat.se Katz'es Brood atsecx.go Dirty Taco ecxgoa.ts ecxgoa.ts Turds For Birds oatsec.xg oatsec.xg Katz'es Brood Fix PWP Bugs ecxgoa.ts Lord of the Anus goatse.cx Shit That Splatters cxgoat.se cxgoat.se Fix PWP Bugs Turds For Birds Deepthroat Katz ecxgoa.ts tsecxg.oa ecxgoa.ts Lord of the Anus secxgo.at atsecx.go Shit That Splatters tsecxg.oa Deepthroat Katz xgoats.ec atsecx.go tsecxg.oa Dirty Taco secxgo.at Katz'es Brood Fuck Slashdot Deepthroat Katz cxgoat.se atsecx.go atsecx.go Turds For Birds xgoats.ec Deepthroat Katz ecxgoa.ts Shit That Splatters ecxgoa.ts Dirty Taco Katz'es Brood goatse.cx Deepthroat Katz Dirty Taco atsecx.go Fix PWP Bugs Fuck Slashdot Fuck Slashdot ecxgoa.ts ecxgoa.ts Fix PWP Bugs Katz'es Brood oatsec.xg Fuck Slashdot secxgo.at secxgo.at Fuck Slashdot goatse.cx Fuck Slashdot tsecxg.oa xgoats.ec Katz'es Brood tsecxg.oa Fuck Slashdot atsecx.go oatsec.xg Turds For Birds xgoats.ec Dirty Taco goatse.cx Katz'es Brood Katz'es Brood goatse.cx Turds For Birds Fix PWP Bugs atsecx.go Deepthroat Katz Fix PWP Bugs atsecx.go Dirty Taco goatse.cx Katz'es Brood secxgo.at secxgo.at oatsec.xg oatsec.xg ecxgoa.ts ecxgoa.ts oatsec.xg Fix PWP Bugs cxgoat.se secxgo.at Fix PWP Bugs ecxgoa.ts atsecx.go cxgoat.se Fuck Slashdot Fix PWP Bugs xgoats.ec cxgoat.se secxgo.at ecxgoa.ts oatsec.xg oatsec.xg Shit That Splatters Lord of the Anus goatse.cx Lord of the Anus atsecx.go Katz'es Brood ecxgoa.ts secxgo.at cxgoat.se Katz'es Brood Katz'es Brood Turds For Birds tsecxg.oa Fix PWP Bugs Dirty Taco cxgoat.se tsecxg.oa secxgo.at Deepthroat Katz ecxgoa.ts secxgo.at Dirty Taco atsecx.go xgoats.ec tsecxg.oa oatsec.xg Turds For Birds oatsec.xg ecxgoa.ts cxgoat.se xgoats.ec Shit That Splatters atsecx.go cxgoat.se Turds For Birds Deepthroat Katz cxgoat.se Fix PWP Bugs cxgoat.se Fuck Slashdot tsecxg.oa Katz'es Brood cxgoat.se Fix PWP Bugs Katz'es Brood ecxgoa.ts xgoats.ec Turds For Birds oatsec.xg oatsec.xg Shit That Splatters xgoats.ec tsecxg.oa Katz'es Brood xgoats.ec Katz'es Brood Fuck Slashdot Lord of the Anus Dirty Taco ecxgoa.ts oatsec.xg Deepthroat Katz Fix PWP Bugs Dirty Taco cxgoat.se Deepthroat Katz Fix PWP Bugs secxgo.at secxgo.at Turds For Birds Lord of the Anus cxgoat.se atsecx.go cxgoat.se atsecx.go Shit That Splatters Dirty Taco oatsec.xg Lord of the Anus Fix PWP Bugs Katz'es Brood Fuck Slashdot Deepthroat Katz Fuck Slashdot Fix PWP Bugs Shit That Splatters Katz'es Brood Fuck Slashdot Fuck Slashdot Fuck Slashdot secxgo.at Katz'es Brood ecxgoa.ts cxgoat.se ecxgoa.ts oatsec.xg Deepthroat Katz goatse.cx Turds For Birds Shit That Splatters xgoats.ec secxgo.at oatsec.xg Fix PWP Bugs goatse.cx Katz'es Brood secxgo.at Fuck Slashdot oatsec.xg xgoats.ec Dirty Taco tsecxg.oa Shit That Splatters Fix PWP Bugs tsecxg.oa Fix PWP Bugs

  36. ♡ I love CLIT! ♥ by cyborg_monkey · · Score: -1

    But then, what warm-blooded hetro male (or sexy lesbian) doesn't?

  37. Compare to /Visual Introduction to SQL/ ? by sphealey · · Score: 2
    How does this compare to A Visual Introduction to SQL? The first edition of that book is the best into to SQL and (indirectly) relational databases I have seen. The first edition didn't cover outer joins, though, and before I buy the second edition I was wondering how the reviewed book compares.

    sPh

  38. last post bitches by Anonymous Coward · · Score: -1, Troll

    EOF

    1. Re:last post bitches by Anonymous Coward · · Score: 0

      Man, if that could only be made to stick, it could improve slashdot discussions 1000%.

  39. This is SQL-99, not SQL-92, and it's in Oracle 9i. by emil · · Score: 2

    According to Daniel K. Benjamin's "Oracle 9i New Features For Administrators Exam Guide," Oralce 9i introduces:

    1. The JOIN keyword with its variants
    2. CASE statements (a subset of which were supported in 8.1.6)
    3. NULLIF
    4. COALESCE
    5. MERGE
    6. Various analytic functions

    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.

  40. my suggestion by rnd() · · Score: 1

    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

    1. Re:my suggestion by wizardguy · · Score: 1

      A great GUI tool which works with Oracle/MS/IBM/Syabse is the dbartisan tool from Embarcadero (remove the space before x.asp) http://www.embarcadero.com/products/dbartisan/inde x.asp

    2. Re:my suggestion by rodgerd · · Score: 2

      TORA is open and supports MySQL and PostgreSQL as well as Oracle.

  41. Titles? Editions? Sequels? by fm6 · · Score: 3, Informative
    its sister book, The Practical SQL Handbook: Using Structured Query Language by the same authors.
    Uhm. Despite the change in the title, I believe this is an earlier edition of the same book. No idea why it's still in print -- perhaps some people prefer to focus on SQL-89 and forget about SQL-92. Anyway, you're probably thinking of Practical SQL: The Sequel
  42. Hands on, limits of by fm6 · · Score: 3, Insightful
    Get a copy of whatever database you're going to use....Next, look at a database that someone else has written and attempt to manipulate the data through queries.
    I suspect most database programmers learn that way. Which is actually a bad thing. Not that hands-on experience isn't important. But a lot of databases seemed to be designed by folks ignorant of the most basic concepts of relational theory. Many such programmers could stand to do a little reading. If Practical SQL Handbook is a decent mixture of theory and practice (I'm certainly gonna give it a look), it's probably sometime all those self-taught database designers should be reading.
    1. Re:Hands on, limits of by 3am · · Score: 1

      Yeah, there are too many programmers in the world that feel they are excellent dba's, while in fact they couldn't begin to talk about schema refinement, functional dependencies, attribute closure, or normal forms.

      I would plug 'Database Management Systems' by Ramakrishnan and Gehrke for a more theory oriented approach to databases on an advanced undergraduate to 1rst year grad student level.

      --

      A: None. The Universe spins the bulb, and the Zen master merely stays out of the way.
    2. Re:Hands on, limits of by fm6 · · Score: 2
      I would plug 'Database Management Systems' by Ramakrishnan and Gehrke for a more theory oriented approach to databases on an advanced undergraduate to 1rst year grad student level.
      Problem is with books like that: they're basically useless unless you're (a) in some kind of academic program, and have good instructors and smart fellow students to help you get some kind of real-world context or (b) your name is Doogie Houser!
  43. Another great book by Stultsinator · · Score: 1

    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.

  44. Why Sybase? by puppetman · · Score: 4, Insightful

    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.

    1. Re:Why Sybase? by bad-badtz-maru · · Score: 2


      Postgres 7.2 implements all of the features a modern relational database is supposed to support? How about master-master replication? Even master-slave replication is only supported through third-party patches that do not scale well. The open source databases (postgres, mysql) are poorly scalable and this lack of scalability makes it impossible to even start to compare them to their commercial counterparts.

      maru

    2. Re:Why Sybase? by stoolpigeon · · Score: 1, Flamebait

      Open source databases do not have all the capability of commercial dbs.

      Books like this probably target people who will go to work for some company that will be using a closed database since they need that added functionality. (and can afford it)

      That would answer your rhetorical question.

      .

      --
      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?
    3. Re:Why Sybase? by $0+31337 · · Score: 0

      Oracle isn't hard to setup.... I suppose if you didn't have any arms in which to control a mouse to hit the "Next" and "Finish" buttons then you may have a bit of difficulty, otherwise the graphical installer in easy to use.

    4. Re:Why Sybase? by ChannelX · · Score: 1

      Can't speak for Linux but Oracle on Windows is damn easy to set up. Not sure how much easier it could be. As for administration 9i has even more auto-admin features.

      --
      My blog: http://jkratz.dyndns.org/~jason/blog/
    5. Re:Why Sybase? by wrt2 · · Score: 1

      From the wayback machine, an answer to your question: Master-master replication.
      Behold the power of Google...

      --
      -- "Why, Mr. Anderson, why? Why do you do it? Why get up? Why keep voting? Do you think you're voting for something?"
    6. Re:Why Sybase? by mesocyclone · · Score: 2

      Why not Postgres 7.2 on Windows? I use it all the time. You don't need to go to Firebird.

      --

      The only good weather is bad weather.

    7. Re:Why Sybase? by ed1park · · Score: 1

      Many of the financial companies on Wall Street use Sybase. They are very conservative with tech and are slow to adopt new technologies. Thus there is a large user base that can and does shell out big bucks to maintain/customize these systems.

      Also, Sybase runs on Unix, Linux, and Windows.

      So, Postgresql is a minor player in the real world. In the future, this will change of course.

    8. Re:Why Sybase? by $0+31337 · · Score: 0

      My previous employer, Jackson Laboratories - Mouse Genome Informatics Department, uses Sybase to store genetic sequences found in mice.... Sybase is quite robust if you can afford it.

    9. Re:Why Sybase? by puppetman · · Score: 2

      Postgres under Cygwin is slow, and can be more difficult to setup and maintain (so says the people posting to the PostgresQL.org lists).

    10. Re:Why Sybase? by puppetman · · Score: 2

      I'm an Oracle DBA, and while it's easy to setup, it's difficult to set up correctly.

      And last I heard, Oracle is not free. We pay $14,000 per CPU every 2 years.

    11. Re:Why Sybase? by puppetman · · Score: 2

      "Books like this probably target people who will go to work for some company that will be using a closed database since they need that added functionality. (and can afford it)"

      The book is on SQL, not tuning, or database administration. As most databases are mostly SQL 92 compliant, it should be a non-issue.

    12. Re:Why Sybase? by puppetman · · Score: 2

      Replication is not a feature of a relational database (modern or otherwise). It is a fail-over/load-balancing feature that exists in many products (networks components, application servers, message queues, webservers, etc).

      For learing SQL, I fail to see how master-master replication is going to help.

    13. Re:Why Sybase? by Sxooter · · Score: 1

      And which part of the SQL-89/SQL-92/SQL-99 standard defines and requires replication?

      I'd rather have a rock solid database like postgresql running in a setup with manual failover and nightly backups than a dodgy, can't keep it up server like MSSQL server running on a cluster.

      In 3 years of HEAVY postgresql usage we have NEVER had 1 data corruption issue, 1 failure, or even more than a few minutes of down time.

      If it wasn't so damned reliable, I'm sure they could get more people to work on the replication packages for it (which, by the way, there is one that now supports master to master replication.)

      But of course, to stay on thread here, we're talking about a database distributed with a book so people can learn about SQL, not replication, or drive management, or how to get the frosty cold beverage machine working.

      For that, Postgresql is an excellent choice.

      --

      --- It is not the things we do which we regret the most, but the things which we don't do.
    14. Re:Why Sybase? by Sxooter · · Score: 1

      Actually, postgresql under cygwin is quite fast, except at creating connections, which require a fork(), which in windows means SLOOOW. Once the backend is forked it runs quite well from what I understand.

      Running multiple backends can be a problem, but that's more a windows issue than a cygwin issue.

      --

      --- It is not the things we do which we regret the most, but the things which we don't do.
    15. Re:Why Sybase? by bad-badtz-maru · · Score: 1


      What do you do with your postgresql database when you need to accept more than 300-400 concurrent connections to the backend? I've used postgresql for four years, extremely heavily and without issue, and don't have an answer to that question.

      But yes, you are right. Postgresql is one of the most standards-compliant databases.

      maru

    16. Re:Why Sybase? by bad-badtz-maru · · Score: 1


      Replication is certainly a feature of the majority of the commercial RDBMSs and essentially none of the open source RDBMSs. Replication is essential in applications where you need to make more connections to the database backend than can be accomplished with one machine.

      As for learning SQL, since the book specifically deals with the Sybase variants and doesn't deal with any postgresql variants it makes more sense for the book to include Sybase than Postgres.

      maru

      maru

    17. Re:Why Sybase? by ChannelX · · Score: 1
      I'm an Oracle DBA also and I dont see how Oracle on Windows is difficult to set up. v8.0x maybe but not 8i/9i.


      As to cost I'm not sure what that has to do with my comments about ease of setup. IMHO its worth $14k/CPU every 2 years.

      --
      My blog: http://jkratz.dyndns.org/~jason/blog/
    18. Re:Why Sybase? by bad-badtz-maru · · Score: 1


      The information in that post is flat-out wrong, there is no master-master replication for postgresql. There is barely master-slave, as in master-slave can be done via a really kludgey set of patches but there are serious caveats with regards to stored procedures.

      The postgres developers (who are not responsible for any of the replication patches and have really just recently started to discuss the issue) do have some seriously good ideas with regards to replication. They plan on writing it around an existing open-source IP multicast framework. This innovation could propel postgres to the head of the RDBMS pack, however, it's "years away". Until that point, if you need more than 200-400 connections to the backend, you are going to have to either kludge or look elsewhere.

      maru

      maru

    19. Re:Why Sybase? by Sxooter · · Score: 1

      Like everyone else, we use oracle.

      But seriously, I'd like to try running it on something like a 16 way USparc with a stack-o hard drives running debian and see how that would work.

      I can handle about 600 backends on a machine with 1 Gig of ram and a pair of 10k UScsi drives, but the reponse time if more than a 100 or so are active is just too slow at that point. And it's all I/O bound. The CPUs are still at 50% or more idle.

      There are several replication options, by the way, but we haven't had need for them, as we generally have fewer simos that are doing heavier lifting, not many simos doing little work, which is where clustering becomes a necessity.

      --

      --- It is not the things we do which we regret the most, but the things which we don't do.
    20. Re:Why Sybase? by Sxooter · · Score: 1

      Actually there are two things that are likely to show up around the 7.3 to 7.4 time frame that look quite useful.

      One is time travel, wherein the Write ahead logs will be kept for a pre-determined amount of time, and allow you to basically set the way back machine to last month and look at your database from an historical perspective.

      The other feature would also use the WAL method for replication (master - slave to start, master - master later). Basically, by piping the output of the WAL logs to a slave database, you could have replication running in a way that the two databases were EXACTLY identical, down to OIDs and what not. That looks like it may be such an easy win it might just show up overnight so to speak, when one of the developers gets a bug inzee hiney.

      --

      --- It is not the things we do which we regret the most, but the things which we don't do.
    21. Re:Why Sybase? by stoolpigeon · · Score: 1

      The title of the book tells you that it is about not only SQL 92 but the variants out there in commercial systems.

      That the book comes w/a commercial database bundled in backs this up. The original post asked why sybase?

      I was answering him. Got modded down for giving the guy a little info. YES! I'm a little bitter right now.

      .

      --
      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?
    22. Re:Why Sybase? by bad-badtz-maru · · Score: 1


      The time travel feature is odd, because the origins of postgres are from a grad student's work where the feature you describe was the entire point. He was writing an RDBMS that could service queries relative to what the database looked like at a particular time. The article I read about this didn't mention what had become of this, I figured the guy had finished it (this was like 15 years ago) and the feature had been long since removed. Maybe in reality the feature was never finished.

      I think the issue with WAL piping might be in transactions. There is a huge thread somewhere on google where the primary postgres developers were starting to discuss replication and I remember WAL duplication as being one of the methods someone came up with holes in. They essentially tore holes in every method that everyone was coming up with. Then, of course, the idea they came up with was absurdly advanced. The idea of using unicast for rdbms replication is, I would say, groundbreaking.

      maru

    23. Re:Why Sybase? by mpeppler · · Score: 1

      Note that there is a free version of Sybase for linux. See linux.sybase.com for details.

    24. Re:Why Sybase? by Anonymous Coward · · Score: 0

      It's also worth noting that there is a native Win32 port of PostgreSQL in development (or at least, several people have expressed interest in such a project on pgsql-hackers). So with any luck, you should be able to run PostgreSQL on Win32 without cygwin in the near future, and enjoy the same kind of stability and performance you see on UNIX (to the extent that Windows allows it, anyway :-) ).

    25. Re:Why Sybase? by moooooooo · · Score: 1

      i was going to post the same info :)

      hey mr peppler, (or should i say mr SybPerl ;p ) i use 11.9.2 on linux and it works very well.

      i have millions of rows of stock market historical data and even on a PIII 500 with 256mb RAM it is quick - but it's a well designed schema...and yes i use SybPerl :)

    26. Re:Why Sybase? by Anonymous Coward · · Score: 0
      Replication is essential in applications where you need to make more connections to the database backend than can be accomplished with one machine.
      And how many applications is that? In the vast majority of situations, you can run all your database traffic off a single dedicated machine. If your application is doing so much database work that a single machine can't handle it, by all means: use DB2, Oracle, or another commercial DB. But I'd wager that fewer than 1 in every 100 database applications has those kinds of requirements.

      But otherwise, I agree with you. Replication is nice, and I'd like to see it in PostgreSQL soon. I just think it's not that essential, since 99/100 people are fine with a single machine.

  45. Where's the spoiler alert?! by lor3 · · Score: 1

    Thanks for warning mr. lone gunmen.

  46. Hmmm.... by Anonymous Coward · · Score: 0

    Continuing the grand tradition of reviewing computer texts sent to us by publishers, Slashdot author chrisd has read the book The Practical SQL Handbook: Using SQL Variants and written up a review.

    chrisd can read?

  47. Resources for learning SQL by ThadMan · · Score: 1

    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.

  48. awwwwwwwww by Anonymous Coward · · Score: 0

    "...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."

    Awwwwwwwwww, does that get your panties in a bind?

  49. Inadequate..... by Anonymous Coward · · Score: 0

    Actually, I have read this book. Don't waste your money. I have been looking for years for a SQL book that can come even close to showing me the advanced features that I am required to work with everyday. This book still does not exist. Maybe I will have to write my own.

    1. Re:Inadequate..... by Anonymous Coward · · Score: 0

      Mod this up moderators.

      I haven't found any good SQL resources either. Anybody know of any very advanced SQL books out there?

    2. Re:Inadequate..... by bill_guts · · Score: 1

      Have you read "SQL for Smarties" by Joe Celko?

      --


  50. No good by fm6 · · Score: 2

    Most of us have matched set coasters with an AOL theme.

    1. Re:No good by baldass_newbie · · Score: 1

      Most of us have matched set coasters with an AOL theme.

      Do you ever wonder if you'll see a collection of ALL of the AOL coasters, er, uh, I mean, CDs some time in the future - selling as a set for outrageous money and think, "I could have done that and it would have cost me nothing."

      --
      The opposite of progress is congress
  51. Good Suggestion for T-SQL by stoolpigeon · · Score: 2

    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?
    1. Re:Good Suggestion for T-SQL by rnd() · · Score: 2

      excellent... i'll have to look into postgres in more detail... do you know if there is a tool out there similar to MS query analyzer and enterprise manager that will work with postgres?

      I just like to be able to go in and modify tables and look at recordsets easily...

      --

      Amazing magic tricks

    2. Re:Good Suggestion for T-SQL by stoolpigeon · · Score: 2

      I'm just getting into this myself.

      At this point I've been using PGAdmin II. It is open source written in VB (yeah - I use VB and I'll admit it). It gives you the ability to do quite a bit of what you can do in enterprise manager.

      There are other tools that I have not used yet that will work on multiple platforms. The postgreSQL has great documentation and links to many of the useful tools. This is one project where it is very, very easy to find what you need to get the ball rolling.

      PostgreSQL can not do everything SQL Server and Oracle can do. As of right now you cannot back up transactions. I believe it is also limited in regards to replication and some other features that the big boys handle pretty well.

      But in many cases, like ours- we don't need that stuff. I just need a dependable rdbms that doesn't cost an arm and a leg and isn't a piece of crap like MS Access.

      .

      --
      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?
    3. Re:Good Suggestion for T-SQL by Anonymous Coward · · Score: 0

      im not sure its ready yet

      but the guy who makes Tora for oracle http://www.globecom.se/tora/

      added postgres support for their sql worksheet. not as good as query analyzer, but its pretty good. works on linux as well.
      why oracle cant seem to make a decent query tool
      is beyond me.
      this guys product is better and he didnt have to use java bloat to make it cross platform.

  52. Fuck you, CUNTS by Anonymous Coward · · Score: -1, Troll

    You filthy cunts can suck my dick.

  53. You call that a Review? by bill_guts · · Score: 1

    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?

    --


  54. Don't give away the ending! by lobotomy · · Score: 1

    Don't pull another "Lone Gunmen" -- the book hasn't made it to this time zone yet!

  55. MASTER! by Anonymous Coward · · Score: 0

    Can't I put this in my .sig?

  56. Become one with the google by gazbo · · Score: 1

    No point in me re-writing what this guy wrote.

  57. WTF ?!? by Petronius · · Score: 1


    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 ~
  58. "Elmo loves you" posted by Elmo by Anonymous Coward · · Score: 1

    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!

  59. Joe Celko kicks ass by Anonymous Coward · · Score: 0

    I admint he is the mannnnnn. check out microsoft.public.sqlserver.programming for his bits of wisdom and wit.

    SQL is a different monster than procedural programming.

  60. I am one with google. I also bother to _read_. by Luyseyal · · Score: 2

    I did google for those. I also bothered to read the project statuses for each one. PostgreSQL-R critically lacks:

    • support for replicated DDL
    • support for version 7.2.x

    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!
    1. Re:I am one with google. I also bother to _read_. by mi · · Score: 2

      Does Sybase support master-to-master replications? I don't think so :-( Master-to-slave -- yes, though...

      -mi

      --
      In Soviet Washington the swamp drains you.
    2. Re:I am one with google. I also bother to _read_. by Anonymous Coward · · Score: 0

      Sybase has supported master to master for at least 8 years. It is a super flexible, reliable, and relatively easy to manage system.

  61. When I started out.. by Colossus · · Score: 1

    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.

    I recommend it to anyone getting into database work.

    http://www.amazon.com/exec/obidos/ASIN/020169471 9/ qid=1024686302/sr=8-1/ref=sr_8_1/102-8984857-99665 49

  62. Naw by fm6 · · Score: 2
    Such thoughts are not healthy. They lead you to accumulating useless crud on the off chance that it's "collectable". I'm not even going to talk about those "commemorative editions"...

    I do wish I had bought California real estate when it could be had for 5 figures. But I thought it was too high....

  63. Why even need explicit joins? by Tablizer · · Score: 2

    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).

  64. Re:mod this up by Splork · · Score: 2

    why did some moron mod this down and give it a troll rating? he makes a perfectly good observation asking a perfectly good question.

  65. SQL Aternatives (was: SQL Limitations ?) by Tablizer · · Score: 2

    (* 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.

  66. This is NOT SQL-99 by Anonymous Coward · · Score: 0

    JOIN, CASE, NULLIF and COALESCE are all in SQL-92. SQL compliance is measured in levels. Oracle 8i met some minimum entry-level compliance, but is quite poor at implementing SQL 92 features. Oracle 9i is considerably better.

    SQL Server is pretty extensive in its SQL-92. They got concatenation wrong, which seems like "embrace and extend."

    Postgres is probably the best popular ANSI92 SQL engine out there right now.

  67. Re:Why Mods Suck? by stoolpigeon · · Score: 3, Insightful

    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?
  68. Is it possible by Anonymous Coward · · Score: -1, Offtopic

    to lone gunman a book on sql? chris-"fuck you"-d will surely find a way.

  69. Recommendation... by Laser+Lou · · Score: 1

    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
  70. Re:mod this up by Anonymous Coward · · Score: 0

    He hasn't read the book and is making stuff up to get a response. The author didn't say anything like that.

  71. Celko for all skill levels by gripdamage · · Score: 1

    Have you read "SQL for Smarties" by Joe Celko?

    And for those just getting stated there is:

    Instant SQL Programming - Joe Celko

  72. SQL in a Nutshell helpful for variants by billmil · · Score: 2, Informative

    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.

    1. Re:SQL in a Nutshell helpful for variants by emilami · · Score: 1

      I second that... I hadn't done anything with SQL until late February and that book has been a huge help to me. My boss handed me a big scary textbook to look at because he wanted me to learn SQL, and I immediately went out and found an O'Reilly. With that, I caught on quickly. Part of that may be my familiarity with the syntax from using some COBOL in the past, though. I highly recommend the O'Reilly books for everything you can find them for.

      --
      http://www.accountkiller.com/removal-requested
  73. Re:mod this up by Anonymous Coward · · Score: 0
    Except that if he wants to comment on sub-optimal SQL standard compliance, he should limit his remarks to MySQL. PostgreSQL has excellent support for SQL92 and much of SQL99 -- in many respects, PostgreSQL's support for standards matches or exceeds that of commercial DB systems.



    MySQL, on the other hand, can rightfully be criticized for not supporting much of SQL92. But don't tar all open-source databases with the same brush...

  74. Anybody remember SEQUITUR? by Bourbonium · · Score: 1

    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.

  75. T-SQL != MS SQL Server by Tadghe · · Score: 2

    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.
  76. SQL is not Turing Complete by Anonymous Coward · · Score: 0

    Virtually any interesting programming language is Turing complete. This means that it is complex enough to model a simple state engine. Since this simple state engine is able to model any known computer language, in some sense virtually all computer languages can do the same tasks. (Albeit with different amounts of ease.)

    SQL very deliberately cannot do this. It has virtually no procedural capabilities, and never will. Just because you can think of a procedure to accomplish something does not mean that SQL will let you do that.

    The reason for the limit is that SQL is supposed to be analyzed and optimized. Turing complete languages cannot fully be analyzed or optimized. (Search for "The Halting Problem".) SQL theoretically can be, and with a good database the way that it finds to actually carry out a query is very likely to be much better than any procedure that you would have thought of.

    A classic example of a problem that SQL does not handle well is the old "bill of materials" problem. You want to build a car. You know what parts go into a car. For each part you know what parts it requires. And so on. It is fairly easy to set up your table.

    Now how do you, in a single query, find all of the materials that go into building a car? You can't answer that directly. Instead you need to arrange to do a set of queries, or you need to arrange to have some auxilary tables that you carefully synchronize just to answer this question.

    The same problem arises whenever you want to model a tree-like hierarchy (eg a threaded view of a discussion) in a relational database.

    That answer your question?

  77. Doesn't work all the time by kpharmer · · Score: 1

    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'