Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Изменение данных




Вставка данных в таблицы

Варианты заданий

Содержание отчета

Содержание отчета:

— схема БД;

— скрипт SQL для создания таблиц;

— пояснения структуры и ограничений на значения данных, ссылочной целостности, реализованных в БД.

Варианты заданий, приведены в ПРИЛОЖЕНИИ.


Лабораторная работа 2. Создание и заполнение таблиц базы данных. Часть 2.

Вставку данных в таблицы осуществляет команда insert into <имя таблицы> [ (<столбец 1> [, <столбец 2> [, … ] ]) ] values (<значение 1> [, <значение 2> [, … ] ]), при этом <значение i> будет подставлено в <столбец i>. Если значения указываются для всех столбцов таблицы, список столбцов может быть опущен, в данном случае последовательность указания значений должна строго соответствовать последовательности столбцов в операторе create table.

Создадим в БД таблицу:

create table Студент (

Ном_Зач int primary key,

ФИО varchar(50) not null,

Факультет tinyint not null,

Группа char(7) not null)

go

 

Для ее заполнения можно воспользоваться следующими операторами:

insert into Студент values (11, 'Лисичкин', 4, '4001')

insert into Студент values (22, 'Сыроежкин', 4, '4001')

insert into Студент values (33, 'Груздев', 4, '4002КФс')

insert into Студент values (44, 'Сморчков', 4, '4002КФс')

insert into Студент values (55, 'Волнушкин', 5, '5001')

insert into Студент values (77, 'Строчков', 5, '5001')

insert into Студент values (88, 'Белов', 5, '5002К')

insert into Студент values (87, 'Краснов', 5, '5002К')

go

 

Создадим в БД таблицу:

create table Оценка (

Id int identity primary key,

Ном_Зач int not null,

Дисциплина varchar(50) not null,

Оценка tinyint not null,

foreign key (Ном_Зач) references Студент (Ном_Зач)

on delete cascade

on update cascade)

go

 

Для ее заполнения можно воспользоваться следующими операторами:

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (11, 'БД', 5)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (11, 'ФиЛП', 4)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (22, 'БД', 4)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (22, 'ФиЛП', 4)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (33, 'БД', 3)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (33, 'ФиЛП', 4)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (44, 'БД', 4)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (44, 'ФиЛП', 3)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (55, 'БД', 4)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (55, 'АСУ', 5)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (77, 'БД', 5)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (77, 'АСУ', 4)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (88, 'БД', 3)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (88, 'АСУ', 3)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (87, 'БД', 5)

insert into Оценка (Ном_Зач, Дисциплина, Оценка) values (87, 'АСУ', 5)

go

 

При вставке данных значения полей identity не указываются. Значение, присвоенное данному полю можно получить, опросив глобальную системную переменную @@ identity:

select @@identity

go

 

Для просмотра данных в таблице можно воспользоваться простейшим вариантом оператора выборки данных: select * from <имя таблицы>:

select * from Студент

select * from Оценка

go

 

Вставку данных в таблицы возможна по результатам выборки из других таблиц оператором insert into <имя таблицы> [ (<столбец 1> [, <столбец 2> [, … ] ]) ] select <выражение 1> [, < выражение 2> [, … ] ] from <имя таблицы 1> [, <имя таблицы 2> [, … ] ] [ where <условие> ]. В простейшем случае < выражение i> — это имя столбца.

Создадим в БД таблицу:

create table Группа (

Id smallint identity primary key,

Номер char(7) not null,

Факультет tinyint not null)

go

 

для ее заполнения можно воспользоваться следующим оператором:

insert into Группа (Номер, Факультет)

select distinct Группа, Факультет from Студент

go

Конструкция distinct обеспечивает исключение повторяющихся строк при выборке из таблиц.

Изменение данных в таблице осуществляет оператор update <имя таблицы> set <имя столбца 1> = <выражение 1> [, < имя столбца 2> = < выражение 2> [, … ] ] [ where <условие> ]. Здесь <условие> — это логическое выражение, построенное из имен столбцов, констант, операций сравнения (>, <, = и др.), логических операции (and, or, not), оператора проверки принадлежности множеству (in), скобок и некоторых других конструкций. Оператор update модифицирует все записи таблицы, для которых оказалось истинным <условие>. Если раздел where опущен — будут изменены все записи таблицы.

Оператор:

update Оценка

set

Оценка = 4

where

Ном_зач = 87 and Дисциплина = 'БД'

 

go

 

изменит значение оценки, полученной указанным студентом по заданной дисциплине.

Оператор:

update Студент

set

Факультет = 3,

Группа = '3002К'

where

Группа = '5002К'

go

 

осуществит перевод студентов группы 5002К на 3-й факультет.




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 378; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.