Задачка и теория по 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. Если же есть индекс по полю
(который хранит отсортированные по возрастанию значения этого поля) то 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.
Сложная задача про календарь
Решил предыдущие задачи и они слишком простые? Ок, давай возьмемся за действительно сложную задачу. Напиши 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 выполните следующие действия:
| |
На странице Создание веб-приложения+базы данных заполните форму следующим образом.
| |
Развертывание занимает несколько минут и создает следующие ресурсы:
|
2. Настройка подключения к базе данных
Мастер создания создал параметры приложения для подключения к базе данных, но не в формате, который еще можно использовать для вашего кода. На этом шаге вы измените и обновите параметры приложения в нужном формате.
Инструкции | Снимок экрана | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
В левом меню на странице Службы приложений выберите Конфигурация. | |||||||||||
На вкладке Параметры приложения на странице Конфигурация для каждого из следующих параметров щелкните Изменить, обновите поле Имя новыми значениями и нажмите кнопку ОК.
| |||||||||||
Создайте новый MYSQL_ATTR_SSL_CA параметр базы данных:
| |||||||||||
Создайте следующие дополнительные параметры приложения, выполнив те же действия, а затем нажмите кнопку Сохранить.
|
3. Развертывание примера кода
На этом шаге вы настроите развертывание GitHub с помощью GitHub Actions. Это всего лишь один из множества способов развертывания в Службе приложений, но это также отличный способ обеспечения непрерывной интеграции в процессе развертывания. По умолчанию каждая команда git push
из репозитория GitHub запускает действие сборки и развертывания. Вы внесете некоторые изменения в базу кода с помощью Visual Studio Code непосредственно в браузере, а затем позволите GitHub Actions выполнить развертывание автоматически.
Инструкции | Снимок экрана |
---|---|
В новом окне браузера сделайте следующее:
| |
На странице GitHub откройте Visual Studio Code в браузере, нажав клавишу . . | |
В Visual Studio Code в браузере откройте файл config/database.php в обозревателе. В подключении mysql убедитесь, что уже используются параметры приложения, созданные ранее для подключения MySQL (DB_HOST , DB_DATABASE , DB_USERNAME , DB_PASSWORD , MYSQL_ATTR_SSL_CA ). | |
Вернитесь на страницу Службы приложений и в меню слева выберите Центр развертывания. | |
На странице «Центр развертывания» сделайте следующее:
.github/workflows . | |
На странице «Центр развертывания» сделайте следующее:
| |
Чтобы внести изменения в код, откройте Visual Studio Code в браузере:
Совет Действие GitHub определяется файлом в репозитории GitHub в .github/workflow. Его можно ускорить, настроив этот файл. |
4. Создание схемы базы данных
Мастер создания помещает сервер базы данных MySQL за частной конечной точкой, поэтому он доступен только из виртуальной сети. Так как приложение Службы приложений уже интегрировано с виртуальной сетью, выполнять миграции баз данных с вашей базой данных проще всего непосредственно из контейнера Службы приложений.
Инструкции | Снимок экрана |
---|---|
На странице Службы приложений сделайте следующее:
https://<app-name>.scm.azurewebsites.net/webssh/host . | |
В терминале SSH сделайте следующее:
|
5. Изменение корня сайта
Жизненный цикл приложения Laravel начинается в каталоге /public. Контейнер PHP 8.0 по умолчанию для Службы приложений использует Nginx, который запускается в корневом каталоге приложения. Чтобы изменить корневой каталог сайта, нужно изменить файл конфигурации Nginx в контейнере PHP 8.0 (/etc/nginx/sites-available/default). Для удобства пример репозитория содержит пользовательский файл конфигурации, который называется default. Как отмечалось ранее, не следует заменять этот файл с помощью оболочки SSH, так как после перезапуска приложения такие изменения будут потеряны.
Инструкции | Снимок экрана |
---|---|
На странице Службы приложений сделайте следующее:
| |
На вкладке «Общие параметры» сделайте следующее:
|
6. Переход в приложение
Инструкции | Снимок экрана |
---|---|
На странице Службы приложений сделайте следующее:
| |
Добавьте несколько задач в список. Вы запустили управляемое данными приложение PHP в Службе приложений Azure. |
7. Потоковая передача журналов диагностики
Инструкции | Снимок экрана |
---|---|
На странице Службы приложений сделайте следующее:
| |
В меню слева щелкните Поток журналов. Вы увидите журналы для своего приложения, включая журналы платформы и журналы из контейнера. |
Очистка ресурсов
По завершении работы можно удалить все ресурсы из вашей подписки Azure, удалив соответствующую группу ресурсов.
Инструкции | Снимок экрана |
---|---|
В строке поиска в верхней части портала сделайте следующее:
| |
На странице группы ресурсов выберите команду Удалить группу ресурсов. | |
|
Часто задаваемые вопросы
- Сколько стоит такая конфигурация?
- Как подключиться к базе данных 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- SQL — это язык базы данных, тогда как MYSQL — это программное обеспечение.
- SQL используется для хранения, обработки и извлечения данных в реляционной базе данных, тогда как MySQL — это система управления реляционными базами данных с открытым исходным кодом, которая позволяет нам управлять реляционными базами данных.
- SQL помогает нам управлять данными в реляционной базе данных, тогда как MySQL помогает нам управлять реляционными базами данных с помощью SQL.
- SQL не меняется, поскольку это язык, в то время как MySQL обновляется как программное обеспечение.
- Он безопасен, поскольку использует надежную защиту данных для защиты конфиденциальных данных.
- Хорошо управляет памятью и предотвращает утечки памяти.
- Это быстрее по сравнению с другими базами данных, такими как Oracle.
- Масштабируемость, общий размер файла может составлять около 4 ГБ.
- Использовать и поддерживать 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
Начать сейчасКак сгруппировать по времени
Начать сейчасКак округлить метки времени
Начать сейчас