[fpc-pascal] Working on a new way to educate people about pascal

Anthony Youngman anthony at youngman.org.uk
Thu Dec 29 09:58:05 CET 2022


On 29/12/2022 05:15, Anthony Walter via fpc-pascal wrote:
> I think most people can quickly figure out that SQL is a programming 
> language that is used to manage data stored in relational databases. It 
> is a relatively easy language to learn and use, especially for people 
> with a basic understanding of programming concepts. It's a widely-used 
> language in the field of data management and is based on simple, 
> English-like commands. SQL uses a straightforward syntax that is easy to 
> understand and learn. Many people find it to be a user-friendly 
> language, and it is often used as an introduction to programming for 
> people who are new to the field. It shouldn't be confusing to anyone who 
> has been programming for decades.

Well, I understand it was originally called SEQL, E for English, but 
they dropped that because it wasn't English-like. While the access 
language for one variant of the MultiValue databases I use was called 
"English", precisely because it was very English-like.
> 
> The line of code you provided is a SELECT statement that retrieves all 
> rows (indicated by the * symbol) from a table called "Customers." The 
> statement also includes a WHERE clause, which specifies a condition that 
> must be met in order for the rows to be included in the results. In this 
> case, the condition is that the value in the "Country" column must be 
> equal to 'USA'. Therefore, this line of code would retrieve all rows 
> from the "Customers" table where the value in the "Country" column is 
> 'USA'. The results of this SELECT statement would include all of the 
> columns from the "Customers" table for each row that meets the specified 
> condition.

Not my line, but it rapidly gets worse from there. What if you want the 
country name ...

SELECT CUSTOMERS.*, COUNTRY_NAME FROM CUSTOMERS
JOIN COUNTRY_CODES ON CUSTOMERS.COUNTY_CODE = COUNTRY_CODES.COUNTRY_CODE
> 
> I agree, deciphering your statement ought to be quite clear to anyone 
> with even a passing curiosity, which is why I was unsure earlier how 
> anyone on this mailing list was confused by SQL.
> 
I'm a database guy with maybe 30 years experience, I'm new to SQL and oh 
my god is it an over-complicated monster ...

LIST CUSTOMERS CUSTOMER_NAME COUNTRY_CODE

and (for the user) it doesn't get any more complicated than that, they 
just need to know the name of the field they want. Everything is defined 
in the *table* (or rather, its equivalent) so the programmer only has 
one place to look, not a mix of tables and views, and you can actually 
hard-code the equivalent of a join into the table. SO much simpler, all 
round ... I like to describe multi-value as a hierarchical 
object-relational database.

Cheers,
Anthony Walter Youngman (aka Wol :-)


More information about the fpc-pascal mailing list