Меню

Vchernogorov _readme md

Язык SQL

Дата добавления: 2015-07-09 ; просмотров: 1035 ; Нарушение авторских прав

Язык SQL (эта аббревиатура должна произноситься как «сикуель», однако все чаще говорят «эс-ку-эль») в настоящее время является промышленным стандартом, который в большей или меньшей степени поддерживает любая СУБД, претендующая на звание «реляционной». В то же время SQL подвергается суровой критике как раз за недостаточное соответствие реляционным принципам (см. например, статью Х. Дарвина и К.Дейта Третий манифест, опубликованную в журнале СУБД N 1 за 1996 год).

В SQL определены два подмножества языка:

· SQL-DDL (Data Definition Language) — язык определения структур и ограничений целостности баз данных. Сюда относятся команды создания и удаления баз данных; создания, изменения и удаления таблиц; управления пользователями и т.д.

· SQL-DML (Data Manipulation Language) — язык манипулирования данными: добавление, изменение, удаление и извлечение данных, управления транзакциями.

Операторы языка SQL строятся с применением:

· зарезервированных ключевых слов;

· идентификаторов (имен) таблиц и столбцов таблиц;

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

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

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

Начнем с базовых операций реляционных баз данных. Таковыми являются:

Операция выборки позволяет получить все строки (записи) либо часть строк одной таблицы.

SELECT * FROM country

Получить все строки таблицы Country

COUNTRY CURRENCY
USA Dollar
England Pound
Canada CdnDlr
Switzerland SFranc
Japan Yen
Italy Lira
France FFranc
Germany D-Mark
Australia ADollar
Hong Kong HKDollar
Netherlands Guilder
Belgium BFranc
Austria Schilling
Fiji FDollar

SELECT * FROM countryWHERE currency = «Dollar».

Получили подмножество строк таблицы Country,удовлетворяющее условию Currency = «Dollar»

Результат последней операции выглядит следующим образом:

Операция проекции позволяет выделить подмножество столбцов таблицы. Например:

SELECT currency FROM country.

Получили списокденежных единиц

Найти денежную единицу Японии

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

SELECT first_name, last_name, proj_nameFROM employee, projectWHERE emp_no = team_leader

Получить список руководителей проектов

FIRST_NAME LAST_NAME PROJ_NAME
Ashok Ramanathan Video Database
Pete Fisher DigiPizza
Chris Papadopoulos AutoMap
Bruce Young MapBrowser port
Mary S. MacDonald Marketing project 3

Операция объединенияпозволяет объединять результаты отдельных запросов по нескольким таблицам в единую результирующую таблицу. Таким образом, предложение UNION объединяет вывод двух или более SQL-запросов в единый набор строк и столбцов.

SELECT first_name, last_name, job_countryFROM employeeWHEREUNIONSELECT contact_first, contact_last, country customer

Получить список работников и заказчиков, проживающих во Франции

FIRST_NAME LAST_NAME JOB_COUNTRY
Jacques Glon France
Michelle Roche France

Пример использования Insert

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

INSERT INTO ([ , . ]) VALUES ( . )

Используя перечисление значений, без указания столбцов:

не работает если использовать с set identity_insert

INSERT INTO VALUES ( . )

INSERT INTO SELECT . FROM

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

Пример использования Update

UPDATE [ИмяБазыДанных1!]ИмяТаблицы1
SET Имя_Столбца1 = Выражение1
[, Имя_Столбца2 = Выражение2 . ]
WHERE УсловиеФильтра1 [AND | OR УсловиеФильтра2 . ]] UPDATE top(10) tbl_books SET price = 0 WHERE quantity = 0; UPDATE per­sons SET street = ‘Nis­sesti­en 67’, ci­ty = ‘Sand­nes’ WHERE lastname = ‘Tjes­sem’ AND firs­tna­me = ‘Ja­kob’; UPDATE temp a SET deptno =(SELECT deptno FROM dept WHERE loc = ‘BOSTON’), (sal, comm) = (SELECT 1.1*AVG(sal), 1.5*AVG(comm) FROM temp b WHERE a.deptno = b.deptno) WHERE deptno IN (SELECT deptno FROM dept WHERE loc = ‘DALLAS’ OR loc = ‘DETROIT’);

«UPDATE temp a …» выполняет следующие операции:

