- •1)Основные функции системы управления базами данных.
- •2)Виды моделей данных. Примеры.
- •3)Три уровня представления данных в субд (ansi/sparc).
- •4)Архитектурные решения, используемые при реализации многопользовательских субд.
- •5)Классификация бд. Примеры субд
- •6)Основные понятия реляционных баз данных (тип данных, домен, атрибут, отношение, заголовок отношения, кортеж, тело отношения, значение отношения, переменная отношения, первичный ключ). Пример.
- •7)Целостность реляционных данных. Ключи (потенциальные, первичные, альтернативные, внешние)
- •8)Язык sql. Составные части. Разновидностями языка sql. Отличие от процедурных языков программирования.
- •10)Команда create database. Команды выбора бд.
- •9)Архитектура и принципы физического хранения данных в субд MySql
- •11) Команда создания таблиц. Пример для субд MySql. Просмотр структуры таблицы.
- •12)Команда изменения структуры таблицы. Основные преобразования, выполняемые этим оператором. Примеры для субд MySql.
- •13)Три категории типов данных столбцов субд MySql. Сравнить типы данных char и varchar.
- •14)Три категории типов данных столбцов субд MySql. Сравнить типы данных set и enum.
- •15)Три категории типов данных столбцов субд MySql. Сравнить типы данных blob и text.
- •16)Типы данных даты и времени субд MySql.
- •17)Запись данных в таблицу субд MySql. Ввод данных из файла.
- •5.1. Запись данных в таблицы
- •18)Синтаксис оператора select. Выборка данных с помощью условия. Примеры для субд MySql.
- •19)Синтаксис оператора select. Операторы in и between.
- •Операторы in и between
- •20)Агрегатные функции MySql. Примеры для субд MySql.
- •Поиск минимального и максимального значений столбца.
- •21)Синтаксис оператора select. Ограничение количества извлекаемых данных. Упорядочивание данных.
- •Упорядочивание данных order by
- •22)Вложенные запросы. Синтаксис. Изменение записей update.
- •23) Основные функции для работы с датой и временем в MySql (текущая дата, выделение части даты). Представление даты. Примеры.
- •24) Основные функции для работы со строками в MySql. Сравнение строк, длина строки, приведение к нижнему и верхнему регистрам. Примеры.
- •Insert(строка, позиция, длина, новая_строка)
- •25) Компоненты ms sql Server. Системные базы данных.
- •26)Типы данных ms sql Server. Пользовательские типы данных. Пример создания.
- •27)Типы данных ms sql Server. Пространственные и специальные типы данных.
- •28)Конструкции Transact-sql. Переменные.
- •Управляющие конструкции Transact-sql:
- •1.С входным выражением:
- •29) Физическая организация базы данных ms sql Server. Типы файлов баз данных. Файловые группы.
- •30)Физическая структура файлов данных. Экстенты.
- •31)Физическая структура файлов данных. Типы страниц.
- •32) Индексы. Виды индексов ms sql Server.
- •33)В-деревья. Примеры.
- •34) Создание, изменение индекса в ms sql Server. Сравнение кластеризованных и некластеризованных индексов.
- •35) Секционирование таблиц.
- •36)Выборка данных из нескольких таблиц. Конструкция join. Виды соединений.
- •37) Объединение нескольких наборов результатов union. Примеры.
- •38) Виды соединений. Примеры.
- •39)Агрегатные функции. Примеры.
- •40)Подзапросы. Примеры.
- •41) Безопасность в ms sql Server. Роли сервера. Учетные записи для входа.
- •Роли сервера
- •Управление учетными записями для входа
- •42)Безопасность в ms sql Server. Роли базы данных. Предоставление доступа к бд.
- •43)Представления. Примеры.
- •Создание представлений
- •44)Курсор. Виды курсоров. Управление курсорами.
- •Управление курсором в среде ms sql Server
- •45)Пользовательские функции и хранимые процедуры.
- •46)Сценарии и пакеты в ms sql Server. Схемы бд.
- •47)Триггеры.
- •48)Ограничение check.
- •49)Реляционная алгебра Кодда. Основные операторы.
- •Основные операторы реляционной алгебры
- •50)Нормализация бд. Нормальные формы.
- •51) Этапы проектирования бд.
11) Команда создания таблиц. Пример для субд MySql. Просмотр структуры таблицы.
Команда CREATE TABLE
Синтаксис команды CREATE TABLE таков:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] имя
[(спецификация, ...)]
[опция, ...]
[ [IGNORE | REPLACE] запрос]
Флаг TEMPORARY задает создание временной таблицы, существующей в течение текущего сеанса. По завершении сеанса таблица удаляется. Временным таблицам можно присваивать имена других таблиц, делая последние временно недоступными. Спецификатор IF NOT EXIST подавляет вывод сообщений об ошибках в случае, если таблица с указанным именем уже существует. Имени таблицы может предшествовать имя базы данных, отделенное точкой. Если это не сделано, таблица будет создана в базе данных, которая установлена по умолчанию.
Разрешается создавать таблицы без столбцов, однако в большинстве случаев спецификация хотя бы одного столбца все же присутствует. Спецификации столбцов и индексов приводятся в круглых скобках и разделяются запятыми. Формат спецификации следующий:
имя тип
[NOT NULL | NULL]
[DEFAULT значение]
[AUTO_INCREMENT]
[KEY]
[ссылка]
Спецификация типа включает название типа и его размерность. По умолчанию столбцы принимают значения NULL. Спецификатор NOT NULL запрещает подобное поведение.
У любого столбца есть значение по умолчанию. Если оно не указано, программа MySQL выберет его самостоятельно. Для столбцов, принимающих значения NULL, значением по умолчанию будет NULL, для строковых столбцов — пустая строка, для численных столбцов — нуль. Изменить эту установку позволяет предложение DEFAULT.
Поля-счетчики, создаваемые с помощью флага AUTO_INCREMENT, игнорируют значения по умолчанию, так как в них записываются порядковые номера. Тип счетчика должен быть беззнаковым целым. В таблице может присутствовать лишь одно поле-счетчик. Им не обязательно является первичный ключ.
Пример 1:
Для базы данных rabotniki определена одна таблица, которая содержит данные компании о сотрудниках. Создадим ее.
Rab_id |
1_name |
2_name |
dolgnost |
vozrast |
stag |
zarplata |
nadbavki |
|
Идентиф. номер работника |
Имя |
Фамилия |
Должность |
Возраст |
Стаж работы |
Зарплата |
Надбавки |
Адрес эл. почты |
Команда SQL для создания такой таблицы выглядит следующим образом:
CREATE TABLE rabotniki_data
(
rab_id int unsigned not null auto_increment primary key,
1_name varchar(20),
2_name varchar(20),
dolgnost varchar(30),
vozrast int,
stag int,
zarplata int,
nadbavki int,
email varchar(60)
);
Оператор DESCRIBE позволяет посмотреть структуру таблицы:
DESCRIBE rabotniki_data;
12)Команда изменения структуры таблицы. Основные преобразования, выполняемые этим оператором. Примеры для субд MySql.
Изменение структуры таблицы ALTER TABLE
Эта команда позволяет добавлять и удалять столбцы, создавать и уничтожать индексы, переименовывать столбцы и саму таблицу.
ALTER TABLE table_name alter_spec;
Основные преобразования, выполняемые оператором ALTER TABLE
ADD create definition [ FIRST | AFTER column_name] Добавление нового столбца create_definition. Этот параметр представляет собой название ново- го столбца и его тип. Конструкция FIRST добавляет новый столбец перед столбцом column_name. Конструкция AFTER добавляет новый столбец после столбца column_name. Если место добавления не указано, по умолчанию столбец добавляется в ко- нец таблицы.
ADD INDEX [index_name] (index_col_name, ...) Добавление индекса index_name для столбца index_col_name. Если имя индекса index_name не указывается, ему присваивается имя, совпадающее с именем столбца index_col_name.
ADD PRIMARY KEY (index_col_name, ...) Делает столбец index_col_name или группу столбцов первичным ключом таблицы.
CHANGE old_col_name new_col_name type Изменение столбца с именем old_col_name на столбец с именем new_col_name и типом type.
DROP col_name Удаление столбца с именем col_name.
DROP PRIMARY KEY Удаление первичного ключа таблицы.
DROP INDEX index_name Удаление индекса index_name.
Примеры:
1. Добавление в таблицу new_table нового столбца test с размещением его после столбца name можно выполнить следующим SQL-запросом
mysql> ALTER TABLE new_table ADD test INT(10) AFTER name;
Выполнив команду DESCRIBE new_table, можно увидеть, что столбец test успешно добавлен после столбца name.
2. Переименование столбца test в текстовый столбец new_test можно осуществить следующим образом.
mysql> ALTER TABLE new_table CHANGE test new_test text;
3. Удаление столбца new_test можно осуществить следующим запросом
mysql> ALTER TABLE new_table DROP new_ test;
