Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД / DB_shared / БД_ЛР_5_6.doc
Скачиваний:
33
Добавлен:
18.02.2017
Размер:
324.61 Кб
Скачать

Лабораторные работы № 5, 6

Язык SQL. Оператор SELECT.

Теоретические сведения.

Структура языка SQL

Язык SQL имеет два основных компонента:

  • язык DDL(Data Definition Language), предназначенный для определения структур базы данных;

  • язык DML(Data Manipulation Language), предназначенный для выборки и обновления данных.

Манипулирование данными

К операторам языка SQL DML относятся:

  • SELECT – выборка данных из базы;

  • INSERT – вставка данных в таблицу;

  • UPDATE – обновление (изменение) данных в таблице;

  • DELETE – удаление данных из таблицы.

Рассмотрим оператор SELECT и его возможности.

Назначение оператора SELECT состоит в выборке и отображении данных одной или более таблиц базы данных. Это исключительно мощный оператор, способный выполнять действия, эквивалентные операторам реляционной алгебры selection, projection и join, причем в пределах единственной выполняемой команды.

SELECT – только выбирает данные из БД, он не может изменять хранимые данные, он может только изменить форму их отображения для пользователя.

Общий формат оператора SELECT имеет вид:

SELECT [DISTINCT | ALL] {* | [column_expression [AS new_name]] [, . . . ]}

FROM table_name [alias] [, . . . ]

[WHERE condition]

[GROUP BY column_list] [HAVING condition]

[ORDER BY column_list]

Здесь параметр column_expression представляет собой имя столбца или выражение из нескольких имен. Параметр table_name является именем существующих в базе данных таблицы или представления, к которым необходимо получить доступ. Необязательный параметр alias – это сокращение, устанавливаемое для имени таблицы table_name. Обработка элементов оператора SELECT выполняется в следующей последовательности.

FROM Определяются имена используемой таблицы или нескольких таблиц

WHERE Выполняется фильтрация строк объекта в соответствии с заданными условиями

GROUP BY Образуются группы строк, имеющих одно и то же значение в указанном столбце

HAVING Фильтруются группы строк объекта в соответствии с указанным условием

SELECT Устанавливается, какие столбцы должны присутствовать в выходных данных

ORDER BY Определяется упорядоченность результатов выполнения оператора

Работа с ms sql Server 2008

СУБД MS SQL Server 2008 является современной мощной системой промышленного уровня, предназначенной для параллельной сетевой работы большого количества пользователей.

Основная администраторская работа с SQL Server ведется с помощью специального программного продукта Microsoft SQL Server Management Studio (SSMS).

С помощью SSMS можно создавать, изменять и уничтожать базы данных (работать и со структурой и с содержимым БД).

На сервере может размещаться большое количество различных баз данных.

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

В SQL Server применяются понятия УЧАСТНИК БЕЗОПАСНОСТИ (сущность, которая может запросить ресурс сервера, базы данных или схемы) и ЗАЩИЩАЕМЫЙ ОБЪЕКТ (таблица, представление и т.д.).

На уровне сервера участником безопасности является Login (учетная запись), под которой можно подключиться к серверу. Учетная запись может быть учетной записью SQL Server или учетной записью операционной системы Windows, установленной на сервере.

На уровне БД участником безопасности является объект User (пользователь), который соответствует одной из учетных записей сервера. Учетной записи может соответствовать несколько пользователей для подключения к разным БД. Если у учетной записи нет в БД соответствующего ей пользователя, то она не имеет права на работу с этой БД.

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

В SQL Server любой объект БД находится в какой-либо схеме (schema). Схема является своего рода контейнером для объектов, облегчающим административную работу с БД. Каждой схемой могут владеть не только индивидуальные пользователи, но и роли.

Таким образом, в одной БД могут существовать объекты с одинаковыми названиями, но относящиеся к разным схемам. Для точного указания объекта нужно использовать двойное имя – <имя схемы>.<имя объекта>

Для понятного отображения структуры БД можно создавать диаграммы (аналог схемы данных в Access):

Подключение к ms sql Server

Запуск Microsoft SQL Server Management Studio на лабораторной работе:

Start – All Programs – Microsoft SQL Server 2008 R2 – SQL Server Management Studio. Пользователь и пароль – ‘Student’

Для написания новых запросов (в том числе с помощью оператора SELECT) в Microsoft SQL Server Management Studio (SSMS) вызывается специальное окно командой <New Query>. Сам запрос и/или результат его выполнения может быть сохранен (<File> - <Save>), а ранее сохраненный открыт (<File> - <Open>)

Структура базы данных

Таблица EMP (сотрудники)

ID_Emp

Идентификатор сотрудника

Name

Имя

ID_Job

Идентификатор должности

ID_Dep

Идентификатор отдела

ID_man

Идентификатор руководителя

Salary

Зарплата

Born_date

Дата рождения

Hire_date

Дата поступления на работу

Таблица DEP (отделы)

ID_Dep

Идентификатор отдела

Department

Название отдела

Таблица JOB (должности)

ID_Job

Идентификатор должности

Job

Название должности

Grade

Категория, к которой относится должность

Таблица SALGRADE (сетка зарплат)

Grade

Категория

Losal

Минимальная зарплата

Hisal

Максимальная зарплата

Таблица BONUS (выплачиваемые надбавки)

ID_bon

Идентификатор выплаты

ID_Emp

Идентификатор сотрудника

Bonus

Размер выплаты

Таблица PROJECT (проекты)

ID_Project

Идентификатор проекта

Project

Название проекта

Pr_begin

Начало

Pr_end

Окончание

Таблица PROJECT_EMP (участие сотрудников в проектах)

ID_PE

Идентификатор записи

ID_Emp

Идентификатор сотрудника

ID_Project

Идентификатор проекта

Соседние файлы в папке DB_shared