8. MySQL 8 - SELECT - выборка данных

preview_player
Показать описание
SELECT - оператор выборки данных. Позволяет находить данные из MySQL таблиц (и не только!), выполнять расчёты, выгружать данные во внешний файл, записывать данные в переменную. Вам без него не обойтись!
Рекомендации по теме
Комментарии
Автор

Это не только самый длинннный урок, еще и самый "заряженный":) Аплодирую стоя!

АндрейМатрица
Автор

Спасибо большое за твои видео, все понятно и очень качественно снято.

ArthasLIO
Автор

Здравствуйте. Спасибо Вам за Ваш труд и Ваше время! Шпаргалка для выгрузки данных в файл на Ubuntu (вдруг, кому надо): SHOW VARIABLES LIKE "secure_file_priv"; (в выводе будет папка для сохранения, например, /var/lib/mysql-files), соответственно командля для выгрузки данных в файл: SELECT continent, SUM(population) INTO OUTFILE FROM country GROUP BY 1 HAVING SUM(population) >

ДенисФилатов-ту
Автор

Очень хорошие уроки, смотрю с удовольствием, спасибо большое и моё вам почтение!

junkmail
Автор

Я просто ВОЮ от кайфа просмотра твоего видео)!!

natalya.provkova
Автор

загуглил Adamstown. в самом центре тихого океана.... думал там только акулы живут ))

yakut
Автор

Спасибо большое за видео! Всё стало понятно, всё очень хорошо объяснено.

Единственное что, у меня возникла непонятка с одним из запросов:

SELECT continent, region, sum(population)
FROM country
GROUP BY region, continent
WITH ROLLUP;


Я его написал сам, работал также с бд world. В итоге вышел "бред", покопавшись и сравнив с вашим запросом понял, что
у вас так:
> GROUP BY continent, region
у меня в этом запросе так:
> GROUP BY region, continent

То есть смена порядка входных значений при использовании ключевой конструкции GROUP BY имела значение, но как-то сложно осознать каким образом это влияет, при выводе запроса видно, что получается каша в моём случае, но вот каким же образом порядок аргументов в этой конструкции влияет на результат?

alexeicodes
Автор

Также кому интересно дополню: переменная может хранить 1 столбец, если много будет ошибка.. Пытался закинуть таблицу в переменную:)

Олександр-птж
Автор

Когда стану разработчиком, с меня донат

KirillAubekerov
Автор

Здравствуйте, подскажите пожалуйста, как можно получить подробную информацию о типе данных в таблице? Имеется тестовая таблица, в которой заведомо известны типы данных, одна колонка (при создании таблицы) USER_ID INT UNSIGNED AUTO INCREMENT PRIMARY_KEY.
И если пользоваться запросом:
SELECT data_type FROM information_schema.COLUMNS
WHERE table_schema = 'my_database'
AND table_name = 'my_table'
AND column_name = 'my_users';
отобразит всего-лишь то, что колонка USER_ID имеет тип INT, а часть UNSIGNED пропала, как быть в таком случае в серьезных рабочих ситуациях?

dasfenster
Автор

31:30 - выгрузка данных из таблицы в файл

andmisul
Автор

Решение проблемы secure_file_priv (Урок 8, время 31.23)
1. Задаём команду show variables like "secure_file_priv";
Результат показывает папку в которую и из которой
разрешено импортировать и экспортировать файлы, а также путь до неё.
У меня - это C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\
2. Перейти в C:\ProgramData. Папка скрыта, поэтому делаем её видимой (Вид - скрытые элементы, ставим галочку. На С: появляется папка ProgramData);
3. В ProgramData\MySQL\MySQL Server 8.0\Uploads идём до последней папки (Uploads)
Uploads - именно та папка, куда sql будет выгружать файлы;
Копируем весь путь (C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\) и вставляем его в код
select continent, sum(population)
into outfile "C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\pop.txt"
from country
group by 1
having sum(population) >
И ДОБАВЛЯЕМ К КАЖДОМУ СЛЭШУ ЕЩЁ ОДИН СЛЭШ и в конце пути произвольное название файла:
select continent, sum(population)
into outfile Server 8.0\\Uploads\\pop.txt"
from country
group by 1
having sum(population) >
Результат: в Uploads появляется файл pop.txt с содержимым
North America 482993000
Asia 3705025700
Africa 784475000
Europe 730074600
Внимание! Для работы с файлами в папке Uploads требуются права админа.
(На случай, если захочется удалить содержимое Uploads).
Там чел всё показывает с комментариями на плохом английском.

АлексейНесмеянов-лю
Автор

слешы в скрипте в пути файла отличаются от тех, которые задаются в файле конфига.

xSkyflow
Автор

Здравствуйте, подскажите пожалуйста как решить мою задачу.
Сначала через SELECT TaskBase INTO @Base ... Получаю переменную название таблицы. Она воспроизводится - всё хорошо.
Потом стоит задача сделать ещё один SELECT, но чтоб FROM являлся переменной. Такое возможно?
Выбивает ошибку синтаксиса хотя такая таблица точно существует:
SELECT str1 FROM @Base WHERE BStatus=0 ORDER BY RAND() LIMIT 1;

МихайлоОсадчий-фы
Автор

Здраствуйте написал группировки: SELECT continent, region, sum(population) as jojo from country GROUP BY 1, 2; А вот аналог: SELECT continent, region, sum(population) as jojo from country GROUP BY 2 ORDER BY continent, region; Возникает вопрос, в чем смысл двойной группировки, если возвращает оно одно и тоже, и скорость выполнение кода одинаковые.. Заранее спасибо за ответ

Олександр-птж
Автор

SELECT continent, SUM(population) INTO OUTFILE 'D:/ProgramData/MySQL/MySQL Server 8.0/Uploads/1.txt'
FROM country
GROUP BY 1
HAVING SUM(population) >

АльбертИванов-цх
Автор

Вопрос, почему при текущей версии воркбенча и базы world не пашет функция sum? (26-27 и далее минута)

es
Автор

Здраствуйте. есть таблица с сообщениями. в ней хранится поле private = 0 для всех пользователей сообщение. со значением 1 - для отправившего и кому отправили. как составить запрос чтобы выводились все сообщения private = 0 и private = 1 только если это либо получатель, либо отправитель? спасибо.

base-color
Автор

Спасибо большое
DESC 54321
и
Без DESC 12345 ????

Бағдарламашы
Автор

А если допустим хочу сделать подобное ... ввод : привет мир.?

zemzemic