Вправи з SQL. Основи SQL для початківців з уроками Онлайн курси sql для початківців

Іменинники:
Чаришкін П.П. (PeterChar)
Здоров'я та успіхів!

Найближчі дні народження. На сайті є вправи по оператору SELECT(149 вправ на навчальному етапі та 234 - на рейтингових) та за іншими операторами маніпуляції даними - - (зараз 41 вправа). За вправами на SELECTведеться рейтинг учасників. Дивись
Умови тестування

Сьогодніу нас 1730 учасників ( 219 нових).
Вирішено задач на рейтинговому етапі: 119
(35
по SELECT та 84 за DML),
на навчальному етапі - 3612

Практичне володіння мовою SQL

Сайт допоможе кожному, хто хоче набути або підвищити свої навички в написанні операторів маніпуляції даними мови SQL. Суть навчання полягає в тому, що ви самі пишете оператори, які повинні повернути або змінити дані, потрібні завданням. При цьому у разі неправильної відповіді ви зможете дізнатись, які дані повертає правильний запит, а також побачити, що повернув ваш запит. Крім того, є можливість виконувати будь-які оператори DMLдо наявних баз даних, відключивши опцію перевірки. Вправи мають різний рівень складності (від 1 до 5), що проставлено у другому стовпці списку вправ. Пропонуються вправи на вибірку даних (оператор SELECT) та вправи на модифікацію даних (оператори INSERT, UPDATE, DELETE та MERGE). За результатами вирішення завдань ведеться рейтинг учасників. При цьому вправи на вибірку розбиті на три етапи: перший (6 вправ) без контролю часу виконання окремого завдання, другий (починаючи з 7 вправи) - з контролем часу виконання кожного завдання. На третьому етапі, який називається оптимізаційнимі починається із завдання 139, потрібно не тільки правильно розв'язати задачу, але й час виконання запиту має бути порівнянний з часом виконання авторського рішення.
Вправи першого етапу доступні без реєстрації, причому завдання можна вирішувати у порядку. Для виконання інших вправ потрібна реєстрація. Реєстрація безкоштовна, як і решта сервісів сайту. У третьому стовпці списку вправ відзначатимуться ("OK") номери правильно виконаних вправ для відвідувачів, що зареєструвалися. Відвідавши наш сайт згодом, вам не потрібно буде згадувати, які вправи вже виконані, а які - ні. Якось зареєструвавшись, ви згодом вводите логін та пароль, вказані при реєстрації. При вході без авторизації система не відстежуватиме ваші успіхи. Для авторизованих користувачів доступний форум, на якому можна обговорити рішення запропонованих вправ.

ПРИМІТКА: неправильно сформульований запит може повернути "правильні" дані на поточному стані бази даних. Тому не варто дивуватися, якщо результати невірного запиту збігатимуться з правильними результатами, але запит буде оцінений системою перевірки як невірний.

УВАГА:Для коректної роботи сайту браузер повинен дозволяти використання Cookie та JavaScript.
Оскільки сторінки довідки відкриваються у підлеглому вікні, ваш Web-фільтр, якщо він використовується, повинен дозволяти відкриття підлеглих вікон.

Сертифікація

За результатами тестування на сайті можна замовити сертифікат"SQL Data Manipulation Language Specialist", що підтверджує вашу кваліфікацію. Якість сертифікату ми підтримуємо періодичною заміною завдань та підвищенням сертифікаційних вимог.

Використовуваний синтаксис SQL

Запити відвідувачів фактично виконуються сервером SQL, що накладає обмеження на допустимий синтаксис операторів. В даний час на рейтингових етапах ми використовуємо Microsoft SQL Server 2017, а на навчальному етапі - додатково MariaDB-10.2.13 (сумісна з MySQL 8), PostgreSQL 10.3і Oracle Database 11g. Тому користувачеві потрібно дотримуватись синтаксису даних реалізацій при написанні своїх запитів. Зазначимо, що синтаксис мови SQL, реалізований у Microsoft SQL Server, досить близький до стандарту SQL-92. Проте є низка відхилень, серед яких можна назвати відсутність природного з'єднання таблиць (NATURAL JOIN). Довідка з мови маніпуляції даними SQL, яка є на сайті, витримана відповідно до стандарту, містить необхідну інформацію для вивчення мови та виконання вправ. Там можна знайти особливості використовуваної реалізації (SQL Server).

Найкращі результати

