Введение в SQL: Что такое SQL
?SQL (Structured Query Langue) - язык реляционной базы данных. Он позволяет:
- Базовое создание и таблицы.
- Добавление записей в виде строк.
- Вопрос базы.
- Обновление.
- Изменение структуры таблицы: добавление, удаление столбцов .
- Управление правами пользователей базы данных.
Наиболее известной версией в Сети является MySQL, бесплатная реализация, которая используется, в частности, с PHP, но SQL также является языком многих других программ баз данных, среди которых PostgreSQL, Oracle, DB2, Access и SQL Server.
Основными заказами являются:
- ПОДКЛЮЧЕНИЕ для подключения к базе данных.
- СОЗДАТЬ новую базу или таблицу.
- ВСТАВИТЬ для добавления данных.
- SELECT для запроса содержимого.
В SQL можно делать процедурные программы с итерациями и условиями.
Доступ к базе данных можно получить, выполнив команды, как в PHP, или с помощью визуального программного обеспечения, например phpMyAdmin, работающего на сервере или локально с XAMPP, а также со многими другими локальными серверными программами.
В этом учебнике будет использоваться MySQL с PHP, а также интерфейс phpMyAdmin.
Слово о SQL-инъекции
К сожалению, эта функция формирования предложений для выполнения запросов может помочь, если вы не берете на себя внедрение вредоносного кода, о чем вы должны быть предупреждены еще до написания первой строки кода.
Как работает инъекция? Это можно объяснить примером. Пользователь вводит текст в форму, и мы должны найти этот текст в базе с помощью команды SELECT, определение которой мы увидим в учебнике .
Предположим, пользователь вводит слово «оранжевый». Команда, построенная с данными формы, будет иметь такую форму.
SELECT * FROM stock WHERE fruit = orange
Эта строчка будет искать в запасе плодов то, что есть как оранжевый. Теперь предположим, что пользователь вводит следующий текст:
«оранжевый DROP stock».
Вот новый запрос :
SELECT * FROM stock WHERE fruit = orange; DROP stock
Обработчик, интерпретирующий команды на основе ключевых слов, которые находятся в запросе, найдет команду DROP и очистит стоковую таблицу. Это SQL-инъекция. Для предотвращения подобных атак данные всегда помещаются в простые кавычки:
SELECT * FROM stock WHERE fruit = '$data'
Кавычки означают, что данные интерпретируются как данные, а не как команды.
Универсальный язык
SQL-команды близки к естественному языку, это было целью языка, принципы которого были заложены Эдгаром Ф. Коддом, и взята IBM в SEQUEL (Structured English Query Language), позже переименованной в SQL. Однако первой коммерческой версией на базе SEQUEL стала Relational Software, ставшая со времен Oracle.
Стандарт ISO SQL-92 или SQL-2 был определен в 1992 году и широко используется.
Однако на смену ему пришли новые стандарты, обязательно реализованные на всех программных продуктах.
Стандарт ISO позволяет SQL:2006 управлять XML-файлами, включая импорт XML-данных в базу данных или экспорт их содержимого в XML.
Это в первую очередь те нормы, которые имеют значение. Независимо от используемого программного обеспечения, MySQL (или MariaDB), PostgreSQL или Oracle, или даже менеджеры говорят NoSQL как Кассандра, мы найдем тот же синтаксис, с незначительными различиями.