Есть ли альтернатива TOP в MySQL?
Я хочу знать альтернативу ключевого слова TOP, как в MySQL. Я читал о TOP в SQL Server.
Есть ли какая-либо альтернатива этому в MySQL или любой другой метод в MySQL, из которого мы можем получить ту же функциональность?
sql mysqlПоделиться Источник Avinash 12 февраля 2010 в 05:44
5 ответов
- Есть ли альтернатива типу данных uniqueidentifer SQL-Server в MySQL?
Я переношу страницу входа с одного сервера на другой. На старом сервере размещается база данных SQL-сервера, а на новом-MySQL. Страница входа использует guid из таблицы user для идентификации пользователей с помощью переменной сеанса. Есть ли аналогичная Альтернатива для использования в MySQL?
- Есть ли альтернатива `connect by` в MySQL?
Если я использую Oracle, то есть ключевое слово connect by , которое можно использовать для создания иерархических запросов. В настоящее время я использую MySQL в проекте, и я хотел бы знать, есть ли альтернатива для connect by в MySQL? Я попробовал поискать в google, но пока безрезультатно. Чего…
31
Упорядочение и ограничение результатов:
SELECT field1, field2
FROM myTable
ORDER BY field1 ASC
LIMIT 10
Поделиться Sampson 12 февраля 2010 в 05:46
7
Вы можете использовать ключевое слово LIMIT
(см. Документацию к инструкции SELECT
) — оно находится в конце запроса :
select *
from your_table
where ...
limit 10
чтобы получить 10 лучших строк
Или даже :
select *
from your_table
where ...
limit 5, 10
Чтобы получить 10 строк, начните с 6-й (т. е. получите строки с 6 по 15) .
Поделиться Pascal MARTIN 12 февраля 2010 в 05:47
2
Я знаю, что на этот вопрос был дан ответ, и я хотел бы добавить некоторые соображения о производительности. Оператор TOP в MySQL не переводится с LIMIT.
Предположим, вы хотите, чтобы последние 10 человек были вставлены в БД:
SELECT name, id
FROM persons
ORDER BY id DESC
LIMIT 10
Однако это может стать чрезвычайно медленным при использовании тысяч строк.
Гораздо более быстрым решением было бы получить текущее число X строк:
SELECT COUNT(*) FROM persons
и используйте это число для запроса последних 10:
SELECT name, id FROM persons LIMIT x-10,10
Таким образом, limit пропустит первые X-10 строки и вернет следующие 10. Это было в 100 раз быстрее для меня, чем сортировка столбца, но это только мой опыт.
Поделиться nuvio 27 апреля 2013 в 17:06
0
да, есть пункт об ограничении .
Пример:
SELECT * FROM `your_table` LIMIT 0, 10
Это отобразит первые 10 результатов из базы данных.
Поделиться Sarfraz 12 февраля 2010 в 05:47
Поделиться Gopi 12 февраля 2010 в 05:50
Похожие вопросы:
Есть ли альтернатива «last_update_ID()» для mySQL?
В настоящее время я работаю над большим веб-проектом с использованием ASP и MySQL. При вставке в несколько таблиц я использовал last_update_ID() , но после некоторых исследований я обнаружил, что…
MySQL как альтернатива
Есть ли альтернатива для LIKE? Обратите внимание, что я не могу использовать полнотекстовый поиск. Вот мой код mysql. SELECT * FROM question WHERE content LIKE ‘%$search_each%’ OR title LIKE…
Альтернатива оператору in In mysql
Я вижу в операторе альтернативу в mysql У меня почти 25,000 удостоверений личности. Я использую оператор in на that.Then я получаю Stackoverflow Exception . Есть ли какая-либо другая альтернатива…
Есть ли альтернатива типу данных uniqueidentifer SQL-Server в MySQL?
Я переношу страницу входа с одного сервера на другой. На старом сервере размещается база данных SQL-сервера, а на новом-MySQL. Страница входа использует guid из таблицы user для идентификации…
Есть ли альтернатива `connect by` в MySQL?
Do MySQL поддерживает кэширование запросов.? Если нет, то есть ли альтернатива в MySQL.’)) VIRTUAL; Это необходимо для добавления…
Альтернатива клаузуле MINUS в MySQL?
Я работаю над некоторыми запросами в MySQL и выяснил, что предложение minus не поддерживается. Есть ли какая-либо альтернатива для пункта minus в MySQL? Как я могу вычесть значения в запросе из…
Есть ли альтернатива WORDCHARS в Bash?
Conculusion: Нет альтернативы WORDCHARS в Bash, где концы C-w не могут быть настроены. mysql зависит от editline , который настраивается с помощью ~/.editrc . redis-cli зависит от linenoise , он…
Условие SQL top и заменяющие его limit и rownum в MySQL и Oracle
От автора: условие SQL TOP используется для извлечения из таблицы записей до N строки или X процентов строк.
Примечание. Не все базы данных поддерживают условие TOP. Например, MySQL поддерживает условие LIMIT для извлечения ограниченного количества записей, в то время как Oracle использует для извлечения ограниченного количества записей команду ROWNUM.
Синтаксис
Основной синтаксис условия TOP с инструкцией SELECT следующий.
SELECT TOP число|процент названия_столбцов FROM имя_таблицы WHERE [условие]
SELECT TOP число|процент названия_столбцов FROM имя_таблицы WHERE [условие] |
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Получить курс сейчас!Пример
Рассмотрим таблицу CUSTOMERS, содержащую следующие записи:
В следующем примере приведен запрос к серверу SQL, который извлекает верхние 3 записи из таблицы CUSTOMERS.
SELECT TOP 3 * FROM CUSTOMERS;
SELECT TOP 3 * FROM CUSTOMERS; |
Этот код дает следующий результат:
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Получить курс сейчас!Если вы используете MySQL-сервер, то ниже приведен эквивалентный пример:
SELECT * FROM CUSTOMERS LIMIT 3;
SELECT * FROM CUSTOMERS LIMIT 3; |
Этот код дает следующий результат:
Если вы используете сервер Oracle, то ниже приведен эквивалентный пример для него:
SELECT * FROM CUSTOMERS WHERE ROWNUM <= 3;
SELECT * FROM CUSTOMERS WHERE ROWNUM <= 3; |
Этот код дает следующий результат:
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Получить курс сейчас!Хотите изучить MySQL?
Посмотрите курс по базе данных MySQL!
СмотретьLIMIT в MySQL, аналоги в MS SQL Server
Оглавление Связанные темыКонструкция MySQL LIMIT служит для извлечения диапазона строк из таблицы базы данных. В зависимости от того, как эта конструкция прописана в запросе, можно извлечь либо определённое число начальных строк, либо определённое число строк, следующих за пропущенными начальными строками.
LIMIT 2 // вывести первые 2 строки LIMIT 3, 2 //пропустить первые 3 строки и вывести следующие за ними 2 строки
Конструкция LIMIT располагается в конце запроса.
В примерах работаем с базой данных «Недвижимость» и её таблицей «Объект» (OBJECT).
Obj_ID | Type | Rooms | |
1 | flat | Центр | 2 |
2 | flat | Центр | 2 |
3 | house | Волжский | 4 |
4 | flat | Центр | 2 |
5 | house | Волжский | 5 |
6 | flat | Пашино | 2 |
7 | flat | Центр | 3 |
8 | house | Сосновка | 3 |
9 | flat | Сосновка | 1 |
10 | flat | Пашино | 2 |
11 | flat | Сосновка | 3 |
12 | flat | Сосновка | 2 |
13 | flat | Сосновка | 1 |
Пример 1. Требуется вывести две первые строки из таблицы. Пишем запрос с использованием LIMIT с одним параметром:
SELECT * FROM OBJECT LIMIT 2
При помощи применённого ограничения диапазона будет выведена следующая таблица:
Obj_ID | Type | District | Rooms |
1 | flat | Центр | 2 |
2 | flat | Центр | 2 |
Перейдём к использованию конструкции LIMIT с двумя параметрами. Особенно удобно её применять, если требуется упорядочить строки по какому-либо столбцу с помощью оператора ORDER BY и вывести строки с определёнными значениями столбцов.
Пример 2. Так будет выглядеть наша таблица, если применить оператор ORDER BY и упорядочить объекты по числу комнат:
Obj_ID | Type | District | Rooms |
13 | flat | Сосновка | 1 |
9 | flat | Сосновка | 1 |
12 | flat | Сосновка | 2 |
10 | flat | Пашино | 2 |
1 | flat | Центр | 2 |
6 | flat | Пашино | 2 |
4 | flat | Центр | 2 |
2 | flat | Центр | 2 |
8 | house | Сосновка | 3 |
11 | flat | Сосновка | 3 |
7 | flat | Центр | 3 |
3 | house | Волжский | 4 |
5 | house | Волжский | 5 |
Требуется исключить из выборки объекты с числом комнат 1, 2 и 5. Следовательно, в результирующей таблице должны присутствовать объекты с числом комнат 3 и 4. Отсчитываем от начала число строк, которые следует исключить — их будет 8, и подсчитываем число строк, которые нужно вывести — их будет 4. Пишем запрос конструкцией LIMIT 8, 4. Приведём полностью запрос, в который вошёл и оператор ORDER BY для упорядочения строк:
SELECT * FROM OBJECT ORDER BY Rooms LIMIT 8, 4
При помощи применённого ограничения будет выведена следующая таблица:
Obj_ID | Type | District | Rooms |
8 | house | Сосновка | 3 |
11 | flat | Сосновка | 3 |
7 | flat | Центр | 3 |
3 | house | Волжский | 4 |
В MS SQL Server можно также извлекать определённый диапазон строк, но для этого существуют другие конструкции и они немного сложнее, чем в MySQL.
Если вы хотите выполнить запросы к базе данных из этого урока на MS SQL Server, но эта СУБД не установлена на вашем компьютере, то ее можно установить, пользуясь инструкцией по этой ссылке.
Скрипт для создания базы данных «Недвижимость», её таблиц и заполения таблиц данными — в файле по этой ссылке.
Аналогом LIMIT с одним параметром является оператор TOP. Он может применяться только с одним параметром и служит для вывода из таблицы первых строк, число которых указано в качестве параметра.
TOP 2 // вывести первые 2 строки
Для более сложных манипуляций с диапазонами извлекаемых строк существуют операторы OFFSET и FETCH.
Если применять только оператор OFFSET, после которого указывается один параметр, то будут выведены все оставшиеся в таблице строки кроме первых, число которых указано в качестве параметра.
OFFSET 2 ROWS // вывести все строки, кроме первых двух
Аналогом LIMIT с двумя параметрами является конструкция из операторов OFFSET и FETCH. После первого из них указывается, сколько первых строк нужно пропустить. После второго указывается, сколько последующих строк нужно вывести.
OFFSET 3 ROWS FETCH NEXT 2 ROWS ONLY // пропустить первые 3 строки и вывести 2 следующие за ними строки
Пример 3. Требуется вывести две первые строки из таблицы. Пишем запрос с использованием оператора TOP:
SELECT TOP 2 * FROM Object
При помощи применённого ограничения диапазона, так же как в примере 1, будет выведена следующая таблица:
Obj_ID | Type | District | Rooms |
1 | flat | Центр | 2 |
2 | flat | Центр | 2 |
Пример 4. Как и в примере 2, строки в таблице упорядочены по числу комнат. Требуется исключить из выборки объекты с числом комнат 1 и 2. То есть пропустить первые 2 строки и вывести все остальные строки. Пишем запрос с оператором OFFSET:
SELECT * FROM Object ORDER BY Rooms OFFSET 8 ROWS
При помощи применённого ограничения диапазона будет выведена следующая таблица:
Obj_ID | Type | District | Rooms |
8 | house | Сосновка | 3 |
11 | flat | Сосновка | 3 |
7 | flat | Центр | 3 |
3 | house | Волжский | 4 |
5 | house | Волжский | 5 |
Результирующая таблица отличается от полученной в примере 2, ведь теперь мы вывели кроме исключённых все строки до конца.
Пример 5. А теперь условие, полностью аналогичное условию примера 2, применяем конструкцию из операторов OFFSET и FETCH вместе.
Чтобы исключить из выборки объекты с числом комнат не только 1 и 2 (первые 8 строк), но и 5 (последняя строка), после оператора FETCH указываем, что нужно вывести лишь 4 строки, следующих после исключённых строк. Пишем запрос:
SELECT * FROM Object ORDER BY Rooms OFFSET 8 ROWS FETCH NEXT 4 ROWS ONLY
При помощи применённого ограничения будет выведена следующая таблица:
Obj_ID | Type | District | Rooms |
8 | house | Сосновка | 3 |
11 | flat | Сосновка | 3 |
7 | flat | Центр | 3 |
3 | house | Волжский | 4 |
Примеры запросов к базе данных «Недвижимость» есть также в уроках по операторам IN, GROUP BY, предикату EXISTS.
Поделиться с друзьями
Функция SQL LAST: примеры, синтаксис
Оператор SQL LAST() — функция, возвращающая последнее значение столбца или столбцов таблицы.
Используется только в СУБД MS Access!
Функция SQL LAST() имеет следующий синтаксис:
LAST(column_name)
Аналогом функции SQL LAST() для MySQL будет оператор SQL LIMIT. Для MS SQL Server оператор SQL TOP. Для Oracle оператор ROWNUM.
Примеры аналогов функции SQL LAST() для различных СУБД описаны ниже.
Примеры оператора SQL LAST. Имеется следующая таблица Planets:
ID | PlanetName | Radius | SunSeason | OpeningYear | HavingRings | Opener |
1 | Mars | 3396 | 687 | 1659 | No | Christiaan Huygens |
2 | Saturn | 60268 | 10759.22 | — | Yes | — |
3 | Neptune | 24764 | 60190 | 1846 | Yes | John Couch Adams |
4 | Mercury | 2439 | 115.88 | 1631 | No | Nicolaus Copernicus |
5 | Venus | 6051 | 243 | 1610 | No | Galileo Galilei |
Пример 1. Используя оператор SQL LAST вывести последнее значение столбца Opener:
Решение для MS Access:
SELECT LAST(Opener) FROM Planets
Решение для MySQL:
SELECT Opener FROM Planets ORDER BY Opener DESC LIMIT 1
Решение для MS SQL Server:
SELECT TOP 1 Opener FROM Planets ORDER BY Opener DESC
Решение для Oracle:
SELECT Opener FROM Planets ORDER BY Opener DESC WHERE ROWNUM <= 1
Результат:
MySQL LIMIT & OFFSET с примерами
Что такое ключевое слово LIMIT?
Ключевое слово limit используется для ограничения количества строк, возвращаемых в результате запроса.
Его можно использовать вместе с командами SELECT, UPDATE OR DELETE. Синтаксис ключевого слова LIMIT.
Синтаксис ключевого слова LIMIT следующий
SELECT {fieldname (s) | *} FROM tableName (s) [WHERE condition] LIMIT N;
ЗДЕСЬ
- «ВЫБРАТЬ {имя (а) полей | *} FROM tableName (s) » — это оператор SELECT, содержащий поля, которые мы хотели бы вернуть в нашем запросе.
- «[WHERE condition]» является необязательным, но, если он указан, может использоваться для указания фильтра в наборе результатов.
- «LIMIT N» — ключевое слово, а N — любое число, начинающееся с 0, при этом 0, поскольку ограничение не возвращает никаких записей в запросе. Ввод числа, скажем, 5, вернет пять записей. Если записей в указанной таблице меньше N, то все записи из запрошенной таблицы возвращаются в наборе результатов.
Давайте посмотрим на пример —
SELECT * FROM members LIMIT 2;
членский_ номер | ФИО | пол | дата_рождения | дата_регистрации | физический_ адрес | почтовый_адрес | контакт_ номер | электронная почта | номер кредитной_ карты |
---|---|---|---|---|---|---|---|---|---|
1 | Джанет Джонс | Женский | 21-07-1980 | НЕТ | Первая улица Участок № 4 | Частная сумка | 0759 253 542 | janetjones @ yagoo.размеры в см | НЕТ |
2 | Джанет Смит Джонс | Женский | 23-06-1980 | НЕТ | Мелроуз 123 | НЕТ | НЕТ | [email protected] | НЕТ |
Как видно из приведенного выше снимка экрана, было возвращено только два члена.
Получение списка из 10 (десяти) членов только из базы данных
Предположим, мы хотим получить список первых 10 зарегистрированных пользователей из базы данных Myflix.Для этого мы воспользуемся следующим сценарием.
SELECT * FROM members LIMIT 10;
Выполнение вышеуказанного скрипта дает нам результаты, показанные ниже
членский номер | ФИО | пол | дата_рождения | дата_регистрации | физический_ адрес | почтовый_адрес | контакт_ номер | электронная почта | номер кредитной_ карты |
---|---|---|---|---|---|---|---|---|---|
1 | Джанет Джонс | Женский | 21-07-1980 | НЕТ | Первая улица Участок № 4 | Частная сумка | 0759 253 542 | janetjones @ yagoo.размеры в см | НЕТ |
2 | Джанет Смит Джонс | Женский | 23-06-1980 | НЕТ | Мелроуз 123 | НЕТ | НЕТ | [email protected] | НЕТ |
3 | Роберт Фил | Мужской | 12-07-1989 | НЕТ | 3-я улица, 34, | НЕТ | 12345 | rm @ tstreet.com | НЕТ |
4 | Глория Уильямс | Женский | 14-02-1984 | НЕТ | 2-я улица, 23, | НЕТ | НЕТ | НЕТ | НЕТ |
5 | Леонард Хофштадтер | Мужской | НЕТ | НЕТ | Вудкрест | НЕТ | 845738767 | НЕТ | НЕТ |
6 | Шелдон Купер | Мужской | НЕТ | НЕТ | Вудкрест | НЕТ | 976736763 | НЕТ | НЕТ |
7 | Раджеш Кутраппали | Мужской | НЕТ | НЕТ | Вудкрест | НЕТ | 938867763 | НЕТ | НЕТ |
8 | Лесли Винкль | Мужской | 14-02-1984 | НЕТ | Вудкрест | НЕТ | 987636553 | НЕТ | НЕТ |
9 | Говард Воловиц | Мужской | 24-08-1981 | НЕТ | Южный Парк | с.О. Box 4563 | 987786553 | lwolowitz [at] email.me | НЕТ |
Обратите внимание, что в нашем запросе было возвращено только 9 членов, поскольку N в предложении LIMIT больше, чем общее количество записей в нашей таблице.
Перепишите вышеупомянутый скрипт следующим образом
SELECT * FROM members LIMIT 9;
Возвращает только 9 строк в нашем наборе результатов запроса.
Использование OFF SET в запросе LIMIT
Значение OFF SET также чаще всего используется вместе с ключевым словом LIMIT. Значение OFF SET позволяет нам указать, с какой строки начинать получение данных
Предположим, что мы хотим получить ограниченное количество членов, начиная с середины строк, мы можем использовать ключевое слово LIMIT вместе со значением смещения, чтобы добиться этого. Скрипт, показанный ниже, получает данные, начиная со второй строки, и ограничивает результаты до 2.
ВЫБРАТЬ * ИЗ `members` LIMIT 1, 2;
Выполнение вышеуказанного сценария в рабочей среде MySQL для myflixdb дает следующие результаты.
членский номер | ФИО | пол | дата_рождения | дата_регистрации | физический_ адрес | почтовый_адрес | контакт_ номер | электронная почта | номер кредитной_ карты |
---|---|---|---|---|---|---|---|---|---|
2 | Джанет Смит Джонс | Женский | 23-06-1980 | НЕТ | Мелроуз 123 | НЕТ | НЕТ | jj @ fstreet.com | НЕТ |
3 | Роберт Фил | Мужской | 12-07-1989 | НЕТ | 3-я улица, 34, | НЕТ | 12345 | [email protected] | НЕТ |
Обратите внимание, что здесь OFFSET = 1 Следовательно, возвращается строка # 2 & Limit = 2 , следовательно, возвращаются только 2 записи
Когда мы должны использовать ключевое слово LIMIT?
Предположим, мы разрабатываем приложение, работающее поверх myflixdb.Наш системный разработчик попросил нас ограничить количество отображаемых на странице записей до 20 записей на страницу, чтобы уменьшить время загрузки. Как нам реализовать систему, отвечающую таким требованиям пользователей? Ключевое слово LIMIT пригодится в таких ситуациях. Мы могли бы ограничить результаты, возвращаемые запросом, до 20 записей только на страницу.
Резюме
- Ключевое слово LIMIT используется для ограничения количества строк, возвращаемых из набора результатов.
- Число LIMIT может быть любым числом от нуля (0) вверх.Если в качестве ограничения указан ноль (0), строки из набора результатов не возвращаются.
- Значение OFF SET позволяет нам указать, с какой строки начинать получение данных
- Его можно использовать вместе с командами SELECT, UPDATE OR DELETE. Синтаксис ключевого слова LIMIT .
Как обновить верхние N строк данных
Как обновить верхние N строк данных в MySQL
Оператор обновления в MySQL поддерживает использование предложения LIMIT для указания количества строк, которые могут быть обновлено.В этом уроке мы используем два примера, чтобы показать, как их эффективно использовать.
Практика №1: Обновите 2 верхних строки.
Следующий запрос на обновление увеличивает UnitPrice на 10% для первых двух продуктов в категории «Приправы» (заказанные по ProductID).
Чтобы указать MySQL, как выбирать продукты для обновления, мы используем предложение ORDER BY. Чтобы обновить только 2 строки, мы используем Предложение LIMIT. В этом запросе данные сортируются по ProductID в возрастающем порядке, и выбираются первые 2 продукта. пунктом LIMIT 2.
Для большинства запросов в руководствах требуется база данных Northwind MySQL, вы можете загрузить сценарий базы данных на этой странице.
ОБНОВЛЕНИЕ продуктов
УСТАНОВИТЬ UnitPrice = UnitPrice * 1.1
WHERE CategoryID = 2
ORDER BY ProductID
LIMIT 2;
До обновления — на снимке экрана ниже показано, что UnitPrice для двух продуктов составляет 10 и 22 доллара (только для CategoryID 2 — Приправы).
После обновления — обновлено 2 строки.Теперь цена UnitPrice для двух продуктов увеличена на 10% до 11 долларов США и 24,2 доллара США.
Практика №2: Обновите UnitPrice для пяти самых дорогих продуктов.
Следующий запрос на обновление снижает UnitPrice на 10% для пяти самых дорогих продуктов.
Для большинства запросов в руководствах требуется база данных Northwind MySQL, вы можете загрузить сценарий базы данных на этой странице.
ОБНОВЛЕНИЕ продуктов
УСТАНОВИТЬ UnitPrice = UnitPrice * 0.9
ЗАКАЗАТЬ ПО UnitPrice DESC
LIMIT 5;
До обновления — на скриншоте ниже показана UnitPrice 5 самых дорогих товаров.
После обновления — обновлено 5 строк. На 5 самых дорогих товаров цена UnitPrice снижена на 10%.
Удачного кодирования!
Другие руководства в этой категории
1. Оператор обновления в MySQL
2. Как обновлять данные в определенном порядке в MySQL
3.Используйте внешнее соединение в обновлении
4. Как выполнить обновление кросс-таблицы в MySQL — Часть 1
5. Как выполнить обновление кросс-таблицы в MySQL — Часть 2
6. Использование инструкции массовой вставки
7. Базовый оператор вставки
8. Как создать и использовать столбец AUTO_INCREMENT и использовать функцию LAST_INSERT_ID
9. Объединить обновление и вставить в один оператор
10. Использование MySQL REPLACE (INTO) для имитации DELETE + INSERT
11. Обновление нескольких строк (различаются по первичному ключу) с разными значениями в одном запросе
Вернуться к странице указателя руководства
Три способа получить первые N строк из MySQL
3 способа получить первые N строк из MySQL
Есть три различных способа получить первые N записей из таблицы MySQL.
Ниже мы используем таблицу «Продукты» в базе данных MySQL Northwind, чтобы продемонстрировать, как получить 10 самых дорогих продуктов. Три вопроса вернуть тот же результат. Он демонстрирует, как MySQL ограничивает количество выбранных записей.
Метод 1:
Первый запрос использует предложение LIMIT для ограничить количество строк, возвращаемых оператором SELECT.
выберите ProductName как Десять_Самых_Дорогих_продуктов, Цена за единицу из продуктов заказать по UnitPrice по убыванию лимит 10;
Метод 2:
Второй запрос использует коррелированный подзапрос для получения 10 самых дорогих товаров.
выберите отдельное имя продукта как Десять самых дорогих продуктов, Цена за единицу из продуктов а где 10> = (выберите количество (отличное (UnitPrice)) из продуктов b где b.UnitPrice> = a.UnitPrice) заказ по UnitPrice desc;
Метод 3:
Третий запрос использует функцию ROW_NUMBER для присвоения последовательно увеличивающегося номера строки. на основе цены за единицу, затем выберите 10 лучших записей.
выберите Десять_Самых_Дорогих_продуктов, Цена единицы из ( выберите отдельное ProductName как Десять_Самых_Дорогих_продуктов, Цена за единицу, ROW_NUMBER () больше (заказ по UnitPrice по убыванию) как PriceRank из продуктов заказать по UnitPrice по убыванию ) как x где PriceRank от 1 до 10;
Удачного кодирования!
Другие руководства в этой категории
1.Запросы MySQL Northwind — Часть 1
2. Запросы MySQL Northwind — Часть 2
3. Запросы MySQL Northwind — Часть 3
4. Как работать с двумя несвязанными значениями
5. Как заполнить пробелы в данных о продажах
6. Как рассчитать итоги, промежуточные итоги и общий итог
7. Как работать с значениями NULL
8. Как заполнить пустые ячейки значениями из предыдущей непустой строки
9. Используйте функцию RANK для обновления предыдущая запись в группе или разделе
10.Два способа добавить уникальный номер или идентификатор в каждую строку
11. Как сгенерировать совокупную сумму (текущую сумму) с помощью MySQL — Часть 1
12. Как сгенерировать совокупную сумму (текущую сумму) с помощью MySQL — Часть 2
Вернуться на страницу указателя учебного пособия
MySQL: SELECT LIMIT Statement
В этом руководстве MySQL объясняется, как использовать оператор SELECT LIMIT в MySQL с синтаксисом и примерами.
Описание
Оператор MySQL SELECT LIMIT используется для извлечения записей из одной или нескольких таблиц в MySQL и ограничения количества возвращаемых записей на основе предельного значения.
Синтаксис
Синтаксис оператора SELECT LIMIT в MySQL:
выражения SELECT ИЗ столов [ГДЕ условия] [ORDER BY выражение [ASC | DESC]] LIMIT row_count;
Параметры или аргументы
- выражений
- Столбцы или вычисления, которые вы хотите получить.
- столов
- Таблицы, из которых вы хотите получить записи. В предложении FROM должна быть хотя бы одна таблица.
- ГДЕ условия
- Необязательно. Условия, которые должны быть выполнены для выбора записей.
- ORDER BY выражение
- Необязательно. Он используется в операторе SELECT LIMIT, чтобы вы могли упорядочить результаты и нацелить те записи, которые хотите вернуть.
- LIMIT row_count
- Задает ограниченное количество строк в результирующем наборе, которое должно быть возвращено, на основе row_count . Например, LIMIT 10 вернет первые 10 строк, соответствующих критериям SELECT.Здесь порядок сортировки имеет значение, поэтому обязательно используйте предложение ORDER BY соответствующим образом.
Пример — использование ключевого слова LIMIT
Давайте посмотрим, как использовать оператор SELECT с предложением LIMIT в MySQL.
Например:
ВЫБЕРИТЕ contact_id, last_name, first_name ИЗ контактов ГДЕ веб-сайт = 'TechOnTheNet.com' ЗАКАЗАТЬ ПО contact_id DESC LIMIT 5;
В этом примере MySQL SELECT LIMIT будут выбраны первые 5 записей из таблицы контактов , где веб-сайт — это TechOnTheNet.com ‘. Обратите внимание, что результаты отсортированы по contact_id в порядке убывания, поэтому это означает, что оператор SELECT LIMIT будет возвращать 5 самых больших значений contact_id .
Если есть другие записи в таблице контактов , которые имеют значение website «TechOnTheNet.com», они не будут возвращены оператором SELECT LIMIT в MySQL.
Если бы мы хотели выбрать 5 наименьших значений contact_id вместо наибольших, мы могли бы изменить порядок сортировки следующим образом:
ВЫБЕРИТЕ contact_id, last_name, first_name ИЗ контактов ГДЕ веб-сайт = 'TechOnTheNet.com ' ЗАКАЗАТЬ ПО contact_id ASC LIMIT 5;
Теперь результаты будут отсортированы по contact_id в возрастающем порядке, поэтому первые 5 наименьших записей contact_id , у которых есть веб-сайт TechOnTheNet.com, будут возвращены этим оператором SELECT LIMIT. Никакие другие записи не будут возвращены этим запросом.
выбирает только первые N строк
Top-N запросов — это запросы, которые ограничивают результат определенным числом
рядов. Часто это запросы о самых последних или «лучших» записях.
набора результатов.Для эффективного выполнения ранжирование должно выполняться с
конвейерный заказ пользователя
.
Самый простой способ получить только первые строки запроса — это выборка
необходимые строки, а затем закрытие оператора. К сожалению,
оптимизатор не может предвидеть этого при составлении плана выполнения. Выбирать
лучший план выполнения, оптимизатор должен знать, будет ли приложение
в конечном итоге получить все строки. В этом случае полное сканирование таблицы с явным
операция сортировки может работать лучше, хотя конвейерный порядок по
может быть лучше при выборке только десяти
строк — даже если базе данных приходится получать каждую строку отдельно.Это означает
что оптимизатор должен знать, собираетесь ли вы прервать выполнение оператора
перед выборкой всех строк, чтобы он мог выбрать лучший план выполнения.
Наконечник
Сообщайте базе данных всякий раз, когда вам это не нужно все строки.
Стандарт SQL долгое время исключал это требование. В
соответствующее расширение (, первая загрузка,
), наконец,
введен в SQL: 2008 и в настоящее время доступен в IBM DB2,
PostgreSQL, SQL Server 2012 и Oracle 12c.С одной стороны, это
потому что функция не является основным расширением, а с другой стороны, это
потому что каждая база данных предлагала собственное проприетарное решение для
много лет.
Следующие примеры показывают использование этих хорошо известных расширений. запросив десять последних продаж. Основа всегда одна и та же: получение всех продаж , начиная с самого последнего один. Соответствующий синтаксис top-N просто прерывает выполнение после получения десять рядов.
- DB2
DB2 поддерживает стандартную выборку
первый синтаксис
по крайней мере начиная с версии 9 (LUW и zOS).ВЫБРАТЬ * ОТ ПРОДАЖ ЗАКАЗАТЬ ПО ДАТЕ_ ПРОДАЖИ DESC ВЫБРАТЬ ТОЛЬКО ПЕРВЫЕ 10 РЯДОВ
Собственное ограничение
db2set DB2_COMPATIBILITY_VECTOR = MYS
).- MySQL
MySQL и PostgreSQL используют предложение
limit
для ограничить количество выбираемых строк.ВЫБРАТЬ * ОТ ПРОДАЖ ЗАКАЗАТЬ ПО ДАТЕ_ ПРОДАЖИ DESC LIMIT 10
- Oracle
База данных Oracle представила расширение
fetch first
с выпуском 12c. В более ранних версиях вы должны использовать псевдоколонкуROWNUM
, который нумерует строки в наборе результатов автоматически. Чтобы использовать этот столбец в фильтре, мы должны обернуть запрос:ВЫБРАТЬ * ОТ ( ВЫБРАТЬ * ОТ ПРОДАЖ ЗАКАЗАТЬ ПО ДАТЕ_ ПРОДАЖИ DESC ) WHERE rownum <= 10
- PostgreSQL
PostgreSQL поддерживает выборку
первое расширение
с версии 8.4. Ранее использовавшиеся ОграничениеПредложение
по-прежнему работает как показано в примере MySQL.ВЫБРАТЬ * ОТ ПРОДАЖ ЗАКАЗАТЬ ПО ДАТЕ_ ПРОДАЖИ DESC ВЫБРАТЬ ТОЛЬКО ПЕРВЫЕ 10 СТРОК
- SQL Server
SQL Server предоставляет предложение
top
для ограничить количество выбираемых строк.ВЫБРАТЬ ТОП 10 * ОТ ПРОДАЖ ЗАКАЗАТЬ по дате продажи DESC
Начало с выпуском 2012 SQL Server поддерживает расширение
fetch first
как хорошо.
Все показанные выше запросы SQL являются особенными, поскольку базы данных распознавать их как топ-N запросов.
Важно
База данных может оптимизировать запрос только для частичного результата, если он знает это с самого начала.
Если оптимизатор знает, что нам нужно всего десять строк, он
предпочтет использовать конвейерный заказ от
если применимо:
- DB2
Объясните план -------------------------------------------------- --------------- ID | Операция | Ряды | Расходы 1 | ВОЗВРАТ | | 24 2 | ПОИСК ПРОДАЖ | 10 из 1009326 | 458452 3 | IXSCAN (ОБРАТНЫЙ) SALES_DT_PR | 1009326 из 1009326 | 2624 Информация о предикатах
Поведение top-N не отображается напрямую в DB2 план выполнения, если нет операции
SORT
требуется (тогдаlast_explained
вид указывает в скобках:SORT (TOP-N)
, см. следующий пример).В этом конкретном примере можно предположить, что это должно быть запросом в топ-N из-за внезапного падения количества строк оценка, которую нельзя объяснить никакими предикатами фильтрации (Раздел информации о предикатах пуст).
- Oracle
------------------------------------------ ------------------- | Операция | Имя | Ряды | Стоимость | -------------------------------------------------- ----------- | ВЫБРАТЬ ЗАЯВЛЕНИЕ | | 10 | 9 | | СЧЕТЧИК СТОПОРНОГО КЛЮЧА | | | | | ПРОСМОТР | | 10 | 9 | | ДОСТУП К ТАБЛИЦЕ ПО ИНДЕКСУ ROWID | ПРОДАЖА | 1004K | 9 | | ИНДЕКС ПОЛНОЕ СКАНИРОВАНИЕ ПО УДАЛЕНИЮ | SALES_DT_PR | 10 | 3 | -------------------------------------------------- -----------
План выполнения Oracle указывает на запланированное завершение с КНОПКА СЧЕТЧИКА
операция.Это означает, что база данных распознала топ-N
синтаксис.
Важно
Конвейерный запрос Top-N не требует чтения и отсортируйте весь набор результатов.
Если нет подходящего индекса на SALE_DATE
для
конвейерный заказ на
, база данных должна
прочитать и отсортировать всю таблицу. Первая строка доставляется только после
чтение последней строки из таблицы.
- DB2
Объяснение плана -------------------------------------------------- --------- ID | Операция | Ряды | Расходы 1 | ВОЗВРАТ | | 59835 2 | TBSCAN | 10 из 10 (100.00%) | 59835 3 | SORT (TOP-N) | 10 из 1009326 (0,00%) | 59835 4 | ПРОДАЖИ TBSCAN | 1009326 из 1009326 (100,00%) | 59739 Информация о предикатах
- Oracle
--------------------------------------- ----------- | Операция | Имя | Ряды | Стоимость | -------------------------------------------------- | ВЫБРАТЬ ЗАЯВЛЕНИЕ | | 10 | 59558 | | COUNT STOPKEY | | | | | ПРОСМОТР | | 1004K | 59558 | | ПОРЯДОК СОРТИРОВКИ ПО КЛЮЧУ | | 1004K | 59558 | | ДОСТУП К ТАБЛИЦЕ ПОЛНЫЙ | ПРОДАЖА | 1004K | 9246 | --------------------------------------------------
В этом плане выполнения нет конвейерного заказа на
и почти так же медленно, как прерывание выполнения из
сторона клиента.По-прежнему лучше использовать синтаксис top-N, потому что база данных
не требуется материализовать полный результат, а только десять самых последних
ряды. Это требует значительно меньше памяти. План выполнения Oracle
указывает эту оптимизацию с помощью модификатора STOPKEY
в SORT ORDER BY
операция.
Преимущества конвейерного запроса Top-N включают не только немедленное повышение производительности, но также улучшенная масштабируемость. Без использования конвейерного время отклика этого топ-N запроса растет вместе с таблицей размер.Однако время отклика при конвейерном выполнении только увеличивается. с количеством выбранных строк. Другими словами, время отклика конвейерный запрос top-N всегда один и тот же; это почти не зависит от размер стола. Только когда глубина B-дерева растет, запрос становится немного медленнее.
На рис. 7.1 показан
масштабируемость для обоих вариантов по растущему объему данных. Линейный
Отчетливо виден рост времени отклика для исполнения без конвейерного ордера на
.Время отклика
для конвейерного исполнения остается неизменным.
Рисунок 7.1 Масштабируемость запросов Top-N
Хотя время ответа конвейерного запроса Top-N не зависит от размера таблицы, он все равно растет с количеством выбранных строк. Таким образом, время отклика удваивается при выборе в два раза большего количества строк. Это особенно важно для запросов «подкачки», которые загружают дополнительные результаты, потому что эти запросы часто снова начинаются с первой записи; Oни прочитает строки, уже показанные на предыдущей странице, и отбросит их прежде чем, наконец, достичь результатов для второй страницы.Тем не менее, есть решение этой проблемы, и мы увидим в следующем раздел.
9 лучших книг по MySQL на 2021 год на основе отзывов реальных пользователей
Наши редакторы составили этот каталог лучших книг по MySQL на основе отзывов пользователей Amazon, их рейтингов и их способности повысить ценность для бизнеса.
В Интернете доступно множество бесплатных ресурсов (например, Solutions Review Data Management Software Buyer’s Guide , Vendor Comparison Map и раздел передовых практик ), и они хороши, но иногда лучше делать вещи по старинке.Есть несколько ресурсов, которые могут сравниться с подробными и исчерпывающими подробностями одной из лучших книг по MySQL.
Редакторы Solutions Review проделали большую часть работы за вас, создав этот каталог лучших книг по MySQL на Amazon. Заголовки были выбраны на основе общего количества и качества отзывов читателей, а также их способности повысить ценность для бизнеса. Каждая из книг, перечисленных в этом сборнике, соответствует минимальным критериям в 50 обзоров и имеет рейтинг 4 звезды или выше.
Ниже вы найдете краткий список названий признанных отраслевых аналитиков, опытных практиков и экспертов в предметной области, охватывающих всю глубину программирования баз данных до понимания различных вариантов, когда дело доходит до оценки продуктов баз данных MySQL.В этот сборник включены публикации для практиков любого уровня подготовки.
Лучшие книги по MySQL SQL: выучите SQL (используя MySQL) за один день и выучите его хорошо НАШЕ ВЗЯТИЕ: Имея более 600 оценок и 4,5 звезды, это одна из самых популярных книг по MySQL на рынке. В этом заголовке кратко изложены основы SQL и кратко изложены концепции.«Лучший способ изучить SQL — это делать.В этой книге представлены примеры всех представленных концепций, чтобы вы могли самостоятельно опробовать различные команды SQL. Кроме того, в конце книги вам будет предложен полный проект, требующий применения всех концепций, изложенных ранее. Работа над проектом не только даст вам огромное чувство успеха, но также поможет вам сохранить знания и овладеть языком. Готовы начать свое путешествие по изучению SQL? Эта книга для тебя.»
ПЕРЕЙТИ К БРОНИРОВАНИЮ Изучение PHP, MySQL и JavaScript: с помощью jQuery, CSS и HTML5 НАШЕ ПРИНЯТИЕ: В этой книге показано, как работают вместе PHP, MySQL, JavaScript, CSS, HTML5 и jQuery.Он также определяет ценные методы веб-программирования, например, как оптимизировать веб-сайты для мобильных устройств.«Создавайте интерактивные веб-сайты, управляемые данными, используя мощное сочетание технологий с открытым исходным кодом и веб-стандартов, даже если у вас есть только базовые знания HTML. В этом обновлении этого популярного практического руководства вы познакомитесь с динамическим веб-программированием с помощью последних версий основных современных технологий: PHP, MySQL, JavaScript, CSS, HTML5 и ключевых библиотек jQuery. В конце книги вы соберете все вместе, чтобы создать полнофункциональную социальную сеть, подходящую как для настольных, так и для мобильных браузеров.”
ПЕРЕЙТИ К БРОНИРОВАНИЮ MySQL Murach НАШ ВЗЯТ: Автор Джоэл Мурах пишет и редактирует книги по компьютерному программированию более 20 лет. В этом заголовке показано, как использовать преимущества новых функций MySQL, таких как оконные функции, CTE и роли для обеспечения безопасности базы данных.«Это последнее издание книги, которую разработчики приложений во всем мире использовали для освоения MySQL… теперь обновлено для MySQL 8 и последующих версий. Как и следовало ожидать, в этой книге показано, как кодировать все основные операторы SQL для работы с базой данных MySQL.Вы будете использовать эти операторы каждый день, чтобы MySQL выполнял за вас больше работы. Но помимо этого, он показывает, как работать с классическими функциями MySQL, которые выводят вас на новый уровень, такими как сводные запросы, подзапросы, функции, представления, транзакции, хранимые процедуры, триггеры и безопасность ».
ПЕРЕЙТИ К БРОНИРОВАНИЮ Веб-разработка PHP и MySQL НАШЕ ПРИНЯТИЕ: Это обновленное пятое издание было расширено, чтобы охватить разработки в PHP до версий 5, 6 и 7, а также функции, представленные в последних стабильных выпусках MySQL.«Веб-разработка PHP и MySQL показывает, как использовать эти инструменты вместе для создания эффективных интерактивных веб-приложений. Он четко описывает основы языка PHP, объясняет, как настроить и работать с базой данных MySQL, а затем показывает, как использовать PHP для взаимодействия с базой данных и сервером. Эта практическая книга постоянно фокусируется на реальных приложениях, даже во вводных главах. Авторы освещают важные аспекты безопасности и аутентификации, связанные с созданием реального веб-сайта, и показывают, как реализовать эти аспекты в PHP и MySQL.”
ПЕРЕЙТИ К БРОНИРОВАНИЮ Высокопроизводительный MySQL: оптимизация, резервное копирование и репликация НАШЕ ПРИНЯТИЕ: Эта книга научит вас продвинутым методам для всего, от разработки схем, индексов и запросов до настройки вашего сервера MySQL, операционной системы и аппаратного обеспечения в максимальной степени.«С помощью высокопроизводительного MySQL вы изучите передовые методы для всего, от разработки схем, индексов и запросов до настройки вашего сервера MySQL, операционной системы и оборудования в полной мере.Это руководство также научит вас безопасным и практичным способам масштабирования приложений с помощью репликации, балансировки нагрузки, высокой доступности и аварийного переключения. Это третье издание, обновленное с учетом последних достижений в производительности, функциях и инструментах MySQL и InnoDB, не только предлагает конкретные примеры того, как работает MySQL, но и объясняет , почему эта система работает именно так, , с иллюстративными историями и тематическими исследованиями, которые продемонстрировать принципы MySQL в действии ».
ПЕРЕЙТИ К БРОНИРОВАНИЮ Ускоренный курс MySQL НАШЕ ПРИНЯТИЕ: Эта книга, написанная старшим техническим евангелистом Macromedia, научит вас всему, что вам нужно знать, чтобы быстро работать с MySQL.Он также включает 30 узкоспециализированных практических уроков.«MySQL — одна из самых популярных доступных систем управления базами данных, на которой работает все, от мощных систем Интернета до отдельных корпоративных баз данных и простых приложений для конечных пользователей, и всего, что между ними. И эта книга научит вас всему, что вам нужно знать, чтобы сразу начать продуктивно работать с MySQL. Проработав 30 целенаправленных практических уроков, ваш ускоренный курс MySQL станет проще и эффективнее, чем вы думали.Вы также узнаете, как извлекать и сортировать данные, фильтровать данные с помощью сравнений, выражений, поиска и т. Д., А также объединять реляционные данные ».
ПЕРЕЙТИ К БРОНИРОВАНИЮ PHP и MySQL для чайников НАШЕ ПРИНЯТИЕ: Эта книга, входящая в популярную серию «Для чайников», показывает вам, как создать каталог продукции и сайт только для членов, требующий имени пользователя и пароля. Он также научит вас основам дизайна для будущих энтузиастов.«Вот что нужно знать веб-дизайнерам для создания динамических веб-сайтов на основе баз данных.Чтобы быть на переднем крае, веб-сайты должны поддерживать HTML, CSS и продукты, соответствующие потребностям разных клиентов, использующих разные браузеры. Эффективный сайт электронной коммерции собирает информацию о пользователях и предоставляет информацию, необходимую им для получения желаемого результата. Язык сценариев PHP с серверной базой данных MySQL предлагает эффективный способ создания сайтов, отвечающих этим требованиям. Это полностью обновленное 4-е издание PHP и MySQL для чайников быстро ускоряет работу, даже если ваш опыт ограничен.”
ПЕРЕЙТИ К БРОНИРОВАНИЮ Изучение MySQL: разберитесь со своими данными НАШЕ ПРИНЯТИЕ: Эта книга полезна, если вы никогда не касались базы данных или завершили несколько проектов MySQL. Ключевые темы включают базовые и расширенные запросы, управление пользователями и безопасность, резервное копирование и восстановление, настройку и разработку приложений.«MySQL, самая популярная база данных с открытым исходным кодом, предлагает мощь реляционной базы данных в пакете, который легко настраивать и администрировать, а Learning MySQL предоставляет все инструменты, необходимые для начала работы.Это плотно упакованное руководство включает подробные инструкции, которые помогут вам настроить и спроектировать эффективную базу данных, создать мощные запросы с использованием SQL, настроить MySQL для повышения безопасности и выжать информацию из ваших данных. После изучения основ книга глубоко погружается в тонкости MySQL, включая сложные запросы и соединения, способы взаимодействия с базой данных через Интернет с помощью PHP или Perl, а также важные хозяйственные операции, такие как резервное копирование и безопасность ».
ПЕРЕЙТИ К БРОНИРОВАНИЮ MySQL (библиотека разработчика) НАШЕ ПРИНЯТИЕ: Автор Поль Дюбуа (Paul DuBois) — писатель, администратор базы данных и лидер сообществ open source и MySQL.Это исчерпывающее руководство по использованию, программированию и администрированию MySQL 5.5 и MySQL 5.6.«Пятое издание этого бестселлера было тщательно пересмотрено и обновлено, чтобы полностью охватить новейшие функции и возможности MySQL 5.5, а также добавить новый охват функций, представленных в MySQL 5.6. Автор Пол Дюбуа описывает все, от основ получения информации в базу данных и формулирования запросов до использования MySQL с PHP или Perl для создания динамических веб-страниц, до написания ваших собственных программ, которые обращаются к базам данных MySQL, и до администрирования серверов MySQL.Книга также включает исчерпывающий справочный раздел, в котором представлена подробная информация о структуре, языке, синтаксисе и API MySQL ».
ПЕРЕЙТИ К БРОНИРОВАНИЮSolutions Review участвует в партнерских программах. Мы можем получать небольшую комиссию с товаров, приобретенных на этом ресурсе.
Тим является редакционным директором Solutions Review и руководит освещением вопросов больших данных, бизнес-аналитики и анализа данных. Будучи самым влиятельным бизнес-журналистом в 2017 и 2018 годах и «Кто есть кто» в 2021 году в области управления данными и интеграции данных, Тим является признанным влиятельным лицом и идейным лидером в области корпоративного программного обеспечения для бизнеса.Обратитесь к нему через tking на solutionsreview dot com.
Последние сообщения Тимоти Кинга (все)Visual Studio Code для MySQL и разработки MariaDB
В этой статье я расскажу вам о настройке Visual Studio Code для MySQL и разработки MariaDB с использованием стороннего расширения VS Code и дам обзор основных функций.
VS Code был очень популярным редактором кода, потому что он поддерживает почти все популярные языки программирования.Для большинства языков программирования поддержка входит в комплект. Однако некоторые распространенные языки программирования не поддерживаются по умолчанию, но поддержку можно легко добавить, установив расширения из VS Code Marketplace.
Итак, давайте посмотрим, как мы можем настроить Visual Studio Code в соответствии с вашими потребностями в разработке и управлении MySQL и MariaDB, установив расширение из Marketplace, ApexSQL Database Power Tools для VS Code.
Введение
Это недавно опубликованное расширение VS Code, созданное для удовлетворения потребностей разработчиков командой, которая отвечает за предоставление бесплатных инструментов-убийц для SQL Server, позволяет пользователям подключаться к серверам MySQL и MariaDB в редакторе кода, позволяя им выполнять запросы и выполнять поиск объектов. , экспорт результатов запроса и многое другое.
Судя по общедоступной дорожной карте, расширение находится в агрессивном графике выпуска с множеством функций, которые скоро появятся. Имея это в виду, давайте запустим редактор кода, установим расширение и посмотрим, на что оно способно.
Подключение к экземплярам MySQL или MariaDB
Расширение можно установить либо из Marketplace, либо из встроенного диспетчера расширений внутри Visual Studio Code, либо с помощью установочного файла VSIX, доступного для загрузки на этой странице.Я собираюсь использовать встроенный менеджер расширений, но не стесняйтесь использовать любой из двух других методов.
Откройте представление расширений, щелкнув значок Extensions на панели действий в левой части редактора кода или перейдите к View | Расширения из главного меню:
Начните вводить имя расширения VS Code, и оно должно появиться в результатах поиска. На момент написания этой статьи официальная версия продукта — 2020.3.19. Чтобы установить расширение, нажмите кнопку Install , показанную ниже:
После завершения установки вы увидите еще один значок на панели активности . При нажатии на значок откроется обозреватель сервера ApexSQL , который используется для подключения к экземплярам MySQL или MariaDB с использованием TCP / IP, локального сокета или канала:
Я уже добавил несколько экземпляров, как видно выше, но давайте добавим еще один, нажав на знак плюса (+) в правом верхнем углу проводника подключений.Это действие откроет вкладку Connect to server , в которой я введу необходимую информацию для подключения к серверу MySQL с использованием TCP / IP через SSH-соединение:
После того, как все настроено, просто нажмите Connect , и, если параметры подключения верны, вы увидите сообщение в правом нижнем углу Visual Studio Code с сообщением «Подключение выполнено успешно». Вкладка Connect to server закрывается, и фокус переходит на ApexSQL server explorer , в котором вы найдете недавно добавленный экземпляр MySQL Server:
Выполнение запросов и создание операторов
Как мы увидели, как добавлять серверы, давайте перейдем к следующему шагу и посмотрим, что мы можем сделать с этого момента.Обозреватель подключений предоставляет пользовательский интерфейс для просмотра и управления объектами в каждом экземпляре серверов MySQL и MariaDB непосредственно из Visual Studio Code.
Например, мы можем удалить базу данных sakila , щелкнув ее правой кнопкой мыши и выбрав опцию Show DROP script . Это откроет новый редактор запросов и поместит синтаксис оператора DROP DATABASE :
Чтобы завершить операцию, нажмите кнопку Execute (также доступную из контекстного меню, вызываемого правой кнопкой мыши) в верхнем левом углу редактора запросов.Мы просто удалили все таблицы в базе данных sakila и саму базу данных навсегда. Но не волнуйтесь — это всего лишь образец базы данных, и мы можем воссоздать ее в любое время. Посмотрим, как это сделать.
Вернувшись в обозреватель сервера ApexSQL , щелкните правой кнопкой мыши наш экземпляр и выберите Новый запрос :
Во вновь открывшемся редакторе запросов я просто вставлю сценарий SQL для создания образца базы данных и нажму кнопку Execute , чтобы воссоздать базу данных:
Если подключение удаленное, подождите несколько секунд.Когда дело касается удаленных мест, всегда бывает небольшая задержка. Это также зависит от сложности скрипта, который вы запускаете, количества пакетов и т. Д.
Запущу еще один длинный скрипт, чтобы заполнить таблицы образцами данных:
Вы всегда можете проверить свое соединение и статус запроса в нижней строке состояния:
После успешного выполнения сценария перейдите в проводник подключений, щелкните правой кнопкой мыши Базы данных и выберите Обновить , чтобы получить последние изменения, и вы увидите, что объекты созданы заново:
Теперь, когда у нас есть некоторые фактические данные в образце базы данных, давайте посмотрим, как результаты запросов можно просматривать в Visual Studio Code непосредственно в сетке, похожей на электронную таблицу.
Для извлечения данных из таблицы, конечно же, требуется выполнение оператора SELECT. Итак, откройте новый запрос, вставьте код снизу и выполните его:
SELECT * FROM субъект WHERE UPPER (last_name) LIKE ‘% LI%’ ORDER BY last_name, first_name; |
Результаты запроса отображаются прямо под редактором SQL:
Помимо выполнения запросов, расширение VS Code также позволяет пользователям создавать сценарии DDL и DML с помощью встроенного редактора SQL.
Чтобы сгенерировать сценарии DDL и DML, щелкните правой кнопкой мыши поддерживаемый объект в проводнике соединений и выберите соответствующий вариант. Щелчок по любой из этих опций автоматически откроет новый редактор запросов и сгенерирует скрипт, готовый к выполнению:
Сохранение результатов запроса
Результаты запроса можно экспортировать и сохранить в форматах файлов Excel, CSV, JSON и HTML. Это можно сделать всего за несколько кликов.
Когда вы будете удовлетворены набором результатов, используйте значки экспорта в правом верхнем углу результатов запроса, чтобы экспортировать данные:
Я экспортировал набор результатов сверху в Excel, и вот как он выглядит при открытии:
Экспорт результатов в другие форматы файлов поддержки работает примерно так же.
Поиск объектов в базах данных
Следующей удобной функцией базы данных является возможность поиска объектов (например, поиск в Интернете), особенно в базах данных с тысячами объектов. Поиск объектов в определениях объектов базы данных никогда не был таким простым с помощью этого расширения VS Code.
Для поиска объектов в базах данных MySQL и MariaDB щелкните правой кнопкой мыши экземпляр или базу данных в проводнике соединений и выберите опцию Поиск объекта :
На недавно открытой вкладке Поиск объекта введите ключевое слово в поле Поисковая фраза и нажмите кнопку Найти , чтобы начать поиск.Убедитесь, что выбран целевой сервер, а также база данных:
Область поиска можно настроить, выбрав типы объектов, которые должны быть включены в поиск справа. Вы можете поиграть с ними, чтобы сузить поиск и быстрее находить объекты. Кроме того, вы можете перейти к любому найденному объекту в проводнике соединений, щелкнув синюю гиперссылку под столбцом Имя .
Что будет дальше с расширением VS Code
Я особенно с нетерпением жду возможности форматирования в этом расширении VS Code, запланированной для версии R4 2020 года.Это позволит пользователям форматировать сценарии MySQL и MariaDB, используя предопределенный профиль. ApexSQL хорошо известен своим инструментом форматирования SQL для SQL Server.
Глядя на дорожную карту, каждая новая версия расширения VS Code будет приносить что-то полезное. Приятно видеть, что они медленно расширяют фронт MySQL, добавляя в этот продукт функции из популярных инструментов MS SQL.
Это означает, что также приближается поиск данных, который позволит пользователям быстро находить данные в базах данных MySQL и MariaDB.Однако меня больше привлекает список визуальных подсказок, который можно просматривать при наборе текста AKA IntelliSense. Это ускорит кодирование за счет вставки ключевых слов, баз данных, схем, объектов, параметров, имен переменных и т. Д. Итак, следите за обновлениями, а для получения дополнительной информации посетите страницу продукта ApexSQL Database Power Tools для расширения VS Code.
Заключение
Для разработчиков баз данных, которые предпочитают работать в Visual Studio Code, очень необходимо расширение, которое добавляет поддержку баз данных для MySQL и MariaDB.ApexSQL Database Power Tools для VS Code позволяет пользователям выполнять простую настройку соединения, писать операторы и выполнять запросы, искать объекты базы данных и многое другое. Другими словами, он предоставляет обширные инструменты разработки и управления базами данных в Visual Studio Code.
Я надеюсь, что эта статья была для вас информативной, и благодарю вас за то, что вы ее прочитали.
Боян, он же «Бокси», выпускник AP в области ИТ-технологий, специализирующийся на сетях и электронных технологиях Копенгагенской школы дизайна и технологий, является аналитиком программного обеспечения с опытом в области обеспечения качества, поддержки программного обеспечения, пропаганды продуктов и взаимодействия с пользователями.Он много писал о SQL Shack и ApexSQL Solution Center по самым разным темам, от клиентских технологий, таких как разрешение 4K и тематика, обработки ошибок до стратегий индексации и мониторинга производительности.
Боян работает в ApexSQL в Нише, Сербия, как неотъемлемая часть команды, занимающейся проектированием, разработкой и тестированием следующего поколения инструментов баз данных, включая MySQL и SQL Server, а также автономных инструментов и интеграции с Visual Studio, SSMS. и VSCode.
Подробнее о Бояне на LinkedIn
Просмотреть все сообщения Бояна Петровича
Последние сообщения Бояна Петровича (посмотреть все) .