
- •2.Этапы развития субд.
- •Архитектура базы данных. Физическая и логическая независимость
- •18.Структура оператора select.
- •20.Предложение where и условия поиска
- •14.Создание таблицы базы данных
- •12.Типы данных
- •11.Специальные операции реляционной алгебры.
- •10.Теоретико-множественные операции над отношениям
- •8.Реляционная модель. Понятие отношения.
- •15. Язык манипуляции данными (ямд)
- •16.Ограничения, налагаемые на столбцы.
- •17.Ссылочная целостность.
- •21.Квалификатор distinct. Предложение order by.
- •22.Использование агрегатных функций. Предложение group by.
- •24.Виды соединений
- •26.Внутреннее и внешнее соединения join.
- •27.Вложенные запросы. Основные правила при задании подзапросов.
- •30. Представления в базах данных
- •32.Этапы проектирования бд.
- •33.Нормализация отношений (функциональная и транзитивная зависимости).
- •35.Понятие и свойства транзакции.
- •36.Команды commit и rollback.
- •37.Распределенная обработка данных. Распределенные базы данных
- •38. Модель «клиент-сервер»,- основные функции.
- •39.Модель файлового сервера.
- •40.Модель удалённого доступа к данным.
- •41.Модель сервера баз данных.
- •42.Модель сервера приложений.
14.Создание таблицы базы данных
Таблица – это объект базы данных, который хранит данные в виде совокупности строк и колонок. Таблица определяется содержащимися в ней колонками. Данные организованы в форме, похожей на электронные таблицы Excel (см. пример таблицы Product_Info, показанный в табл. 10.1). Таблица Product_Info, используемая в наших примерах, будет создана в базе данных MyDB.
Таблица Product_Info применяется для хранения информации обо всех продуктах, продаваемых в магазине. Когда продукт становится готов к продаже, данные о нем добавляются в новую строку таблицы Product_Info. Эта таблица состоит из пяти колонок: Product_ID (Идентификатор продукта),Product_Name (Название продукта), Description (Описание), Price (Цена) и Brand_ID (Название торговой марки). В табл. 10.1 показаны в качестве примера три строки данных из таблицы Product_Info. Оператор T-SQL, применявшийся для создания этой таблицы (пустой, без данных) показан в разделе "Создание таблицы Product_Info с использованием системных типов данных" далее в этой лекции. (Об использовании оператора INSERT, применяемого для вставки данных в таблицы см. лекцию 20.)
Таблица 10.1. Таблица Product_Info |
||||
Product_ID |
Product_Name |
Description |
Price |
Brand_ID |
1 |
Пятифутовый тент |
Для одного-двух человек |
80.00 |
12 |
2 |
Мини-печь |
Работает на керосине |
20.00 |
33 |
3 |
Рюкзак |
Со стальным каркасом |
60.00 |
15 |
Мы вернемся к этому примеру таблицы базы данных в этой лекции, когда будем объяснять более сложные вопросы создания таблиц. Но сначала мы продолжим рассказ об основах, которые вы должны знать, чтобы уметь создавать таблицы.
Чтобы задать таблицу, вы должны решить, сколько колонок она будет иметь и данные каких типов (например, символьные или числовые) смогут храниться в каждой из колонок. Вы должны также задать допустимый диапазон для этих данных, например, вы можете разрешить использовать не более 30 символов или числа, хранимые в 4 байтах. Эти атрибуты задаются благодаря тому, что каждой колонке присваивается некоторый тип данных, являющийся набором атрибутов, определяющих тип и диапазон данных, способных храниться в этой колонке. Вы можете пользоваться многими системными типами данных, имеющимися в SQL Server, а можете создать и свой собственный тип данных, основанный на системных типах данных. (Вы не можете изменять системные типы данных, но можете создавать совершенно новые типы данных.)
Применение системных типов данных
Как мы уже говорили, вы задаете тип данных для каждой колонки таблицы. При задании типа данных у колонки задаются следующие атрибуты:
Категория данных, которые могут содержаться в колонке (например, символьные данные, целые числа или изображения).
Размер (длина) данных, хранимых в колонке.
Точность чисел (этот атрибут применяется только для числовых типов данных), т.е. количество цифр, содержащихся в числах.
Масштаб чисел (этот атрибут применяется только для числовых типов данных), т.е. количество цифр, способных помещаться справа от десятичной точки.
Типы данных могут также применяться к колонкам для представлений, параметров в хранимых процедурах и в функциях T-SQL, возвращающих одно или несколько значений данных. Встроенные типы данных, имеющиеся в SQL Server, перечислены в табл. 10.2. В SQL Server 2000 появились три новых типа данных: bigint, sql_variant и table. (Кроме нескольких исключений, явно указанных в табл. 10.2, для всех указанных объектов применяются те же самые типы данных.)
Оператор CREATE TABLE
Давайте в качестве примера применим DDL для создания в базе данных MyDB таблицы с именем Customer_Data (Сведения_о_заказчиках). Эту таблицу Customer_Data обработки мы будем использовать и в других примерах, приведенных в этой лекции. Как уже говорилось, для создания таблицы применяется оператор CREATE TABLE. Наша таблица-пример будет задана как имеющая четыре колонки, при помощи следующих операторов:
Use MyDB
CREATE TABLE Customer_Data
(customer_id smallint,
first_name char(20),
last_name char(20),
phone char(10))
GO
Эти операторы создают структуру таблицы Customer_Data. Таблица Customer_Data останется пустой до тех пор, пока в нее не будут введены данные или она не будет заполнена при помощи массового копирования. (Более подробно о создании таблиц см. лекцию 10.)
Оператор ALTER TABLE
Оператор ALTER TABLE применяется для изменения определения или атрибутов таблицы. В нашем примере оператор ALTER TABLE применяется для добавления в существующую таблицу Customer_Data колонки middle_initial:
ALTER TABLE Customer_Data
ADD middle_initial char(1)
GO
Теперь определение таблицы содержит не четыре колонки, как было первоначально, а пять колонок. (Более подробно о применении оператора ALTER TABLE см. лекцию 15.)
Оператор DROP TABLE
Оператор DROP TABLE применяется для уничтожения определений таблиц и всех данных, индексов, триггеров, ограничений и специальных разрешений, относящихся к удаляемым таблицам. Для уничтожения нашей таблицы Customer_Data применяется команда:
DROP TABLE Customer_Data
GO
Оператор INSERT
Оператор INSERT применяется для вставки строки данных в таблицу или в представление. Например, если вы хотите добавить нового заказчика (customer) в нашу таблицу-пример Customer_Data, то оператор INSERT может выглядеть так:
INSERT INTO Customer_Data
(customer_id, first_name, last_name, phone)
VALUES (777, 'Frankie', 'Stein', '4895873900')
Обратите внимание, что во второй строке первого оператора SQL помещен список имен колонок. Этот список определяет, в какие именно колонки будут помещены данные (данные вводятся в той последовательности, как они указаны). Так, первое значение данных будет помещено в первую колонку из списка, в customer_id; второе значение будет помещено во вторую колонку из списка, и т.д. Мы перечислили значения данных в том же порядке, в каком были заданы колонки при создании таблицы, поэтому можно вообще не указывать имена колонок и применить вот такой оператор INSERT:
INSERT INTO Customer_Data
VALUES (777, 'Frankie', 'Stein', '4895873900')
В
нимание.
При использовании такой формы
оператора INSERT, в случае, если вводимые
значения перечислены не в том порядке,
как были заданы колонки при создании
таблицы, значения могут попасть не в те
колонки, куда надо (если вводимые данные
совместимы с типами данных колонок).
Если же данные будут несовместимы с
типами данных колонок, то вы получите
ошибку.
Оператор SELECT
Оператор SELECT применяется для извлечения данных из таблицы или из таблиц. Извлекаемые данные определяются перечисленными колонками и предложением WHERE. Предположим, например, что нам надо извлечь значения из колонок customer_id и first_name нашей таблицы Customer_Data, и эти данные нужны лишь для строк со значением Frankie в поле first_name. Тогда нужно применить такой оператор SELECT:
SELECT customer_id, first_name FROM Customer_Data
WHERE first_name = 'Frankie'
Если критерию из оператора SELECT будет соответствовать лишь одна строка,
то результат может быть таким:
customer_id first_name
-------------- -------------
777 Frankie
Оператор UPDATE
Оператор UPDATE применяется для обновления (т.е. изменения) значений в одной или нескольких строках таблицы. Например, допустим, заказчик Frankie Stein позвонил и попросил изменить его имя в записях базы данных на Franklin. Эту задачу выполнит такой оператор UPDATE:
UPDATE Customer_Data
SET first_name = 'Franklin'
WHERE last_name = 'Stein' and customer_id=777
В предложении WHERE указан идентификационный номер заказчика ( customer_id ), чтобы не допустить изменения имен других заказчиков с такой же фамилией Stein (если такие заказчики имеются), имена будут изменены лишь у заказчика с идентификационным номером 777.
П римечание. При составлении операторов UPDATE обязательно задавайте достаточно много фильтров в предложении WHERE, чтобы не изменить ошибочно ненужные строки.
Оператор DELETE
Оператор DELETE применяется для удаления из таблицы одной или нескольких строк с данными. Можно удалить даже все строки таблицы. Чтобы удалить все строки из нашей таблицы-примера Customer_Data, можно воспользоваться каким-либо одним из двух показанных ниже операторов DELETE:
DELETE FROM Customer_Data
или
DELETE Customer_Data
Ключевое слово FROM перед именем таблицы в операторе DELETE не обязательно, эти два оператора ничем не отличаются. Для удаления из таблицы Customer_Data строк, у которых значение колонки customer_id меньше, чем 100, применяется такой оператор:
DELETE FROM Customer_Data
WHERE customer_id < 100