Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 11 additions & 21 deletions course/module-0/intro-community/article.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,21 @@
---
meta:
title: 'SQL Academy Community'
description: 'Information about our SQL community and the purposes for which it is organized, as well as available ways to contact the administration of this service.'
title: "Contact SQL Academy"
description: "How to reach the SQL Academy team and where to find more SQL learning content."
---

# Community
# Contact

We understand that communication is a very important part of the educational process, so we offer to join our community, where
you can get help and support from other students or suggest yourself in case of questions from other members of the community.
For any question about the platform, suggestions on course content, or issues with a premium account, write to us at
**[feedback@sql-academy.org](mailto:feedback@sql-academy.org)**.

Communication is organized through:
We read every message and reply within one to two working days.

- **<a href="https://telegram.me/sqlacademyorg/21" target="_blank">chat on Telegram</a>**
- **<a href="https://vk.com/sqlacademy" target="_blank">VK community</a>**
## More SQL content

On the community page, we post information on the latest and most important updates.
Bite-sized SQL tips, query patterns and behind-the-scenes posts in English are on Instagram:
**<a href="https://www.instagram.com/sqlacademyorg_eng" target="_blank">@sqlacademyorg_eng</a>**.

There are **<a href="https://telegram.me/sqlacademyorg" target="_blank">Telegram</a>** chat for communication between participants.
## Ready to start

## Problem solving

For questions that arise during the operation of the service, comments and recommendations on the content of the course, or if there are problems with paying for a premium account, you can use
the following communication methods:

- Write a letter to
**[feedback@sql-academy.org](mailto:feedback@sql-academy.org)**
- Write a message to the community
**<a href="https://vk.com/sqlacademy" target="_blank"> VK community</a>**

We are glad to see you in our community 😍
That's it for the intro — the next chapter dives straight into SQL. Good luck, and have fun!
24 changes: 12 additions & 12 deletions course/module-0/intro-intro/article.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
meta:
title: 'Introduction to the SQL course'
description: 'Information about our free online SQL course, support for working on various devices and the option of purchasing a premium account'
title: "Introduction to the SQL course"
description: "Information about our free online SQL course, support for working on various devices and the option of purchasing a premium account"
---

# About the course
Expand All @@ -14,7 +14,7 @@ To achieve this goal, the course is equipped with a large number of exercises th
to think much when making queries to databases.

During the course, we strongly recommend that you cultivate a "growth mindset": if you encounter any difficulties trying
to understand a new topic or doing exercises, try to transform the frustrating experience into a productive one.
to understand a new topic or doing exercises, try to transform the frustrating experience into a productive one.\
And the most important thing in this course is **have fun!**

## Take the course publicly
Expand All @@ -25,26 +25,26 @@ You can use the hashtag `#sql-academy` if you want.

## Device support

This course is designed to pass from a computer and laptop - the most optimal devices for writing SQL queries. The course can also be taken from a tablet or from a phone,
This course is designed to be taken on a computer or laptop the best devices for writing SQL queries. The course can also be taken on a tablet or phone,
but some functionality may not be available or work incorrectly. Please treat this with understanding.

## How our site is organized