· Модифицирует только тех служащих, которые работают в Dallas или Detroit

· Устанавливает значение колонки deptno в значение такое же, как и у служащих из Бостона

· Устанавливает жалованье каждого служащего в 1.1 раз больше среднего жалованья всего отдела

· Устанавливает комиссионные каждого служащего в 1.5 раза больше средних комиссионных всего отдела

Пример использования Delete

При удалении можно задавать конструкции JOIN связывающие несколько страниц, аналогично тому, как связываются таблицы в запросах выборки SELECT:

DELETE -> FROM JOIN ON ;

Источник

Язык запросов SQL

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

SQL или Structured Query Language (язык структурированных запросов) — язык программирования, предназначенный для управления данными в СУБД. Все современные СУБД поддерживают SQL.

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

Язык SQL — это в первую очередь язык запросов, а кроме того он очень похож на естественный язык.
Каждый раз, когда требуется прочитать или записать любую информацию в БД, требуется составить корректный запрос. Такой запрос должен быть выражен в терминах SQL.

Например, чтобы вывести на экран все записи из таблицы города , составим такой запрос:

Если перевести этот запрос на язык SQL, то корректным результатом будет:

Теперь напишем запрос на добавление в таблицу города нового города:

Эта команда создаст в таблице ‘города’ новую запись, где полю ‘имя города’ будет присвоено значение ‘Санкт-Петербург’.

С помощью SQL можно не только добавлять и читать данные, но и:

  • удалять и обновлять записи в таблицах;
  • создавать и редактировать сами таблицы;
  • производить операции над данными: считать сумму, получать самое большое или малое значение, и так далее;
  • настраивать работу сервера СУБД.

MySQL

Существует множество различных реляционных СУБД. Самая известная СУБД — это Microsoft Access, входящая в состав офисного пакета приложений Microsoft Office.
Нет никаких препятствий для использования в качестве СУБД MS Access, но для задач веб-программирования гораздо лучше подходит альтернативная программа — MySQL.
В отличие от MS Access, MySQL абсолютно бесплатна, может работать на серверах с Linux, обладает гораздо большей производительностью и безопасностью, что делает её идеальным кандидатом на роль базы данных в веб-разработке.
Подавляющее большинство сайтов и приложений на PHP используют в качестве СУБД именно MySQL.

Установка

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

Последняя версия MySQL доступна для загрузке по ссылке: https://dev.mysql.com/downloads/mysql/
На этой странице следует выбрать «MySQL Installer for Windows» и нажать на кнопку «Download» для загрузки.

В процессе установки запомните директорию, куда вы устанавливаете MySQL (скрывается под ссылкой «Advanced options»).
На шаге «Accounts and Roles» установщик потребует придумать пароль для доступа к БД (MySQL Root Password) — обязательно запомните или запишите этот пароль — он вам ещё понадобится.

Выполнение запросов

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

  1. Откройте командную строку (Выполнить: cmd.exe).
  2. Перейдите в каталог с установленной MySQL: cd /d /bin .
  3. Выполните: mysql -uroot -p .
  4. Введите пароль, заданный при установке.
Читайте также:  Таблица для распорядка дня таблица пустая

Если вы всё выполнили верно, то в командной строке запустится клиент для работы с MySQL (вы поймете это по строке приглашения «mysql>»). С этого момента можно вводить любые SQL запросы, но каждый запрос обязательно должен заканчиваться точкой с запятой ;

Оператор SQL create database: создание новой базы данных

Приступим к практике — начнём создавать базу данных для ведения погодного дневника.
Начать следует с создания новой базы данных для нашего сайта.
Новая БД в MySQL создаётся простой командой: CREATE DATABASE

Так что, выполнив команду CREATE DATABASE weather_diary; , MySQL создаст для нас новую БД, в которой будет происходить вся дальнейшая работа.
Это важно: после создания БД её невозможно будет переименовать, а только удалить и создать заново. По этой причине крайне внимательно подойдите к выбору имени для базы данных.

Оператор create table: создание таблиц

Создав новую БД, сообщим MySQL, что теперь мы собираемся работать именно с ней.
Выбор активной БД выполняется командой: USE ;

