sql

0.0(0)
studied byStudied by 1 person
full-widthCall with Kai
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/59

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

60 Terms

1
New cards

База данных

Это организованный набор данных, которые связаны между собой и могут быть использованы для обработки и хранения информации. Пример: список контактов на телефоне или таблица с заказами в интернет-магазине.

2
New cards

Данные

Это любая информация, которую можно сохранить в базе данных. Данные могут быть связаны с реальными объектами (например, людьми, вещами, местами). Пример: имя, адрес, дата рождения.

3
New cards

Модель баз данных

это способ, с помощью которого данные хранятся и связаны между собой. Существуют разные модели, и каждая по-своему организует данные. Самые известные из них — иерархическая, сетевая, реляционная и модель "ключ — значение”

4
New cards

Иерархическая модель

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

<p>В этой модели данные представляют собой древовидную структуру, где каждый элемент (запись) связан с одним родителем. Это похоже на структуру папок на компьютере: одна папка может содержать другие папки и файлы.</p>
5
New cards

Сетевая модель

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

<p>это модель, в которой данные организованы в виде <strong>графа</strong>. В отличие от иерархической модели, где каждая запись может иметь только одного родителя, в сетевой модели <strong>одна запись может быть связана с несколькими родительскими и дочерними записями</strong>, то есть реализуются <strong>многие-ко-многим</strong> отношения.</p>
6
New cards

Реляционная модель

Одна из самых популярных моделей. В ней данные хранятся в виде таблиц, которые могут быть связаны между собой. Каждая таблица содержит строки (записи) и столбцы (поля). Модель называется реляционной, потому что основана на понятии отношения из математики — по сути, таблицы представляют собой множества данных, связанных определёнными правилами. Такие базы данных используются повсеместно: в банках, магазинах, на сайтах и т.д.

7
New cards

Модель ключ — значение

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

8
New cards

Документная модель

Здесь данные хранятся в виде документов (например, в форматах JSON или XML). Каждый документ может содержать разные типы информации, и не нужно заранее задавать структуру (не требуется заранее определять, какие поля и типы данных будут у документов — в отличие от реляционных баз данных). Эта модель используется для гибкого хранения данных, например, в социальных сетях или интернет-магазинах (гибкость и отсутствие фиксированной структуры).

9
New cards

Пример применения баз данных

  • Бизнес: Хранение данных о клиентах и продажах.

  • Медицина: Хранение данных о пациентах, результатах анализов.

  • В банках: Хранение информации о клиентах, счетах и транзакциях.

10
New cards

Таблица в реляционной базе

Таблица — это основная структура хранения в реляционной базе. Она состоит из строк и столбцов:

  • Строки (или записи) содержат данные об отдельных объектах. Например, одна строка может описывать одного человека.

  • Столбцы (или поля) представляют характеристики этих объектов — например, имя, фамилия, дата рождения. Все значения в одном столбце имеют одинаковый тип: например, только числа или только текст.

11
New cards

Первичный ключ

Это поле (или несколько полей) таблицы, значения которого не повторяются. С помощью первичного ключа можно однозначно определить каждую запись. Например, в таблице людей это может быть уникальный идентификатор — ID.

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

12
New cards

Внешний ключ

Поле в таблице, которое содержит ссылки на значения первичного ключа в другой таблице. Благодаря этому возможно связать данные между таблицами. Например, таблица «Люди» может содержать поле «Код страны», которое ссылается на таблицу «Страны».

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

13
New cards

Схема данных

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

14
New cards

Нормализация данных

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

15
New cards

Избыточность данных

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

16
New cards

Аномалии

Это ошибки, которые возникают из-за плохой структуры таблицы:

Типы аномалий:

  1. Аномалия вставки — это невозможность добавления данных в базу данных из-за отсутствия других данных. Например, если студент ещё не выбрал курс, а поле курса обязательно — запись не добавится. Решается разбиением данных на отдельные таблицы.

  2. Аномалия удаления — это потеря важной информации при удалении записи из базы данных.

  • Например, если студент — единственный, кто записан на курс, и его удалить, то вместе с ним удалится и информация о самом курсе.

3. Аномалия изменения — когда данные дублируются и при изменении нужно править во многих местах.

17
New cards

Первая нормальная форма (1НФ)

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

18
New cards

Вторая нормальная форма (2НФ)

Таблица должна быть в первой нормальной форме, и при этом все неключевые поля должны зависеть от всего первичного ключа, а не только от части. Если ключ состоит из нескольких полей, то каждое неключевое поле должно зависеть от всех этих полей.

19
New cards

Неключевые поля

это поля (столбцы) таблицы, которые не входят в состав первичного ключа.

