Why I’m Grateful for Having Learned Structured Query Language, and Why You Should Learn It Too

 

There is a programming language called Structured Query Language. I happened to learn it back in the early 1990s because of work.

(It just occurred to me that the only non-menial paid work I found after being made redundant, as the Brits call it, was a short contract job as an SQL programmer! I wasn’t really a programmer, to be honest, but it was the only skill I had acquired in 30-plus years at IBM that anyone outside that company could recognize.)

Anyway, it is not because I needed it for programming that made it so valuable to me.

It’s the fact that it allows humans to organize and communicate their thoughts.

Think and communicate about what?  Anything they can imagine. About any world, or any part of that world–the real world as it is, a real world as it is hypothesized, and the unreal world of pure logic and math.

Communicate what about that world? Communicate anything about it.

Communicate concisely, completely, with perfect precision, and with perfect mutual understanding.

How concisely?

In one sentence.  Any question, now matter how complex, no matter how many convoluted conditions and exceptions and interconnections, can be expressed in one sentence.

How hard is the language to learn?  To ask most common questions, it has one command (“select (this) from (that)  where (the other).

I think everyone should become proficient at it before graduating from high school.

In addition to having great intellectual value, it would be of great practical value every day to ordinary people, because they are mostly all using the computer all the time to get information.  Even to use Ricochet.

Why is it not being used by everybody every day?

That is a whole ‘nother question.

Published in General
This post was promoted to the Main Feed by a Ricochet Editor at the recommendation of Ricochet members. Like this post? Want to comment? Join Ricochet’s community of conservatives and be part of the conversation. Join Ricochet for Free.

There are 79 comments.

Become a member to join the conversation. Or sign in if you're already a member.
  1. Stad Coolidge
    Stad
    @Stad

    Mark Camp: Why is it not being used by everybody every day?

    Dang, it took me 50 years to get the hang of English . . .

    • #1
  2. Raxxalan Member
    Raxxalan
    @Raxxalan

    Definitely one of the most valuable skills I have is a solid understanding of SQL.  Unlike a half dozen other computer languages I have programmed in over the years SQL is remarkably stable.  Hasn’t changed much in 32 years, and still the defacto standard of data access.

    • #2
  3. Mark Camp Member
    Mark Camp
    @MarkCamp

    Stad (View Comment):

    Mark Camp: Why is it not being used by everybody every day?

    Dang, it took me 50 years to get the hang of English . . .

    Then SQL is the language you’ve been looking for!  It has about 10 words, if you don’t count words you already know like “not” and “between”. 

    • #3
  4. Stad Coolidge
    Stad
    @Stad

    I asked neutral observer if she knew SQL.  She replied she did at one time, but not anymore.  She suggested oldest daughter might use it at work . . .

    • #4
  5. Arahant Member
    Arahant
    @Arahant

    Will there be a SQL to this post?

    Structured Query Language definitely has benefits, and I would agree it’s good to learn and for people to think about how data is structured. But it isn’t the be-all-and-end-all of life. I say that as an old relational data modeler and person who led groups of data modelers in my past. You can only query on the data structure that is already built, whether it is built in the database system already or in one’s head and one is using SQL to build the database in the first place. The thing is, though, that it only deals with data: creating, editing, retrieving, or deleting it.

    I found the full Zachman Framework to be a much more powerful meta-model to work with to ensure the enterprise was being understood. But even a meta-model is still only a model, and should not be confused for anything that is real. The description of a thing is not the thing. Let’s not confuse the color red for apples. One can be delicious and nutritious and come in a variety of colors, but the other is just a series of wavelengths that makes a particular impression in our heads.

    • #5
  6. Phil Turmel Coolidge
    Phil Turmel
    @PhilTurmel

    Psst! Structured Query Language.

    Like in comment #5.

    { / Pendant Mode }

    I use SQL all the freaking time for work.  Burned in.

    • #6
  7. Mark Camp Member
    Mark Camp
    @MarkCamp

    Arahant (View Comment):

    You can only query on the data structure that is already built, whether it is built in the database system already or in one’s head and one is using SQL to build the database in the first place.

    I didn’t mention another liberating power of SQL which is in some ways greater than those that I did: it allows each user to specialize the data structure to suit his needs, without limit.

    Why this unlimited capability is not available to us users is, as I said before, a whole nother question. But you are right that it’s never been made available.  It is a branch that was cut off in the 80s, just after SQL began to bloom as a tool for IT, and tragically never given another chance at life.

    • #7
  8. Mark Camp Member
    Mark Camp
    @MarkCamp

    Phil Turmel (View Comment):

    Psst! Structured Query Language.

    Like in comment #5.

    Good catch, thanks!

    I owe you a favor.   

    Just thought of one: “pendant”!

    • #8
  9. Arahant Member
    Arahant
    @Arahant

    Phil Turmel (View Comment):
    { / Pendant Mode }

    As a pedant, you’re just hanging around? 😸

    • #9
  10. Arahant Member
    Arahant
    @Arahant

    Mark Camp (View Comment):

    Arahant (View Comment):

    You can only query on the data structure that is already built, whether it is built in the database system already or in one’s head and one is using SQL to build the database in the first place.

    I didn’t mention another liberating power of SQL which is in some ways greater than those that I did: it allows each user to specialize the data structure to suit his needs, without limit.

    Why this unlimited capability is not available to us users is, as I said before, a whole nother question. But you are right that it’s never been made available. It is a branch that was cut off in the 80s, just after SQL began to bloom as a tool for IT, and tragically never given another chance at life.

    I have no idea what you mean by that. Could you write it in SQL?

    But I think the answer comes down to available cycles and available storage. Customizing the data structure can be very, very costly of resources, and that was much more so the further back in time that one went. Cycle time and storage have both become much cheaper over the decades. Also, if it’s your database, it’s easy. If it’s a shared database, it can be problematic. Also also, most users have no idea what they are doing as far as data modeling, let alone tuning a database for efficient usage. That takes years to learn. It isn’t just apply SQL and go.

    • #10
  11. SteveSc Member
    SteveSc
    @SteveSc

    As a Sql server programmer/developer/admin for 27 years now, you will appreciate:

    select count(*) from users where clue <> 0

    ———–
    0

     

    • #11
  12. Locke On Member
    Locke On
    @LockeOn

    For the non-professional, SQL and its readily available free implementations are your savior when the ‘just a little spreadsheet I set up for the club/nonprofit/town/etc.’ turns into a monster, grows fangs and turns on you. IOW, a way to backfill data definitions, procedures and scaling issues that weren’t thought out in advance. BTDT.

    • #12
  13. Phil Turmel Coolidge
    Phil Turmel
    @PhilTurmel

    SteveSc (View Comment):

    As a Sql server programmer/developer/admin for 27 years now, you will appreciate:

    select count(*) from users where clue <> 0

    ———–
    0

     

    Ah, you must use Microsoft SQL Server.  Most other brands have an actual boolean column type.  Yielding:

    select count(*) from users where clue
    ——
         0

    • #13
  14. Mark Alexander Coolidge
    Mark Alexander
    @MarkAlexander

    I feel ancient. The only programming languages I learned were assembly language for the IBM 360/370 and by extension the Apple II+, Basic, RPG III, and COBOL.

    I was set to start Fortran when I published some magazine articles and decided to switch to an English major, which turned out to be a great move and very lucrative in Silicon Valley.

    • #14
  15. Arahant Member
    Arahant
    @Arahant

    SteveSc (View Comment):

    As a Sql server programmer/developer/admin for 27 years now, you will appreciate:

    select count(*) from users where clue <> 0

    ———–
    0

    Amen, brother! Much more succinct than my response.

    • #15
  16. Mark Camp Member
    Mark Camp
    @MarkCamp

    Arahant (View Comment):

    Mark Camp (View Comment):

    I have no idea what you mean by that. Could you write it in SQL?

    It is a very good question, thanks.

    I don’t want to get into the weeds on this thread. 

    But yes, because you’re a tech person, I could give you an example, with the SQL, of how I could quickly write a couple of simple SQL commands to customize, say, the Ricochet data model to suit my needs for the computer to give me as an individual user

    • the information I need
    • in the form I need it
    • when I need it

    with no detectable effect on storage or CPU cycles or cost. Could have done it, and often did, even with 1990s price/performance. 

    I mentioned that the reason we can’t is a whole nother subject. 

    But if I did address that question, I would argue against all of the reasons you give.  Maybe it would be a good discussion for a more specialist-oriented Article, or a PM.

     

    • #16
  17. SteveSc Member
    SteveSc
    @SteveSc

    Phil Turmel (View Comment):

    SteveSc (View Comment):

    As a Sql server programmer/developer/admin for 27 years now, you will appreciate:

    select count(*) from users where clue <> 0

    ———–
    0

     

    Ah, you must use Microsoft SQL Server. Most other brands have an actual boolean column type. Yielding:

    select count(*) from users where clue
    ——
    0

    Guilty!  If I were 15 years younger, I’d branch out, but when retirement is within 4 years, not so much.

    • #17
  18. Arahant Member
    Arahant
    @Arahant

    Mark Camp (View Comment):
    the Ricochet data model

    You assume that Ricochet is based on a SQL-compliant database? 🤣

    • #18
  19. SteveSc Member
    SteveSc
    @SteveSc

    Locke On (View Comment):

    For the non-professional, SQL and its readily available free implementations are your savior when the ‘just a little spreadsheet I set up for the club/nonprofit/town/etc.’ turns into a monster, grows fangs and turns on you. IOW, a way to backfill data definitions, procedures and scaling issues that weren’t thought out in advance. BTDT.

    r/trippinthroughtime - Richard in accounting approves of this meme

    • #19
  20. Mark Camp Member
    Mark Camp
    @MarkCamp

    SteveSc (View Comment):

    As a Sql server programmer/developer/admin for 27 years now, you will appreciate:

    select count(*) from users where clue <> 0

    ———–
    0

     

    I do. 

    I get that response a lot on Ricochet.

    If we used SQL, each critic would be able to express the idea as concisely and precisely as you did, by re-using your work rather than duplicating the effort and creating multiple versions that would all have to be maintained manually.

    For example, I could write a cron job that would re-run your query each day for all of my new posts.  It could set off an alarm when the event, Your_Work_Here_is_Finally_Done_Camper(), fired.

    It would fire if ever count<>0.

    Note: Arahant mistakenly thinks that you could not create a db on your PC that would have a dynamic link to the Ricochet DB and give you the ability to run the SQL statement you gave in your Comment, for less than

    • a penny in disk cost
    • a penny a month in CPU capacity.
    • 30 fun minutes of your development labor

    As you are a pro, unlike me, could you send him a PM with the needed commands?

     

    • #20
  21. EJHill Podcaster
    EJHill
    @EJHill

    My most structured query: WTF!?!

    • #21
  22. Mark Camp Member
    Mark Camp
    @MarkCamp

    Arahant (View Comment):

    SteveSc (View Comment):

    As a Sql server programmer/developer/admin for 27 years now, you will appreciate:

    select count(*) from users where clue <> 0

    ———–
    0

     Much more succinct than my response.

    You understood what I was saying after all!

     

    • #22
  23. Arahant Member
    Arahant
    @Arahant

    Mark Camp (View Comment):
    Note: Arahant mistakenly thinks

    You’re already wrong right there, Camper. It’s obvious you have difficulty both in reading and detecting sarcasm.

    • #23
  24. Mark Camp Member
    Mark Camp
    @MarkCamp

    Locke On (View Comment):

    For the non-professional, SQL and its readily available free implementations are your savior when the ‘just a little spreadsheet I set up for the club/nonprofit/town/etc.’ turns into a monster, grows fangs and turns on you. IOW, a way to backfill data definitions, procedures and scaling issues that weren’t thought out in advance. BTDT.

    Been there!

    Thanks very much for this. It is a critical part of what I was trying to say about SQL. I wasn’t sure anyone else has had the same experience I  have, and I am happy to learn that you have, too.

    count(*)=1  –YaHOO!

    • #24
  25. Mark Camp Member
    Mark Camp
    @MarkCamp

    Arahant (View Comment):

    Mark Camp (View Comment):
    Note: Arahant mistakenly thinks

    You’re already wrong right there, Camper. It’s obvious you have difficulty both in reading and detecting sarcasm.

    If only those two were my worst two faults!

    • #25
  26. Arahant Member
    Arahant
    @Arahant

    Mark Camp (View Comment):
    If only those two were my worst two faults!

    Yeah, me, too, buddy. Me, too.

    The line about Ricochet’s putative data structure was the sarcasm. As for the rest, you are reading much more into what I said than I said. Now that you have identified the problem specifically, that you would like to have access to the Ricochet database to search with your own tools, I can address that issue. The problem there is not one of capability. It is one of security and of copyright law. I wouldn’t open it up to users, either, because of those issues and because even if one is saying that one will only use it to find information for personal usage of Ricochet, once the genie is out of the bottle and the data in the user’s hands, the user could do anything with it, including harass other members.

    • #26
  27. Bryan G. Stephens Thatcher
    Bryan G. Stephens
    @BryanGStephens

    Um, so it helps you communicate?

    Interesting. 

    • #27
  28. Mark Camp Member
    Mark Camp
    @MarkCamp

    Arahant (View Comment):

    Now that you have identified the problem specifically, that you would like to have access to the Ricochet database to search with your own tools, I can address that issue. The problem there is not one of capability. It is one of security and of copyright law. I wouldn’t open it up to users, either, because of those issues and because even if one is saying that one will only use it to find information for personal usage of Ricochet, once the genie is out of the bottle and the data in the user’s hands, the user could do anything with it, including harass other members.

    These are good points that deserve a response. But I think that other readers of this thread would not find my responses interesting. We should discuss them separately.

    • #28
  29. Arahant Member
    Arahant
    @Arahant

    Mark Camp (View Comment):
    These are good points that deserve a response. But I think that other readers of this thread would not find my responses interesting. We should discuss them separately.

    Up to you what you do with your conversation. Also, I am definitely not the powers that be at Ricochet, just another member as you are. But I do have a lot of experience in dealing with data and copyright law and security and audit comments and corporate governance and everything else that goes into this sort of thing.

    • #29
  30. Mark Camp Member
    Mark Camp
    @MarkCamp

    Bryan G. Stephens (View Comment):

    Um, so it helps you communicate?

    Interesting.

    It’s like a new putter.  You can’t prove that it does NOT help.

    • #30
Become a member to join the conversation. Or sign in if you're already a member.