Пришло время создать первые таблицы!
Для ведения дневника по всем правилам, понадобится создать три таблицы: города (cities), пользователи (users) и записи о погоде (weather_log).
В подразделе «Запись» этой главы описано, как должна выглядеть структура таблицы weather_log. Переведём это описание на язык SQL:

Чтобы ввести многострочную команду в командной строке используйте символ \ в конце каждой строки (кроме последней).

Теперь создадим таблицу городов:

MySQL может показать созданную таблицу, если попросить об этом командой: SHOW COLUMNS FROM weather_log .
В ответе будут перечислены все поля таблицы, их тип и другие характеристики.

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

В примере с созданием новой таблицы при перечислении необходимых полей первым полем идёт id INT AUTO_INCREMENT PRIMARY KEY .
Это поле называется первичным ключом. Обязательно создавать первичный ключ в каждой таблице.

Первичный ключ — это особенное поле, в котором сохраняется уникальный идентификатор записи. Он нужен, чтобы у программиста и базы данных всегда была возможность однозначно обратиться к одной конкретной записи для её чтения, обновления или удаления.
Если назначить поле первичным ключом, то БД будет следить за тем, чтобы значение в этом поле больше не повторялось в таблице.
А если ещё и добавить аттрибут AUTO_INCREMENT , то MySQL при добавлении новых записей будет заполнять это поле сама. AUTO_INCREMENT будет играть роль счётчика — каждая новая запись в таблице получит значение на единицу больше максимального существующего значения.

Оператор insert into: добавление записи в таблицу

Начнём с добавления новых данных в таблицу. Для добавления записи используется следующий синтаксис:

В начале добавим город в таблицу городов:

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

Теперь создадим запись о погоде за сегодняшний день.
При определении таблицы weather_log мы решили ссылаться на город, путём записи в поле city_id идентификатора города из таблицы cities. Так как мы только что добавили новый город, ничего не мешает использовать его идентификатор в записи о погоде.
Идентификатором города будет первичный ключ, который также был определён в качестве первого поля таблицы. Нумерация этого поля начинается с единицы, значит первая добавленная запись имеет идентификатор 1 . Зная это, запрос на добавление записи о погоде в Санкт-Петербурге за третье сентября 2017 года выглядит так:

Оператор select: чтение информации из БД

Для вывода информации из БД используются запросы типа SELECT .
В запросе нужно указать имя таблицы, необходимые поля, а также дополнительные параметры (будут рассмотрены в следующем уроке).

Например, чтобы получить список всех доступных городов:

Все погодные записи:

Вместо перечисления всех столбцов можно использовать знак звездочки — * .

Оператор update: обновление информации в БД

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

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

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

Запрос на обновление:

Оператор join: объединение записей из двух таблиц

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

Поменяем запрос на показ погодных записей, чтобы он объединял две таблицы, а в поле города показывалось его название, а не идентификатор:

Источник



Подмножество языка sql для добавления таблиц называется

Язык SQL (эта аббревиатура должна произноситься как «сикуель», однако все чаще говорят «эс-ку-эль») в настоящее время является промышленным стандартом, который в большей или меньшей степени поддерживает любая СУБД, претендующая на звание «реляционной». В то же время SQL подвергается суровой критике как раз за недостаточное соответствие реляционным принципам (см. например, статью Х. Дарвина и К.Дейта Третий манифест, опубликованную в журнале СУБД N 1 за 1996 год) .

В начале 70-х годов в компании IBM была разработана экспериментальная СУБД System R на основе языка SEQUEL (Structured English Qeury Language — структурированный английский язык запросов), который можно считать непосредственным предшественником SQL. Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. В 1981 году IBM объявила о своем первом, основанном на SQL программном продукте, SQL/DS. Чуть позже к ней присоединились Oracle и другие производители. Первый стандарт языка SQL был принят Американским национальным институтом стандартизации (ANSI) в 1987 (так называемый SQL level /уровень/ 1) и несколько уточнен в 1989 году (SQL level 2). Дальнейшее развитие языка поставщиками СУБД потребовало принятия в 1992 нового расширенного стандарта (ANSI SQL-92 или просто SQL-2). В настоящее время ведется работа по подготовке третьего стандарта SQL, который должен включать элементы объекто-ориентрованного доступа к данным.

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