Person Scores Days Days_2 Days_3 Scores_3
Красовський Є.А. (pegoopik) 671 3289 210.553 14.398 250
Костомаров А.В. (al29) 647 2617 4143.636 2280.923 250
Дощенко В.М. (mcrain) 630 2759 2035.474 520.375 248

Вітаю вас на моєму блогу сайт. Сьогодні поговоримо про SQL запити для початківців. У деяких веб-майстрів може виникнути питання. Навіщо вивчати SQL? Хіба не можна обійтися?

Виявляється, що для створення професійного інтернет-проекту цього буде замало. Sql використовується для роботи з БД і створення додатків для Вордпрес. Розглянемо як використовувати запити докладніше.

Що це таке

Sql – мова структурованих запитів. Створено визначення типу даних, надання доступу до них та обробці інформації за короткі проміжки часу. Він описує компоненти або результати, які ви хочете бачити на інтернет-проекті.

Якщо говорити по-простому, ця мова програмування дозволяє додавати, змінювати, шукати і відображати інформацію в БД. Популярність mysql пов'язана з тим, що він використовується для створення динамічних інтернет-проектів, основою яких є база даних. Тому для розробки функціонального блогу вам необхідно вивчити цю мову.

Що може робити

Мова sql дозволяє:

  • створювати таблиці;
  • змінювати отримувати та зберігати різні дані;
  • об'єднувати інформацію у блоки;
  • захистити дані;
  • створювати запити у access.

Важливо! Розібравшись із sql ви зможете писати програми для Вордпрес будь-якої складності.

Яка структура

БД складається з таблиць, які можна подати у вигляді Ексель файлу.

У неї є ім'я, колонки та ряд з якоюсь інформацією. Створювати подібні таблиці можна за допомогою запитів sql.

Що потрібно знати


Основні моменти щодо Sql

Як зазначалося вище, запити застосовуються для обробки та введення нової інформації в БД, що складається з таблиць. Кожен її рядок – це окремий запис. Отже, створимо БД. Для цього напишіть команду:

Create database ‘bazaname’

У лапках пишемо ім'я БД на латиниці. Намагайтеся вигадати для неї зрозуміле ім'я. Не створюйте бази типу «111», «www» тощо.

Після створення БД встановлюємо:

SET NAMES 'utf-8'

Це потрібно, щоб контент на сайті правильно відображатися.

Тепер створюємо таблицю:

