Содержание

Задачка и теория по MySQL (изучаем базы данных) · GitHub

Теория (все наизусть учить не надо):

  • основы: http://phpclub.ru/mysql/doc/tutorial.html
  • отношения между таблицами в БД: http://jtest.ru/bazyi-dannyix/sql-dlya-nachinayushhix-chast-3.html
  • внешние ключи: http://denis.in.ua/foreign-keys-in-mysql.htm
  • большой учебник по SQL: http://www.pyramidin.narod.ru/rusql/index.htm
  • сборник запросов на все случаи жизни (англ): http://www.artfulsoftware.com/infotree/queries.php
  • таблицы отличий в диалектах SQL в разных СУБД (англ): http://en.wikibooks.org/wiki/SQL_dialects_reference
  • манга-учебник про SQL в картинках: http://www.nostarch.com/mg_databases.htm

Под Windows в командной строке не работают русские буквы

Надо выполнить команду SET NAMES cp866; после соединения: http://gahcep.github.io/blog/2013/01/05/mysql-utf8/

Еще ссылки на тему кодировок при соединении с mysql из php:

  • http://fstrange. ru/coder/mysql/kodirovka-krakozyably.html
  • http://phpfaq.ru/charset

На что стоит обратить внимание?

Вот список понятий, которые стоит знать если ты хочешь очень хорошо разбираться в MySQL:

  • управление базами данных: CREATE DATABASE, DROP DATABASE, SHOW DATABASES
  • управление таблицами: CREATE TABLE, ALTER TABLE, DROP TABLE, SHOW TABLES, SHOW CREATE TABLE, DESC table, TRUNCATE table
  • управление правами доступа: GRANT, SHOW GRANTS
  • типы колонок: ENUM, SET, CHAR, VARCHAR, TEXT, DATE, TIME, DATETIME, TIMESTAMP, INT, FLOAT, TINYINT, DECIMAL, MEDIUMTEXT, LONGTEXT. В чем разница между TIMESTAMP и DATETIME? Между FLOAT и DECIMAL? CHAR и VARCHAR?
  • DECIMAL — тип с фиксированной точностью. В отличие от FLOAT/DOUBLE, которые приближенные и могут терять знаки после запятой, DECIMAL хранит заданное число знаков. Используется например, для хранения суммы денег.
  • NULL и троичная логика (в БД NULL значит «неизвестно». Например, возраст пользователя неизвестен. Соответственно, все операции с NULL это учитывают: NULL + 5 тоже дает в итоге NULL (5 + неизвестное число дает неизвестное число), сравнение (NULL = NULL) возвращает ложь, чтобы проверить равно ли поле NULL надо использовать IS NULL/IS NOT NULL. http://ru.wikipedia.org/wiki/NULL_(SQL))
  • можно ли искать пустые поля условием WHERE x = NULL?
  • при создании таблицы можно сделать поля обязательными для заполнения, указав NOT NULL
  • SELECT/INSERT/DELETE/UPDATE
  • порядок выполнения запроса выборки: FROM+JOIN, WHERE, GROUP, HAVING, ORDER, LIMIT, SELECT (его надо знать наизусть)
  • REPLACE, INSERT IGNORE, INSERT .. ON DUPLICATE KEY UPDATE
  • выборка данных: DISTINCT, JOIN, ORDER BY, GROUP BY, HAVING, LIMIT
  • группировка и аггрегатные функции: GROUP BY, COUNT, MAX, MIN, AVG, SUM
  • транзакции: BEGIN, ROLLBACK, COMMIT
  • внешние ключи: FOREIGN KEY. Внешний ключ — это поле, которое хранит id записи в другой таблице
  • первичный ключ: естественный и искуственный
  • обычные и уникальные индексы (ключи)
  • оптимизация запросов, команда EXPLAIN
  • отличие InnoDB от MyISAM

Чем отличаеются движки для таблиц MyISAM и InnoDB?

  • http://rtfm. co.ua/mysql-otlichiya-mezhdu-myisam-i-innodb/
  • http://itif.ru/otlichiya-myisam-innodb/

Если кратко: MyISAM более простой и не поддеживает внешние ключи и транзакции. А они нужны почти всегда. Потому в 99% случаев тебе нужен InnoDB.

Индексы

Индексы позволяют ускорить поиск по условиям вроде x = ?, x < ?, x BETWEEN ? AND ?, x LIKE 'xxx%', x IN (?, ?, ?), а также сортировку (поля по которым идет сортировка должны идти в конце индекса). Разница на большой таблице может быть огромная — порядка 1 тысячной секунды против нескольких секунд. Ну например, если у нас есть таблица размером в миллион записей и мы делаем запрос

SELECT a, b FROM table ORDER BY y LIMIT 10

то без индекса MySQL вынуждена будет прочитать с диска в память миллион значений, отсортировать их только ради того, чтобы взять первые 10. Если же есть индекс по полю

y (который хранит отсортированные по возрастанию значения этого поля) то MySQL просто возьмет из него первые 10 записей. Разница в скорости работы будет огромная.

Вот статьи для начинающих про индексы:

  • http://ruhighload.com/post/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0+%D1%81+%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%B0%D0%BC%D0%B8+%D0%B2+MySQL
  • http://www.mysql.ru/docs/man/MySQL_indexes.html
  • http://habrahabr.ru/post/211022/

Если ты все прочел внимательно, ответь на вопрос, может ли индекс (если да, то какой) ускорить такие запросы:

  • SELECT * FROM table WHERE x <> 1
  • SELECT * FROM table WHERE x + y < 100
  • SELECT MAX(a) FROM table WHERE b = 2
  • SELECT * FROM table WHERE name LIKE '%Иван%'
  • SELECT * FROM table WHERE b = 1 AND a < 10

Задачка про лайки

С полученными знаниями ты легко сможешь решить эту задачу: есть пользователи (id, имя) и они могут ставить друг другу лайки. Сделай таблицы для хранения всей этой информации и напиши запрос, который выведет такую таблицу:

  • ид пользователя
  • имя
  • лайков получено
  • лайков поставлено
  • взаимных лайков

Сложно? Ну ок, давай начнем с более простой задачи: просто выведи 5 самых популярных пользователей.

Подсказка: эта задача решается без подзапросов

Подсказка: достаточно использовать всего 2 джойна и группировку

Задачка про кинотеатр

Вот дополнительная, более сложная задачка. Есть кинотеатр, в нем идут фильмы. У фильма есть название, длительность (пусть для простоты будет 60, 90 или 120 минут), цена билета (в разное время и дни может быть разная), время начала сеанса (один фильм может быть показан несколько раз в разное время за разную цену). Также, есть информация о купленных билетах (номер билета, на какой сеанс).

Задания:

  • составь грамотную нормализованную схему хранения этих данных в БД. Внеси в нее 4-5 фильмов, расписание на один день и несколько проданных билетов.

Сделай запросы, считающие и выводящие в понятном виде:

  • ошибки в расписании (фильмы накладываются друг на друга), отсортированные по возрастанию времени. Выводить надо колонки «фильм 1», «время начала», «длительность», «фильм 2», «время начала», «длительность».
  • перерывы больше или равные 30 минут между фильмами, выводятся по уменьшению длительности перерыва. Выводить надо колонки «фильм 1», «время начала», «длительность», «время начала второго фильма», «длительность перерыва».
  • список фильмов, для каждого указано общее число посетителей за все время, среднее число зрителей за сеанс и общая сумма сбора по каждому, отсортированные по убыванию прибыли. Внизу таблицы должна быть строчка «итого», содержащая данные по всем фильмам сразу.
  • число посетителей и кассовые сборы, сгруппированные по времени начала фильма: с 9 до 15, с 15 до 18, с 18 до 21, с 21 до 00:00.
    (то есть сколько посетителей пришло с 9 до 15 часов, сколько с 15 до 18 и т.д.).

Сложная задача про календарь

Решил предыдущие задачи и они слишком простые? Ок, давай возьмемся за действительно сложную задачу. Напиши SQL-код, выводящий календарь на текущий месяц в виде:

ПнВтСрЧтПтСбВс
|    |    |    |    | 1  | 2 

3 | 4 | 5 | 6 | 7 | 8 | 9 10 | 11 | 12 | 13 | 14 | 15 | 16 17 | 18 | 19 | 20 | 21 | 22 | 23 24 | 25 | 26 | 27 | 28 | 29 | 30

  • Подсказка: ты можешь делать запросы без таблиц, например SELECT 2 + 3, 'Hello'
  • Подсказка: здесь не надо использовать циклы или процедуры
  • Подсказка: функции работы с датой и временем ты можешь найти тут http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html (англ.)
  • Подсказка: для сокращения объема кода ты можешь использовать переменные (создаются командой SET)

Учебник.

Создание приложения PHP (Laravel) с помощью Базы данных Azure для MySQL — Гибкий сервер в Службе приложений Azure
  • Статья

Область применения: База данных Azure для MySQL — гибкий сервер

Служба приложений Azure — это высокомасштабируемая служба размещения с самостоятельной установкой исправлений на основе операционной системы Linux. В этом руководстве показано, как создать защищенное приложение PHP в Служба приложений Azure, подключенном к базе данных MySQL (с помощью База данных Azure для MySQL — гибкий сервер). По завершении вы получите приложение Laravel, работающее в Службе приложений Azure в Linux.

В этом руководстве описано следующее:

  • Создание изначально безопасного приложения на основе PHP и MySQL в Azure
  • Настройка секретов подключения к MySQL с помощью параметров приложения
  • Развертывание кода приложения с помощью GitHub Actions
  • Обновление и повторное развертывание приложения
  • Безопасные переносы баз данных
  • Потоковая передача журналов диагностики из Azure.
  • Управление приложением на портале Azure.

Предварительные требования

  • Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу. С помощью бесплатной учетной записи Azure вы можете бесплатно использовать гибкий сервер Базы данных Azure для MySQL в течение 12 месяцев. Дополнительные сведения см. в статье Бесплатное использование гибкого сервера.

Пример приложения

Для работы с этим руководством клонируйте или скачайте пример приложения из репозитория:

git clone https://github. com/Azure-Samples/laravel-tasks.git

Если вы хотите запустить приложение локально, сделайте следующее:

  • В файле ENV настройте параметры базы данных (например, DB_DATABASE, DB_USERNAME и DB_PASSWORD) с помощью параметров в локальной базе данных MySQL. Для запуска этого примера потребуется локальный сервер MySQL.

  • В корне репозитория запустите Laravel с помощью следующих команд:

    composer install
    php artisan migrate
    php artisan key:generate
    php artisan serve
    

1. Создание ресурсов Службы приложений и MySQL

В этом шаге вы создадите ресурсы Azure. Действия, описанные в этом учебнике, позволяют создать по умолчанию безопасную конфигурацию Службы приложений и Базы данных Azure для MySQL — Гибкий сервер. В процессе создания вы укажете следующее:

  • Имя веб-приложения. Это имя используется в составе DNS-имени вашего веб-приложения в виде https://<app-name>. azurewebsites.net.
  • Среда выполнения для приложения. Здесь следует выбрать версию PHP, которая будет использоваться для приложения.
  • Группа ресурсов для приложения. Группа ресурсов позволяет группировать (в логическом контейнере) все ресурсы Azure, необходимые для приложения.

Войдите на портал Azure и выполните следующие действия, чтобы создать ресурсы Службы приложений Azure.

ИнструкцииСнимок экрана
На портале Azure выполните следующие действия:
  1. Введите «веб-приложение база данных» в строке поиска в верхней части портала Azure.
  2. Выберите элемент с меткой Веб-приложение и база данных под заголовком Marketplace.
Вы также можете перейти напрямую к мастеру создания.
На странице Создание веб-приложения+базы данных заполните форму следующим образом.
  1. Группа ресурсов — выберите Создать и используйте имя msdocs-laravel-mysql-tutorial.

  2. Регион → любой ближайший к вам регион Azure.

  3. Имя — используйте имя msdocs-laravel-mysql-XYZ, где XYZ представляет три произвольных символа. Это имя должно быть уникальным в Azure.

  4. Стек среды выполненияPHP 8.0.

    MySQL — гибкий сервер выбран по умолчанию в качестве ядра СУБД. База данных Azure для MySQL — это полностью управляемая система «база данных как услуга» MySQL в Azure, совместимая с последними выпусками сообщества.

  5. Запишите созданное имя базы данных (<имя-приложения>-database). Он понадобится вам позднее.

  6. Щелкните Review + create (Просмотреть и создать).

После завершения проверки нажмите Создать.
Развертывание занимает несколько минут и создает следующие ресурсы:
  • Группа ресурсов — Контейнер для всех созданных ресурсов.
  • План службы приложений — определяет вычислительные ресурсы для Службы приложений. Создается план Linux на уровне P1v2.
  • Служба приложений — представляет приложение и выполняется в плане службы приложений.
  • Виртуальная сеть — интегрирована с приложением Службы приложений и изолирует внутренний сетевой трафик.
  • База данных Azure для MySQL — гибкий сервер → доступен только из виртуальной сети. База данных и пользователь создаются на этом сервере.
  • Частная зона DNS — включает разрешение DNS сервера базы данных MySQL в виртуальной сети.
После завершения развертывания нажмите кнопку Перейти к ресурсу. Вы перейдете непосредственно в приложение Службы приложений.

2. Настройка подключения к базе данных

Мастер создания создал параметры приложения для подключения к базе данных, но не в формате, который еще можно использовать для вашего кода. На этом шаге вы измените и обновите параметры приложения в нужном формате.

ИнструкцииСнимок экрана
В левом меню на странице Службы приложений выберите Конфигурация.
На вкладке Параметры приложения на странице Конфигурация для каждого из следующих параметров щелкните Изменить, обновите поле Имя новыми значениями и нажмите кнопку ОК.
Текущее имяНовое имя
AZURE_MYSQL_DBNAMEDB_DATABASE
AZURE_MYSQL_HOSTDB_HOST
AZURE_MYSQL_USERNAMEDB_USERNAME
AZURE_MYSQL_PASSWORDDB_PASSWORD
Создайте новый MYSQL_ATTR_SSL_CA параметр базы данных:
  1. Щелкните Новый параметр приложения.

  2. В поле Имя введите MYSQL_ATTR_SSL_CA.

  3. В поле Значение введите /home/site/wwwroot/ssl/DigiCertGlobalRootCA.crt.pem.

    Этот параметр приложения указывает на путь к TLS/SSL-сертификату, необходимому для доступа к серверу MySQL. Для удобства он включен в пример репозитория.

  4. Нажмите кнопку ОК.

Создайте следующие дополнительные параметры приложения, выполнив те же действия, а затем нажмите кнопку Сохранить.
  • APP_DEBUG: используйте true в качестве значения. Это переменная отладки Laravel.

  • APP_KEY: используйте base64:Dsz40HWwbCqnq0oxMsjq7fItmKIeBfCBGORfspaI1Kw= в качестве значения. Это переменная шифрования Laravel.

    Важно!

    Это значение APP_KEY используется здесь для удобства. В рабочих сценариях его необходимо создать специально для конкретного развертывания с помощью командной строки php artisan key:generate --show.

3. Развертывание примера кода

На этом шаге вы настроите развертывание GitHub с помощью GitHub Actions. Это всего лишь один из множества способов развертывания в Службе приложений, но это также отличный способ обеспечения непрерывной интеграции в процессе развертывания. По умолчанию каждая команда git push из репозитория GitHub запускает действие сборки и развертывания. Вы внесете некоторые изменения в базу кода с помощью Visual Studio Code непосредственно в браузере, а затем позволите GitHub Actions выполнить развертывание автоматически.

ИнструкцииСнимок экрана
В новом окне браузера сделайте следующее:
  1. Войдите в учетную запись GitHub.

  2. Перейдите к https://github.com/Azure-Samples/laravel-tasks.

  3. Нажмите кнопку Вилка.

  4. Нажмите Создать вилку.

На странице GitHub откройте Visual Studio Code в браузере, нажав клавишу . .
В Visual Studio Code в браузере откройте файл config/database.php в обозревателе. В подключении mysql убедитесь, что уже используются параметры приложения, созданные ранее для подключения MySQL (DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD, MYSQL_ATTR_SSL_CA).
Вернитесь на страницу Службы приложений и в меню слева выберите Центр развертывания.
На странице «Центр развертывания» сделайте следующее:
  1. В поле Источник выберите GitHub. По умолчанию в качестве поставщика сборки выбрано GitHub Actions.

  2. Войдите в свою учетную запись GitHub и следуйте инструкциям по авторизации Azure.

  3. В поле Организация выберите свою учетную запись.

  4. В поле Репозиторий выберите laravel-tasks.

  5. В поле Ветвь выберите main.

  6. В верхнем меню выберите Сохранить.

Служба приложений фиксирует файл рабочего процесса в выбранном репозитории GitHub в каталоге .github/workflows.
На странице «Центр развертывания» сделайте следующее:
  1. Выберите Журналы. Прогон развертывания уже запущен.

  2. В элементе журнала для прогона развертывания выберите Журналы сборки и развертывания.

    Вы перейдете в репозиторий GitHub и увидите, что выполняется действие GitHub. Файл рабочего процесса определяет два отдельных этапа: сборку и развертывание.

Чтобы внести изменения в код, откройте Visual Studio Code в браузере:
  1. Выберите расширение Система управления версиями.

  2. Рядом с измененным файлом, например database.php, выберите + для подготовки изменений.

  3. В текстовом поле введите сообщение о фиксации, например add certificate.

  4. Выберите галочку для фиксации и отправки в GitHub.

Если вы вернетесь на страницу «Центр развертывания», то увидите новую запись журнала, так как запускается другой прогон. Дождитесь завершения прогона. Это занимает около 15 минут.

Совет

Действие GitHub определяется файлом в репозитории GitHub в .github/workflow. Его можно ускорить, настроив этот файл.

4. Создание схемы базы данных

Мастер создания помещает сервер базы данных MySQL за частной конечной точкой, поэтому он доступен только из виртуальной сети. Так как приложение Службы приложений уже интегрировано с виртуальной сетью, выполнять миграции баз данных с вашей базой данных проще всего непосредственно из контейнера Службы приложений.

ИнструкцииСнимок экрана
На странице Службы приложений сделайте следующее:
  1. В меню слева выберите SSH.

  2. Выберите Перейти.

В браузере открывается сеанс SSH с контейнером Службы приложений. При желании вместо этого можно перейти непосредственно к https://<app-name>.scm.azurewebsites.net/webssh/host.
В терминале SSH сделайте следующее:
  1. С помощью команды CD перейдите в корневой каталог кода приложения:

    cd /home/site/wwwroot
    
  2. Запустите миграции баз данных из корневого каталога приложения.

    php artisan migrate --force
    

    Примечание

    После перезапуска приложения могут сохраняться только изменения в файлах в /home. Изменения за пределами /home не сохраняются.

5. Изменение корня сайта

Жизненный цикл приложения Laravel начинается в каталоге /public. Контейнер PHP 8.0 по умолчанию для Службы приложений использует Nginx, который запускается в корневом каталоге приложения. Чтобы изменить корневой каталог сайта, нужно изменить файл конфигурации Nginx в контейнере PHP 8.0 (/etc/nginx/sites-available/default). Для удобства пример репозитория содержит пользовательский файл конфигурации, который называется default. Как отмечалось ранее, не следует заменять этот файл с помощью оболочки SSH, так как после перезапуска приложения такие изменения будут потеряны.

ИнструкцииСнимок экрана
На странице Службы приложений сделайте следующее:
  1. В меню слева выберите Конфигурация.

  2. Далее щелкните вкладку Общие параметры.

На вкладке «Общие параметры» сделайте следующее:
  1. В поле Команда запуска введите следующую команду: cp /home/site/wwwroot/default /etc/nginx/sites-available/default && service nginx reload.

    Она заменяет файл конфигурации Nginx в контейнере PHP 8. 0 и перезапускает Nginx. Такая конфигурация обеспечивает внесение этого изменения в контейнер при каждом его запуске.

  2. Щелкните Сохранить.

6. Переход в приложение

ИнструкцииСнимок экрана
На странице Службы приложений сделайте следующее:
  1. В меню слева выберите Обзор.

  2. Выберите URL-адрес своего приложения.

    Также можно перейти непосредственно по адресу https://<app-name>.azurewebsites.net.

Добавьте несколько задач в список. Вы запустили управляемое данными приложение PHP в Службе приложений Azure.

7. Потоковая передача журналов диагностики

ИнструкцииСнимок экрана
На странице Службы приложений сделайте следующее:
  1. В меню слева выберите Журналы службы приложений.

  2. Под элементом Ведение журнала приложения выберите Файловая система.

В меню слева щелкните Поток журналов. Вы увидите журналы для своего приложения, включая журналы платформы и журналы из контейнера.

Очистка ресурсов

По завершении работы можно удалить все ресурсы из вашей подписки Azure, удалив соответствующую группу ресурсов.

ИнструкцииСнимок экрана
В строке поиска в верхней части портала сделайте следующее:
  1. Введите имя группы ресурсов.

  2. Выберите группу ресурсов.

На странице группы ресурсов выберите команду Удалить группу ресурсов.
  1. Введите имя группы ресурсов для подтверждения удаления.

  2. Щелкните Удалить.

Часто задаваемые вопросы

  • Сколько стоит такая конфигурация?
  • Как подключиться к базе данных MySQL, защищенной виртуальной сетью, с помощью других средств?
  • Как осуществляется разработка локальных приложений с использованием GitHub Actions?
  • Почему развертывание GitHub Actions идет так медленно?
Сколько стоит такая конфигурация?

Цены на создание ресурсов приведены ниже:

  • План службы приложений создается на уровне Premium V2, и его можно масштабировать вверх или вниз. См. цены на Службу приложений.
  • Гибкий сервер MySQL создается на уровне B1ms, и его можно масштабировать вверх или вниз. При использовании бесплатной учетной записи Azure уровень B1ms предоставляется бесплатно в течение 12 месяцев до достижения ежемесячных пределов. См. цены на Базу данных Azure для MySQL.
  • Плата за виртуальную сеть не взимается, если только вы не настроите дополнительные функциональные возможности, такие как пиринг. См. цены на виртуальные сети Azure.
  • За частную зону DNS взимается небольшая плата. См. цены на Azure DNS.
Как подключиться к базе данных MySQL, защищенной виртуальной сетью, с помощью других средств?
  • Для базового доступа из программы командной строки можно запустить mysql из терминала SSH приложения.
  • Чтобы подключиться из средства для настольных систем, например MySQL Workbench, компьютер должен находиться в соответствующей виртуальной сети. Например, это может быть виртуальная машина Azure, подключенная к одной из подсетей, или компьютер в локальной сети с VPN-подключением типа «сеть — сеть» к виртуальной сети Azure.
  • Вы также можете интегрировать Azure Cloud Shell с виртуальной сетью.
Как осуществляется разработка локальных приложений с использованием GitHub Actions?

Возьмем автоматически созданный файл рабочего процесса из Службы приложений в качестве примера, где каждый git push запускает новый прогон сборки и развертывания. Из локального клона репозитория GitHub вы вносите необходимые обновления в GitHub. Пример:

git add .
git commit -m "<some-message>"
git push origin main
Почему развертывание GitHub Actions идет так медленно?

Автоматически созданный файл рабочего процесса из Службы приложений определяет прогон из двух заданий — сначала сборка, потом развертывание. Так как каждое задание выполняется в собственной чистой среде, файл рабочего процесса гарантирует, что задание deploy имеет доступ к файлам из задания build:

  • В конце задания buildотправьте файлы в виде артефактов.
  • В начале задания deploy скачайте эти артефакты.

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

Сводка

В этом руководстве вы узнали, как выполнять следующие задачи:

  • Создание изначально безопасного приложения на основе PHP и MySQL в Azure
  • Настройка секретов подключения к MySQL с помощью параметров приложения
  • Развертывание кода приложения с помощью GitHub Actions
  • Обновление и повторное развертывание приложения
  • Безопасные переносы баз данных
  • Потоковая передача журналов диагностики из Azure.
  • Управление приложением на портале Azure.

Дальнейшие действия

Руководство. Сопоставление настраиваемого DNS-имени с приложением

Управление ресурсами с помощью портала Azure

Управление сервером

Учебников по MySQL для начинающих и профессионалов

В этом Учебниках по MySQL для начинающих и профессионалов мы рассмотрим все основные и продвинутые концепции, используя простые примеры, а также примеры в реальном времени. Я уверен, что в конце этой серии руководств по MySQL вы станете экспертом по базам данных MySQL.

Это руководство по MySQL для кого?

Это учебное пособие по MySQL предназначено для студентов, новичков, которые никогда раньше не работали с какой-либо системой реляционных баз данных, особенно с базой данных MySQL, а также для профессиональных разработчиков, которые хотят изучить базу данных MySQL шаг за шагом от самых основ до продвинутой концепции, используя примеры в реальном времени, а также найти много полезной информации о новых функциях и передовых технологиях MySQL.

Что мне нужно знать перед изучением MySQL?

Для изучения MySQL не требуется предварительных условий, и его легче освоить, но перед изучением базы данных MySQL убедитесь, что вы должны иметь базовые знания основ работы с компьютером. Это язык запросов, похожий на английский. Таким образом, любой, кто может использовать английский язык на базовом уровне, может легко выучить и написать SQL-запросы. Хорошо, что большинство механизмов баз данных совместимы с кодом SQL.

Что вы узнаете из этих руководств по MySQL?

В этом руководстве по MySQL вы узнаете, как использовать SQL для взаимодействия с базой данных MySQL. Вы изучите различные методы запроса данных из базы данных MySQL и способы управления таблицами базы данных MySQL, такие как создание, изменение и удаление, а также продвинутые концепции, такие как представления, функции, хранимые процедуры, триггеры, управление транзакциями и т. д.

Что такое MySQL?

Это комбинация My и SQL, MySQL. Это программное обеспечение с открытым исходным кодом. MySQL может быть системой управления, которая позволяет вам управлять реляционными базами данных. Это программное обеспечение с открытым исходным кодом, поддерживаемое Oracle. Это означает использовать MySQL, не платя ни копейки. Мы также можем изменить его текстовый файл ASCII в соответствии с вашими потребностями. MySQL проще по сравнению с другим программным обеспечением баз данных, таким как Oracle Database или Microsoft SQL Server. MySQL может работать на разных платформах, таких как UNIX, Linux, Windows и т. д. Вы можете установить его на рабочий стол или даже на сервер. MySQL — это надежная, масштабируемая и быстрая база данных.

Разница между SQL и MySQL
  1. SQL — это язык базы данных, тогда как MYSQL — это программное обеспечение.
  2. SQL используется для хранения, обработки и извлечения данных в реляционной базе данных, тогда как MySQL — это система управления реляционными базами данных с открытым исходным кодом, которая позволяет нам управлять реляционными базами данных.
  3. SQL помогает нам управлять данными в реляционной базе данных, тогда как MySQL помогает нам управлять реляционными базами данных с помощью SQL.
  4. SQL не меняется, поскольку это язык, в то время как MySQL обновляется как программное обеспечение.
Зачем нам MySQL?
  1. Он безопасен, поскольку использует надежную защиту данных для защиты конфиденциальных данных.
  2. Хорошо управляет памятью и предотвращает утечки памяти.
  3. Это быстрее по сравнению с другими базами данных, такими как Oracle.
  4. Масштабируемость, общий размер файла может составлять около 4 ГБ.
  5. Использовать и поддерживать MySQL недорого.
Чего мы ждем от вас?

Мы постараемся изо всех сил охватить все концепции, связанные с MySQL, но в то же время, если у вас есть какая-либо конкретная концепция, которую вы хотите, чтобы мы рассмотрели, или если мы пропустили какие-либо концепции или темы в этом учебном пособии по MySQL. которые связаны с базой данных MySQL, сообщите нам об этом, оставив комментарий в поле для комментариев, и мы обещаем вам, что как можно скорее мы опубликуем статью на эту тему. Вы также можете связаться с нами по телефону Электронная почта: [email protected] .

И последнее, но не менее важное: ваши ценные отзывы очень важны и много значат для нас. Итак, если у вас есть несколько минут, поделитесь с нами своими мыслями и отзывами об этом руководстве по MySQL. Присоединяйтесь к нашему каналу Telegram , чтобы узнать больше и развеять свои сомнения относительно баз данных SQL Server, MySQL и Oracle. Кроме того, присоединяйтесь к нашей группе SQL Server, MySQL и Oracle в Facebook , чтобы узнавать и делиться своими мыслями о SQL Server, MySQL и Oracle.

Введение и настройка среды

Пункты MySQL

Условия и операторы в MySQL

MySQL – ограничения

MySQL – встроенные функции

MySQL – JOIN

MySQL – Оконные функции

MySQL – Представления

MySQL – Язык управления транзакциями 

MySQL – определяемые пользователем функции, процедуры и триггеры

MySQL – дополнительные понятия

MySQL – популярные книги

Учебник по MySQL для начинающих | Учебное пособие по SQL для анализа данных

1.

Основы

Как объединить строки в MySQL

Начать сейчас

Как преобразовать регистр строки

Начать сейчас

Как заменить подстроку в строке

Начать сейчас

Как обрезать струну

Начать сейчас

Как использовать group_concat()

Начать сейчас

Как использовать подстроку()

Начать сейчас

Как использовать substring() с регулярными выражениями

Начать сейчас

Как использовать вставку в оператор

Начать сейчас

Как использовать оператор обновления в SQL

Начать сейчас

Как использовать оператор Удалить SQL

Начать сейчас

Как объединить строки в MySQL

Начать сейчас

Как преобразовать регистр строки

Начать сейчас

Как заменить подстроку в строке

Начать сейчас

Как обрезать струну

Начать сейчас

Как использовать group_concat()

Начать сейчас

Как использовать подстроку()

Начать сейчас

Как использовать substring() с регулярными выражениями

Начать сейчас

Как использовать вставку в оператор

Начать сейчас

Как использовать оператор обновления в SQL

Начать сейчас

Как использовать оператор Удалить SQL

Начать сейчас

Как объединить строки в MySQL

Начать сейчас

Как преобразовать регистр строки

Начать сейчас

Как заменить подстроку в строке

Начать сейчас

Как обрезать струну

Начать сейчас

Как использовать group_concat()

Начать сейчас

Как использовать подстроку()

Начать сейчас

Как использовать substring() с регулярными выражениями

Начать сейчас

Как использовать вставку в оператор

Начать сейчас

Как использовать оператор обновления в SQL

Начать сейчас

Как использовать оператор Удалить SQL

Начать сейчас

2.

Управление базой данных

Как создать таблицу в MySQL

Начать сейчас

Как удалить таблицу в MySQL

Начать сейчас

Как переименовать таблицу в MySQL

Начать сейчас

Как обрезать таблицу в MySQL

Начать сейчас

Как дублировать таблицу в MySQL

Начать сейчас

Как добавить столбец в MySQL

Начать сейчас

Как удалить столбец в MySQL

Начать сейчас

Как переименовать столбец в MySQL

Начать сейчас

Как добавить значение по умолчанию в столбец в MySQL

Начать сейчас

Как удалить значение по умолчанию из столбца в MySQL

Начать сейчас

Как добавить ненулевое ограничение в MySQL

Начать сейчас

Как удалить ненулевое ограничение в MySQL

Начать сейчас

Как создать индекс в MySQL

Начать сейчас

Как удалить индекс в MySQL

Начать сейчас

Как создать представление в MySQL

Начать сейчас

Как удалить представление в MySQL

Начать сейчас

Как изменить последовательность в MySQL

Начать сейчас

Как создать таблицу в MySQL

Начать сейчас

Как удалить таблицу в MySQL

Начать сейчас

Как переименовать таблицу в MySQL

Начать сейчас

Как обрезать таблицу в MySQL

Начать сейчас

Как дублировать таблицу в MySQL

Начать сейчас

Как добавить столбец в MySQL

Начать сейчас

Как удалить столбец в MySQL

Начать сейчас

Как переименовать столбец в MySQL

Начать сейчас

Как добавить значение по умолчанию в столбец в MySQL

Начать сейчас

Как удалить значение по умолчанию из столбца в MySQL

Начать сейчас

Как добавить ненулевое ограничение в MySQL

Начать сейчас

Как удалить ненулевое ограничение в MySQL

Начать сейчас

Как создать индекс в MySQL

Начать сейчас

Как удалить индекс в MySQL

Начать сейчас

Как создать представление в MySQL

Начать сейчас

Как удалить представление в MySQL

Начать сейчас

Как изменить последовательность в MySQL

Начать сейчас

Как создать таблицу в MySQL

Начать сейчас

Как удалить таблицу в MySQL

Начать сейчас

Как переименовать таблицу в MySQL

Начать сейчас

Как обрезать таблицу в MySQL

Начать сейчас

Как дублировать таблицу в MySQL

Начать сейчас

Как добавить столбец в MySQL

Начать сейчас

Как удалить столбец в MySQL

Начать сейчас

Как переименовать столбец в MySQL

Начать сейчас

Как добавить значение по умолчанию в столбец в MySQL

Начать сейчас

Как удалить значение по умолчанию из столбца в MySQL

Начать сейчас

Как добавить ненулевое ограничение в MySQL

Начать сейчас

Как удалить ненулевое ограничение в MySQL

Начать сейчас

Как создать индекс в MySQL

Начать сейчас

Как удалить индекс в MySQL

Начать сейчас

Как создать представление в MySQL

Начать сейчас

Как удалить представление в MySQL

Начать сейчас

Как изменить последовательность в MySQL

Начать сейчас

3.

Даты и время

Как исключить текущие или неполные недели

Начать сейчас

Как правильно использовать МЕЖДУ

Начать сейчас

Как запросить дату и время в MySQL

Начать сейчас

Как сгруппировать по времени

Начать сейчас

Как округлить метки времени

Начать сейчас

Как исключить текущие или неполные недели

Начать сейчас

Как правильно использовать МЕЖДУ

Начать сейчас

Как запросить дату и время в MySQL

Начать сейчас

Как сгруппировать по времени

Начать сейчас

Как округлить метки времени

Начать сейчас

Как исключить текущие или неполные недели

Начать сейчас

Как правильно использовать МЕЖДУ

Начать сейчас

Как запросить дату и время в MySQL

Начать сейчас

Как сгруппировать по времени

Начать сейчас

Как округлить метки времени

Начать сейчас

4.