Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры о бд.docx
Скачиваний:
10
Добавлен:
23.09.2019
Размер:
461.01 Кб
Скачать

- Анализ функционирования и поддержка исходного варианта бд

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

- Адаптация и модернизация системы

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

46) Disk init

NAME = <’Логическое имя’>,

PSYSNAME = <’Физическое имя’>,

VDEVNO = <Номер устройства>,

SIZE = <Размер>

[, VSTART = <Адрес>]

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

Физическое имя – это буква дисковода, полный путь и имя файла (устройства). Естественно, что путь должен удовлетворять правилам операционной системы.

Номер виртуального устройства – это идентификатор устройства. Он может принимать значения от 0 до 255. Идентификатор 0 зарезервирован для устройства master.

С помощью параметра SIZE устанавливается размер устройства. Размер измеряется в страницах.

Параметр VSTART необходим только в определенных случаях. Он представляет собой стартовое смещение в страницах.

47) CREATE DATABASE <Имя БД>

[ON {DEFAULT | <Имя устройства>} [=<Размер>]

[, <Имя устройства> [=< Размер>]]…]]

[LOG ON <Имя устройства> [=<Размер>]

[, <Имя устройства> [=<Размер>]]…]

[FOR LOAD]

При создании БД можно указать устройство, на котором она будет храниться, а также устройство, на котором будет размещаться журнал транзакций

CREATE DATABASE faculty

ON facultet = 10

LOG ON f_log = 10

Системные типы данных SQL Server

Тип

Занимаемый объем

Описание

1

Bynary

До 1,2 Гб

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

2

Varbinary

До 1,2 гб

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

3

Tinyint

1 байт

Целое положительное число от 0 до 255

4

Char

1 байт на символ

Символьное выражение; может содержать любые символы (до 254 для одного поля)

5

Varchar

Символьное выражение; может содержать любые символы (до 254 для одного поля)

6

Money

8 байт

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

7

Datetime

8 байт

Дата и время; может содержать время, день, месяц и год, точность 3,33 миллисекунды

8

Smalldatetime

4 байта

Дата и время; точность 2 минута

9

Bit

1 байт

Булево выражение ( .T. или .F.)

10

Float

От 1 до 20 байтов

Числовое выражение; может содержать целые или дробные числа со знаком

11

Smallint

2 байта

Целое число в диапазоне от –32 768 до +32 767

12

Int

4 байта

Целое число. Можно хранить числа от –2 147 483 647 до 2 147 483 646

13

Image

4 байта

Поле для ссылки на объект OLE

14

Text

4 байта

Поле примечаний для ссылки на блок данных

15

Decimal

Точное числовое значение, которое может иметь до 38 цифр (р); число цифр после запятой (s) не может превышать р

16

Numeric

Точное числовое значение, которое может иметь до 38 цифр (р); число цифр после запятой (s) не может превышать р

17

Real

4 байта

Число с плавающей точкой одинарной точности. Можно хранить числа в интервале от 1.401298Е-45 до 3.402823Е38

Числовые типы данных

Тип данных

Общее количество цифр

Общее количество цифр по умолчанию

1

Decimal[(p[,s])]

1 – 38

18

2

Numeric[(p[,s])]

1 – 38

18

3

Float(n)

1 – 15

4

Real

1 – 7

5

Float

8 – 15

6

Double precision

8 – 15

15

48) CREATE TABLE [<Имя БД>. [<Имя владельца>].] <Имя таблицы>

({<Имя поля> <Свойства поля> [<Ограничения>

[<Ограничения> […<Ограничения>]]]| [[,]<Ограничения>]}

[[,] {next_<Имя колонки> | <Ограничения>}…])

{ ON <Имя сегмента>]

<Имя БД> - имя базы данных, в которой будет находиться таблица. Можно не указывать данный аргумент, если находитесь в БД, в которой создается таблица.

<Имя владельца> - владелец создаваемой таблицы.