CREATE TABLE 'bazaname'. ‘table’ (

id INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,

log VARCHAR(10),

pass VARCHAR(10),

date DATE

У другому рядку ми прописали три атрибути. Подивимося, що вони означають:

  • Атрибут NOT NULL означає, що осередок не буде порожнім (поле обов'язкове для заповнення);
  • Значення AUTO_INCREMENT - автозаповнення;
  • PRIMARY KEY – первинний ключ.

Як додати інформацію

Для заповнення поля створеної таблиці значеннями використовується оператор INSERT. Пишемо такі рядки коду:

INSERT INTO ‘table’

(login, pass, date) VALUES

('Vasa', '87654321', '2017-06-21 18:38:44');

У дужках вказуємо назву стовпців, а наступної - значення.

Важливо! Дотримуйтесь послідовності назв і значень стовпців.

Як оновити інформацію

Для цього використовується команда UPDATE. Подивимося, як змінити пароль конкретного користувача. Пишемо такі рядки коду:

UPDATE 'table' SET pass = '12345678' WHERE id = '1'

Тепер поміняйте пароль '12345678'. Зміни відбуваються у рядку з id=1. Якщо не писати команду WHERE – поміняються всі рядки, а не конкретні.

Рекомендую вам придбати книгу « SQL для чайників ». За її допомогою ви зможете крок за кроком професійно працювати з БД. Вся інформація побудована за принципом від простого до складного і добре сприйматиметься.

Як видалити запис

Якщо ви написали щось не так, виправте це за допомогою DELETE. Працює так само, як і UPDATE. Пишемо такий код:

DELETE FROM 'table' WHERE id = '1'

Вибірка інформації

Для отримання значень з БД використовується команда SELECT. Пишемо такий код:

SELECT * FROM 'table' WHERE id = '1'

У цьому прикладі в таблиці вибираємо всі наявні поля. Це відбувається, якщо прописати в команді зірочку «*». Якщо потрібно вибрати якесь вибіркове значення, пишемо так:

SELECT log , pass FROM table WHERE id = ‘1’

Необхідно відзначити, що вміння працювати з базами даних буде недостатньо. Для створення професійного інтернет-проекту доведеться навчитися додавати на сторінки дані з БД. Для цього ознайомтеся з мовою веб-програмування php. У цьому вам допоможе класний курс Михайла Русакова .


Видалення таблиці

Відбувається за допомогою DROP. Для цього напишемо такі рядки:

DROP TABLE table;

Виведення запису з таблиці за певною умовою

Розглянемо такий код:

SELECT id, countri, city FROM table WHERE people>150000000

Він відобразить записи країн, де населення більше ста п'ятдесяти мільйонів.

Об'єднання

Зв'язати разом кілька таблиць можна за допомогою Join. Як це працює подивіться докладніше у цьому відео:

PHP та MySQL

Ще раз хочу наголосити, що запити при створенні інтернет-проекту – це звичайна справа. Щоб їх використовувати у php-документах, виконайте такий алгоритм дій:

  • Поєднуємося з БД за допомогою команди mysql_connect();
  • Використовуючи mysql_select_db(), вибираємо потрібну БД;
  • Обробляємо запит за допомогою mysql_fetch_array();
  • Закриваємо з'єднання командою mysql_close().

Важливо! Працювати з БД не складно. Головне – правильно написати запит.

Початківці вебмайстра подумають. А що почитати з цієї теми? Хотілося б порекомендувати книгу Мартіна Грабера « SQL для простих смертних ». Вона написана так, що новачкам все буде зрозуміло. Використовуйте її як настільну книгу.

Але це теорія. Яка ж справа на практиці? Насправді інтернет-проект потрібно не тільки створити, а ще й вивести в ТОП Гугла та Яндекса. У цьому вас допоможе відеокурс Створення та розкрутка сайту ».


Відео інструкція

Чи залишилися ще питання? Перегляньте детальніше онлайн відео.

Висновок

Отже, розібратися з написанням SQL запитів не так важко, як здається, але зробити це потрібно будь-якому вебмайстру. У цьому допоможуть відеокурси, описані вище. Підпишіться на мою групу ВКонтакте щоб першими дізнаватись про появу нової цікавої інформації.

Більшість сучасних веб-додатків взаємодіють з базами даних, зазвичай, за допомогою мови під назвою SQL. На щастя для нас, цю мову дуже легко вивчити. У цій статті ми розглянемо прості SQL запити та навчимося їх використовувати для взаємодії з MySQL база даних.

Що Вам знадобиться?

SQL (Structured Query Language) мова спеціально розроблена для взаємодії з системами управління баз даних, таких як MySQL, Oracle, Sqlite та інші... Для виконання SQL запитів у цій статті я раджу Вам встановити MySQL на локальному комп'ютері. Також я рекомендую використовувати phpMyAdmin як візуальний інтерфейс.

Все це є у всьому улюбленому Денвері. Думаю, кожен має знати, що це і де це взяти :). Можна, можливоще використовувати WAMP або MAMP.

У денвері є вбудована MySQL консоль. Їй ми й користуватимемося.

CREATE DATABASE:створення бази даних

Ось і наш перший запит. Ми створимо нашу першу базу даних для подальшої роботи.

Для початку, відкрийте MySQL консоль і залягайте. Для WAMP пароль за промовчанням порожній. Тобто нічого:). Для MAMP – "root". Для Денвера потрібно уточнити.

Після логіну введіть наступний рядок та натисніть Enter:

CREATE DATABASE my_first_db;

Зауважте, що крапка з комою (;) додається в кінці запиту, так само як і в інших мовах.

Також команди в SQL чутливі до регістру. Пишемо їх великими літерами.

Опції Онально: Character Setі Collation

Якщо Ви бажаєте встановити character set (набір символів) та collation (порівняння) можна написати наступну команду:

CREATE DATABASE my_first_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Знаходиться список наборів символів, які підтримуються MySQL.

SHOW DATABASES:виводить список усіх БД

Ця команда використовується для виведення всіх наявних баз даних.

DROP DATABASE:видалення БД

Ви можете видалити існуючу базу даних за допомогою цього запиту.

Будьте обережними з цією командою, оскільки вона виконується без попередження. Якщо у Вашій БД є дані, вони будуть видалені.

USE:Вибір БД

Технічно це не запит, а оператор і він не вимагає крапки з комою наприкінці.