В SQL определены два подмножества языка:

  • SQL-DDL (Data Definition Language) — язык определения структур и ограничений целостности баз данных. Сюда относятся команды создания и удаления баз данных; создания, изменения и удаления таблиц; управления пользователями и т.д.
  • SQL-DML (Data Manipulation Language) — язык манипулирования данными: добавление, изменение, удаление и извлечение данных, управления транзакциями

Здесь не дается строгое описание всех возможностей SQL-92. Во-первых, ни одна СУБД не поддерживает их в полной мере, а во-вторых, производители СУБД часто предлагают собственные расширения SQL, несовместимые друг с другом. Поэтому мы рассматриваем некое подмножество языка, которое дает общее представление о его специфике и возможностях. В то же время, этого подмножества достаточно, чтобы начать самостоятельную работу с любой СУБД. Более формальный (и более полный) обзор стандартов SQL сделан в статье С. Д. Кузнецова «Стандарты языка реляционных баз данных SQL: краткий обзор»,журнал СУБД N 2, 1996 г. Ознакомится с русским переводом стандарта SQL можно на сервере Центра информационных технологий, сравнительное описание различных версий языка (для СУБД Sybase SQL Server, Sybase SQL Anywhere, Microsoft SQL Server, Informix, Oracle Server) приводится в книге Дж.Боуман, С.Эмерсон, М.Дарновски «Практическое руководство по SQL», Киев, Диалектика, 1997.

Следует также отметить, что в отличие от «теретической» терминологии, используемой при описании реляционной модели ( отношение, атрибут, кортеж ), в литературе при описании SQL часто используется терминология «практическая» (соответственно — таблица, столбец, строка ). Здесь мы следуем этой традиции.

Все примеры построены применительно к базе данных publications , содержащей сведения о публикациях (как печатных, так и электронных), относящихся к теме данного курса. Структуру этой базы данных можно посмотреть здесь, ее проектирование описано в разделе 5.4, доступ к ней для практических занятий можно получить через Internet посредством СУБД Leap (реляционная алгебра) или СУБД PostgreSQL. (язык SQL).

Источник

SQL-Урок 1. Язык SQL. Основные понятия.

Для того, чтобы начать изучать SQL нам нужно сначала понять, что такое база данных.

1. Что такое База Данных

База данных (БД) — упорядоченный набор логически взаимосвязанных данных, используемых совместно, и которые хранятся в одном месте. Если коротко, то простейшая БД это обычная таблица со строками и столбцами в которой хранится разного рода информация (примером может служить таблица в Excel ). Так, часто, с БД нераздельно связывают Системы управления базами данных (СУБД), которые предоставляют функционал для работы с БД. Язык SQL как раз и является частью СУБД, которая осуществляет управление информацией в БД. Мы будем считать БД набором обычных таблиц, которые хранятся в отдельных файлах.

2. Что такое SQL

Итак, переходим к SQL.

SQL — простой язык программирования, который имеет немного команд и которой может научиться любой желающий. Расшифровывается как Structured Query Language — язык структурированных запросов, который был разработан для работы с БД, а именно, чтобы получать /добавлять /изменять данные, иметь возможность обрабатывать большие массивы информации и быстро получать структурированную и сгруппированную информацию. Есть много вариантов языка SQL, но у них всех основные команды почти одинаковы. Также существует и много СУБД, но основными из них являются: Microsoft Access, Microsoft SQL Server, MySQL, Oracle SQL, IBM DB2 SQL, PostgreSQL та Sybase Adaptive Server SQL. Чтобы работать с SQL кодом, нам понадобится одна из вышеперечисленных СУБД. Для обучения мы будем использовать СУБД Microsoft Access .

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

Источник

vchernogorov / _readme.md

Данный гист содержит информацию об основных понятиях и операторах SQL.

  • Компоненты SQL
  • Объединения
  • Элементы языка
  • Нормализация
  • Операторы
  • Понятия SQL

DML (Data Manipulation Language) — это семейство компьютерных языков, используемых в компьютерных программах или пользователями баз данных для получения, вставки, удаления или изменения данных в базах данных.

  • На текущий момент наиболее популярным языком DML является SQL, используемый для получения и манипулирования данными в RDBMS.

SELECT — получает определенные записи из одной или нескольких таблиц.

  1. INSERT — вставляет в таблицу новую запись.
  1. UPDATE — изменяет существующую запись.
  1. DELETE — удаляет записи, удовлетворяющие условию.