<Имя таблицы> - название таблицы, которое должно удовлетворять правилам наименованных объектов SQL Server и быть уникальным в БД.

<Имя поля> - имя столбца, которое должно удовлетворять правилам SQL Server и быть уникальным в таблице. Далее указывается тип поля и его длина (если это требуется).

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

DROP TABLE имя_таблицы [RESTRICT | CASCADE]

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

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

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

50) Для создания базы данных в окне Object Explorer выбираем объект «Databases» и пункт «New database…».

Появиться диалоговое окно создания новой базы данных, где вводим название(Universitet) и нажимаем ОК

Для создания таблицы в окне «Object Explorer» выбираем созданную базу данных, и в раскрывшемся списке правой кнопкой мыши нажимаем на пункте «Tables», в котором находим и выделяем пункт «New table…». В рабочей области СУБД MS SQL Server откроется форма для создания таблицы

В столбце Column Name указывается название поля таблицы, в столбце Data Type – указывается тип столбца. В столбце Allow Nulls устанавливается флажок, предоставляющий возможность оставлять ячейку не заполненной (пустой).

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

Для этого выбираем пункт «Set Primary Key»

Далее в окне «Column Properties» находим пункт «Identity Specification»

Нажимаем на кнопку «Сохранить» и вводим название таблицы: University”.

ER-Диаграммы.

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

Для создания диаграммы, в окне “Object Explorer” выбираем нашу базу данных, нажимаем правой клавишей мыши на вкладке Database Diagram, и выбираем пункт «New Database Diagram», в котором добавляем все таблицы нашей базы данных

Теперь необходимо создать связи (отношения) между таблицами. Проще всего это сделать на ER-Диаграмме. Для начала создадим связь между таблицей «Университетов» и «Факультетов», для этого мышкой нажмём на кнопку, находящуюся слева от строки со столбцом «IdUniversity» из таблицы «University», и удерживая нажатой левую кнопку мыши перетащим её на кнопку слева от столбца «IdUniversity» из таблицы «Fack». Появится следующее диалоговое окно, в котором проверим, названия столбцов связывающихся между собой, и т.к. всё в порядке нажмём «ОК» (

51) Модификация данных может выполняться с помощью команд:

  • DELETE (удалить),

  • INSERT (вставить),

  • UPDATE (обновить).

52) INSERT [INTO]

{<Имя столбца> | < Имя представления>

[(<Список колонок>)]

{DEFAULT VALUES | <Список значений> | <Выражение выборки>

INSERT INTO [University].[dbo].[University]

VALUES ('КубГТУ', 'Краснодар, Красная 135','2500245')

53) Если вам нужно ввести пустое значение (NULL), вы вводите его точно так же, как и обычное значение.

INSERT INTO University

VALUES (100, ‘КубГТУ’, Null);

54) Удаление единственной записи

DELETE [FROM] {<Имя таблицы> | <Имя представления>}

[WHERE <Условия>]

Если не указать в предложении WHERE условие отбора, будут удалены все записи таблицы.

Например: Delete [University].[dbo].[Fack]

WHERE [FackName] != 'КТАСиЗИ'

Данный пример удалит все строки из таблицы факультетов, которые не являются факультетом 'КТАСиЗИ'.

Кроме этого, существует расширение команды DELETE с помощью предложения FROM:

DELETE [FROM] {<Имя таблицы> | <Имя представления>}

[FROM {<Имя таблицы> | <Имя представления>}

[, {<Имя таблицы n> | <Имя представления n>}]…]

[…, {<Имя таблицы 16> | <Имя представления 16>}]]

[WHERE <Условия>]

Например удалить из таблицы «Поставщики» строку с полем «ПС=7».

DELETE

FROM Поставщики

WHERE ПС = 7;

55) Удаление множества записей

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

DELETE

FROM Поставки;

56) Удаление с вложенным подзапросом

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

DELETE

FROM Поставки

