Шпаргалка по "Программированию и компьютеру"

Автор работы: Пользователь скрыл имя, 26 Января 2011 в 14:35, шпаргалка

Краткое описание

Работа содержит ответы на вопросы по дисциплине "Программирование и компьютеры".

Содержимое работы - 1 файл

шпоры БД.doc

— 405.00 Кб (Скачать файл)

23.Операторы  манипулирования  данными 

INSERT - вставка  строк в таблицу

Пример 1. Вставка одной строки в таблицу:

INSERT INTO

  P (PNUM, PNAME)

  VALUES (4, "Иванов");

Пример 2. Вставка в таблицу нескольких строк, выбранных из другой таблицы (в таблицу TMP_TABLE вставляются данные о поставщиках из таблицы P, имеющие номера, большие 2):

INSERT INTO

  TMP_TABLE (PNUM, PNAME)

  SELECT PNUM, PNAME

    FROM P

    WHERE P.PNUM>2;

UPDATE - обновление строк в таблице

Пример 3. Обновление нескольких строк в таблице:

UPDATE P

  SET PNAME = "Пушников"

  WHERE P.PNUM = 1;

DELETE - удаление  строк в таблице

Пример 4. Удаление нескольких строк в таблице:

DELETE FROM P

  WHERE P.PNUM = 1;

Пример 5. Удаление всех строк в таблице:

DELETE FROM P;

Примеры использования оператора SELECT

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

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

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

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

24.Оператор SELECT: отбор данных из таблиц

Выбрать все  строки из таблицы поставщиков, удовлетворяющих  некоторому условию (ключевое слово  WHERE…): 

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

Использование скалярных выражений и переименований колонок в запросах (ключевое слово AS…): 

Упорядочение  результатов запроса (ключевое слово  ORDER BY…) по нескольким полям с возрастанием или убыванием (ключевые слова ASC, DESC):  

Пример 10. Естественное соединение таблиц:

а) - явное  указание условий соединения,

б) - ключевые слова JOIN… USING… позволяют явно указать, по каким из общих колонок таблиц будет производиться соединение

 в) - ключевое  слово NATURAL JOIN - автоматически соединяет по всем одинаковым полям в таблицах 

25.Оператор SELECT: использование имен корреляции и агрегатных функций

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

Пример 13. Отобрать все пары поставщиков таким образом, чтобы первый поставщик в паре имел статус, больший статуса второго поставщика:

SELECT

    P1.PNAME AS PNAME1,

    P1.PSTATUS AS PSTATUS1,

    P2.PNAME AS PNAME2,

    P2.PSTATUS AS PSTATUS2

  FROM

    P P1, P P2

  WHERE P1.PSTATUS1 > P2.PSTATUS2;

Получить  общее, максимальное, минимальное и  среднее количества поставляемых деталей (ключевые слова SUM, MAX, MIN, AVG):

SELECT

    SUM(PD.VOLUME) AS SM,

    MAX(PD.VOLUME) AS MX,

    MIN(PD.VOLUME) AS MN,

    AVG(PD.VOLUME) AS AV

  FROM PD;

Для каждой детали получить суммарное поставляемое количество (ключевое слово GROUP BY…):

26.Оператор SELECT: использование подзапросов

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

Пример 18. Получить список поставщиков, статус которых меньше максимального статуса в таблице поставщиков (сравнение с подзапросом):

SELECT *

  FROM P

  WHERE P.STATYS <

    (SELECT MAX(P.STATUS)

        FROM P);

Пример 19. Использование предиката IN. Получить список поставщиков, поставляющих деталь номер 2:

SELECT *

  FROM P

  WHERE P.PNUM IN

    (SELECT DISTINCT PD.PNUM

        FROM PD

        WHERE PD.DNUM = 2);

Пример 20. Использование предиката (NOT) и EXIST. Получить список поставщиков, (не) поставляющих деталь номер 2:

SELECT *

  FROM P

  WHERE (NOT) EXIST

    (SELECT *

        FROM PD

        WHERE

            PD.PNUM = P.PNUM AND

            PD.DNUM = 2); 
 
 
 

27. Оператор SELECT: использование объединения, пересечения и разности для реализации реляционной алгебры

Пример 21. Получить имена поставщиков, имеющих статус, больший 3 или поставляющих хотя бы одну деталь номер 2 (объединение двух подзапросов - ключевое слово UNION):

SELECT P.PNAME

  FROM P

  WHERE P.STATUS > 3

  UNION

  SELECT P.PNAME

    FROM P, PD

    WHERE P.PNUM = PD.PNUM AND

        PD.DNUM = 2;

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

Пример 22. Получить имена поставщиков, имеющих статус, больший 3 и одновременно поставляющих хотя бы одну деталь номер 2 (пересечение двух подзапросов - ключевое слово INTERSECT):

SELECT P.PNAME

  FROM P

  WHERE P.STATUS > 3

  INTERSECT

  SELECT P.PNAME

    FROM P, PD

    WHERE P.PNUM = PD.PNUM AND

        PD.DNUM = 2;

Пример 23. Получить имена поставщиков, имеющих статус, больший 3, за исключением тех, кто поставляет хотя бы одну деталь номер 2 (разность двух подзапросов - ключевое слово EXCEPT):

SELECT P.PNAME

  FROM P

  WHERE P.STATUS > 3

EXCEPT

  SELECT P.PNAME

    FROM P, PD

    WHERE P.PNUM = PD.PNUM AND

        PD.DNUM = 2;

28.Синтаксис оператора SELECT 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

32 почему необходимы  транзакции

Концепция транзакций – неотъемлемая часть любой клиент-серверной  базы данных. Под транзакцией понимается неделимая с точки зрения воздействия  на БД последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации), приводящая к одному из двух возможных результатов: либо последовательность выполняется, если все операторы правильные, либо вся транзакция откатывается, если хотя бы один оператор не может быть успешно выполнен. Обработка транзакций гарантирует целостность информации в базе данных. Таким образом, транзакция переводит базу данных из одного целостного состояния в другое.

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

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

33 понятие транзакции

ACID-свойства  транзакций

Характеристики  транзакций описываются в терминах ACID (Atomicity, Consistency, Isolation, Durability – неделимость, согласованность, изолированность, устойчивость).

• Транзакция неделима в том смысле, что представляет собой единое целое. Все ее компоненты либо имеют место, либо нет. Не бывает частичной транзакции. Если может быть выполнена лишь часть транзакции, она отклоняется.

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

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

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

транзакции  в последовательности независимы.

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

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

Информация о работе Шпаргалка по "Программированию и компьютеру"