Как составлять SQL-запросы — подробные примеры
Любой из нас часто сталкивается и пользуется разными базами данных. Когда мы избираем адресок электрической почты, мы работаем с базой данных. Базы данных употребляют поисковые сервисы, банки для хранения данных о клиентах и т.д.
Но, невзирая на неизменное внедрение баз данных, даже для многих разработчиков программных систем остается много «белоснежных пятен» из-за различного толкования одних и тех же определений. Мы дадим короткое определение главных определений баз данных перед рассмотрением языка SQL. Итак.
База данных – файл либо набор файлов для хранения упорядоченных структур данных и их взаимосвязей. Очень нередко базой данных именуют систему управления базой данных (СУБД). База данных — это только хранилище инфы в определенном формате и может работать с разными СУБД.
Таблица – представим для себя папку, в какой хранятся документы, сгруппированные по определенному признаку, к примеру перечень заказов за последний месяц. Это и есть таблица в компьютерной базе данных. Отдельная таблица имеет свое уникальное имя.
Тип данных – вид инфы, разрешенной для хранения в отдельном столбце либо строке. Это могут быть числа либо текст определенного формата.
Столбец и строчка – все мы работали с электрическими таблицами, в каких также находятся строчки и столбцы. Неважно какая реляционная база данных работает с таблицами аналогичным образом. Строчки время от времени именуют записями.
Первичный ключ – любая строчка таблицы может иметь один либо несколько столбцов для ее уникальной идентификации. Без первичного ключа очень тяжело создавать обновление, изменение и удаление подходящих строк.
Что такое SQL?
Язык запросов SQL (англ. Structured Query Language — язык структурированных запросов) был разработан только для работы с базами данных и в реальный момент является эталоном для всех фаворитных СУБД. Синтаксис языка состоит из маленького количества операторов и прост в исследовании. Но, невзирая на внешнюю простоту, он позволяет создание sql запросов для сложных операций с БД хоть какого размера.
С 1992 г. существует принятый эталон, именуемый ANSI SQL. Он определяет базисный синтаксис и функции операторов и поддерживается всеми фаворитами рынка СУБД, такими как ORACLE Microsoft SQL Server. Разглядеть все способности языка в одной маленькой статье нереально, потому мы коротко разглядим только главные SQL запросы. Примеры наглядно демонстрируют простоту и способности языка:
- создание баз и таблиц;
- подборка данных;
- добавление записей;
- модификация и удаление инфы.
Типы данных SQL
Все столбцы в таблице базы данных хранят один тип данных. Типы данных в SQL такие же, как и в других языках программирования.
Тип данных | Описание |
INT | Целые числа |
REAL | Числа с плавающей запятой |
TEXT | Символьная строчка с переменной длиной |
DATE | sql запрос «дата» в разных форматах |
TIME | Время |
CHAR | Текстовые строчки фиксированной длины |
Создаем таблицы и базы данных
Создавать новые базы, таблицы и другие запросы в SQL можно 2-мя методами:
- Операторами SQL через консоль СУБД
- Используя интерактивные средства администрирования, входящие в состав сервера баз данных.
Создается новенькая база данных оператором CREATE DATABASE <наименование базы данных>;. Как лицезреем, синтаксис прост и лаконичен.
Таблицы снутри базы данных создаем оператором CREATE TABLE со последующими параметрами:
- наименование таблицы
- имена и типы данных столбцов
В качестве примера сделаем таблицу Commodity со последующими столбцами:
Столбец | Описание |
commodity_id | ID продукта |
vendor_id | ID поставщика (ключ наружной таблицы Vendors) |
commodity_name | Наименование продукта |
commodity_price | Цена |
commodity_desc | Описание |
Создаем таблицу:
CREATE TABLE Commodity
(commodity_id CHAR(15) NOT NULL,
vendor_id CHAR(15) NOT NULL,
commodity_name CHAR(254) NULL,
commodity_price DECIMAL(8,2) NULL,
commodity_desc VARCHAR(1000) NULL );
Таблица состоит из 5 столбцов. После наименования идет тип данных, столбцы делятся запятыми. Значение столбца может принимать пустые значения (NULL) либо должно быть непременно заполнено (NOT NULL), и это определяется при разработке таблицы.
Подборка данных из таблицы
Оператор подборки данных — самые нередко применяемые SQL запросы. Для получения инфы нужно указать, что мы желаем избрать из таковой таблицы. Сначала обычной пример:
SELECT commodity_name FROM Commodity
После оператора SELECT указываем имя столбца для получения инфы, а FROM определяет таблицу.
Результатом выполнения запроса будут все строчки таблицы со значениями Commodity_name в том порядке, в каком они были внесены в базу данных т.е. без всякой сортировки. Для упорядочивания результата употребляется дополнительный оператор ORDER BY.
Для запроса по нескольким полям перечисляем их через запятую, как в последующем примере:
SELECT commodity_id, commodity_name, commodity_price FROM Commodity
Есть возможность получить как итог запроса значение всех столбцов строчки. Для этого употребляется символ «*»:
SELECT * FROM Commodity
- Дополнительно SELECT поддерживает:
- Сортировку данных (оператор ORDER BY)
- Выбор согласно условиям (WHERE)
- Группировку срок (GROUP BY)
Добавляем строчку
Для прибавления строчки в таблицу употребляются SQL запросы с оператором INSERT. Добавление может выполняться 3-мя методами:
- добавляем новейшую целую строчку;
- часть строчки;
- результаты запроса.
Для прибавления полной строчки нужно указать имя таблицы и значения столбцов (полей) новейшей строчки. Приведем пример:
INSERT INTO Commodity VALUES(‘106 ‘, ’50’, ‘Coca-Cola’, ‘1.68’, ‘No Alcogol , )
Пример добавляет в таблицу новый продукт. Значения указываются после VALUES для каждого столбца. Если нет соответственного значения для столбца, то нужно указывать NULL. Столбцы заполняются значениями в порядке, обозначенном при разработке таблицы.
В случае прибавления только части строчки нужно очевидно указать наименования столбцов, как в примере:
INSERT INTO Commodity (commodity_id, vendor_id, commodity_name)
VALUES(‘106 ‘, ‘50’, ‘Coca-Cola’,)
Мы ввели только идентификаторы продукта, поставщика и его наименование, а другие поля отставили пустыми.
Добавление результатов запроса
В главном INSERT употребляется для прибавления строк, но может употребляться и для прибавления результатов оператора SELECT.
Изменение данных
Для конфигурации инфы в полях таблицы базы данных нужно использовать оператор UPDATE. Оператор может применяться 2-мя методами:
- Обновляются все строчки в таблице.
- Только для определенной строчки.
UPDATE состоит из 3-х главных частей:
- таблица, в какой нужно создавать конфигурации;
- имена полей и их новые значения;
- условия выбора строк для конфигурации.
Разглядим пример. Допустим, у продукта с ID=106 поменялась цена, потому эту строчку нужно обновить. Пишем последующий оператор:
UPDATE Commodity SET commodity_price = ‘3.2’ WHERE commodity_id = ‘106’
Мы указали имя таблицы, в нашем случае Commodity, где будет выполняться обновление, потом после SET — новое значение столбца и отыскали подходящую запись, указав в WHERE необходимое значение ID.
Для конфигурации нескольких столбцов после оператора SET указываются несколько пар столбец-значение, разбитых запятыми. Смотрим пример, в каком обновляется наименование и стоимость продукта:
UPDATE Commodity SET commodity_name=’Fanta’, commodity_price = ‘3.2’ WHERE commodity_id = ‘106’
Для удаления инфы в столбце можно присвоить ему значение NULL, если это позволяет структура таблицы. Нужно держать в голове, что NULL — это конкретно «никакое» значение, а не нуль в виде текста либо числа. Удалим описание продукта:
UPDATE Commodity SET commodity_desc = NULL WHERE commodity_id = ‘106’
Удаление строк
SQL запросы на удаление строк в таблице производятся оператором DELETE. Есть два варианта использования:
- в таблице удаляются определенные строчки;
- удаляются все строчки в таблице.
Пример удаления одной строчки из таблицы:
DELETE FROM Commodity WHERE commodity_id = ‘106’
После DELETE FROM указываем имя таблицы, в какой будут удаляться строчки. Оператор WHERE содержит условие, по которому будут выбираться строчки для удаления. В примере мы удаляем строчку продукта с ID=106. Указывать WHERE очень принципиально т.к. пропуск этого оператора приведт к удалению всех строк в таблице. Это относится и к изменению значения полей.
В операторе DELETE не указываются наименования столбцов и метасимволы. Он стопроцентно удаляет строчки, а удалить отдельный столбец он не может.
Внедрение SQL в Microsoft Access
Microsoft Access обычно употребляется в интерактивном режиме для сотворения таблиц, баз данных, для управления, конфигурации, анализа данных в базе данных и с целью ввести запросы SQL Access через удачный интерактивный конструктор запросов (Query Designer), используя который можно выстроить и немедля выполнить операторов SQL хоть какой трудности.
Также поддерживается режим доступа к серверу, при котором СУБД Access может употребляться как генератор SQL-запросов к хоть какому ODBC источнику данных. Эта возможность позволяет приложениям Access вести взаимодействие с базами данных хоть какого формата.
Расширения SQL
Так как SQL запросы не имеют всех способностей процедурных языков программирования, таких как циклы, ветвления и т.д., производители СУБД разрабатывают собственный вариант SQL с расширенными способностями. Сначала это поддержка хранимых процедур и стандартных операторов процедурных языков.
Более всераспространенные диалекты языка:
- Oracle Database — PL/SQL
- Interbase, Firebird – PSQL
- Microsoft SQL Server — Transact-SQL
- PostgreSQL — PL/pgSQL.
SQL в Веб
СУБД MySQL распространяется под свободной лицензией GNU General Public License. Имеется коммерческая лицензия с возможностью разработки заказных модулей. Как составная часть заходит в более пользующиеся популярностью сборки Интернет-серверов, таких как XAMPP, WAMP и LAMP, и является самой пользующейся популярностью СУБД для разработки приложений в сети Веб.
Была разработана компанией Sun Microsystems и в реальный момент поддерживается компанией Oracle. Поддерживаются базы данных размером до 64 терабайт, эталон синтаксиса SQL:2003, репликация баз данных и пасмурных сервисов.