Главная страница
Навигация по странице:

  • Методические указания по изучению языка SQL

  • I. Простые запросы на языке SQL

  • Select * from S Символ *

  • Пример

  • Select номер_детали from SP

  • Select номер_поставщика from S where город=Париж and рейтинг>20

  • Select номер_детали , название, вес from P where вес between 16 and 19

  • sql запросы. Язык структурных запросов sql введение


    Скачать 63.05 Kb.
    НазваниеЯзык структурных запросов sql введение
    Дата20.04.2018
    Размер63.05 Kb.
    Формат файлаdocx
    Имя файлаsql запросы.docx
    ТипМетодические указания
    #41691
    страница1 из 5
      1   2   3   4   5

    Язык структурных запросов SQL

    ВВЕДЕНИЕ

    Большинство современных СУБД построено на реляционной модели данных. Для получения информации из отношений (таблиц) базы данных в качестве языка манипулирования данными в теоретическом плане используются три абстрактных языка:

    В качестве практического языка работы с данными в середине 70-х годов фирмой IBM разработан язык структурных запросов SQL, ставший впоследствии стандартом de-facto при работе с базами данных. Наметившееся в настоящее время переход к крупным корпоративным СУБД типа Oracle, Informix, Sybase, DB2, Progress, PostgreSQLделает актуальным изучение языка SQL как в практическом плане, так и чисто теоретически, поскольку в основе элементов языка SQL лежат положения теории отношений, теории множеств и логики.

    Методические указания по изучению языка SQL

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

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

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

    Таблица поставщиков S:

    Create table S (n_post char(5) not NULL,

    name char(20),

    reiting smallint,

    town char(15))

    Таблица деталей Р:

    Create table P (n_det char(6) ,

    name char(20),

    cvet char(7),

    ves smallint,

    town char(15))

    Таблица поставок SP:

    Create table SP (n_post char(5) ,

    n_det char(6),

    date_post date,

    kol smallint)

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

    Содержание таблиц базы данных следующее:

    Таблица поставщиков (S)

    Hомеp_поставщика

    Фамилия

    Рейтинг

    Гоpод

    S1

    Смит

    20

    Лондон

    S2

    Джонс

    10

    Париж

    S3

    Блейк

    30

    Париж

    S4

    Кларк

    20

    Лондон

    S5

    Адамс

    30

    Атенс

    Таблица деталей (P)

    Номер детали

    Название

    Цвет

    Вес

    Гоpод

    P1

    Гайка

    Красный

    12

    Лондон

    P2

    Болт

    Зеленый

    17

    Париж

    P3

    Винт

    Голубой

    17

    Рим

    P4

    Винт

    Красный

    14

    Лондон

    P5

    Кулачок

    Голубой

    12

    Париж

    P6

    Блюм

    Красный

    19

    Лондон

    Таблица поставок (SP)

    Номер поставщика

    Номер детали

    Дата поставки

    Количество

    S1

    P1

    02/01/95

    300

    S1

    P2

    04/05/95

    200

    S1

    P3

    05/12/95

    400

    S1

    P4

    06/15/95

    200

    S1

    P5

    07/22/95

    100

    S1

    P6

    08/13/95

    100

    S2

    P1

    03/03/95

    300

    S2

    P2

    06/12/95

    400

    S3

    P2

    04/04/95

    200

    S4

    P2

    03/23/95

    200

    S4

    P4

    06/17/95

    300

    S4

    P5

    08/22/95

    400

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

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

    Замечание 2.  К особенностью работы с PostgreSQL относится следующее. Все незащищенные (незаключенные в двойные кавычки) идентификаторы (имена таблиц, столбцов, индексов, представлений и пр.) преобразуются к нижнему регистру. Так любая смешанная комбинация символов разных регистров (stAtEs, STATES) при отсутствии кавычек перед выполнением команды автоматически приводится к виду states. Идентификаторы, заключенные в кавычки, указывают на их буквенную интерпретацию с учетом используемого регистра. Идентификаторы обязательно должны заключаться в кавычки только в двух случаях: если идентификатор совпадает с ключевым словом или в его имени присутствует хотя бы одна прописная буква.

    I. Простые запросы на языке SQL

    Запрос на языке SQL формируется с использованием оператора Select__*_from__S_Символ_*'>Select. Оператор Select используется

      • для выборки данных из базы данных;

      • для получения новых строк в составе оператора Insert;

      • для обновления информации в составе оператора Update.

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

    • спецификатор Select;

    • спецификатор From;

    • спецификаторы Join;

    • спецификатор Where;

    • спецификатор Group by;

    • спецификатор Having;

    • спецификатор Order by;

    • спецификатор Into temp.

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

    Спецификаторы Join (их в одном операторе Select может быть несколько)    используются для перечисления присоединяемых таблиц  и указания условия соединения.

    Спецификатор Where добавляется для выборки определенных строк или указания условия соединения. Спецификатор Order by добавляется для изменения порядка получаемых данных. Спецификатор Into temp добавляется для сохранения этих результатов в виде таблицы с целью выполнения последующих запросов. Два дополнительных спецификатора оператора Select - Group by (спецификатор группирования) и Having (спецификатор условия выборки группы) - позволяют выполнять более сложные выборки данных.

    У пр а ж н е н и я

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

    Пример.

    Выдать полную информацию о поставщиках.

    Select *

    from S

    Символ  *   после Select  означает, что в результат должны быть включены все столбцы таблицы S.

    Результат: таблица S в полном объеме.

    Подготовьте запрос и проверьте полученный результат.

    2. Измение порядка следования столбцов.

    Пример.

    Выдать таблицу S в следующем порядке: фамилия, город, рейтинг, номер_поставщика.

    Select фамилия, город, рейтинг, номер_поставщика

    from S

    Результат: таблица S в требуемом порядке.

    Подготовьте запрос и проверьте полученный результат.

    3. Выбор заданных столбцов.

    Пример.

    Выдать номера всех поставляемых деталей.

    Selectномер_детали

    from SP

    Результат: столбец номер_детали таблицы SP

    Подготовьте запрос и проверьте полученный результат.

    4. Выбор без повторения.

    Пример.

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

    Select distinct номер_детали

    from SP

     

    Результат:

    номер_детали

     

    P1

     

    P2

     

    P3

     

    P4

     

    P5

     

    P6

    Подготовьте запрос и проверьте полученный результат.

    5. Использование в запросах констант и выражений.

    Пример.

    Выдать вес каждой детали в граммах.

    Selectномер_детали || ' вес в граммах=' || вес*454

     from P

    || - оператор конкатинации строк

    Результат:

    P1 вес в граммах=5448

     



     

    P6 вес в граммах=8226

    Подготовьте запрос и проверьте полученный результат.

    6.Ограничение в выборке.

    Пример.

    Выдать номера всех поставщиков, находящихся в Париже и имеющих  рейтинг  > 20.

    Selectномер_поставщика

    from S

    whereгород='Парижand рейтинг>20

     

    Результат:

    номер_поставщика

     

    S3

    Подготовьте запрос и проверьте полученный результат.

    7. Выборка с упорядочиванием.

    Пример.

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

    Selectномер_поставщикаейтинг

    from S

    whereгород='Париж'

    orderbyрейтингdesc

     

    Результат:

    номер_поставщика

    рейтинг

     

    S3

    30

     

    S2

    10

    Подготовьте запрос и проверьте полученный результат.

    8. Упорядочивание по нескольким столбцам.

    Пример.

    Выдать список поставщиков, упорядоченных по городу, в пределах города - по рейтингу.

    Select *

    from S

    order by 4, 3

     

    Результат:

    Hомеp_поставщика

    Фамилия

    Рейтинг

    Гоpод

     

    S5

    Адамс

    30

    Атенс

     

    S1

    Смит

    20

    Лондон

     

    S4

    Кларк

    20

    Лондон

     

    S2

    Джонс

    10

    Париж

     

    S3

    Блейк

    30

    Париж

    Подготовьте запрос и проверьте полученный результат.

    9. Фраза between.

    Пример.

    Выдать информацию о деталях, вес которых лежит в диапазоне от 16 до 19.

    Selectномер_детали, название, вес

    from P

    where вес between 16 and 19

     

    Результат:

    номер_детали

    название

    вес

     

    P2

    Болт

    17

     

    P3

    Винт

    17

     

    P6

    Блюм

    19

    Подготовьте запрос и проверьте полученный результат.

    10. Фраза in ( not in ).

    Пример.

    Выдать детали, вес которых равен 12, 16 или 17.
      1   2   3   4   5


    написать администратору сайта