20
New cards

Третья нормальная форма (3НФ)

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

EmployeeID

Name

DepartmentID

DepartmentName

  • EmployeeIDключ

  • DepartmentIDнеключевое поле

  • DepartmentNameнеключевое поле

И здесь:

  • DepartmentName зависит от DepartmentID

  • DepartmentID зависит от EmployeeID

21
New cards

Декомпозиция

Процесс разделения большой таблицы на несколько меньших, чтобы устранить избыточность и аномалии.

22
New cards

Денормализация

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

23
New cards

СУБД (Система Управления Базами Данных)

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

24
New cards

SQL-запрос

Команда на языке SQL (или другом языке), которая отправляется СУБД для выполнения операции с данными. Каждый запрос состоит из операторов, определяющих необходимые действия.

25
New cards

SQL

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

26
New cards

Типы СУБД по расположению данных

  • Локальные СУБД — база данных находится на одном компьютере или сервере.

  • Распределённые СУБДданные хранятся на нескольких серверах, которые физически могут находиться в разных местах.

27
New cards

PostgreSQL

Очень мощная и бесплатная СУБД, которая подходит для больших проектов с высокими нагрузками. Поддерживает стандартный SQL и расширения на других языках. Не имеет ограничений на размер базы.

28
New cards

MySQL

Одна из самых популярных СУБД с открытым исходным кодом. Подходит для веб-проектов и учебных целей. Имеет простой синтаксис, поддержку многих ОС и хорошую производительность при работе с небольшими и средними объемами данных.

29
New cards

SQLite

Минималистичная встраиваемая СУБД. Всё содержимое базы данных хранится в одном файле. Не требует установки и настройки сервера. Используется в проектах с небольшим трафиком.

30
New cards

NoSQL-СУБД

Системы управления базами данных, не использующие реляционную модель. Примеры: MongoDB (документы), Redis (ключ-значение), Neo4j (графовая модель). Подходят для работы с большими объёмами разнородных данных.

31
New cards

Диалекты SQL

Разные СУБД могут использовать слегка отличающиеся версии SQL. Например, синтаксис или расширенные функции могут отличаться в MySQL, PostgreSQL или SQLite. Несмотря на это, основная структура запросов остаётся схожей.

32
New cards

Транзакция

Последовательность операций, которая выполняется как единое целое. Если одна из операций неудачна, можно "откатить" все изменения. Пример — перевод денег между счетами: списание и зачисление должны произойти вместе.

33
New cards

Тип данных

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

34
New cards

Строковые типы данных

Строковые типы данных — предназначены для хранения текстовой информации, такой как имена людей, фамилии, названия городов и любая подобная текстовая информация.

Обычно используют CHAR или VARCHAR:

  • CHAR(n) — строка фиксированной длины. Например, CHAR(4) всегда занимает 4 символа, даже если записано «ab» — оставшиеся два символа будут пробелами.

  • VARCHAR(n) — строка переменной длины. Если хранится «ab» в VARCHAR(4), реально займёт только два символа.

Когда нужны большие тексты — используют TEXT, MEDIUMTEXT, LONGTEXT. В отличие от VARCHAR, здесь не указывается максимальная длина при создании таблицы — она ограничивается самим типом данных.

35
New cards

Целочисленные типы данных

В SQL целочисленные типы данных используются для хранения целых чисел. В MySQL их несколько видов (TINYINT, SMALLINT, INT, BIGINT), которые отличаются размером и диапазоном чисел, которые можно хранить. Например, TINYINT — это очень маленькие числа от -128 до 127, а BIGINT — очень большие.

36
New cards

signed и unsigned

Все целые числа в MySQL бывают двух видов — signed и unsigned. Signed — это числа с возможностью быть отрицательными и положительными. Unsigned — только положительные, но диапазон в два раза больше. Например, если мы знаем, что значение не может быть отрицательным — например, количество товаров на складе — лучше использовать unsigned, чтобы иметь больше доступных значений.

37
New cards

Числа с плавающей точкой

Это числа с дробной частью. Они хранятся приблизительно — с некоторой погрешностью, потому что числа хранятся в специальном формате. Если точность не критична — например, для температуры или координат — эти числа подходят. FLOAT занимает меньше места, DOUBLE — больше и точнее.

38
New cards

NULL

это специальное значение, которое означает отсутствие данных. Это не то же самое, что 0 или пустая строка. 0 — это число, пустая строка — это текст, а NULL значит, что данных вообще нет. Например, если у пользователя нет телефона, в поле с телефоном можно записать NULL.

39
New cards

ENUM

