Что не является базовой командой sql ответ
Sysadminium
База знаний системного администратора
Базовые команды SQL
Разберём команды SQL, которые помогут вам создать базу данных, создать в ней таблицу. Во-вторых научимся работать с этой таблицей.
Создание базы данных
Чтобы создать базу данных используется команда CREATE DATABASE . Например:
Все остальные примеры будем выполнять в ней, поэтому сразу переключимся на эту базу:
Создание таблицы
Типы данных, которые можно применять, рассмотрю позже.
Наполнение таблицы строками
Строки вставляются в таблицу с помощью команды SQL INSERT INTO (перечисляем поля)
VALUES (перечисляем значения). При этом можно вставлять по одной строке или по несколько. Вставим три строки в нашу таблицу users:
Как видно из примера выше, мы вначале определяем порядок колонок (fio, company, phone, email), а затем в этом порядке вставляем значения.
При вставке строковых значений, строка всегда берётся в одинарные кавычки.
Просмотр таблицы
Можно вывести определённые колонки указав их вместо звездочки:
Можно вывести определённые строки с помощью WHERE :
В качестве условия можем указать, что значение в определённой колонке должно:
Можем комбинировать эти методы, например:
А ещё можем отсортировать таблицу по какой-нибудь строке:
Условий может быть несколько, например ФИО должно содержать Иван, а телефон должен заканчиваться на 94:
” – означает что значение должно содержать, а не равняться.
Также в примере выше я показал, что в условии можно использовать регулярные выражения.
Комбинировать условия можно с помощью AND и OR.
Изменение строк
Если не указать условие, то обновятся все строки:
Удаление строк
Если не указать блок WHERE, то удалятся все строки! Но очищать таблицу лучше другой командой.
Очистка таблицы
Очистка таблицы осуществляется с помощью команды TRUNCATE . Например:
Удаление таблицы
Для удаления используем команду DROP TABLE . Например:
Удаление базы данных
А чтобы удалить базу данных выполняем DROP DATABASE . Но предварительно нужно отключиться от удаляемой базы:
SQL запросы быстро. Часть 1
Введение
Язык SQL очень прочно влился в жизнь бизнес-аналитиков и требования к кандидатам благодаря простоте, удобству и распространенности. Из собственного опыта могу сказать, что наиболее часто SQL используется для формирования выгрузок, витрин (с последующим построением отчетов на основе этих витрин) и администрирования баз данных. И поскольку повседневная работа аналитика неизбежно связана с выгрузками данных и витринами, навык написания SQL запросов может стать фактором, из-за которого кандидат или получит преимущество, или будет отсеян. Печальная новость в том, что не каждый может рассчитывать получить его на студенческой скамье. Хорошая новость в том, что в изучении SQL нет ничего сложного, это быстро, а синтаксис запросов прост и понятен. Особенно это касается тех, кому уже доводилось сталкиваться с более сложными языками.
Обучение SQL запросам я разделил на три части. Эта часть посвящена базовому синтаксису, который используется в 80-90% случаев. Следующие две части будут посвящены подзапросам, Join’ам и специальным операторам. Цель гайдов: быстро и на практике отработать синтаксис SQL, чтобы добавить его к арсеналу навыков.
Практика
Введение в синтаксис будет рассмотрено на примере открытой базы данных, предназначенной специально для практики SQL. Чтобы твое обучение прошло максимально эффективно, открой ссылку ниже в новой вкладке и сразу запускай приведенные примеры, это позволит тебе лучше закрепить материал и самостоятельно поработать с синтаксисом.
Кликнуть здесь
После перехода по ссылке можно будет увидеть сам редактор запросов и вывод данных в центральной части экрана, список таблиц базы данных находится в правой части.
Структура sql-запросов
Общая структура запроса выглядит следующим образом:
Разберем структуру. Для удобства текущий изучаемый элемент в запроса выделяется CAPS’ом.
SELECT, FROM
SELECT, FROM — обязательные элементы запроса, которые определяют выбранные столбцы, их порядок и источник данных.
Выбрать все (обозначается как *) из таблицы Customers:
Выбрать столбцы CustomerID, CustomerName из таблицы Customers:
WHERE
WHERE — необязательный элемент запроса, который используется, когда нужно отфильтровать данные по нужному условию. Очень часто внутри элемента where используются IN / NOT IN для фильтрации столбца по нескольким значениям, AND / OR для фильтрации таблицы по нескольким столбцам.
Фильтрация по одному условию и одному значению:
Фильтрация по одному условию и нескольким значениям с применением IN (включение) или NOT IN (исключение):
Фильтрация по нескольким условиям с применением AND (выполняются все условия) или OR (выполняется хотя бы одно условие) и нескольким значениям:
GROUP BY
GROUP BY — необязательный элемент запроса, с помощью которого можно задать агрегацию по нужному столбцу (например, если нужно узнать какое количество клиентов живет в каждом из городов).
При использовании GROUP BY обязательно:
Группировка количества клиентов по стране и городу:
Группировка продаж по ID товара с разными агрегатными функциями: количество заказов с данным товаром и количество проданных штук товара:
Группировка продаж с фильтрацией исходной таблицы. В данном случае на выходе будет таблица с количеством клиентов по городам Германии:
Переименование столбца с агрегацией с помощью оператора AS. По умолчанию название столбца с агрегацией равно примененной агрегатной функции, что далее может быть не очень удобно для восприятия.
HAVING
HAVING — необязательный элемент запроса, который отвечает за фильтрацию на уровне сгруппированных данных (по сути, WHERE, но только на уровень выше).
Фильтрация агрегированной таблицы с количеством клиентов по городам, в данном случае оставляем в выгрузке только те города, в которых не менее 5 клиентов:
В случае с переименованным столбцом внутри HAVING можно указать как и саму агрегирующую конструкцию count(CustomerID), так и новое название столбца number_of_clients:
Пример запроса, содержащего WHERE и HAVING. В данном запросе сначала фильтруется исходная таблица по пользователям, рассчитывается количество клиентов по городам и остаются только те города, где количество клиентов не менее 5:
ORDER BY
ORDER BY — необязательный элемент запроса, который отвечает за сортировку таблицы.
Простой пример сортировки по одному столбцу. В данном запросе осуществляется сортировка по городу, который указал клиент:
Осуществлять сортировку можно и по нескольким столбцам, в этом случае сортировка происходит по порядку указанных столбцов:
По умолчанию сортировка происходит по возрастанию для чисел и в алфавитном порядке для текстовых значений. Если нужна обратная сортировка, то в конструкции ORDER BY после названия столбца надо добавить DESC:
Обратная сортировка по одному столбцу и сортировка по умолчанию по второму:
JOIN — необязательный элемент, используется для объединения таблиц по ключу, который присутствует в обеих таблицах. Перед ключом ставится оператор ON.
Запрос, в котором соединяем таблицы Order и Customer по ключу CustomerID, при этом перед названиям столбца ключа добавляется название таблицы через точку:
Нередко может возникать ситуация, когда надо промэппить одну таблицу значениями из другой. В зависимости от задачи, могут использоваться разные типы присоединений. INNER JOIN — пересечение, RIGHT/LEFT JOIN для мэппинга одной таблицы знаениями из другой,
Внутри всего запроса JOIN встраивается после элемента from до элемента where, пример запроса:
Другие типы JOIN’ов можно увидеть на замечательной картинке ниже:
В следующей части подробнее поговорим о типах JOIN’ов и вложенных запросах.
При возникновении вопросов/пожеланий, всегда прошу обращаться!
27 распространённых вопросов по SQL с собеседований и ответы на них
Авторизуйтесь
27 распространённых вопросов по SQL с собеседований и ответы на них
Вопросы по SQL на собеседованиях — обычное дело, и чтобы не завалиться, нужно хорошо понимать, как работать с базами данных. В этом списке представлены основные вопросы и задачи по SQL, которые часто встречаются на собеседованиях, а также ответы на них.
Теория
Что такое СУБД?
Допустим, есть большая база данных, которой пользуются многие сотрудники: кто-то ищет информацию, а кто-то изменяет или даже удаляет её. Чтобы правильно обрабатывать все эти запросы, нужно специальное программное обеспечение, и именно такое ПО получило название системы управления базами данных (СУБД).
Какие типы СУБД в соответствии с моделями данных вы знаете?
Этот вопрос по SQL предполагает не просто назвать, но и дать краткое описание каждому типу.
Что такое первичный ключ?
Первичный ключ или PRIMARY KEY предназначен для однозначной идентификации каждой записи в таблице и является строго уникальным ( UNIQUE ): две записи таблицы не могут иметь одинаковые значения первичного ключа. Нулевые значения ( NULL ) в PRIMARY KEY не допускаются. Если в качестве PRIMARY KEY используется несколько полей, их называют составным ключом.
Здесь в качестве первичного ключа используется поле id.
Когда используется PRIMARY KEY?
PRIMARY KEY — это первичный ключ, который используется в качестве основного ключа и может быть использован для связи с дочерней таблицей, содержащей внешний ключ.
А что такое внешний ключ?
Внешний ключ или FOREIGN KEY также является атрибутом ограничения и обеспечивает связь двух таблиц. По сути, это поле или несколько полей, которые ссылаются на PRIMARY KEY в родительской таблице.
Какие ещё ограничения вы знаете, как они работают и указываются?
SQL-ограничения (constraints) указываются при создании или изменении таблицы. Это правила для ограничения типа данных, которые могут храниться в таблице. Действие с данными не будет выполнено, если нарушаются установленные ограничения.
Для чего используется ключевое слово ORDER BY?
Для сортировки данных в порядке возрастания ( ASC ) или убывания ( DESC ).
Выбираются пользователи, которые будут отсортированы по имени в порядке убывания. Дополните ответ на этот вопрос по SQL тем, что без указания DESC данные были бы отсортированы по умолчанию — в порядке возрастания:
Назовите четыре основных типа соединения в SQL
А что такое Self JOIN?
Такой вопрос тоже может прозвучать на собеседовании по SQL. Это выражение используется для того, чтобы таблица объединилась сама с собой, словно это две разные таблицы. Чтобы такое реализовать, одна из таких «таблиц» временно переименовывается.
Например, следующий SQL-запрос объединяет клиентов из одного города:
Для чего нужен оператор UNION?
Он используется для объединения полученных данных из двух или более запросов, которые должны иметь одинаковое количество столбцов с одинаковыми типами данных и расположенных в том же порядке.
Как работают подстановочные знаки?
Какими бывают подстановочные знаки?
Данный запрос позволяет найти данные всех пользователей, имена которых содержат в себе «test».
А в этом случае имена искомых пользователей начинаются на «t», после содержат какой-либо символ и «est» в конце.
Что делают псевдонимы Aliases?
SQL-псевдонимы нужны для того, чтобы дать временное имя таблице или столбцу. Это нужно, когда в запросе есть таблицы или столбцы с неоднозначными именами. В этом случае для удобства в составлении запроса используются псевдонимы. SQL-псевдоним существует только на время запроса.
Для чего нужен оператор INSERT INTO SELECT?
Данный оператор копирует данные из одной таблицы и вставляет их в другую, при этом типы данных в обеих таблицах должны соответствовать.
Что такое нормализация и денормализация?
Соответственно, денормализация является обратным процессом, который вносит в нормализованную таблицу избыточные данные.
Подробнее о пяти нормальных формах и форме Бойса-Кодда можно узнать из данного видеокурса:
Объясните разницу между командами DELETE и TRUNCATE
Команда DELETE — это DML-операция, которая удаляет записи из таблицы, соответствующие заданному условию:
При этом создаются логи удаления, то есть операцию можно отменить.
А вот команда TRUNCATE — это DDL-операция, которая полностью пересоздаёт таблицу, и отменить такое удаление невозможно:
Чем VARCHAR отличается от NVARCHAR?
Главное отличие в том, что VARCHAR хранит значения в формате ASCII, где символ занимает один байт, а NVARCHAR хранит значения в формате Unicode, где символ «весит» 2 байта. Тип VARCHAR следует использовать, если вы уверены, что в значениях не будет Unicode-символов. Например, VARCHAR можно применить к адресам электронной почты, состоящих из ASCII-символов.
Практика
Как выбрать записи с нечётными Id?
Один из самых распространённых вопросов на собеседовании. SQL запрос для выбора записей с нечётными id должен выглядеть следующим образом:
Если остаток от деления id на 2 равен нулю, перед нами чётное значение, и наоборот.
Как найти дубли в поле email?
При выборке из таблицы прибавьте к дате 1 день
Функция DATE_ADD() прибавляет к дате заданный промежуток времени. Синтаксис выглядит следующим образом:
Выберите только уникальные имена
SELECT DISTINCT возвращает разные значения, даже если в выбранном столбце есть дубли.
Найдите в таблице среднюю зарплату работников
Функция AVG() применяется только к числовым типам данных и возвращает среднее значение по столбцу.
Основные команды SQL. Шпаргалка.
Язык SQL или Structured Query Language (язык структурированных запросов) предназначен для управления данными в системе баз данных. В этой статье будет рассказано о часто используемых командах SQL. Идеально подойдёт для тех, кто хочет освежить свои знания об SQL.
Для примеров мы будем использовать OC Debian, MariaDB и консоль. Поехали…
Настройка базы данных для примеров.
Если у вас не стоит база данных, ставим ее.
Подключаемся к серверу :
Создаем новую базу данных testdb :
Показать доступные базы данных :
Выбрать базу данных testdb для использования :
Удаление базы данных :
Работа с таблицами.
Создадим таблицу со столбцами id, user, pass, data. Причем id будет автоматически увеличивать свое значение :
Просмотр таблиц в базе :
Просмотра сведений о таблице :
Добавление данных в таблицу :
Если заполняем все столбцы, можно просто перечислить значения :
Обновление данных в таблице. Скажем заменим поля user и pass для id 1 :
WHERE это условие при котором будет произведена замена.
Удаление всех данных из таблице :
Создание запросов.
SELECT
Или получим всю таблицу :
SELECT DISTINCT
В столбцах таблицы могут содержаться повторяющиеся данные. Используйте SELECT DISTINCT для получения только неповторяющихся данных.
WHERE
В запросе мы можем использовать всяко разные условия. Выведем например все данные где user = ‘test’ :
ORDER BY
ORDER BY используется для сортировки результатов запроса по убыванию или возрастанию. ORDER BY отсортирует по возрастанию, если не будет указан способ сортировки ASC или DESC.
BETWEEN
С помощью BETWEEN мы можем выбрать определенный промежуток. Могут использованы числовые и текстовые значения, а также даты. Например с 2 по 4 запись :
Оператор LIKE используется в WHERE, чтобы задать шаблон поиска похожего значения.
С помощью оператора IN можно задать несколько значений в WHERE.
Агрегатные функции
Резервное копирование базы и восстановление.
Утилита mysqldump позволяет получить дамп содержимого базы данных или совокупности баз для создания резервной копии. Давайте сразу сделаем копию базы :
Если нужно создать копию нескольких баз, то указываем их после параметра -B
А для того чтобы сделать дамп всех баз данных, необходимо использовать параметр —all-databases (или сокращенно -A), пример:
Восстановление дампа базы :
Или через mysql-console:
На этом мы закончим с базовыми командами SQL )))
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Учебник по PHP 4
![]() |
Команды SQLВ этом разделе мы изучим основные команды языка SQL. Для этого на компьютере с установленным MySQL необходимо запустить клиента mysql, в окне которого можно вводить команды SQL. Команды SQL не чувствительны к регистру, но традиционно они набираются прописными буквами. Типы полей базы данныхК числовым типам относятся целые числа и числа с плавающей точкой. Для чисел с плавающей точкой, кроме максимальной ширины отображения можно также указывать число значащих цифр после запятой, далее обозначаемое символом P. Таблица 13.6. Числовые типы Средние целые числа. Обычные целые числа. Числа с плавающей точкой одинарной точности. Числа с плавающей точкой двойной точности. Числа с плавающей точкой, приведенные к типу char. Типы даты и времени приведены в таблице 13.7. Таблица 13.7. Типы даты и времени Дата в формате ГГГГ-ММ-ДД. | ||||||||
Основные строковые типы приведены в таблице 13.8.
Таблица 13.8. Строковые типы
Строки с длиной len, которое не превышает 255 символов. Ключевое слово BINARY указывает на то, что данные должны обрабатываться независимо от регистра.
Синоним CHAR(len)за исключением того, что строки могут быть произвольной длины.
Строки с максимальной длиной символов равной 65535. Данные этого типа чувствительны к регистру.
CREATE DATABASE
Эта команда создает новую базу данных:
Каждый запрос MySQL завершается точкой с запятой.
При успешном выполнении команды MySQL выдаст строку, в которой сообщается, что этот запрос выполнен успешно и показано время, затраченное на выполнение запроса:
Далее в тексте строку MySQL с результатом выполнения команды мы будем приводить непосредственно в соответствующем листинге.
Как видим, среди различных баз данных на компьютере автора присутствует и только что созданная база данных forum:
Команда SHOW DATABASES является внутренней командой MySQL, отсутствующей в стандарте SQL и неподдерживаемой другими базами данных.
Для того чтобы начать работу с таблицами, необходимо сообщить MySQL с какой базой данных вы намерены работать. Это осуществляется при помощи команды USE:
CREATE TABLE
Команда CREATE TABLE создает новую таблицу в выбранной базе данных и которая в простейшем случае имеет следующий синтаксис:
Давайте теперь аналогичным образом создадим другие таблицы.
Следующей по порядку идет таблица forums, в которой содержатся данные о разделах форума.
Для удобства на форуме может быть создано несколько различных разделов. К примеру, на форуме по языкам программирования для того, чтобы не смешивать темы, относящиеся к различным языкам, имеет смысл создать следующие разделы: С++, PHP, Java и т. д.
В таблице forums присутствуют следующие поля: первичный ключ ( id_forum ), название раздела ( name ), правила форума ( rule ), краткое описание форума ( logo ), порядковый номер ( pos ), флаг, принимающий значение 1, если форум скрытый и 0, если общедоступный ( hide ).
Вот SQL-запрос, создающий таблицу forums
DESCRIBE
Команда DESCRIBE показывает структуру созданных таблиц и имеет следующий синтаксис:
Команда DESCRIBE не входит в стандарт SQL и является внутренней командой СУБД MySQL.
После выполнения этой команды, интерпретатор mysql выведет следующую таблицу
ALTER TABLE
Команда ALTER TABLE позволяет изменить структуру таблицы. Эта команда позволяет добавлять и удалять столбцы, создавать и уничтожать индексы, переименовывать столбцы и саму таблицу. Команда имеет следующий синтаксис:
Параметр alter_spec имеет значения, представленные в таблице
ADD create_definition [FIRST|AFTER column_name]
Добавление нового столбца create_definition. create_definition представляет собой название нового столбца и его тип. Конструкция FIRST добавляет новый столбец перед столбцом column_name. Конструкция AFTER добавляет новый столбец после столбца column_name. Если место добавления не указано, по умолчанию столбец добавляется в конец таблицы.
ADD INDEX [index_name] (index_col_name. )
Добавление индекса index_name для столбца index_col_name. Если имя индекса index_name не указывается, ему присваивается имя совпадающее с именем столбца index_col_name.
ADD PRIMARY KEY (index_col_name. )
Делает столбец index_col_name или группу столбцов первичным ключом таблицы.
CHANGE old_col_name new_col_name type
Изменение столбца с именем old_col_name на столбец с именем new_col_name и типом type.
Удаление столбца с именем col_name.
Удаление первичного ключа таблицы.
DROP INDEX index_name
Удаление индекса index_name.
Давайте переименуем созданный столбец test в текстовый столбец new_test
Как видно из рисунка, столбец успешно переименован:
При изменении только типа столбца, а не его имени, указание имени все-равно необходимо, хотя в этом случае оно будет фактически повторяться.
Результат выполнения этого запроса приведен на рисунке:
Теперь удалим столбец new_test :
Как видно из рисунка, после удаления этого столбца таблица forums приобрела исходную структуру:
DROP TABLE
Команда DROP TABLE предназначена для удаления одной или нескольких таблиц:
К примеру, для удаления таблицы forums нужно выполнить следующий SQL-запрос:
DROP DATABASE
Команда DROP DATABASE удаляет базу данных со всеми таблицами входящими в её состав:
Удалим, например, базу данных forum :
INSERT INTO…VALUES
Команда INSERT…VALUES вставляет новые записи в существующую таблицу. Синтаксис команды:
После оператора VALUES в скобках через запятую перечисляются значения соответствующих полей таблицы в соответствии с их типами.
Давайте вставим в базу данных authors несколько записей, в которых расположена информация об зарегистрированных посетителях форума:
DELETE
Команда DELETE удаляет из таблицы table_name записи, удовлетворяющие заданным в definition условиям, и возвращает число удаленных записей.
Вот как можно удалить все записи из таблицы authors :
Условия отбора могут быть значительно сложнее, так в листинге 13.16 удаляются все авторы с паролем ‘123’ и первичный ключ которых превышает 10:
Оператор AND является логическим «и». В запросах можно так же применять логическое или «или».
SELECT
Команда SELECT предназначена для извлечения строк данных из одной или нескольких таблиц и имеет в общем случае следующий синтаксис:
Для того чтобы посмотреть всю таблицу forums выполняется следующий запрос:
Выбираем все столбцы из таблицы forums без ограничений. Результат показан на рисунке:
Можно выбрать не все столбцы таблицы, а лишь часть, для этого необходимо явно задать список выбираемых столбцов:
В этом случае MySQL выведет лишь два столбца с первичным ключом id_forum и названием форума name
В результате этого запроса будет выведено только первые 3 записи из 5
Оператор LIMIT может также принимать два числовых аргумента, которые должны быть целыми числами. В этом случае последний аргумент задает максимальное количество возвращаемых строк, а первый сообщает MySQL начиная с какой по счёту строки производить отсчёт
В этом случае будут возвращены строки 2, 3 и 4
Результат показан на слудующем рисунке:
Порядок сортировки выводимых записей можно задавать при помощи оператора ORDER BY:
В этом запросе выводятся все записи со значением поля id_forum не меньше двух, которые при этом сортируются по значению поля pos. Результат такого запроса показан на рисунке:
UPDATE
В следующим листинге разделу форума с первичным ключом 2 устанавливается новое название (PHP) и устанавливается атрибут hide равным 1, делая форум невидимым.
С этой командой мы уже встречались ранее, когда выполняли запросы вида show databases и show tables для получения списка баз данных и таблиц в выбранной базе данных. Рассмотрим еще несколько вариантов использования этой команды.
Вывести список всех столбцов выбранной таблицы можно при помощи следующего запроса:
Результат приведен на следующем рисунке:
Можно также отобразить информацию обо всех индексах конкретной таблицы:
Выполнив команду SHOW PROCESSLIST можно увидеть список всех выполняющихся в системе запросов:
![]() | ||||
![]() | Предыдущая | Следующая | ![]() | |
![]() | ||||
Если Вам нужна частная профессиональная консультация от авторов многих книг Кузнецова М.В. и Симдянова И.В., добро пожаловать в наш Консультационный Центр SoftTime.






