Він повідомляє MySQL вибрати БД для роботи за промовчанням для поточної сесії. Тепер ми готові створювати таблиці та робити інші речі з БД.

Що таке таблиця в БД?

Ви можете подати таблицю в БД у вигляді Excel файл.

Також як і на картинці, таблиці мають назви колонок, ряди та інформація. За допомогою SQL запитів ми можемо створювати такі таблиці. Ми також можемо додавати, зчитувати, вносити оновлення та видаляти інформацію.

CREATE TABLE: Створення таблиці

C За допомогою цього запиту ми можемо створювати таблиці БД. На жаль, документація MySQL не дуже зрозуміла для новачків із цього питання. Структура цього типу запитів може бути дуже складною, але ми почнемо легко.

Наступний запит створить таблицю з двома колонками.

CREATE TABLE users (username VARCHAR(20), create_date DATE);

Зверніть увагу, що ми можемо писати наші запити в кілька рядків та з табуляціями для відступів.

Перший рядок простий. Ми просто створюємо таблицю під назвою "users". Далі в дужках, через кому, йде список усіх колонок. Після кожної назви стовпчика у нас йдуть типи інформації, такі як VARCHAR або DATE.

VARCHAR(20) означає, що стовпчик має тип рядка і може бути максимум 20 символів у довжину. DATE також тип інформації, що використовується для зберігання дат у такому форматі: "РРРР - ММ-ДД".

PRIMARY KEY ( первинний клюгод)

Перед тим, як ми виконаємо наступний запит, ми також повинні включити стовпчик для "user_id", який буде нашим первинним ключем. Ви можете сприймати PRIMARY KEY як інформацію, яка використовується для визначення кожного ряду таблиці.

CREATE TABLE users (user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20), create_date DATE);

INT робить 32 біт цілий тип (наприклад, числа). AUTO_INCREMENT автоматично генерує нове значення ID щоразу, коли ми додаємо нові лави інформації. Це не обов'язково, але робить весь процес простішим.

Ця колонка не обов'язкова має бути цілим значенням, але воно найчастіше використовується. Наявність Первинного Ключа також не є обов'язковою, проте рекомендується для архітектури та продуктивності БД.

Давайте виконаємо запит:

SHOW TABLES:показати всі таблиці

Цей запит дозволяє отримати список таблиць, які перебувають у БД.

EXPLAIN:Показати структуру таблиць

Для показу структури існуючої таблиці Ви можете скористатися цим запитом.

Колонки відображаються з усіма властивостями.

DROP TABLE:видалити таблицю

Так само як і DROP DATABASES, цей запит видаляє таблицю та її зміст без попередження.

ALTER TABLE: змінити таблицю

Цей запит також може містити складну структуру через більшу кількість змін, яку він може зробити з таблицею. Погляньмо на приклади.

(якщо Ви видалили таблицю у минулому кроці, створіть її знову для тестів)

ДОДАВАННЯ КОЛОНКИ

ALTER TABLE users ADD email VARCHAR(100) AFTER username;

Завдяки хорошій читабельності SQL, я думаю, що немає сенсу її докладно пояснювати. Ми додаємо нову колонку "email" після "username".

ВИДАЛЕННЯ КОЛОНКИ

Це було дуже легко. Використовуйте цей запит з обережністю, оскільки ви можете видалити дані без попередження.

Відновіть віддалену колонку для подальших експериментів.

ВНЕСЕННЯ ЗМІНИ В КОЛОНКУ

Іноді Ви можете захотіти змінити властивості колонки, і Вам не треба її повністю видаляти для цього.

Цей запит перейменував колонку користувач "user_name " і змінив її тип з VARCHAR(20) на VARCHAR(30). Така зміна не повинна змінити дані в таблиці.

INSERT: Додавання інформації до таблиці

Давайте додамо деяку інформацію до таблиці, використовуючи наступний запит.

Як Ви можете побачити, VALUES () містить список значень, розділених комами. Усі значення поміщені в одинарні колонки. І значення мають бути в порядку колонок, які були визначені під час створення таблиці.

Зауважте, що перше значення NULL для поля PRIMARY KEY під назвою "user_id". Ми робимо це для того, щоб ID було згенеровано автоматично, оскільки колонка має властивість AUTO_INCREMENT. Коли інформація додається вперше ID буде 1. Наступний ряд - 2, і так далі...

АЛЬТЕРНАТИВНИЙ ВАРІАНТ

Є ще один варіант запиту для додавання рядків.