это тип данных, который может принимать только заранее оговорённые значения. Например, поле “пол” может иметь только ‘male’ или ‘female’. Если попытаться записать другое значение, база выдаст ошибку. Это очень удобно, чтобы не допустить ошибочных данных.

40
New cards

Операторы

представляют собой зарезервированные слова, которые имеют специальное значение и выполняют определенные функции в SQL. Операторы не могут использоваться в качестве имен таблиц, полей или других объектов базы данных.

41
New cards

SELECT

используется для извлечения данных из таблицы. Сразу после него указывают имя нужного столбца. Если нужно взять несколько столбцов — перечисляют их через запятую. А чтобы взять все столбцы сразу, пишут символ *.

42
New cards

FROM

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

43
New cards

DISTINCT

ключевое слово для извлечения только уникальных записей. Указывается непосредственно перед именами полей.

44
New cards

LIMIT

ключевое слово для ограничения количества извлекаемых записей.

45
New cards

OFFSET

ключевое слово для задания начальной точки извлечения. Можно использовать только в паре с ключевым словом LIMIT. Выражение LIMIT n OFFSET m можно записать в более коротком виде: LIMIT m, n.

Записи при использовании ключевого слова OFFSET индексируются с нуля, поэтому, например, выражение LIMIT 3 OFFSET 2 говорит о том, что должно быть извлечено три записи, начиная с третьей.

46
New cards

AS

ключевое слово для создания псевдонима извлекаемого поля. Располагается между исходным именем поля и новым.

47
New cards

Коментарии

 SQL поддерживает несколько видов комментариев:

  • однострочные комментарии обозначаются двумя дефисами --

  • многострочные комментарии обрамляются сочетанием символов /*

48
New cards

ORDER BY

Оператор ORDER BY используется для сортировки данных и указывается в конце SQL-запроса. По умолчанию сортировка выполняется по возрастанию, но можно задать порядок убывания с помощью DESC. Сортировать можно по одному или нескольким полям (через запятую), а также по их порядковым номерам в результирующей таблице (начиная с 1).

49
New cards

WHERE

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

Псевдонимы полей не могут быть использованы в блоке оператора WHERE, так как он выполняется до блока SELECT, поэтому на момент выполнения блока WHERE псевдонимы полей еще не известны.

50
New cards

LIKE

Оператор который ищет строки по шаблону с помощью метасимволов:

  • % — любое количество любых символов (включая 0).

  • _ — ровно один любой символ

LIKE работает только со строками и нечувствителен к регистру. Когда регистр символов важен, шаблон поиска необходимо преобразовать в тип данных BINARY с помощью функций CAST() или CONVERT().
Чтобы искать сами % или _, используют экранирование через ESCAPE, которое указывается после шаблона поиска и определяет символ, отвечающий за экранирование.

51
New cards

Вычисляемые поля

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

52
New cards

Функция

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

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

53
New cards

Функция CONCAT()

предназначена для объединения нескольких значений в одну строку. Она принимает любое количество аргументов, неявно преобразует их в строки и возвращает результат.

54
New cards

Функция CONCAT_WS()

объединяет несколько значений, вставляя между ними указанный разделитель. Разделитель указывается в качестве первого аргумента, объединяемые значения — в качестве всех остальных.

55
New cards

LTRIM() и RTRIM()

Функция LTRIM() используется для удаления ведущих пробелов слева, а функция RTRIM() используется для удаления пробелов справа.

56
New cards

LPAD() и RPAD()

это функции для дополнения строки до заданной длины с помощью другой строки. Обе принимают три аргумента:

  • str — исходная строка

  • len — желаемая длина

  • padstr — дополняющая строка

LPAD добавляет padstr слева, RPAD, наоборот, добавляет padstr справа.

57
New cards

LEFT() и RIGHT()

используются для извлечения определенного количества символов из начала или конца строки.

Они принимает два аргумента в следующем порядке:

  • str — исходная строка

  • count — количество извлекаемых символов

58
New cards

LOCATE()

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

  • substr — искомая подстрока

  • str — исходная строка

  • start — позиция начала поиска (может не указываться, в таком случае поиск выполняется с начала строки)

59
New cards

Функция REPLACE()

используется для замены подстроки в строке. Она принимает три аргумента в следующем порядке:

  • str — исходная строка

  • from_str — подстрока, которую нужно заменить

  • to_str — заменяющая подстрока

60
New cards

Функция SUBSTRING()

используется для извлечения подстроки из строки. Она принимает три аргумента в следующем порядке:

  • str — исходная строка

  • start — позиция первого извлекаемого символа

  • len — длина извлекаемой подстроки (может не указываться, в таком случае подстрока извлекается до конца)