Учебник по языку sql (ddl, dml) на примере диалекта ms sql server. часть первая

Предпосылки для изучения SQL

Чтобы начать изучение языка запросов, такого как SQL, важно, чтобы у вас были знания в следующих областях

  • Системы управления базами данных.
  • Понятия СУБД, такие как нормализация, свойства ACID, транзакции и т. д.
  • Диаграммы ER, реляционные модели и все о реляционных базах данных.

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

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

В каком месте обратиться за помощью в изучении

В вашем путешествии по программированию станут моменты, когда вы застрянете на проблеме или других проблемах кодирования. Книги и руководства по SQL только иногда уведут вас особенно далеко. Обращение к онлайн-сайтам обсуждения кодирования — лучший способ взять помощь и улучшить свои навыки работы. Сайты программистовStack Overflow, предоставляют вам бесплатную помощь опытных программистов.

Вот некоторые проекты вопросов и ответов, их нужно проверить:

  • Stack Overflow — дискуссионный сайт программистов, охватывающий SQL и многие другие темы.
  • Quora— проект вопросов и ответов, где вы имеете возможность задать приличное число концептуальных вопросов.
  • Reddit — Reddit имеет значительное сообщество программистов, зависают в субреддитах, типаr/SQL.
  • StackExchange — StackExchange имеет множество дискуссионных сайтов по различным темам программирования.

Скажите нет грубой силе

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

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

Избыточные условия для объединений

Когда вы добавляете слишком много условий для объединений, вы, по сути, предписываете SQL выбрать определенный путь. Может быть, однако, что этот путь не всегда более эффективен.

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

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

SELECT state, COUNT(*) FROM Drivers WHERE state IN ('GA', 'TX') GROUP BY state ORDER BY state
SELECT state, COUNT(*) FROM Drivers GROUP BY state HAVING state IN ('GA', 'TX') ORDER BY state

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

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

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

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

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

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

Как работают запросы

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

Пользователь → Клиент → Запрос → Система управления → База данных → Таблица с базами данных

Данные для работы с SQL хранятся в таблицах. Как именно они устроены — разберемся ниже; пока же просто представим их. На пути от пользователя к таблице находится несколько посредников:

  • Клиент — способ введения запроса. В случае с Google, например, клиентом будет поисковая строка браузера, в которую пользователь вводит сформулированный запрос.
  • Система управления базами данных (СУБД) — комплекс программ, которые позволяют управлять данными. Эта система помогает таблицам понять, чего хочет пользователь, а пользователю — что ему отвечают таблицы.
  • База данных — система хранения таблиц, в которой они связаны между собой. База данных сама по себе не умеет манипулировать информацией — это просто хранилище, где у каждого объекта есть свое место.

Курс

Аналитик данных

Получите все необходимые знания и навыки для уровня junior: от от Google-таблиц до SQL и Power BI. Дополнительная скидка 5% по промокоду BLOG.

Узнать больше

Портал «orasource.ru»

Сайт: https://landingsql.orasource.ruСтоимость: 15 000 р.
«Уникальный курс SQL»

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

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

Программа курса:

  • Архитектура БД. Объекты базы данных. Проектирование, нормализация
  • Создание объектов базы данных. Простые SQL запросы. Ограничения
  • Группировки. Агрегатные функции. Итоги — RollUp, Сube
  • Работа со строками и датами. Различия в синтаксисе
  • Объединение таблиц, сложные виды объединений. Иерархия. Итераторы
  • Вставка, изменение данных. Множественная вставка, блокировки. Аналитические запросы. Работа с SQL XML. Model и Pivot

Курс сделает из слушателя специалиста всего за одну неделю. По окончанию обучения выдается сертификат.

Портал «otus.ru»

Сайт: https://otus.ruСтоимость: 60 000 р.
«Базы данных»

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

Курс включает в себя все основные и популярные БД, которые могут пригодиться разработчику: PostgreSQL, MySQL, Redis, MongoDB, Cassandra и т.д.

Курс обеспечивает глубокое погружение в СУБД, чтобы проектировать базы данных так, чтобы впоследствии не приходилось тушить пожары в результате не оптимально заложенных основ.

Программа:

  • Модуль 1. Сущности и связи
  • Модуль 2. MySQL
  • Модуль 3. PostgreSQL
  • Модуль 4. NoSQL (Redis, Tarantool, MongoDB, Cassandra)
  • Модуль 5. Общие задачи и проблемы
  • Модуль 6. Проект итоговый

По итогам защиты проекта выдается сертификат о прохождении обучения.

База данных

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

Создание

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

 
   CREATE DATABASE test

где, test это название базы данных.

Подробней о создании базы данных на SQL сервере, мы разговаривали в материале Как создать базу данных в MS SQL Server

Если Вам необходимо удалить базу данных, то можете использовать запрос:

 
   DROP DATABASE test

Изменение

Для изменений параметров базы данных можно использовать графический интерфейс Management Studio, в котором все параметры подробно описаны, а можно посылать запросы ALTER DATABASE, например, для включения автоматического сжатия базы данных test, используем следующий запрос

   
   ALTER DATABASE test SET AUTO_SHRINK ON;
   --А для выключения
   ALTER DATABASE test SET AUTO_SHRINK OFF;

Надеюсь понятно, ALTER DATABASE команда на изменение, test название изменяемой базы данных, SET команда, указывающая на то, что мы будем изменять параметры базы данных, AUTO_SHRINK непосредственно сам параметр, ON/OFF значение параметра.

Виды СУБД

Познакомимся с новым понятием — СУБД, системой управления базой данных.

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

Получается что, СУБД — это SQL плюс комплекс программного обеспечения. Очень часто базы данных путают с системой управления базой данных. Это нормально: понятия неразрывны, сама по себе БД без системы управления мало чем отличается от текстового файла со строчками

Важно не только хранить данные, но и управлять ими. СУБД применяются везде, где нужно структурировано хранить данные — от простого блога до проектов Data Science

Есть много популярных СУБД, рассмотрим несколько из них. 

6.2 Одномерный массив

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

Допустим, мы хотим узнать названия и идентификаторы всех книг, написанных определенным автором, но только если в библиотеке таких книг больше трех. Разобьем это на два шага:

1. Получаем список авторов с количеством книг больше 3. Дополняя наш прошлый пример:

Результат:

author
Robin Sharma
Dan Brown

Можно записать как:

2. Теперь используем этот результат в новом запросе:

Результат:

title bookid
The Lost Symbol 2
Who Will Cry When You Die? 3
Inferno 4

Это то же самое, что:

Ключ-значение

В этих БД запросы только на основе ключа — вы запрашиваете ключ и получаете его значение.

Такие БД не поддерживают запросы между различными значениями записей, вроде такого: выбрать все записи, где город — Нью-Йорк.Полезное свойство этих БД — поле времени жизни (Time-to-Live, TTL), в котором можно задать отдельно для каждой записи и состояния, когда их нужно удалить из БД.

Достоинства

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

Недостатки

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

Использование

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

  • Redis
  • Memcached

Как установить SQL?

Давайте посмотрим, как установить SQL Server на ваш компьютер с Windows, который поможет вам писать SQL-запросы, такие как создание баз данных, таблиц, вставка данных в таблицы, изменение и обновление данных и т. Д.

Вы можете загрузить Microsoft SQL Server с официального веб-сайта Microsoft .

Последней версией в настоящее время является SQL Server 2019

Обратите внимание, что Microsoft позволяет загружать две бесплатные версии SQL Server. Это редакции Developer и Express . Версия MS SQL Server Developer Edition имеет все необходимые функции, но проблема в том, что мы не можем использовать ее в производственной среде. Однако другая бесплатная версия под названием MS SQL Server Express edition может использоваться в производственной среде, но имеет ограниченный набор функций. Тем, кто хочет изучить SQL, лучше всего начать с версии для разработчиков

Нажмите кнопку Загрузить сейчас . Будет загружен исполняемый файл, который можно запустить для установки SQL Server. После начала установки вам будет предложено выбрать один из трех различных типов установки — базовая, выборочная и загрузка с носителя. Опция Basic автоматически выбирает все базовые пакеты, которые вам понадобятся для начала работы с SQL Server. Опция Custom позволит вам выбрать свои собственные пакеты, а опция Download Media позволит вам загрузить все пакеты, а затем установить их на другой компьютер.

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

Какими навыками должен обладать SQL-аналитик

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

  • базовое знание SQL;
  • азы работы с большими данными;
  • общие знания о теории баз данных и методологиях проектирования;
  • навыки работы с одной из промышленных СУБД (лучше всего — ClickHouse);
  • аналитический склад мышления.

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

Soft skills будут мало чем отличаться от других областей аналитики:

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

внимание к деталям

Мы имеем дело с огромными массивами данных, поэтому очень важно, чтобы полученные итоги были достоверными и обоснованными
Правило: «Семь раз примерь, один раз отрежь» — применимо к любой аналитической работе, где главный враг — суета, из-за которой можно не заметить важные мелочи;

коммуникабельность. Очень банальный, но актуальный скилл

Приходится общаться с большим количеством специалистов — от бизнес-заказчиков до проектных менеджеров, разработчиков и тестировщиков, доносить до них нужную информацию и делать релевантные запросы; 

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

работа в команде. Здесь все понятно. Без комментариев.

Как выучить SQL

Лучшие книги для изучения

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

Вот несколько популярных книг в интересах изучения.

  • SQL Cookbook: Query Solutions and Techniques for Database Developers — охватывает функциональность популярных баз, к примеру, как Oracle, SQL Server и PostgreSQL
  • Head First SQL: Your Brain on SQL-A Learner’s Guide, by Lynn Beighley — учит вас SQL с самых основ
  • Sams Teach Yourself SQL In 10 Minutes, by Ben Forta — охватывает доступным, удобным ради начинающих способов
  • Начало работы с SQL: практический подход для начинающих— краткое и сжатое руководство для начинающих
  • SQL QuickStart Guide: the Simplified Beginner’s Guide To SQL — берет вас от абсолютно ничего не зная о SQL и базах до освоения основных частей программирования баз. Книга построена на расширенных темах,  различия в синтаксисе среди популярных программ баз.

Выборка информации

Для извлечения значений из БД используется команда SELECT. Пишем такой код:

SELECT * FROM ‘table’ WHERE id = ‘1’

В данном примере в таблице выбираем все имеющиеся поля. Это происходит если прописать в команде звездочку «*». Если нужно выбрать какое-то выборочное значение пишем так:

SELECT log , pass FROM table WHERE id = ‘1’

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

Самостоятельная работа для закрепления материала

LCode LDescr
1 L-1
2 L-2a
2 L-2b
3 L-3
5 L-5
RCode RDescr
2 B-2a
2 B-2b
3 B-3
4 B-4
LCode LDescr RCode RDescr
2 L-2a 2 B-2a
2 L-2a 2 B-2b
2 L-2b 2 B-2a
2 L-2b 2 B-2b
3 L-3 3 B-3
LCode LDescr RCode RDescr
1 L-1 NULL NULL
2 L-2a 2 B-2a
2 L-2a 2 B-2b
2 L-2b 2 B-2a
2 L-2b 2 B-2b
3 L-3 3 B-3
5 L-5 NULL NULL
LCode LDescr RCode RDescr
2 L-2a 2 B-2a
2 L-2b 2 B-2a
2 L-2a 2 B-2b
2 L-2b 2 B-2b
3 L-3 3 B-3
NULL NULL 4 B-4
LCode LDescr RCode RDescr
1 L-1 NULL NULL
2 L-2a 2 B-2a
2 L-2a 2 B-2b
2 L-2b 2 B-2a
2 L-2b 2 B-2b
3 L-3 3 B-3
5 L-5 NULL NULL
NULL NULL 4 B-4
LCode LDescr RCode RDescr
1 L-1 2 B-2a
2 L-2a 2 B-2a
2 L-2b 2 B-2a
3 L-3 2 B-2a
5 L-5 2 B-2a
1 L-1 2 B-2b
2 L-2a 2 B-2b
2 L-2b 2 B-2b
3 L-3 2 B-2b
5 L-5 2 B-2b
1 L-1 3 B-3
2 L-2a 3 B-3
2 L-2b 3 B-3
3 L-3 3 B-3
5 L-5 3 B-3
1 L-1 4 B-4
2 L-2a 4 B-4
2 L-2b 4 B-4
3 L-3 4 B-4
5 L-5 4 B-4

SQL GROUP BY преобразует прежние ссылки на таблицу

Давайте вновь обсудим наше предложение FROM:

FROM a, b

1 FROMa,b

А теперь к соединенной ссылке (см. выше) применим предложение GROUP BY

GROUP BY A.x, A.y, B.z

1 GROUP BYA.x,A.y,B.z

Предложение производит новую ссылку на таблицу только с тремя оставшимися столбцами (!). Попробуем это переварить. С применением GROUP BY, уменьшается число доступных столбцов во всех последующих логических предложениях, включая SELECT. Ссылаться только на столбцы из предложения GROUP BY в предложении SELECT можно по синтаксической причине.

Обратите внимание, что другие столбцы могут по-прежнему быть доступными в качестве аргументов агрегатных функций:

SELECT A.x, A.y, SUM(A.z)
FROM A
GROUP BY A.x, A.y

1
2
3

SELECTA.x,A.y,SUM(A.z)

FROMA

GROUP BYA.x,A.y

Следует заметить, что MySQL, к сожалению, не придерживается этого стандарта, отчего получается только путаница. Не попадайтесь на уловки в MySQL. GROUP BY преобразует ссылки на таблицу Таким образом, можно ссылаться только на столбцы, также упоминаемые в предложении GROUP BY.

Как начать работу с SQL

Для начала работы с SQL достаточно разбираться в основах Excel, чтобы понимать принцип работы запросов, а также иметь базовый уровень английского на уровне A1-A2. Эти навыки необходимы, чтобы понимать синтаксис SQL:

  • SELECT — выбери данные
  • FROM — вот отсюда
  • JOIN — добавь еще эти таблицы
  • WHERE — при таком условии
  • GROUP BY — сгруппируй данные по этому признаку
  • ORDER BY — отсортируй данные по этому признаку
  • LIMIT — нужно такое количество результатов
  • ; — конец предложения

Системы для работы с SQL имеют схожую структуру: есть редактор запросов, результат запросов и список таблиц, которые используются для обработки.

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

Создание пользователя с использованием SSMS

  1. В обозревателе объектов раскройте папку Базы данных .

  2. Разверните базу данных, в которой создается новый пользователь базы данных.

  3. Щелкните правой кнопкой мыши папку Безопасность, выберите пункт Создать, а затем Пользователь… .

  4. В диалоговом окне Пользователь базы данных — создание на странице Общие выберите один из следующих типов пользователей в списке Тип пользователя:

    • пользователь SQL с именем для входа

    • пользователя SQL с паролем

    • Пользователь SQL без имени для входа

    • Пользователь, сопоставленный с сертификатом

    • Пользователь, сопоставленный с асимметричным ключом

    • пользователя Windows

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

    User name
    Введите имя нового пользователя. Если выбрать элемент Пользователь Windows в списке Тип пользователя, вы можете также щелкнуть многоточие (…) и открыть диалоговое окно Выбор пользователя или группы.

    Имя входа
    Введите имя входа для пользователя. Также можно щелкнуть многоточие (…) , чтобы открыть диалоговое окно Выбор имени входа. Имя входа доступно, если выбрать элемент SQL-пользователь с именем входа или Пользователь Windows в списке Тип пользователя .

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

    Язык по умолчанию
    Укажите язык по умолчанию для пользователя.

    Схема по умолчанию
    Укажите схему, которая будет владеть объектами, созданными пользователем. Также можно щелкнуть многоточие (…) , чтобы открыть диалоговое окно Выбор схемы. Схема по умолчанию доступна, если выбрать элемент SQL-пользователь с именем входа, SQL-пользователь без имени входа или Пользователь Windows в списке Тип пользователя .

    Имя сертификата
    Укажите сертификат для пользователя базы данных. Также можно щелкнуть многоточие (…) , чтобы открыть диалоговое окно Выбор сертификата. Имя сертификата доступно, если выбрать элемент Пользователь, сопоставленный с сертификатом в списке Тип пользователя .

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

  6. Нажмите кнопку ОК.

Дополнительные параметры

Диалоговое окно Пользователь базы данных — создание также содержит параметры на четырех дополнительных страницах: Собственные схемы, Членство, Защищаемые объекты и Расширенные свойства.

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

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

  • На странице Защищаемые объекты перечислены все возможные защищаемые объекты и разрешения на эти объекты, которые могут быть предоставлены для имени входа.

  • Страница Расширенные свойства позволяет добавлять пользовательские свойства пользователям базы данных. На этой странице доступны следующие параметры.

    База данных
    Отображает имя выбранной базы данных. Это поле доступно только для чтения.

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

    Свойства
    Просмотрите или укажите расширенные свойства объекта. Каждое расширенное свойство состоит из пары имя/значение метаданных, связанных с объектом.

    Кнопка с многоточием (…)
    Нажмите многоточие (…) рядом с полем Значение, чтобы открыть диалоговое окно Значение для расширенного свойства. Введите или просмотрите значение расширенного свойства в этом более просторном окне. Дополнительные сведения см. в разделе Диалоговое окно «Значение для расширенного свойства».

    Удаление
    Удаляет выбранное расширенное свойство.

«MySQL по максимуму» Бэрон Шварц, Вадим Ткаченко, Петр Зайцев

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

Слоган этой серии книг «написано экспертами для экспертов», то есть в ней объясняются сложные кейсы, даются продвинутые способы оптимизации параметров настройки сервера, репликации, резервного копирования и восстановления. Отдельная глава издания посвещена проблемам применения MySQL в облаке.

Задание псевдонимов для столбцов запроса

ФИО Дата приема Дата рождения ZP
Иванов Иван Иванович 2015-04-08 1955-02-19 5000
Петров Петр Петрович 2015-04-08 1983-12-03 1500
NULL 2015-04-08 1976-06-07 2500
NULL 2015-04-08 1982-04-17 2000
FullName1 FullName2 FullName3
Иванов Иван Иванович Иванов Иван Иванович Иванов Иван Иванович
Петров Петр Петрович Петров Петр Петрович Петров Петр Петрович
NULL Сидоров Сидор Сидоров Сидор
NULL Андреев Андрей Андреев Андрей

Основные арифметические операторы SQL

Оператор Действие
+ Сложение (x+y) или унарный плюс (+x)
Вычитание (x-y) или унарный минус (-x)
* Умножение (x*y)
Деление (x/y)
% Остаток от деления (x%y). Для примера 15%10 даст 5
ID Name Result1 Result2 Result3
1000 Иванов И.И. 2500 2500 2500
1001 Петров П.П. 225 225 225
1002 Сидоров С.С. NULL
1003 Андреев А.А. 600 600 600
1004 Николаев Н.Н. NULL
1005 Александров А.А. NULL
ID Name
1000 Иванов И.И.
1004 Николаев Н.Н.
1002 Сидоров С.С.

Вывод статистики с накоплением по дате

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

На первом этапе требуется установить переменную и присвоить ей нулевое значение:

SET @cvalue = 0

В следующем запросе, мы созданную ранее переменную и применим:

SELECT products.Name AS Name, (@cvalue := @cvalue + Orders) as Orders, 
Date FROM (SELECT ProductID AS ProductID, SUM(Orders) AS Orders, 
DATE(date) AS Date FROM statistics WHERE ProductID = '1' GROUP BY date) 
AS statistics JOIN products ON statistics.ProductID = products.id

Итоговый отчет:

+-----------------------+--------+------------+
| Name                  | Orders | Date       |
+-----------------------+--------+------------+
| Процессоры Pentium II |      1 | 2014-09-04 |
| Процессоры Pentium II |      2 | 2014-09-12 |
| Процессоры Pentium II |      4 | 2014-09-14 |
| Процессоры Pentium II |      6 | 2014-09-15 |
+-----------------------+--------+------------+

Получить используемую в примерах базу данных можно здесь.