WHERE ПС IN

(SELECT ПС

FROM Поставщики

WHERE Город = 'Сочи');

57) Для модификации данных в SQL Server используется команда UPDATE, которая имеет следующий синтаксис:

UPDATE {<Имя таблицы> | <Имя представления>}

SET [{<Имя таблицы> | <Имя представления>}]

{<Список столбцов>

| <Список переменных>

| <Список переменных или столбцов>}

[, { <Список столбцов N>

| <Список переменных N>

| <Список переменных или столбцов N>}]]

[FROM {<Имя таблицы> | <Имя представления>}

[, {<Имя таблицы> | <Имя представления>}]…]

[WHERE <Опция>]

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

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

Например:

UPDATE [University].[dbo].[Fack]

SET [FackName] = 'КТАСиЗИ'

FROM [University].[dbo].[Fack], [University].[dbo].[Univeristy]

WHERE ([Univeristy].[UniveristyName]='КубГТУ') and [Fack].[FackName]='КТАС')

Модификация единственной записи

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

Например, необходимо выполнить изменение поля rating, одинаковое для всех заказчиков продавца Петров (имеющего snum=1001):

UPDATE Customers

SET rating = 200

WHERE snum = 1001;

59) Обновление множества записей

Пусть требуется утроить цену всех продуктов таблицы поставки (кроме цены за кофе, где код продукта ПР = 17).

UPDATE Поставки

SET Цена = Цена * 3

WHERE ПР <> 17;

60) Обновление с подзапросом

Установить равной нулю цену и К_во продуктов для поставщиков из Москвы и Ростова.

UPDATE Поставки

SET Цена = 0, К_во = 0

WHERE ПС IN

(SELECT ПС

FROM Поставщики

WHERE Город IN ('Москва', 'Ростов'));

61) Обновление нескольких таблиц

Пусть необходимо изменить данные о продукте с кодом 13 в двух таблицах «Состав» и «Продукты».

Например требуется изменить номер продукта ПР = 13 на ПР = 20.

UPDATE Продукты UPDATE Состав

SET ПР = 20 SET ПР = 20

WHERE ПР = 13; WHERE ПР = 13;

62) SELECT <Список столбцов>

FROM <Список таблиц>

[WHERE <Условия поиска>]

SELECT [PredpriyatieName], [FIOrukovoditelya]

FROM Nalogi.dbo.Predpriyatie

WHERE [Idpredpriyatie]>5

Список столбцов – описывает столбцы, которые требуется выбрать.

Список таблиц – указывает таблицы, из которых выбираются данные.

Предложение WHERE указывает, какие записи надо выбрать. Предложения SELECT и WHERE позволяют включать вычисление, константы и другие выражения.

Данные, которые выбираются с помощью команды SELECT, – это пересечение SELECT (столбцы) и WHERE (записи).

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

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

63) Операторы, используемые в предложении WHERE

Тип операторов

Операторы

Сравнение

(=, >, <, >=, <=, <>, !=, !<, !>)

Интервал

BETWEEN, NOT BETWEEN

Список

IN, NOT IN

Сравнение строк

LIKE, NOT LIKE

Проверка значения

IS NULL, IS NOT NULL

Логические

AND, OR

Отрицание

NOT

Операторы сравнения

Оператор

Значение

=

Равно

>

Больше чем

<

Меньше чем

>=

Не меньше

<=

Не больше

!=

Не равно

<>

Не равно

Обычно операторы сравнения используются для работы с числами. Но в SQL вы можете их использовать и с типами char и varchar: тогда знак “<” значит раньше по алфавиту, а “>” – позже. Кроме того, операторы сравнения можно использовать для дат.

Обычно в предложении WHERE приходится использовать несколько условий поиска, которые объединяются логическими операторами AND, OR, NOT

64)

65)

66)

67) Функциями агрегирования называются функции, которые используются для получения суммарных значений. Они применяются ко: всем записям в таблице; только тем записям, которые выбираются в предложении WHERE; группам записей, созданным с помощью предложения GROUP BY

