Тема "Язык SQL", Урок 1 "Понятие о базах данных. Запрос SELECT"

Теория (прочитать).

Что такое "база данных"?

Согласно Википедии, база данных (БД) - это совокупность материалов (рисунков, текстов, таблиц, и т.п.), которые систематизированы таким образом, чтобы могли быть обработаны с помощью компьютера.

Очевидно, что это - слишком общее понятие. Поэтому на практике используют отдельные виды баз данных. Мы рассмотрим вид "реляционные базы данных". (Непонятное слово: "реляция" - в переводе с латыни "отношение".)

Что такое "реляционная база данных"?

Реляционная база данных - это база данных, которая состоит из таблиц и отношений между ними. Что такое "отношение", вы узнаете позже. Что такое "таблица", сейчас стоит уточнить.

После работы с Word или Excel вы знаете, что таблицей называется любой набор клеток (ячеек), в которых есть данные (обычно текстовые или числовые). Обычно в такие таблицы записывают информацию про много объектов. Вот несколько простых примеров:

Пример 1 (Таблица "Работники")

№ человека Имя Зарплата, грн
1 Вася 4000
2 Петя 10000

Пример 2 (Снова таблица "Работники")

№ человека 1 2
Имя Вася Петя
Зарплата, грн 4000 10000

Пример 3 (Турнирная таблица)

Вася Петя Коля
Вася х 0 1
Петя 1 х 1/2
Коля 0 1/2 х

Внимание! Это важно!

В реляционной базе данных могут существовать только таблицы вида "один объект - одна строка", то есть заголовки должны быть только в столбцах, причём на каждый столбец - по одному заголовку.

Вопрос для размышления: Таблица из какого примера может существовать в реляционной БД?

Ещё некоторые понятия.

Запись - это строчка из таблицы, содержащая информацию про один объект.

Поле - это слово употребляется в двух значениях.
Первое значение: один столбец из таблицы. Например: "В таблице Работники есть поле Зарплата".
Второе значение: одна ячейка из записи. Например: "У записи Петя поле Зарплата равно 10000".

Запрос - команда к базе данных. Она может содержать просьбу что-то сделать (запрос на редактирование) или вывести какую-то информацию (запрос на выборку). Например, если вы начальник, приходите в отдел кадров и говорите "Какую у меня зарплату получает Сидоров?", то это вы делаете запрос на выборку. А если вы говорите "Уволить Сидорова", то это запрос на выполнение.

Работа с базами данных заключается в том, чтобы писать запросы. (на самом деле это не совсем так, но для упрощённого понимания пока что можете думать именно так).

Практическая часть работы

Подключение базе данных MySQL (читается "Май-Эс-Кью-Эль") с помощью веб-приложения "PHPMyAdmin" (читается "Пэ-ха-пэ-Май-Админ")

(Непонятное слово: "веб-приложение" - это программа, которая запускается в браузере и работает там же.)

Внимание! Это важно!

Следующие действия читателю стОит делать по пунктам:

  1. Открываем браузер и переходим по адресу mysql302.1gb.ua (У каждой базы данных - свой адрес);
  2. Вводим логин
    gbua_proba
    и пароль
    e45003fcui
    Жмём ОК;
    Что мы сейчас сделали? - Зашли на сервер базы данных (тот компьютер, на котором работает нужная нам база данных).
  3. На этом компьютере может быть несколько баз данных, поэтому мы должны выбрать нужную для нас. Выбираем базу данных "gbua_proba":
  4. Перейдите на вкладку "SQL":
  5. В поле "Выполнить SQL запросы" введите команду (вы пока не понимаете её сути, но ничего страшного. Со временем поймёте):
    	DROP TABLE IF EXISTS `urok_1`;
    	CREATE TABLE `urok_1`(
    		`id` INT NOT NULL AUTO_INCREMENT,
    		`name` VARCHAR(50),
    		`zarplata` int,
    		PRIMARY KEY(`id`)
    	);
    	
    	INSERT INTO `urok_1` VALUES (1,'Вася',4000);
    	INSERT INTO `urok_1` VALUES (2,'Петя',10000);
    	
    Нажмите кнопку "Пошел":
  6. Теперь стОит немного объяснить, что мы сделали. Наша цель была "создать таблицу `urok_1` с тремя полями: `id`, `name`, `zarplata`. Потом в эту созданную таблицу мы внесли записи: "Вася" с зарплатой 4000 и "Петя" с зарплатой 10000. Теперь нам нужно убедиться, что мы, во-первых, создали таблицу, а во-вторых, добавили в эту таблицу записи про Васю и Петю. В следующих пунктах мы убедимся в этом двумя способами.
  7. Способ 1: Выберите вкладку "Структура":

    Вы увидите список таблиц. Нажмите кнопку "обзор" напротив таблицы "urok_1":

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

  8. Способ 2: Выберите базу данных "gbua_proba" и перейдите на вкладку "SQL" (картинку не ставлю, т.к. выше мы уже это делали).
    Введите SQL-запрос:
    	SELECT `id`,`name`,`zarplata` FROM `urok_1`;
    	
    и нажмите "Пошел". Результат вы увидите ниже:

  9. Если вы дошли до этого момента, и всё получилось, и всё поняли - поздравляем: Вы осилили практическую часть! Теперь вы увидели, как работает база данных MySQL.

Интересный факт:

Если вам лениво писать список полей в запросе

	SELECT `id`,`name`,`zarplata` FROM `urok_1`;
	
то его можно и не писать. Вместо этого можно отдать такой запрос:
	SELECT * FROM `urok_1`;
	
Проверьте это.

Домашнее задание:

  1. Создайте текстовый файлик. Напишите в этом файлике номер таблицы (см. примеры в начале урока), которая подходит для использования в реляционной базе данных. Обьясните, почему не подходят две другие таблицы.
  2. SELECT - это запрос на выборку или запрос на выполнение? Почему? Ответ напишите в текстовом файлике
  3. Выполните запрос:
    	SELECT `id`,`name` FROM `urok_1`;
    	
    Опишите в текстовом файлике результат, который вы получили. Объясните, почему так вышло. Сделайте ещё два запроса и выполните их. Во втором запросе напишите название полей в неправильном порядке (например, `name` после `zarplata`). Запишите придуманные вами запросы в текстовый файлик. Опишите результаты этих запросов.
  4. Напишите в текстовом файлике хотя бы два преимущества MySQL над Excel и два недостатка.
  5. Прочитайте страницы 8--15 и 22--30 из книги Макса Грубера "Понимание SQL" (книгу ищите на странице со списком уроков). Запишите хотя бы три запроса SELECT для таблицы "urok_1" с использованием того, что вы прочитали в книге. Испытайте их действие, а после этого сохраните эти запросы в текстовом файлике.