На цей раз ми використовуємо ключове слово SET замість VALUES, і у нього немає дужок. Є кілька нюансів:

Колонку можна пропустити. Наприклад, ми не надали значення для "user_id ", яке за умовчанням отримає своє AUTO_INCREMENT значення. Якщо ви пропустите колонку з типом VARCHAR, тоді буде додано порожній рядок.

До кожної колонки необхідно звертатися на ім'я. Через це їх можна згадувати у будь-якому порядку, на відміну від минулого варіанта.

АЛЬТЕРНАТИВНИЙ ВАРІАНТ 2

Ось ще варіант.

Знову ж таки, оскільки є згадки назви колонки, можна ставити значення у будь-якому порядку.

LAST_INSERT_ID()

Ви можете використовувати цей запит для отримання ID, який був AUTO_INCREMENT для останнього ряду поточної сесії.

NOW()

Тепер настав час показати, як Ви можете використовувати MySQL у запитах.

Функція NOW() виводить поточну дату. Отже, Ви можете використовувати її для автоматичного встановлення дати колонки на поточну при вставці нового ряду.

Зверніть увагу, що ми отримали 1 попередження, але не звертайте на нього уваги. Причина цього те, що NOW() також служить висновку тимчасової інформації.

SELECT: Читання даних із таблиці

Якщо ми додаємо інформацію до таблиці, то логічно було б навчитися її звідти зчитувати. Саме в цьому нам допоможе запит SELECT.

Нижче представлений найпростіший запит SELECT для читання таблиці.

У цьому випадку зірочка (*) означає, що ми запросили всі поля з таблиці. Якщо Ви хочете лише певні колонки, запит буде мати такий вигляд.

УмоваWHERE

Найчастіше ми зацікавлені не у всіх колонках, а лише у деяких. Наприклад, давайте припустимо, що нам потрібні лише електронна адреса для користувача "nettuts".

WHERE дозволяє встановлювати умови у запиті та робити докладні вибірки.

Зауважте, що для рівності використовувати один знак дорівнює (=), а не два, як у програмуванні.

Ви також можете використовувати порівняння.

AND або OR можуть бути використані для об'єднання умов:

Зауважте, що числові значення не повинні перебувати в лапках.

IN()

Це корисно для вибірки за кількома значеннями

LIKE

Дозволяє робити "wildcard" запити

Значок % використовується як wildcard. Тобто на його місці може бути будь-що.

УмоваORDER BY

Якщо Ви хочете отримати результат у впорядкованому вигляді за якимось критерієм

Порядок за замовчуванням ASC (від меншого до більшого). Для зворотного використовується DESC.

LIMIT ... OFFSET ...

Ви можете обмежити кількість отриманих результатів.

LIMIT 2 бере лише 2 перші результати. LIMIT 1 OFFSET 2 отримує 1 результат після перших 2-х. LIMIT 2, 1 означає те ж саме (тільки зверніть увагу спочатку йде offset а потім limit ).

UPDATE: Внести зміни до інформації у таблиці

Цей запит використовується для зміни інформації у таблиці.

У більшості випадків він використовується разом з умовою WHERE, тому що Ви, швидше за все, захочете внести зміни до певних колонок. Якщо умови WHERE зміни не торкнуться всі ряди.

Ви також можете використовувати LIMIT для обмеження кількості рядів, до яких необхідно внести зміни.

DELETE: Видалення інформації з таблиці

Як і UPDATE, цей запит використовується з WHERE:

Для видалення змісту таблиці можна зробити так:

DELETE FROM users;

Але краще використовувати TRUNCATE

Крім видалення, цей запит також скидає значення AUTO_INCREMENT і при додаванні рядів знову відлік почнеться з нуля. DELETE такого не робить та відлік триває.

Вимкнення рядкових значень та спеціальних слів

Рядкові значення

Деякі символи необхідно відключати ( escape ), або можуть бути проблеми.

Для цього використовується задній сліш(\).

Спеціальні слова

Оскільки MySQL є багато спеціальних слів ( SELECT або UPDATE ), щоб уникнути помилок при їх використанні необхідно використовувати лапки. Але не звичайні лапки, а ось такі(`).

Тобто Вам необхідно буде додати стовпчик з ім'ям " delete ", це необхідно зробити так:

Висновок

Дякую, що дочитали до кінця. Сподіваюся, Вам ця стаття була корисною. Це ще не кінець! Буде продовження:).

Складання