DDL (Data Definition Language) — это семейство компьютерных языков, используемых в компьютерных программах для описания структуры баз данных.

  • На текущий момент наиболее популярным языком DDL является SQL, используемый для получения и манипулирования данными в RDBMS.

CREATE — создает новую таблицу, представление таблицы или объект в базе данных или саму базу данных.

AFTER — модифицирует существующий объект БД, как например таблицу.

DROP — удаляет новую таблицу, представление таблицы или объект в базе данных или саму базу данных.

DDL (Data Definition Language) — подмножество языка управления базами данных SQL, предназначенное для осуществления административных операций, присваивающих или отменяющих право (привилегию) использовать базу данных, таблицы и другие объекты базы данных, а также выполнять те или иные операторы SQL.

GRANT — авторизует одного или более пользователей для представления операции или набора операций над объектом.

  1. REVOKE — уничтожает возможность авторизации.

TCL (Transaction Control Language) — компьютерный язык и часть SQL, используемый для обработки транзакций.

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

  1. ROLLBACK — оператор языка SQL, который применяется для того, чтобы отменять все изменения, внесённые начиная с момента начала транзакции или с какой-то точки сохранения, очищать все точки сохранения данной транзакции, завершать транзакцию и освобождать все блокировки данной транзакции.
  1. SAVEPOINT — устанавливает точку сохранения внутри транзакции.

Связь «один ко одному» (1:1) — в строке таблицы А может сопоставляться только одна строка таблицы Б, и наоборот. Реализуется с помощью указания внешних ключей в обеих таблицах у участников связи.

Связь «многие ко многим» (M:N) — в строке таблицы А может сопоставляться несколько строк таблицы Б, и наоборот. Реализуется с помощью отдельной таблицы с внешними ключами, ссылающимися на участников связи.

Связь «один ко многим» (1:N) — в этом типе связей у строки таблицы А может быть несколько совпадающих строк таблицы Б, но каждой строке таблицы Б может соответствовать только одна строка из А. Реализуется с помощью указания внешнего ключа в таблице Б, ссылающегося на участников связи таблицы А.

  1. JOIN или INNER JOIN — показывает только общие записи обоих таблиц.
  1. OUTER JOIN или LEFT OUTER JOIN — показывает все записи из левой таблицы независимо от наличия соответствующих записей в правой таблице.
  1. FULL OUTER JOIN — показывает все возможные комбинации строк из обеих таблиц, соответствующие данному условию.
  1. CROSS JOIN или декартово произведение образует все возможные комбинации строк из обеих таблиц.
  1. SELF JOIN используется для объединения таблицы с самой собой.

Объединение с помощью вложенных циклов — это простейший способ объединения. Для каждой строки внешней зависимости ищуется совпадения по всем строкам внутренней зависимости. Временная сложность O(M*N).

Хеш-объединение — более сложная операция, но с низкой стоимостью. Считываются все элементы из внутренней зависимости; в памяти создается хеш таблица; один за другим считываются все эелменты из внешней зависимости. Для каждого элемента вычисляется хеш, чтобы можно было найти соответствующий блок внутренней зависимости; элементы из блока сравниваются с элементами из внешней зависимости. Временная сложность O(M + N), где M — стоимость создания хеш таблицы, а N — стоимость хеш функции.

Объединение слиянием — это единственный способ объединения, в результате которого данные получаются отсортированными. Сначала сортируются оба набора входных данных по ключам объединения, а затем осуществляется слияние (принцип сортировки слиянием). Временная сложность O(N + M), если входные зависимости отсортированны, иначе O(Nlog(N) + Mlog(M)).

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

  • Тем не менее, в строгой реляционной модели отношение не является таблицей, кортеж — это не строка, а атрибут — это не столбец.
  • Операции над отношениями: объединение, пересечение, вычитани, проекция, декартово произведение, выборка, соединение, деление.

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

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

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

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

  • Для одной таблицы может быть создан только один кластерный индекс.

Триггер — это SQL процедура, которая срабатывает при каком-нибудь событии ( INSERT , DELETE или UPDATE ). Триггер не может быть вызван или выполнен вручную, СУБД автоматически вызывает его после модификации данных в соответствующей таблице.

  • Триггер может вызывать другие процедуры.

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