![How our site is organized](https://sql-academy.org/static/guidePage/intro-intro/connections.webp 'How our site is organized')
![How our site is organized](https://sql-academy.org/static/guidePage/intro-intro/connections.webp "How our site is organized")

There are four main sections on our resource, each of which will be useful in different ways:

- **<a href="https://sql-academy.org/guide" target="_blank"> Course </a>** - is your step-by-step assistant when learning SQL. It presents consistent, structured materials, as well as related exercises to consolidate knowledge.
- **<a href="https://sql-academy.org/guide#advanced-courses" target="_blank">Advanced courses</a>** - are separate practice-oriented programs for those who already know the basics and want to go deeper into applied topics, such as SQL query optimization or data analysis.
- **<a href="https://sql-academy.org/trainer" target="_blank">Trainer </a>** the simulator is a tool to test your knowledge. The tasks in it are ranked by difficulty, so you can choose the ones that are suitable for your current level.
Also, solving tasks from the simulator is necessary to obtain a certificate confirming knowledge in the field of SQL.
- **<a href="https://sql-academy.org/sandbox" target="_blank">Sandbox </a>** - is a space for free acquaintance with the structure of our databases.
- **<a href="https://sql-academy.org/en/guide" target="_blank"> Course </a>** - is your step-by-step assistant when learning SQL. It presents consistent, structured materials, as well as related exercises to consolidate knowledge.
- **<a href="https://sql-academy.org/en/guide#advanced-courses" target="_blank">Advanced courses</a>** - are separate practice-oriented programs for those who already know the basics and want to go deeper into applied topics, such as SQL query optimization or data analysis.
- **<a href="https://sql-academy.org/en/trainer" target="_blank">Trainer </a>** the simulator is a tool to test your knowledge. The tasks in it are ranked by difficulty, so you can choose the ones that are suitable for your current level.
Also, solving tasks from the simulator is necessary to obtain a certificate confirming knowledge in the field of SQL.
- **<a href="https://sql-academy.org/en/sandbox" target="_blank">Sandbox </a>** - is a space for free acquaintance with the structure of our databases.

In addition, the header includes a global search that helps you find materials across all parts of the platform: courses, tasks, and functions from the handbook.

## Premium account

The basic course, trainer, and sandbox are available for free. A <a href="https://sql-academy.org/premium" target="_blank">Premium account</a> is an optional upgrade for learners who want to go deeper and use all the platform’s features.
The basic course, trainer, and sandbox are available for free. A <a href="https://sql-academy.org/en/premium" target="_blank">Premium account</a> is an optional upgrade for learners who want to go deeper and use all the platform’s features.

With a Premium account, you get:

Expand All @@ -61,7 +61,7 @@ Purchasing Premium also supports the development of SQL Academy and helps us cre

The trainer certificate confirms that you have not only studied the theory but can also solve practical SQL tasks independently. You can add it to your résumé or portfolio, and anyone can verify its authenticity using the public link.

The certificate becomes available after you independently solve 50 tasks in the **<a href="https://sql-academy.org/trainer" target="_blank">Trainer</a>**. Tasks for which you viewed a ready-made solution do not count.
The certificate becomes available after you independently solve 40 tasks in the **<a href="https://sql-academy.org/en/trainer" target="_blank">Trainer</a>**. Tasks for which you viewed a ready-made solution do not count.

You can track the number of independently solved tasks using the progress bar in the trainer.

Expand Down
22 changes: 11 additions & 11 deletions course/module-0/intro-structure-of-course/article.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
meta:
title: 'Course structure'
description: 'Detailed information about this SQL course'
title: "Course structure"
description: "Detailed information about this SQL course"
---

# Course structure
Expand All @@ -28,13 +28,13 @@ SELECT 'Hi, I am code playground 😊' AS hello;

If it has an active blue button, then this code can be executed. When you click on the request execution button, the code will open in a new tab in the sandbox.

![Description of the block with executable code](https://sql-academy.org/static/guidePage/intro-structure-of-course/en_codeplayground_description.png 'Description of the block with executable code')
![Description of the block with executable code](https://sql-academy.org/static/guidePage/intro-structure-of-course/en_codeplayground_description.png "Description of the block with executable code")

### Self-testing tasks

It is strongly recommended not to skip the tasks at the end of each article, they look like this:

![Description of self-test tasks](https://sql-academy.org/static/guidePage/intro-structure-of-course/en_exercises_description.png 'Description of self-test tasks')
![Description of self-test tasks](https://sql-academy.org/static/guidePage/intro-structure-of-course/en_exercises_description.png "Description of self-test tasks")

It is recommended to solve problems while logged in, so all your solutions will be saved.

Expand All @@ -44,16 +44,16 @@ We have a smart assistant powered by artificial intelligence that will gladly he

**How to interact with the assistant:**

- **Select text** on the page — an "Explain" button will appear for additional explanations of the selected text fragment
- **Select text** on the page — an "Explain" button will appear for additional explanations of the selected text fragment

![Clarify button when selecting text](https://sql-academy.org/static/guidePage/intro-structure-of-course/en_ai_explain.png 'Clarify button when selecting text')
![«Explain» button when text is selected](https://sql-academy.org/static/guidePage/intro-structure-of-course/en_ai_explain.png "«Explain» button when text is selected")

- **Quick actions** in the assistant window, for example "Ask a question" to check yourself on the current topic
- **Quick actions** in the assistant window, for example "Ask a question" to check yourself on the current topic

![AI assistant window with quick actions](https://sql-academy.org/static/guidePage/intro-structure-of-course/en_ai_window.png 'AI assistant window with quick actions')
![AI assistant window with quick actions](https://sql-academy.org/static/guidePage/intro-structure-of-course/en_ai_window.png "AI assistant window with quick actions")

- **Error explanations** — if you get an error while executing an SQL query in exercises, the assistant will help you understand the reason and suggest how to fix your query
- **Error explanations** — if you get an error while executing an SQL query in exercises, the assistant will help you understand the reason and suggest how to fix your query

![AI assistant explains SQL query error](https://sql-academy.org/static/guidePage/intro-structure-of-course/en_ai_explain_error.png 'AI assistant explains SQL query error')
![AI assistant explaining SQL query error](https://sql-academy.org/static/guidePage/intro-structure-of-course/en_ai_explain_error.png "AI assistant explaining SQL query error")

The assistant works for **registered users**. Each user gets a few free requests, and [premium users](https://sql-academy.org/premium) get unlimited requests! 😊
The assistant works for **registered users**. Each user gets a few free requests, and <a href="https://sql-academy.org/en/premium" target="_blank">premium users</a> get unlimited requests! 😊
49 changes: 28 additions & 21 deletions course/module-1/basic-database-concepts/article.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,50 @@
---
meta:
title: 'Databases and DBMS'
description: 'Definition of database and database management system. How databases work. Rating and popularity of relational databases. Features of relational databases. SQL query language.'
title: "Databases and DBMS"
description: "Definition of database and database management system. How databases work. Rating and popularity of relational databases. Features of relational databases. SQL query language."
---

# Databases and DBMS

Before we start learning SQL, let's get acquainted with the basic concepts
about databases. This will help us to understand the scope of SQL and its environment.
execution.
of databases. This will help us understand the scope of SQL and the environment it operates in.

> A database is a set of data stored in a structured way

In fact, this is just a repository of some information, nothing more. Databases themselves would be of no interest if there were no database management systems.

> database management system is a set of language and software tools that performs
> access to data, allows them to be created, modified and deleted, provides
> data security, etc.
> A database management system is a set of software tools that provides
> access to data, allows it to be created, modified and deleted, ensures
> data security, and so on.

In simpler terms, a DBMS is a system that allows
create databases and manipulate information from them.
In simpler terms, a DBMS is a system that lets you
create databases and manipulate the information in them.

The simplest scheme for working with a database:

![Database operation scheme](https://sql-academy.org/static/guidePage/basic-database-concepts/en_schema_of_db_work.png 'title')
![Database operation scheme](https://sql-academy.org/static/guidePage/basic-database-concepts/en_schema_of_db_work.png "title")

## DBMS rating

At the moment, the rating of database management systems based on <a href="https://db-engines.com/en/ranking" target="_blank"> db-engines</a> is as follows:
At the moment, the rating of database management systems is as follows:

- `Oracle` - relational DBMS
- `MySQL` - relational DBMS
- `Microsoft SQL Server` - relational DBMS
- `PostgreSQL` - relational DBMS
- `MongoDB` - document-oriented databases
- `Redis` - key-value databases
- `Snowflake` - cloud relational DBMS
- `Elasticsearch` - search engine
- `IBM Db2` - relational DBMS
- `SQLite` - relational DBMS
- `Oracle` - relational DBMS
- `MySQL` - relational DBMS
- `Microsoft SQL Server` - relational DBMS
- `PostgreSQL` - relational DBMS
- `MongoDB` - document-oriented databases
- `Redis` - key-value databases
- `Snowflake` - cloud relational DBMS
- `Elasticsearch` - search engine
- `IBM Db2` - relational DBMS
- `SQLite` - relational DBMS

It can be noted that 7 of the 10 most popular DBMS are relational. You made the right choice to study them 😉.

Let's check how we learned the topic, choose the correct statement:

1. The DBMS does not interact with the database in any way. — Database management systems (DBMS) allow you to manage, modify and delete databases. So the DBMS interacts with the database, the diagram above shows the scheme of their work.

2. **Correct answer:** The DBMS manages the data stored in the database — A database is just a collection of data. You really need a database management system to manage them.

3. To interact with all DBMS, you can use the SQL language — DBMS are different and not all of them use the SQL query language. SQL is the standard for relational DBMS.
12 changes: 7 additions & 5 deletions course/module-1/database-types/article.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
meta:
title: 'Types of databases'
description: 'Types and classifications of databases, the most popular type of database management systems'
title: "Types of databases"
description: "Types and classifications of databases, the most popular type of database management systems"
---

# Types of databases
Expand All @@ -17,6 +17,8 @@ Of course, we will pay special attention to relational databases in the future.

There are quite a lot of database classifications, but let's focus on the most popular ones:

- Relational databases
- Key-value databases
- Document-oriented databases
| Database type | Description |
| ----------------- | ---------------------------------------- |
| Relational | Data in linked tables — rows and columns |
| Key-value | Fast access to a value by its key |
| Document-oriented | Flexible documents in JSON format |
4 changes: 2 additions & 2 deletions course/module-1/document-oriented-databases/article.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
meta:
title: 'Document-oriented databases'
description: 'Definition of document-oriented databases, examples of data storage, features, and a rating of popular document-oriented DBMS.'
title: "Document-oriented databases"
description: "Definition of document-oriented databases, examples of data storage, features, and a rating of popular document-oriented DBMS."
---

# Document-oriented databases
Expand Down
50 changes: 31 additions & 19 deletions course/module-1/intro-sql/article.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
meta:
title: "Introduction to SQL"
description: "Defining the SQL language. Dialects (extensions) of SQL. Differences between T-SQL, PL/SQL, PL/pgSQL."
title: "Introduction to SQL"
description: "Defining the SQL language. Dialects (extensions) of SQL. Differences between T-SQL, PL/SQL, PL/pgSQL."
---

# Introduction to SQL
Expand All @@ -12,41 +12,53 @@ Communication with relational DBMS happens in SQL. It is used to perform all the

**Data**

- `SELECT` — extract data from a database
- `INSERT` — insert records into a database
- `UPDATE` — update records in a database
- `DELETE` — delete records from a database
- `SELECT` — Extract data from a database
- `INSERT` — Insert records into a database
- `UPDATE` — Update records in a database
- `DELETE` — Delete records from a database

**Structure**

- `CREATE DATABASE` — create new databases
- `CREATE TABLE` — create new tables in a database
- `CREATE DATABASE` — Create new databases
- `CREATE TABLE` — Create new tables in a database

**Logic and access**

- `CREATE PROCEDURE` — create stored procedures
- `CREATE VIEW` — create views
- `GRANT` — set permissions for tables, procedures, and views
- `CREATE PROCEDURE` — Create stored procedures
- `CREATE VIEW` — Create views
- `GRANT` — Set permissions for tables, procedures, and views

## SQL dialects (SQL extensions)

SQL is a universal language for all relational database management systems,
but many DBMS make changes to the language they use, thus deviating from the standard. Such languages are called dialects or extensions of the language.

Here are some of them:
Here are some of them. As an example, let's see how each of these DBMS selects the first 3 rows.

- T-SQL - Microsoft SQL Server dialect
- PL/SQL - Oracle Database dialect
- PL/pgSQL - PostgreSQL dialect
| Dialect | DBMS | Example |
| -------- | -------------------- | ------------------- |
| T-SQL | Microsoft SQL Server | `SELECT TOP 3 name` |
| PL/SQL | Oracle Database | `WHERE ROWNUM <= 3` |
| MySQL | MySQL | `name LIMIT 3` |
| PL/pgSQL | PostgreSQL | `name LIMIT 3` |

### Which dialect to learn?

If you know that you need to learn SQL, you should learn standard SQL. However, if you already know which specific database you will be working with, it is probably best to learn its SQL dialect and just know that different databases may use slightly different syntax.

In our course, we offer you a choice between MySQL DBMS and PostgreSQL DBMS, as the 2 most popular solutions.
You can pick a DBMS and switch it at any time in one of the following ways:
Try picking one right now — every example and exercise in the course will adapt to your choice:

- in the gear icon menu in the site header
- in the code editor interface
**MySQL**

![SQL code editor interface](https://sql-academy.org/static/guidePage/intro-sql/en_changing_dbms.png "SQL code editor interface")
- The web classic: easy to start, running everywhere
- The most widespread open-source DBMS in the world
- Powers WordPress, YouTube and Booking.com

**PostgreSQL**

- Power and precision: the startup favourite
- Rich syntax and strict adherence to the SQL standard
- Chosen by Instagram, Spotify and Reddit

You can switch the DBMS at any time — right here, in the gear icon menu in the site header or in the code editor.
Loading