Большинство современных веб приложений взаимодействуют с базами данных, обычно, с помощью языка под названием SQL. К счастью для нас, этот язык очень легко выучить. В этой статье мы рассмотрим простые SQL запросы и научимся их использовать для взаимодействия с MySQL базой данных.
Что Вам потребуется?
SQL (Structured Query Language) язык специально разработанный для взаимодействия с системами управления баз данных, таких как MySQL, Oracle, Sqlite и прочие. Для выполнения SQL запросов в этой статье я советую Вам установить MySQL на локальный компьютер. Также я рекомендую использовать phpMyAdmin в качестве визуального интерфейса.
Все это имеется во всеми любимом Денвере. Думаю, каждый должен знать, что это и где это взять :). Можно еще использовать WAMP или MAMP.
В денвере есть встроенная MySQL консоль. Ей мы и будем пользоваться.
Автор урока пользуется WAMP ом и все скриншоты и примеры будут из этой программы и ее MySQL консоли.
CREATE DATABASE: создание базы данных
SQL для начинающих / Урок 1. Первые SQL запросы
Вот и наш первый запрос. Мы создадим нашу первую БД для дальнейшей работы.
Для начала, откройте MySQL консоль и залогиньтесь. Для WAMP пароль по умолчанию пустой. То есть ничего :). Для MAMP — «root». Для Денвера необходимо уточнить.
После логина введите следующую строку и нажмите Enter:
CREATE DATABASE my_first_db;
Заметьте, что точка с запятой (;) добавляется в конце запроса, так же как и в других языках.
Также команды в SQL чувствительны к регистру. Пишем их большими буквами.
Опци онально: Character Set и Collation
Если Вы хотите установить character set ( набор символов ) и collation ( сравнение ) можно написать следующую команду:
CREATE DATABASE my_first_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Тут находится список наборов символов, которые поддерживаются в MySQL.
SHOW DATABASES: выводит список всех БД
Эта команда используется для вывода всех имеющихся БД.
DROP DATABASE: удаление БД
Вы можете удалить существующую БД с помощью этого запроса.
Будьте осторожны с этой командой, так как она выполняется без предупреждения. Если в Вашей БД есть данные, они будут все удалены.
USE: Выбор БД
Технически это не запрос, а оператор и он не требует точки с запятой в конце.
Он сообщает MySQL выбрать БД для работы по умолчанию для текущей сессии. Теперь мы готовы создавать таблицы и делать прочие вещи с БД.
Что же такое таблица в БД?
Вы можете представить таблицу в БД в виде Excel файла.
Также как и на картинке, у таблиц есть названия колонок, ряды и информация. С помощью SQL запросов мы можем создавать такие таблицы. Мы также можем добавлять, считывать, вносить обновления и удалять информацию.
Уроки SQL для начинающих / #1 — Что такое SQL? Установка локального сервера
CREATE TABLE: Создание таблицы
C помощью этого запроса мы можем создавать таблицы в БД. К сожалению, документация MySQL не очень понятна для новичков по этому вопросу. Структура этого типа запросов может быть очень сложной, но мы начнем с легкой.
Следующий запрос создаст таблицу с 2-мя колонками.
CREATE TABLE users ( username VARCHAR(20), create_date DATE );
Обратите внимание, что мы можем писать наши запросы в несколько строк и с табуляциями для отступов.
Первая строка простая. Мы просто создаем таблицу с названием » users «. Далее в скобках, через запятую, идет список всех колонок. После каждого названия колонки у нас идут типы информации, такие как VARCHAR или DATE.
VARCHAR(20) означает, что колонка имеет тип строки и может быть максимум 20 символов в длину. DATE также тип информации, который используется для хранения дат в таком формате: » ГГГГ — ММ-ДД «.
Перед тем как мы выполним следующий запрос, мы также должны включить колонку для » user_id «, которая будет нашим первичным ключом. Вы можете воспринимать PRIMARY KEY как информацию, которая используется для идентифицирования каждого ряда таблицы.
CREATE TABLE users ( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20), create_date DATE );
INT делает 32 битный целый тип (например, числа). AUTO_INCREMENT автоматически генерирует новое значение ID каждый раз, когда мы добавляем новые ряды информации. Это не обязательно, но делает весь процесс проще.
Эта колонка не обязательна должна быть целым значением, но оно чаще всего используется. Наличие Первичного Ключа также не является обязательным, однако рекомендуется для архитектуры и производительности БД.
Давайте выполним запрос:
SHOW TABLES: показать все таблицы
Этот запрос позволяет получить список таблиц, которые находятся в БД.
EXPLAIN: Показать структуру таблиц
Для показа структуры существующей таблицы Вы можете пользоваться этим запросом.
Колонки отображаются со всеми свойствами.
DROP TABLE: удалить таблицу
ALTER TABLE: изменить таблицу
Этот запрос также может содержать сложную структуру из-за большего количестве изменений, который он может сделать с таблицей. Давайте посмотрим на примеры.
(если Вы удалили таблицу в прошлом шаге, создайте ее снова для тестов)
ALTER TABLE users ADD email VARCHAR(100) AFTER username;
Благодаря хорошей читабельности SQL, я думаю, что нет смысла ее подробно объяснять. Мы добавляем новую колонку » email » после » username «.
Это было также очень легко. Используйте этот запрос с осторожностью, так как можно удалить данные без предупреждения.
Восстановите только что удаленную колонку для дальнейших экспериментов.
ВНЕСЕНИЕ ИЗМЕНЕНИЯ В КОЛОНКУ
Иногда Вы можете захотеть внести изменения в свойства колонки, и Вам не надо ее полностью удалять для этого.
Этот запрос переименовал колонку пользователь в » user_name » и изменил ее тип с VARCHAR(20) на VARCHAR(30). Такое изменение не должны изменить данные в таблице.
INSERT: Добавление информации в таблицу
Давайте добавим некоторую информацию в таблицу используя следующий запрос.
Как Вы можете увидеть, VALUES () содержит список значений, разделенных запятыми. Все значения заключены в одинарные колонки. И значения должны быть в порядке колонок, которые были определены при создании таблицы.
Заметьте, что первое значение NULL для поля PRIMARY KEY под названием » user_id «. Мы делаем это для того, чтобы ID было сгенерировано автоматически, так как колонка имеет свойство AUTO_INCREMENT. Когда информация добавляется первый раз ID будет 1. Следующий ряд — 2, и так далее.
Есть еще один вариант запроса для добавления рядов.
В этот раз мы используем ключевое слово SET вместо VALUES, и у него нет скобок. Есть несколько нюансов:
— Колонку можно пропустить. К примеру, мы не присвоили значение для » user_id «, которое по умолчанию получит свое AUTO_INCREMENT значение. Если Вы пропустите колонку с типом VARCHAR, тогда будет добавлено пустая строка.
— К каждой колонке необходимо обращаться по имени. Из за этого их можно упоминать в любом порядке, в отличии от прошлого варианта.
АЛЬТЕРНАТИВНЫЙ ВАРИАНТ 2
Вот еще вариант.
Опять же, поскольку есть упоминания названия колонки, можно задавать значения в любом порядке.
LAST_INSERT_ID()
Вы можете использовать этот запрос для получения ID, которое было AUTO_INCREMENT для последнего ряда текущей сессии.
NOW()
Теперь настало время показать, как Вы можете использовать функцию MySQL в запросах.
Функция NOW() выводит текущую дату. Так что Вы можете использовать ее для автоматического установления даты колонки на текущую при вставке нового ряда.
Заметьте, что мы получили 1 предупреждение, но не обращайте на него внимания. Причина этому то, что NOW() также служит для вывода временной информации.
SELECT: Чтение данных из таблицы
Если мы добавляем информацию в таблицу значит логично было бы научиться ее оттуда считывать. Именно в этом нам и поможет запрос SELECT.
Ниже представлен самый простой возможный запрос SELECT для чтения таблицы.
В этом случае звездочка (*) означает то, что мы запросили все поля из таблицы. Если Вы хотите только определенные колонки, запрос будет выглядеть так.
Условие WHERE
Чаще всего мы заинтересованы не во всех колонках, а только в некоторых. К примеру, давайте предположим, что нам необходимы только электронный адрес для пользователя » nettuts «.
WHERE позволяет устанавливать условия в запросе и делать подробные выборки.
Заметьте, что для равенства использоваться один знак равно (=), а не два, как в программировании.
Вы можете также использовать сравнения.
AND или OR могут быть использованы для объединения условий:
Заметьте, что числовые значения не должны находиться в кавычках.
IN()
Это полезно для выборки по нескольким значениям
LIKE
Позволяет делать «wildcard» запросы
Значок % используется в качестве «wildcard». То есть на его месте может быть что-угодно.
Условие ORDER BY
Если Вы хотите получить результат в упорядоченном виде по какому либо критерию
Порядок по умолчанию ASC ( от меньшего к большему ). Для обратного используется DESC.
Вы можете ограничить количество полученных результатов.
LIMIT 2 берет только 2 первых результата. LIMIT 1 OFFSET 2 получает 1 результат после первых 2-х. LIMIT 2, 1 означает тоже самое (только обратите внимание сначала идет offset а потом limit ).
UPDATE: Внести изменения в информацию в таблице
Этот запрос используется для изменения информации в таблице.
В большинстве случаев он используется вместе с условием WHERE, так как Вы скорее всего захотите внести изменения в определенные колонки. Если не будет условия WHERE изменения затронут все ряды.
Вы также можете использовать LIMIT для ограничения количества рядов, в которые необходимо внести изменения.
DELETE: Удаление информации из таблицы
Также как и UPDATE, этот запрос используется с WHERE:
Для удаления содержания таблицы можно сделать просто так:
DELETE FROM users;
Но лучше использовать TRUNCATE
Кроме удаления этот запрос также сбрасывает значения AUTO_INCREMENT и при добавлении рядов снова, отсчет начнется с нуля. DELETE такого не делает и отсчет продолжается.
Отключение Строчных Значений и Специальных Слов
Некоторые символы необходимо отключать ( escape ), или же могут быть проблемы.
Для этого используется задний слеш ().
Поскольку в MySQL есть много специальных слов ( SELECT или UPDATE ), чтобы избежать ошибок при их использовании необходимо использовать кавычки. Но не обычные кавычки, а вот такие (`) .
То есть Вам необходимо будет добавить колонку с именем » delete «, это необходимо сделать так:
Заключение
Спасибо, что дочитали до конца. Надеюсь, Вам эта статья была полезна. Это еще не конец! Будет продолжение :).
SQL для начинающих
Добро пожаловать на курс по SQL для начинающих. Мы подготовили простые видео-уроки по базам данных и языку SQL, которые помогут вам освоить SQL с нуля и написать свои первые запросы к базам данных.
Уроки вы можете смотреть онлайн на сайте, а после регистрации сможете не только изучать теорию, но и решать задачи по SQL на специальном тренажере.
SQL уроки
Урок 1. Первые SQL запросы
В этом уроке вы узнаете, что такое язык SQL и познакомитесь с простейшими SELECT запросами, а также условием WHERE.
Урок 2. Составные условия
В этом уроке вы узнаете как формировать сложные условия в SQL-запросах с использованием операторов AND и OR.
Урок 3. Порядок AND и OR
Вы узнаете о приоритете AND и OR, а также с ошибками, которые возникают у новичков в SQL-запросах с несколькими условиями.
Урок 4. Сортировка результатов
В этом уроке вы научитесь сортировать итоговые результаты в возрастающем и убывающем порядке с помощью ORDER BY.
Урок 5. Ограничение выборки
В этом уроке вы научитесь ограничивать итоговые результаты с помощью конструкции LIMIT.
Урок 6. Принципы работы баз данных
В этом уроке вы узнате как работают реляционные базы данных, а также что такое СУБД и клиент-серверное взаимодействие.
Посмотреть
Урок 7. Установка MySQL в Windows
В этом уроке вы узнаете как устанавливать MySQL в Windows 10.
Посмотреть
+50 уроков, 250 заданий и помощь преподавателя
Смотрите видео-уроки по SQL, решайте задания на тренажере, изучайте базы данных.
Источник: shultais.education
Запросы SQL: руководство для начинающих
В этой статье мы рассмотрим некоторые базовые запросы SQL, с изучения которых стоит начинать новичкам в этом языке. Вы научитесь создавать базу данных и таблицы, вносить в них данные и делать выборки нужных сведений.
Аббревиатура SQL расшифровывается как «Structured Query Language» — язык структурированных запросов. С помощью этого языка вы можете работать с записями в базах данных.
SQL состоит из команд и декларативных ключевых слов, которые являются как бы инструкциями для базы данных.
При помощи команд SQL можно создавать и удалять таблицы в базах данных, добавлять в них данные или вносить изменения, искать и быстро находить нужные сведения.
В этой статье мы рассмотрим основные ключевые слова и операторы SQL и разберем, как с их помощью запрашивать конкретную информацию из базы данных.
Структура базы данных
Прежде чем мы начнем разбирать запросы, нужно, чтобы вы поняли иерархию базы данных.
База данных SQL — это набор взаимосвязанных сведений, хранящихся в таблицах. В каждой таблице есть столбцы, описывающие хранящиеся в них данные, и строки, в которых эти данные хранятся. Поле — это отдельный кусочек данных в строке. Чтобы найти нужные данные, мы должны написать, что именно мы хотим получить.
Возьмем для примера некую компанию, штат которой разбросан по всему миру. Допустим, у этой компании есть много баз данных. Чтобы увидеть их полный список, нужно набрать SHOW DATABASES;
Результат может выглядеть как-то так:
+———————+ | Databases | +———————+ | mysql | | information_schema | | employees | | test | | sys | +———————+
В каждой отдельной базе данных может быть много таблиц. Чтобы увидеть, какие таблицы есть в базе данных employees из нашего примера, нужно набрать SHOW TABLES in employees; . В таблицах могут содержаться данные по разным командам, что отражается в названиях: engineering, product, marketing, sales.
+———————-+ | Tables_in_employees | +———————-+ | engineering | | product | | marketing | | sales | +———————-+
Все таблицы состоят из различных столбцов, описывающих данные.
Чтобы просмотреть столбцы таблицы Engineering, используйте Describe Engineering; . Каждый столбец этой таблицы может описывать какой-то один атрибут сотрудника, например: employee_id , first_name , last_name , email , country и salary .
+————+——————-+—————+ | Name | Null | Type | +————+——————-+—————+ |EMPLOYEE_ID| NOT NULL | INT(6) | |FIRST_NAME | NOT NULL |VARCHAR2(20) | |LAST_NAME | NOT NULL |VARCHAR2(25) | |EMAIL | NOT NULL |VARCHAR2(255) | |COUNTRY | NOT NULL |VARCHAR2(30) | |SALARY | NOT NULL |DECIMAL(10,2) | +————+——————-+—————+
Таблицы также состоят из строк — отдельных записей. В нашем примере в строках будут указаны id, имена, фамилии, email, зарплата и страны проживания сотрудников. Каждая строка будет касаться одного сотрудника, допустим, из команды Engineering.
Базовые запросы SQL
Все операции, которые можно осуществлять с данными, входят в понятие «CRUD».
CRUD расшифровывается как Create, Read, Update и Delete (создать, прочесть, обновить, удалить). Это четыре основных операции, которые мы осуществляем, делая запросы к базе данных.