SQL

[!] SQL MySQL Онлайн-Справочник - примеры кода запросов

Forums:

Данный раздел пополнен в основном благодаря IFF/

С чего начать

  1. Как начать изучать SQL
  2. MySQL и Клиент-серверная архитектура

Теория и базовые понятия:

yii2 Вложенные множественные модели (sql) на одной форме как с ними работать

Про mongodb мы уже говорили, теперь посмотрим какие варианты у нас есть для sql (напр. mysql)

Частично о множественных моделях на форме говорит и официальная документация, но это не совсем то, что нам надо.

sql Многие ко многим -- JOIN, HAVING, COUNT (Пример для mysql)

Forums:

Задача была (из списка задач с собеседований):

У книги и авторы, одну книгу могут писать несколько авторов и, конечно же, один автор может написать много книг (это "многие ко многим", потому через 3 таблицы).
Напишите запрос, который выведет названия книг написанных ровно двумя авторами.

yii2 ActiveRecord findOne c условием LIKE -- пример кода

Проблему (добавления like условия в запрос) удалось решить, используя код, вида:

$command = static::find()->filterWhere(
  ['LIKE', 'verify_code', "$token"]
);
$User = $command->one();

sql GROUP BY -- Достать результаты суммирования, в виде ассоциативного массива -- пример запроса

Forums:

Задача

Есть таблица Sale с полями id, amount, shop_id.
Нам нужно достать сумму сумм(amount), отдельно по каждому магазину(shop_id).
Как сделать это в одном sql-запросе?

Запрос

SELECT SUM(amount) FROM `sale` 
    WHERE shop_id IN (1,2,3,4,5)
    GROUP BY shop_id;

В результате мы получим массив, в котором ключами будут shop_id, а значениями - результат функции SUM() всех amount из строк с соответствующим shop_id.

mysql Переименование таблицы -- пример SQL

Forums:

Можно так:

RENAME TABLE `user` TO `site_user`;

Вопросы и задачи с собеседования по позицию среднего middle разработчика (web, PHP, но может быть и другое)

SQL

  • Задача 1: В некоторой СУБД есть таблица persons, в которой есть поля:
    1. id
    2. name -- имя сотрудника
    3. salary -- его зарплата
    4. department_id --id отдела, в котором работает данный сотрудник.

    Напишите SQL запросы:

Создание SQL запроса средствами другого SQL запроса -- пример ;)

Forums:

Когда это нужно

Ситуация возникает, когда в какой-то локальной базе, например, в одной из табилиц у вас есть полезная информация, которую хотелось бы перенести в другую БД, но накатить дамп таблицы возможности нет (например, на эту таблицу на втором сервере ссылаются внешние ключи), поэтому придётся использовать UPDATE, который перенёс бы значение "за раз".
Именно такой запрос мы и сгенерировали в этом примере.

yii2 Пример миграции с полями в т.ч: decimal, bool (логического), unsigned Not NUll, Defautl value (по умолчанию), внешний ключ


public function safeUp()
{

    //Добавляем все необходимые поля
    $this->createTable($this->tableName, [
        'id' => $this->primaryKey()->notNull(),
        'organization_id' =>  $this->integer()->notNull()
                ->comment('Связь с  организации'),
        'frmo_id' =>   $this->integer()->defaultValue(null)
            ->comment('id здания '),
        'build_name' => $this->string(256)->notNull()
            ->comment('Наименование здания'), // для строк переменной длины, напр. вместо varchar(256)

Вопрос по подзапросам -- вычисляемые поля. Когда и как выполняется подзрапрос, порядок выполнения

Forums:

В учебнике Бена Форта имеется вот такой пример к главе 11 "Использование подзапросов":

SELECT cust_name, cust_state,
(SELECT COUNT(*)
 FROM Orders
 WHERE Orders.cust_id = Customers.cust_id) AS orders
 FROM Customers
 ORDER BY cust_name;

Для ясности поясню - подразумевается выборка количества заказов (которые хранятся в таблице Orders) каждого клиента (список которых хранится в таблице Customers,). Вот отрывок из пояснения к коду:

Pages

Subscribe to RSS - SQL