Синтаксис sql запросов

Мы научились создавать БД, добавлять в нее таблицу и заносить данные в эти таблицы, в таком виде вся информация будет надежно и в упорядоченном виде храниться на сервере, однако данные нужны для решения большого круга задач, и реализации множества функций. Для обращения к ресурсам хранящимся в БД существует специальный язык запросов — sql. Рассмотрим его базовый синтаксис.

Иногда приходится работать с БД через консоль, например при удаленном подключении через терминал. Давайте создадим таблицу подключившись через терминальный доступ к БД. Запускаем консоль:

Подключаемся к БД от имени созданного пользователя:

  • h — хост базы данных, если коннектимся к локальной базе (по ip 127.0.0.1), этот параметр можно опустить
  • u — имя пользователя
  • p — пароль, его нужно будет ввести после нажатия enter

Для того чтобы создать новую БД, выполните команду

CREATE DATABASE databasename;

Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:

show databases; 
use databases;

Запрос на добавление таблицы.

После того как выбрана БД, можно в нее что-то добавить например таблицу. Добавим таблицу books с тремя полями. Синтаксис:

CREATE TABLE books (id int, name_book varchar(80), autрor int);

Если после выполнения запроса вы увидите сообщение Query ok, значит запрос выполнился успешно. Что бы посмотреть список таблиц в БД и убедиться, что новая таблица действительно добавилась используем команду show tables;

Просмотреть структуру таблицы (имена и тип полей):

describe books;  

Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:

show processlist;

Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.

Ввод данных

Теперь давайте добавим пару записей в нашу табличку. Сделать это можно с помощью команды INSERT. Есть два разных метода использовать INSERT:

Первый не указывая названий колонок, в данном случае значения записываются в таблицу в том порядке, в котором они указаны в таблице.

INSERT INTO books VALUES (1,'Унесенные ветром',1);

Первый способ короче, однако если в будущем будут добавлены дополнительные колонки, все предыдущие запросы работать не будут. Второй способ:

INSERT INTO books (id,name_book,author) VALUES (2,'Война и мир',2);

Если не указать одну из колонок, на её место будет записано NULL или заданное значение по умолчанию.

Пример создания таблицы с ключевым полем:

CREATE TABLE Turist (Id INT NOT NULL PRIMARY KEY, SecondName varCHAR(60) NOT NULL, FirstName varCHAR(60) NOT NULL, SeriaPassport INT NOT NULL, NumberPassport INT NOT NULL);

Удаление данных из таблицы:

DELETE FROM имя_таблицы [WHERE условие_удаления]

DELETE FROM Products WHERE Manufacturer='Huawei';

Запросы на выборку.

Запросы на выборку, базовый синтаксис:

SELECT * FROM `имя таблицы`

Звездочкой обозначены все поля в таблице, можно указать какое именно поле следует использовать для выборки:

В phpmyadmin синтаксис выглядит несколько иначе, но основа та же. скрин на примере двух таблиц из прошлой работы:

В данном случае, будут выведены все записи столбца name_service таблицы `service`.

Сортировка — ORDER BY «название столбца». ORDER BY имеет два модификатора: ASC (по возрастанию) (по умолчанию) и DESC (по убыванию).

SELECT name_book, author FROM books ORDER BY name DESC;

Условия в SQL-запросах. Where

В запросы можно добавлять условия отбора, для этого используется WHERE, например — Из таблицы books выбрать все записи у которых поле author равно 1:

Условия с операторами И/или:

Операторы выбора In/Between/Like

  • IN — сравнивает значение в столбце с несколькими возможными значениями и возвращает true, если значение совпадает хотя бы с одним значением
  • BETWEEN — проверяет, находится ли значение в каком-то диапазоне
  • LIKE — ищет по шаблону

К примеру, мы можем сделать запрос для вывода названия книг:

SELECT * FROM books WHERE name_book IN ('Война и мир','Царь Солтан');

Вывести все книги с id автора , в диапазоне:

SELECT * FROM books WHERE author BETWEEN 2 AND 5;

Вывести все книги, в названии которых есть буква ‘А’:

SELECT * FROM books WHERE name_book LIKE '%А%';

Знак % означает любую последовательность символов (0 символов тоже считается за последовательность).

Вывести все альбомы, первая буква в названии которых — ‘У’:

SELECT * FROM books WHERE name_book LIKE 'У%';

Инверсия. Для примера, самостоятельно напишите NOT перед любым логическим выражением в условии (NOT BETWEEN и так далее).

Задание:

Внимание!!! Все успешные команды выполненные в консоли необходимо будет скопировать в блокнот и выслать на проверку преподавателю

  1. Подключиться к БД через консоль, от имени созданного вами пользователя
  2. Вывести список БД вашего сервера
  3. Выбрать созданную вами БД
  4. Вывести список таблиц.
  5. Создать таблицу в режиме консоли
  6. Вывести структуру созданной таблицы
  7. Заполнить таблицу в режим консоли, двумя способами
  8. Выполнить запросы на выборку исходя из темы вашей БД к разным таблицам, используйте простые запросы, запросы с условием, запросы с условием и операторами. Всего необходимо составить запросов типа SELECT — не менее 8-ми.

Задание на учебную практику:

Пользуясь консолью создать таблицы для БД «Издательство». Определить тип данных и первичный ключ для каждой таблицы.

Создать запросы на выборку:

  1. Вывести названия и тираж всех изданий конкретного автора
  2. Вывести все сведения об издании по названию
  3. Вывести все издания и их авторов у которых год издания от 2018 по 2021
  4. Вывести все издания тираж которых превышает 1000 экземпляров
  5. Вывести личные данные и адреса всех заказчиков фамилии которых начинаются с буквы «А»
  6. Вывести названия, адреса и телефоны всех издательств у которых было заказано издание трудов автора (ФИО автора на ваше усмотрение)
  7. Вывести названия типографий, ФИО заказчиков и ФИО авторов у которых видом продукции является «Учебник»
  8. Вывести адреса и ФИО всех заказчиков, чьи заказы выполнены и вывести автора и название заказанного издания.
  9. Вывести названия и авторов всех издания названия которых содержат в себе слово «пособие» и «учеб» (слово можно взять свое)
  10. Вывести всех авторов имена которых «Александр» и «Михаил»
  11. Вывести все издания заказанные более 2 раз и название издательства которых «ИНФРА» (название можно взять свое)
  12. Составить 3 своих запроса с несколькими условиями.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *