15821

Основы Transact SQL: Простые выборки данных

Лекция

Информатика, кибернетика и программирование

Основы Transact SQL: Простые выборки данных SQL это аббревиатура выражения Structured Query Language язык структурированных запросов. SQL основывается на реляционной алгебре и специально разработан для взаимодействия с реляционными базами данных. SQL является прежде всего инфор...

Русский

2013-06-18

241.5 KB

13 чел.

Основы Transact SQL: Простые выборки данных

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

 

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

 

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

  •  DDL (Data Definition Language) - операторы определения данных
  •  DML (Data Manipulation Language) - операторы манипуляции данными
  •  DCL (Data Control Language) - операторы определения доступа к данным
  •  TCL (Transaction Control Language) - операторы управления транзакциями

 SQL является стандартизированным языком. Стандартный SQL поддерживается комитетом стандартов ANSI (Американский национальный институт стандартов), и соответственно называется ANSI SQL.

 Многие разработчики СУБД расширили возможности SQL, введя в язык дополнительные операторы или инструкции. Эти расширения необходимы для выполнения дополнительных функций или для упрощения выполнения определенных операций. И хотя часто они очень полезны, эти расширения привязаны к определенной СУБД и редко поддерживаются более чем одним разработчиком. Все крупные СУБД и даже те, у которых есть собственные расширения, поддерживают ANSI SQL (в большей или меньшей степени). Отдельные же реализации носят собственные имена (PL-SQL, Transact-SQL и т.д.). Transact-SQL (T-SQL) – реализация языка SQL корпорации Microsoft, используемая, в частности, и в SQL Server.

 Запросы на выборку данных (оператор SELECT)

 SELECT – наиболее часто используемый SQL оператор. Он предназначен для выборки информации из таблиц. Чтобы при помощи оператора SELECT извлечь данные из таблицы, нужно указать как минимум две вещи — что вы хотите выбрать и откуда.

 Выборка отдельных столбцов

SELECT [Description]

FROM Product

 В приведенном выше операторе используется оператор SELECT для выборки одного столбца под названием Description из таблицы Product. Искомое имя столбца указывается сразу после ключевого слова SELECT, а ключевое слово FROM указывает на имя таблицы, из которой выбираются данные.

 Для создания и тестирования данного запроса в Management Studio выполните следующие шаги:

  1.  В контекстном меню базы Sales выберите команду «Создать запрос» или щелкните соответствующую кнопку на панели инструментов .
  2.  В открывшемся окне создания нового запроса введите представленные выше инструкции SQL.
  3.  Для запуска запроса на выполнение щелкните кнопку на панели инструментов или нажмите клавишу F5. В нижней части экрана должны появиться результаты.

 

  1.  Management Studio позволяет сохранять пакеты SQL. Это полезно для сохранения сложных запросов, которые будут повторно запускаться в будущем. Для этого щелкните кнопку на панели инструментов. По умолчанию файлы запросов сохраняются с расширением .sql. В дальнейшем сохраненный запрос может быть открыт командой «Открыть файл».

 Выборка нескольких столбцов

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

 SELECT [Description], InStock

FROM Product

 Выборка всех столбцов

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

 SELECT *

FROM Product

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

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

SELECT IdProd, [Description], InStock

FROM Product

ORDER BY InStock

 Это выражение идентично предыдущему, за исключением предложения ORDER BY, которое указывает СУБД отсортировать данные по возрастанию значений столбца InStock.

 Сортировка по нескольким столбцам

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

 SELECT IdProd, [Description], InStock

FROM Product

ORDER BY InStock, [Description]

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

 Указание направления сортировки

 В предложении ORDER BY можно также использовать порядок сортировки по убыванию. Для этого необходимо указать ключевое слово DESC. В следующем примере продукция сортируется по количеству в убывающем порядке плюс по названию продукта.

 SELECT IdProd, [Description], InStock

FROM Product

ORDER BY InStock DESC, [Description]

 Ключевое слово DESC применяется только к тому столбцу, после которого оно указано. В предыдущем примере ключевое слово DESC было указано для столбца InStock, но не для Description. Таким образом, столбец InStock отсортирован в порядке убывания, а столбец Description в возрастающем порядке (принятым по умолчанию).

 Фильтрация данных

 В таблицах баз данных обычно содержится много информации и довольно редко возникает необходимость выбирать все строки таблицы. Гораздо чаще бывает нужно извлечь какую-то часть данных таблицы для каких-либо действий или отчетов. Выборка только необходимых данных включает в себя критерий поиска, также известный под названием предложение фильтрации. В операторе SELECT данные фильтруются путем указания критерия поиска в предложении WHERE. Предложение WHERE указывается сразу после названия таблицы (предложения FROM) следующим образом:

 SELECT IdProd, [Description], InStock

FROM Product

WHERE InStock = 0

 Этот оператор извлекает значения всех столбцов из таблицы товаров, но показывает не все строки, а только те, значение в столбце InStock (Количество товаров на складе) которых равно 0, т.е. только список отсутствующих на складе товаров.

 При совместном использовании предложений ORDER BY и WHERE, предложение ORDER BY должно следовать после WHERE.

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

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

 SELECT FName, LName, Phone

FROM Customer

WHERE PHONE IS NULL

 Для поиска диапазона значений можно использовать операцию BETWEEN. Ее синтаксис немного отличается от других операций предложения WHERE, так как для нее требуются два значения: начальное и конечное. Например, операцию BETWEEN можно использовать для поиска товаров, количество которых находится в промежутке между 5 и 10.

 SELECT IdProd, [Description], InStock

FROM Product

WHERE InStock BETWEEN 5 AND 10

 Для объединения в предложении WHERE нескольких условий необходимо использовать логические операторы AND и (или) OR. Оператор AND требует одновременного выполнения обоих условий. Запишем предыдущий запрос посредством объединения двух операции сравнения оператором AND.

 SELECT IdProd, [Description], InStock

FROM Product

WHERE (InStock >= 5) AND (InStock <= 10)

 Ключевое слово AND указывает СУБД возвращать только те строки, которые удовлетворяют всем перечисленным критериям отбора. В данном случае будут выбраны только те товары, количество которых находится в промежутке от 5 до 10. Оператор OR указывает СУБД выбирать только те строки, которые удовлетворяют хотя бы одному из условий.

 SELECT IdCity, CityName

FROM City

WHERE (CityName = 'Москва') OR (CityName = 'Казань')

 Посредством этого SQL запроса из справочника городов выбираются только Москва и Казань. Ключевое слово OR указывает СУБД использовать какое-то одно условие, а не сразу два. Если бы здесь использовалось ключевое слово AND, мы бы не получили никаких данных.

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

Предложения WHERE могут содержать любое количество логических операторов AND и OR. Комбинируя их можно создавать сложные фильтры. Однако при комбинировании ключевых слов AND и OR необходимо учитывать, что оператор AND выполняется раньше оператора OR, т.е. имеет более высокий приоритет. Изменить приоритет можно с помощью круглых скобок.

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

 SELECT FName, LName, Phone

FROM Customer

WHERE (LName = 'Иванов' OR LName = 'Петров') AND PHONE IS NULL

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

 SELECT FName, LName, Phone

FROM Customer

WHERE LName IN ('Иванов','Петров') AND PHONE IS NULL

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

 SELECT FName, LName, Phone

FROM Customer

WHERE NOT PHONE IS NULL

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

 

 В следующем примере осуществляется выборка всех товаров, названия которых начинаются на букву Т. SELECT *FROM ProductWHERE [Description] LIKE 'Т%'


 

А также другие работы, которые могут Вас заинтересовать

34498. Конструктивизм – главенствующий стиль Советской России. Этапы развития 32.5 KB
  Конструктивизм возник в Советской России как концепция формообразования в художественном творчестве и производственном искусстве 1920х гг. Первый этап сложения концепции конструктивизма экспериментальнохудожественный. Конструктивизм исходил из концепции построения форм основанной на выражении внутренних структурных связей между абстрактными геометрическими элементами изучении выразительности сочетаний различных материалов.
34499. Искусство первобытнообщинного строя. Зарождение искусства и первые шаги художественного развития человечества. Мадленский период. Росписи Альтамиры, Ляско. Анималистический жанр. Образ человека в первобытном искусстве. Мезолит. Наскальные росписи Восточн 23.57 KB
  Образ человека в первобытном искусстве. Первобытное искусство отразило первые представления человека об окружающем мире благодаря ему сохранялись и передавались знания и навыки происходило общение людей друг с другом. Что натолкнуло человека на мысль изображать те или иные предметы До недавнего времени учёные придерживались двух противоположных взглядов на историю первобытного искусства. Например к числу самых древних изображений на стенах пещер эпохи палеолита относятся и оттиски руки человека и беспорядочные переплетения волнистых линий...
34500. Искусство Древнего Египта. Искусство Древнего царства. Архитектура гробниц и храмов. Искусство Среднего царства. Архитектура, скульптура, росписи. Искусство Нового царства. Новый тип храмов (Карнак, Луксор), скульптура, росписи 23.44 KB
  Искусство Древнего Египта. Искусство Древнего Египта живопись скульптура архитектура и другие виды искусства которые зародились в Нильской долине ок. Архитектура Древнего Египта. Скульптура Древнего Египта одна из наиболее самобытных и строго канонически разработанных областей искусства Древнего Египта.
34501. Эгейское искусство. Крито-микенская культура 15.29 KB
  Памятники искусства и материальной культуры важнейшие материалы для изучения эгейской культуры. Районы распространения эгейской культуры: побережье Малой Азии острова Эгейского моря материковая Греция Крит. Развитие центров эгейской культуры на материке Дворцыкрепости Гириафа и Микен. Искусство времени расцвета Микенской культуры XVXIII вв.
34502. Искусство Древней Греции. Архаика. Архитектура. Формы храмов. Ордер. Скульптура, статуи куросов. Вазопись 18.48 KB
  Первые ордера назывались дорическим и ионическим по местам их возникновения затем появился коринфский близкий к ионическому. Архитрав дорического ордера гладкий. Фриз дорического ордера делится на прямоугольные плиты метопы и триглифы имеющие на плоскости три вертикальных желобка. Классическим примером дорического ордера может служить храм Посейдона в Пестуме Италия VI в.
34503. Искусство Древней Греции. Ранняя классика (480-450-е гг. до н. э.) Скульптура. Храм Зевса в Олимпии. Мирон. Вазопись и живопись 13.98 KB
  Мастер Брига: белофонный килик из Вульчи Пляшущая менада Мюнхен Гос. Античные собрания килик Последствия симпосия Вюрцбург Музей Мартина фон Вагнера; Дурис: килик из Капуи Эос с телом Мемнона Париж Лувр Монументальная живопись этого периода.
34504. Искусство Древней Греции. Высокая классика. Афинский акрополь. Фидий. Поликлет. Искусство Древней Греции. Поздняя классика. Скульптура Скопаса, Праксителя, Леохара, Лисиппа 17.09 KB
  Статуи атлетов Дорифор Диадумен Раненая амазонка Гера Аргосская. Произведения Фидия: хризоэлефантинные из золота и слоновой кости статуи Афиныдевы Афина Парфенос и Зевса Олимпийского бронзовые статуи Афинывоительницы Афина Промахос Афины Лемнии дар жителей ова Лемнос Раненой амазонки.э: Аполлона в Фигалии архитектор Иктин – фриз Амазономахия; Ники Бескрылой Аптерос на Акрополе архитектор Калликрат – фриз Битва греков с персами рельефы баллюстрады; Эрехтейона архитекторы Архилох и Филокл – статуи...
34505. Искусство этрусков. Архитектура. Отличие этрусского храма от греческого. Скульптура. Роспись гробниц 15.34 KB
  Искусство этрусков. и в которой наиболее интересным и развитым было искусство этрусков. Происхождение и язык этрусков до сих пор полностью не выяснены. Города этрусков были прекрасно укреплены соединялись благоустроенными дорогами и мостами.
34506. Искусство Древнего Рима. Значение, особенности художественной культуры Древнего Рима. Хронология. Отличия римского искусства от греческого. Основные типы римской архитектуры. Римский скульптурный портрет 17.81 KB
  Росписи дома Ливии на Палатине дома на Эсквилине IIго стиля. IIIго стиля в Помпеях. Вместо перспективных архитектурных построений IIго стиля фантастические трельяжи и “канделябры†IIIго стиля. Характерные особенности декоративного стиля I в.