Функции агрегирования всегда требуют аргумента. Аргумент является выражением и заключается в скобки.

<Функция агрегирования> ([DISTINCT] <Выражение>)

Выражением, как правило, является столбец, но это может быть константа, функция, комбинация имён столбцов, констант, функций, объединенных арифметическими операторами.

Функции агрегирования SQL Server

Функция

Результат

AVG

Возвращает среднее арифметическое для значений выражения; null-значения игнорируются

COUNT

Возвращает количество элементов в выражении (равное количеству строк)

COUNT_BIG

То же самое, что и COUNT, но результат имеет тип данных Bigint, а не Int

GROUPING

Возвращает специальную дополнительную колонку; применяется, только когда предложение GROUP BY содержит операцию CUBE или ROLLUP.

MAX

Возвращает наибольшее значение из значений выражения

MIN

Возвращает наименьшее значение из значений выражения

STDEV

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

STDEVP

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

SUM

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

VAR

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

VARP

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

Функции SUM и AVG могут использоваться только с числовыми выражениями. Остальные функции можно применять с выражениями любого типа.

Использование опции DISTINCT позволяет не учитывать дублирующие друг друга значения из выборки перед применением функций SUM, AVG, COUNT.

68) При использовании GROUP BY с предложением WHERE необходимо помнить о последовательности выполнения операций. Вначале предложение WHERE фильтрует данные, а затем, из оставшихся записей, GROUP BY создает наборы. Те записи, которые не будут отобраны WHERE, не попадут ни в одну группу.

При использовании GROUP BY никакой сортировки не происходит. Для того чтобы отсортировать полученные данные в нужном порядке, используйте ORDER BY. Однако здесь есть одно существенное «но». Предложение GROUP BY должно обязательно находиться перед предложением ORDER BY.

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

Объединять таблицы можно с помощью предложения WHERE.

Общий синтаксис объединения следующий:

SELECT < Список столбцов>

FROM <Имя таблицы 1>, <Имя таблицы 2> [, <Имя таблицы 3>].....

WHERE [<Имя таблицы 1>.]<Имя столбца> <Оператор объединения> [<Имя таблицы 2>.]<Имя столбца>

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

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

создания таблицы на основе выборки.

Команда SELECT с оператором INTO позволяет определить таблицу и добавить в неё данные без использования команды CREATE TABLE. Команда SELECT INTO создает новую таблицу, опираясь на результаты запроса. В случае если таблица с таким именем уже существует, команда заканчивается неудачно и генерируется системное сообщение. Новая таблица создается со столбцами, которые вы указываете в списке выборки. Синтаксис запроса для создания таблиц следующий:

SELECT <Список столбцов>

INTO <Имя новой таблицы>

FROM <Список таблиц>

WHERE <Условие поиска>

69) Скалярные функции

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

Типы скалярных функций SQL Server

Тип

Применение

Строковые функции

Операции со строками.

Математические функции 

Базовые математические операции.

Функции даты

Операции с датами.

Системные функции

Получение системной информации.

Функции защиты 

Получение информации безопасности.

Функции метаданных 

Проверка сведений об объектах баз данных.

Текстовые и графические функции 

Чтение данных и модификация текстовых и графических столбцов.

70) Агрегатные функции выполняют вычисление на наборе значений и возвращают одиночное значение. Агрегатные функции, за исключением COUNT, не учитывают значения NULL. Агрегатные функции часто используются в выражении GROUP BY инструкции SELECT.

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

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

  • Список выбора инструкции SELECT (вложенный или внешний запрос).

  • Предложение HAVING.

Transact-SQL предоставляет следующие агрегатные функции.

AVG

MIN

CHECKSUM_AGG

SUM

COUNT

STDEV

COUNT_BIG

STDEVP

GROUPING

VAR

MAX

VARP

71)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]