Представление — виртуальная таблица, представляющая данные одной или более таблиц альтернативным образом. Результат выполнения оператора SELECT .

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

  • Пример использования первичного ключа id .
  1. Внешний ключ — столбец или множество столбцов в таблице, которое применяется для принудительного установления связи между данными в двух таблицах.
    • Внешний ключ можно создать, определив ограничение FOREIGN KEY при создании или изменении таблицы.
    • Пример использования внешнего ключа для связи «один-ко-многим», где таблица Street имеет поле id_city , которое является внешним ключом и ссылается на таблицу City .

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

  • Чаще всего суррогатным ключем является id .
  • Все не-суррогатные ключи являются естественными ключами.

Потенциальный ключ — столбец или множество столбцов в таблице, удовлетворяющих условиям уникальности и несократимости:

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

Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.

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

Первая нормальная форма (1НФ) — отношение находится в 1НФ, если любое поле любой записи хранит только одно значение.

Вторая нормальная форма (2НФ) — выполняется условие 1НФ и любое неключевое поле полностью зависит от ключа.

Третья нормальная форма (3НФ) — выполняется условие 2НФ и нет неключевых полей зависящих от значения других неключевых полей.

Нормальная форма Бойса-Кодда (НФБК) — каждая нетривиальная неприводимая слева функциональная зависимость обладает потенциальным ключом в качестве детерминанта.

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

NOT NULL — столбец не может иметь NULL значения.

DEFAULT — записывает в ячеку столбца дефолтное значение, если оно не было указано.

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

PRIMARY KEY — устанавливает ключевой столбец. По умолчанию ограничение primary создает кластерный индекс на столбце, а unique — некластерный.

FOREIGN KEY — устанавливает связь с ключевым стобцом другой таблицы.

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

INDEX — используется для быстрого создания и извлечения данных из БД.

WHERE — используется для указания условия выборки данных из таблицы или при слиянии таблиц.

AND — связывающий оператор «И».

OR — связывающий оператор «ИЛИ».

LIMIT — выводит ограниченное число выделенных записей.

ORDER BY — выводит ограниченное число выделенных записей.

GROUP BY — группирует все записи с одинаковым условием.

DISTINCT — удаляет из выборки все записи с одинаковым условием.

AS — переименовывает таблицу или столбец для текущего запроса.

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

TRUNCATE — удаляет все значения из таблицы.

USE — выбирает доступную базу данных для подключения.

SHOW — выводит списк баз данных, таблиц или схем.

ALL — сравнивает значение с множеством других значений.

AND — позволяет устанавливать несколько условий.

ANY — сравнивает значение с множеством тех значений, которые удовлетворяют условию.

BETWEEN — возвращает множество значений, находящихся в указанном промежутке.

EXISTS — ищет вхождение строки в таблице, удовлетворяющее заданному критерию.

IN — сравнивает значение со списком указанных значений.

LIKE — сравнивает значение с другими похожими значениями используя wildcard.

NOT — реверсает результат логической операции.

OR — комбинирует условия.

IS NULL — сравнивает значение с NULL.

UNIQUE — ищет все уникальные строчки в таблице.

COUNT — подсчитывает количество строк в выборке.

MAX — выбирает максимальное значение из столца.

MIN — выбирает минимальное значение из столбца.

AVG — выбирает среднее значение из столбца.

SUM — подсчитывает сумму значений в числовом столбце.

SQL (Structured Query Language) — «язык структурированных запросов» — формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных

DB (Database) — совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных.

DBMS (Database Management System) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.

RDB (Relational Database) — это такая база данных, которая воспринимается ее пользователями как множество переменных (т.е. переменных отношения — relvar), значениями которых являются отношения или, менее формально, таблицы.

RDBMS (Database Management System) — DBMS, управляющая реляционными базами данных.

  • Примеры: Oracle Database, IBM DB2, Microsoft SQL Server.

Table (Таблица) — объект DB, коллекция, состоящая из схемы (заголовка) и тела.

Scheme (Схема) — определяет поля таблицы.

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

Column (Столбец) — набор однотипных значений в таблице, соответствующий данному полю.

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

Row (Строка) — элемент таблицы, который может состоять из нескольких значений (в зависимости от полей таблицы).

Источник