Further technical diagrams can be found here ... including how to make your select queries efficient, table locking, storing of calculated results (in summary, don't!) and why server and client are shipped together. The diagram alongside this text shows how a query that joins two tables with around 10,000 records each may produce a temporary table internally with 90 million records if you write an inefficient joing, but just 10,000 temporary records with a very slight tuning of the SQL command.
MySQL is covered on our public public MySQL course, and its installation within a LAMP environment on deploying LAMP. Calling up MySQL databases from individual languages when you're programming is covered on the appropriate language course ... typically these course give only a brief overview of MySQL and also tell you how you use Sqlite, Oracle and other databases too.