Главная Обратная связь

Дисциплины:






UPDATE DekanatSchema.Teacher



SET Teach_Stepen = 'Профессор'

WHERE Teach_ID = 2;

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

 

UPDATE StudySchema.Students

SET Stud_Stip= 20000

WHERE Stud_ID IN

(SELECT Stud_ID

FROM StudySchema.Progress

WHERE Ocenka>=8

GROUP BY Stud_ID

HAVING COUNT(*)=3)

Контрольные вопросы

1. Какие команды манипуляции данными вы знаете?

2. Дайте определение целостности данных.

3. Сформулируйте правило целостности на уровне ссылок.

4. Что означает определение поля NOT NULL?

5. Если поле определено как NULL, значит ли это, что в это поле обязательно должно быть что-нибудь введено?

6. Что означает определение поля identity?

Лабораторная работа № 4. Простые запросы к базе данных.

1 Цель работы:научить студентов создавать простые запросы к базе данных скриптом и в графической среде СУБД MS SQL Server 2008.

 

Задание на лабораторную работу

Перед выполнением задания рекомендуется проработать все примеры, приведенные в п.п. 3.1 – 3.6.

 

Выполните поиск информации в отдельных таблицах:

1. Список преподавателей с указанием их должностей в алфавитном порядке.

2. Названия кафедр с фамилиями заведующих.

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

4. Список студентов, у которых стипендия больше 2000.

5. Список студентов, проживающих в Астане и Караганде.

6. Список студентов второй группы, у которых нет стипендии.

7. Список студентов третьей группы, фамилии которых начинаются на букву «А».

8. Список студентов, которые родились в 1988 году.

9. Посчитайте суммарную стипендию студентов третьей группы.

10. Посчитайте среднее число лекционных часов по всем предметам.

11. Сколько студентов введено в базу данных?

12. Выведите всю информацию о предметах.

13. Список студентов, которые не проживают в Алматы.

14. Список студентов, чьи дни рождения в мае.

15. Номера студентов с минимальной оценкой из ведомости успеваемости.

16. Номера студентов с максимальной оценкой из ведомости успеваемости.

17. Выведите список студентов и их возраст.

 

Методические указания к выполнению лабораторной работы

Извлечение информации из таблиц

В стандарте SQL есть несколько базовых команд:

 

DML:

SELECT

INSERT

DELETE

UPDATE

DDL:

CREATE

ALTER

DROP

DCL:

GRANT

REVOKE



DENY(для Microsoft)

 

Зная эти команды, можно достаточно просто изучить язык работы с базами данных. С командами DDL создания и управления БД кратко мы познакомились в предыдущих лабораторных. Рассмотрим базовую команду создания запросов к БД – SELECT.

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

Для выборки данных в Transact-SQL используется инструкция SELECT. Большинство реальных запросов SQL предназначено для выборки не всех, а определенных строк и столбцов таблиц.

 

Инструкция SELECT

 

Извлекает строки из базы данных и позволяет выбирать одну или несколько строк или столбцов в одной или нескольких таблицах. Это основной структурный компонент SQL, используемый для отправки запросов. Инструкция SELECT не изменяет, не вставляет и не удаляет данные.

 

Синтаксис:

 

SELECT select_list

[ FROM table_source ]

[ WHERE search_condition ]

[ GROUP BY group_by_expression ]

[ HAVING search_condition ]

[ ORDER BY order_expression [ ASC | DESC ] ]

Замечания:

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

 

Стратегия выполнения:

1. Создайте объединение таблиц в предложении FROM. При использовании явного синтаксиса JOIN (рассматривается в лабораторной работе № 5) результат JOIN будет явным. Если в предложении FROM имеется список таблиц, разделенных запятыми, это неявное объединение таблиц векторным произведением.

2. При наличии предложения WHERE следует применять данные условия поиска к строкам, полученным после шага 1, и сохранять только те строки, которые удовлетворяют условию.

3. Если в предложении SELECT нет объединений, как нет и предложения GROUP BY, перейдите к шагу 7.

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

5. К каждой группе, полученной после шага 4, примените предложение HAVING, если таковое указано. Останутся только те группы, которые удовлетворят предложению HAVING.

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

7. Если в предложении SELECT содержится ключевое слово DISTINCT, удалите все повторяющиеся строки, полученные в результате шага 6.

8. Если есть предложение ORDER BY, выполните сортировку результатов шага 7, как указано выражением порядка:

 

SELECT_LIST -указывает столбцы, возвращаемые запросом.

 

В данной лабораторной работе рассмотрим аргументы и ограничения справке оператора SELECT:

 

SELECT [ ALL | DISTINCT ] TOP (expression) < select_list >

< select_list > ::=

{ *

| { table_name | table_alias }.*

| { column_name | expression } [ [ AS ] column_alias ]

} [ ,...n ]

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

Аргумент column_alias - альтернативное имя для замены имени столбца в наборе результатов запроса. Например, для столбца «quantity» может быть указан псевдоним «Quantity», «Quantity to Date» или «Qty». Кроме того, псевдонимы используются для указания имен для результатов выражений (AS можно не использовать), например следующие два выражения дают одинаковый результат:

 

SELECT Stud_STIP AS 'Стипендия' FROM Students SELECT Stud_STIP 'Стипендия' FROM Students

 





sdamzavas.net - 2019 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...