#9 CS50 на русском 2016 — язык SQL

Приветствую Вас, дорогие друзья!
Неделя 9 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. Неделя 9 посвящается знакомству с языком структурированных запросов SQL. На Неделе 9 мы рассмотрим простой и удобный способ хранения, получения, обновления, удаления данных, используя язык SQL. Мы создадим нашу первую таблицу в базе данных в программе SQLite и продолжим изучать язык Python, который рассмотрели на предыдущей неделе.

00:00:00 — Обзор Недели 8
00:05:40 — froshims0
00:09:31 — froshims1
00:12:20 — SQL
00:19:13 — phpLiteAdmin
00:27:07 — Язык SQL и его команды
00:38:38 — Типы данных в SQL
00:43:27 — Объединение таблиц
01:03:12 — sqlite
01:06:51 — froshims2
01:32:03 — Объектно-реляционное отображение
01:39:14 — Внедрение SQL-кода

Словарь Недели 9

  1. Create — создать
  2. Insert — вставить
  3. Select — выбрать
  4. Update — обновить
  5. Delete — удалить
  6. Name — имя
  7. Dorm — общежитие
  8. Primary key — первичный ключ
  9. Autoincrement — автоматическое увеличение
  10. Default — по умолчанию
  11. Value — значение
  12. Browse — обзор
  13. Structure — структура
  14. From — из
  15. Join — соединить
  16. Where — где
  17. Users — пользователи
  18. Zipcode — почтовый код
  19. State — штат
  20. Country — страна
  21. City — город
  22. Register — регистрация

Регистрация пользователей

В сети Интернет содержится бесчисленное множество сайтов, которые предоставляют возможность регистрации пользователей. Среди таких сайтов в основном блоги, интернет-магазины, корпоративные сайты, форумы и т.д. Это дает возможность не только быстро осуществлять авторизацию реальных посетителей при посещении веб-ресурса, но и хранить всю необходимую информацию о клиентах, заказчиках, участниках и т.д. На прошлой неделе мы реализовали веб-форму для регистрации участников на занятия спортом и записывали данные о зарегистрированных участниках в CSV-файлы. Напомню, что это одни из простейших файлов, в которых данные разделены запятыми.

Вместе с этим у владельца или разработчика сайта возникает вопрос удобного хранения и быстрого доступа к данным о зарегистрированных пользователях. Ведь каждый раз, когда кто-то пытается авторизоваться, Вам следует проверять зарегистрирован этот пользователь или нет? Более того, Вам может понядобиться посмотреть, например, список всех зарегистрированных пользователей и отфильтровать список по дате регистрации. Это крайне неудобно делать, используя CSV-файлы.

Поэтому сегодня мы рассмотрим язык SQL — язык структурированных запросов, который является удобным инструментом для управления данными.

Язык SQL и таблицы Excel

Существует множество программ, которые предоставляют возможность хранить данные в табличном виде. Наверное, многие сталкивались с ними, это Microsoft Excel, Google Spreadsheet, Apple Numbers и другие. Мы обычно используем первую строку для названия столбцов таблицы:

данные на листе Excel

В этом примере у нас есть структурированные данные с ключами или метаданные, которые описывают каждый столбец (названия столбцов). Мы можем думать об этих данных, как о списке строк. Но есть более удобные программы для хранения данных, которые легко интегрировать с другими программами.

Язык SQL используется для реляционных баз данных или баз данных, чьи данные связаны друг с другом в разных таблицах. Существует много различных программ, которые поддерживают язык SQL, например, MySQL, PostgreSQL. Обычно эти программы работают, как серверы — слушают запросы и отвечают на них. Но мы будет рассматривать язык SQL, используя программу SQLite, которая является довольно простой и не требует установки сервера.

язык SQL

Мы можем вставлять, обновлять, удалять данные, используя очень удобный интерфейс. Или же мы можем вручную прописывать необходимые запросы к базе данных для осуществления необходимых операций:

CREATE TABLE 'registrants' ('id' INTEGER PRIMARY KEY, 'name' TEXT, 'dorm' TEXT)

INSERT INTO 'registrants' (name, dorm) VALUES('David', 'Matthews')

SELECT * FROM 'registrants'

Создаем таблицу под названием registrants, в которой 3 поля: поле «id», поле «name», поле «dorm».

Вставляем в таблицу registrants в поле «name» David, в поле «dorm» — Matthews.

Выбираем все элементы таблицы registrants.

Используя вышеприведенные команды мы можем управлять данными в нашей базе не только используя веб-интерфейс или прописывая команды вручную, но и с помощью языка Python.

Избыточность и внедрение SQL-кода

Часто случается, что опеределенную информацию можно обобщить. Например, представим ситуацию, когда несколько сотен или тысяч человек регистрируется на Вашем сайте. Они указывают свой адрес, который содержит почтовый код и страну.

лист Excel

Такая ситуация приводт к избыточному хранению данных, а точнее к нерациональному использованию памяти. Получается, что Вы храните много одних и тех же данных из-за чего впустую тратите место своего жесткого диска. Это может привести к дополнительным расходам на приобретение памяти. Гораздо целесообразнее разделить эти данные на две таблицы:

данные на листе Excel

И связать первую таблицу со второй, используя идентификатор id.

Не стоит забывать о защите данных, так как язык SQL может быть использован злоумышленниками для получения информации из чужой базы данных или ее удаления. Во фреймворки, как правило, добавляются строки кода, позволяющие предотвратить различного рода атаки. Больше об этом и много другом в видео лекции Недели 9.

Приятного просмотра, дорогие друзья!

Поделиться:

Оцените запись:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (6 оценок, среднее: 5,00 из 5)
Загрузка...

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

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

*Комментарий - обязательное поле для ввода
* Имя - обязательное поле для ввода
* Email - обязательное поле для ввода