Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Update - Обновление данных в таблице




UPDATE Users SET user_name = 'Иванов И.И.' WHERE user_id = 1;

Давайте разберем запрос. UPDATE[Обновить] Users SET[Установить [поле] user_name = 'Иванов И.И.' WHERE[Где] user_id = 1. В данном случае мы изменили ФИО пользователя №1 на "Иванов И.И.".

Insert - Вставка новых данных в таблицу

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

INSERT INTO Users (user_id, user_name) VALUES (2, 'ПетровП.П.');

Разбираемзапрос. INSERT INTO[Вставитьв] Users ([перечньполей]user_id, user_name) VALUES ([Перечньзначений]2, 'ПетровП.'). Запрос вставит запись в таблицу со значениями user_idравному 2 и user_name равному 'Петров П.П.'.

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

INSERT INTO Users VALUES (2, 'ПетровП.П.');

Однако при этом важно соблюдать порядок столбцов.

При вставке нескольких строк можно воспользоваться запросом множественной вставки.

INSERT INTO Users VALUES (2, 'ПетровП.П.'), (3, 'СидоровС.С.');

Delete - Удалениеданныхизтаблицы

DELETE * FROM Users WHERE user_id = 1;

Тут все просто. DELETE[Удалить] *[Все] FROM[Из] Users.

Запросу неважно, что будет указано после команды DELETE, будь это перечень полей или одно поле, он удалит всю строку данных.

 

Триггер - процедура, выполняемая при перед/после выполнения запросов вставки, обновления или удаления.

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

Рассмотрим на примере.

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

CREATE TABLE History (history_id INT     /*Идентификаторзаписи*/history_type INT     /*Типизменения*/history_date DATETIME /*Датаизменения */history_text TEXT    /*Текстизменения*/history_user CHAR(64) /*Пользователь*/);

 

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

В таблицах данные хранятся в случайном порядке и, иногда, запись перебором (если индекса нет) найти очень затратно по времени. Индекс содержит в себе указатели на группы данных в таблице, объединенные по какому-либо критерию.

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

ALTER TABLE Users ADD COLUMN group_id_ref INT;

Теперь у нас справочник пользователей имеет привязку к группе. Заполним пустые поля записями 1 и 2. При выполнении запроса вида:

SELECT * FROM Users WHERE group_id_ref = 1;

будут проверяться все записи в таблице на предмет равенства поля group_id_ref единице.

Для ускорения поиска необходимо добавить индекс.

ALTER TABLE Users ADD INDEX group_id_idx (group_id_ref);

 

MySQL (МФА: [maɪ ˌɛskjuːˈɛl]) — свободнаяреляционная система управления базами данных[6]. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой SunMicrosystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU GeneralPublicLicense, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP, VertrigoServ. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Охарактеризуйте понятие домена в SQL, процесс их создания, изменения, удаление.

1) Понятие домена
Домен или область допустимых значений столбца определяет пользовательский тип данных и позволяет дополнительно указать:
a) Значение по умолчанию.
b) Ограничения на значения.
c) Правила проверки ограничений.
d) Время проверки ограничений.
e) Правила сравнения (для символьного типа).

2) Создание домена
CREATE DOMAIN <имя домена> [AS] <тип данных> [(<размер>)] [DEFAULT <значение по умолчанию>] [[<имя ограничения>] <проверка ограничения>]
[[NOT] DEFERRABLE]
[INITIALLY IMMEDIATE|DEFERRED]]
[COLLATE <имя сопоставления>]

Пример:

CREATE DOMAIN DComm AS Decimal CHECK (Comm> 0)

3) Изменение домена
ALTER DOMAIN <имя домена>
{SET DEFAULT <значение по умолчанию> |
DROP DEFAULT|ADD <имя ограничения> |
DROP CONSTRAINT <имя ограничения>}

Пример:

ALTER DOMAIN DSNUM ADD Range_chech CHEK (SNum BETWEEN 1000 AND 10000)

4) Удалениедомена
DROP DOMAIN <имядомена> CASCADE|RESTRICT

5) Ключевые слова
a) [NOT] DEFERRABLE
Устанавливает [не] отсроченную проверку ограничения на значения столбца.
По умолчанию действует NOT.
Его обычно указывают для столбцов с PK, UNIQUE, многих ограничений для столбца.
Отсроченную проверку чаще указывают для утверждений.

b) INITIALLY IMMEDIATE|DEFERRED
Используется вместе с DEFERRABLE и устанавливает режим проверки ограничения столбца.
IMMEDIATE (немедленный) – после каждого оператора обновления.
DEFERRED (отсроченный) – по окончанию транзакции, т.е. после оператора COMMIT.

c) CASCADE и RESTRICT
CASCADE – при удалении домена тип данных домена, значение по умолчанию и ограничения столбца передаются в виде соответствующих типов данных, значений по умолчанию и ограничений на соответствующие столбцы таблиц.
RESTRICT – запрещает удалять используемый домен.

d) CHECK
Ограничение CHECK на значение столбца может включать проверки для других столбцов, если они включены в подзапрос в разделе WHERE.
Следовательно, <предикат> может стать ложным, если не выполняется условие не проверяемого, а кого-то другого столбца и будет ошибка.




























Охарактеризуйте понятие таблицы в SQL, процесс её создания, модификации, удаления.

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

Для создания таблиц программным способом используют оператор CREATE TABLE. Для этого нужно указать следующие данные:

· - имя таблицы, которое указывается после ключевого слова CREATE TABLE

· - имена и определения столбцов таблицы, отделены запятыми

· - в некоторых СУБД также требуется, чтобы было указано местоположение таблицы.

· Удаление таблиц осуществляется с помощью оператора DROP TABLE. Чтобы удалить таблицу Sellers_new, мы можем прописать следующий запрос:

· DROP TABLE Sellers_new

· Во многих СУБД применяются правила, предотвращающие удаление таблиц, которые являются уже связаны с другими таблицами. Если эти правила действуют и вы удаляете такую таблицу, то СУБД блокирует операцию удаления до тех пор, пока не будет удалена связь. Такие меры предотвращают случайное удаление нужных таблиц.










Последнее изменение этой страницы: 2018-05-10; просмотров: 227.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...