Популярные услуги

Все письменные КМ под ключ за 3 суток! (КМ-6 + КМ-7 + КМ-8 + КМ-9 + КМ-10)
КМ-6. Динамические массивы. Семинар - выполню любой вариант!
Любая задача на C/C++
Одно любое задание в mYsql
Любой тест по базам данных максимально быстро на хорошую оценку - или верну деньги!
Любой реферат по объектно-ориентированному программированию (ООП)
Повышение уникальности твоей работе
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
Любой реферат по информатике
КМ-7. Решение задач на обработку символьной информации - выполню любой вариант!

Создание таблиц и работа с ними

2021-03-09СтудИзба

17. Создание таблиц и работа с ними

17.1.  Создание таблиц

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

Существует два способа создания таблиц:

· большинство СУБД имеют инструментарий администратора, который можно использовать для интерактивного создания таблиц базы данных и управления ими;

· таблицы можно создавать и манипулировать ими посредством операторов языка SQL.

Для создания таблиц программным способом используется оператор CREATE TABLE. При использовании интерактивного инструментария в действительности вся работа выполняется операторами SQL.

Синтаксис оператора CREATE TABLE может различаться для разных реализаций SQL.

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

Рекомендуемые материалы

· имя новой таблицы, которое вводится после слов CREATE TABLE;

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

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

Пример создания таблицы продуктов.

CREATE TABLE Products1

(

  prod_id CHAR(10) NOT NULL,

  vend_id CHAR(10) NOT NULL,

  prod_name CHAR(254) NOT NULL,

  prod_price CURRENCY NOT NULL,

  prod_desc VARCHAR(255) NULL

);

Когда создается новая таблица, то указанное имя не должно существовать в СУБД, иначе будет выдано сообщение об ошибке. SQLтребует, чтобы вначале вручную удалили таблицу, а затем вновь создали ее, а не просто переписали.

Все столбцы заключаются в круглые скобки. За именем столбца размещается тип данных. При разработке таблиц необходимо обращать особое внимание на используемые типы данных.

17.2.  Типы данных

Типы данных и их название являются одним из основных источников несовместимости в SQL. К сожалению, в разных СУБД используются разные типы данных. Основные типы данных обычно поддерживаются всеми СУБД. Но даже если названия типа данных звучит одинаково, пониматься под одним и тем же типом данных в разных СУБД может не одно и то же.

В Access 2007 предусмотрено 10 типов данных (раньше было 9)

Тип данных

Описание

Ограничение

Текстовый

Алфавитно-цифровые данные (текст и числа)

Может храниться до 255 знаков

Поле MEMO

Алфавитно-цифровые данные (текст и числа)

Может храниться до 2Гб данных (предельный размер для всех баз данных Access) при программном заполнении полей.

При вводе данных вручную в поле можно ввести 65535 знаков.

Числовой

Числовые данные

В полях с типом данных «Числовой» используется параметр Список полей, управляющий размером значения, которое может содержать поле. Размер поля можно задавать равным 1, 2, 4, 8 или 16 байтам.

Дата/время

Значение даты и времени

Приложение Access хранит все значения даты и времени в виде 8-байтовых целых чисел с двойной точностью.

Денежный

Денежные данные

Данные хранятся в виде 8-байтовых чисел с точностью до четырех знаков после запятой. Этот тип данных используется для хранения финансовых данных и в тех случаях, когда значения не должны округляться.

Счетчик

Уникальные значения, создаваемые приложением Access при введении новой записи

Данные хранятся в виде 4-байтовых значений, обычно используются в первичных ключах.

Логический

Логические данные – «истина» или «ложь»

Используется – 1 для всех значений «ДА» и 0 для всех значений «Нет».

Поле объекта OLE

Изображения, документы, диаграммы и другие объекты из приложений Office и других программ Windows

Может храниться до 2 ГБ данных. Поля с типом данных «Поле объекта OLE» создают растровые изображения исходных документов или других объектов, а затем отображают их в полях таблиц и элементах управления форм или отчетов в базе данных.

Чтобы в Access выводились эти изображения, необходимо, чтобы на компьютере, использующем базу данных, был зарегистрирован OLE-сервер (программа, поддерживающая этот тип файлов). Если для данного типа файлов OLE-сервер не зарегистрирован, отображается значок поврежденного изображения. Такая проблема бывает связана с некоторыми типами изображений, чаще всего с форматом JPEG.

Как правило, а ACCDB-файлах вместо типа данных «Поле объекта OLE» используется тип «Вложение». Поле с таким типом данных более рационально используют место для хранения и не имеют ограничений, связанных с отсутствием зарегистрированных OLE-серверов.

Гиперссылка

Веб-адреса

Может храниться до 1ГБ данных. Это могут быть ссылки на веб-узлы, на узлы или файлы интрасети или локальной сети, а также на узлы или файлы локального компьютера.

Вложение

Файлы любого поддерживаемого типа

Новая функциональная возможность ACCDB-файлов Access 2007. В записи базы данных можно вкладывать изображения,файлы электронных таблиц, документы, диаграммы и другие файлы поддерживаемых типов точно так же, как в сообщения электронной почты. Можно также просматривать и редактировать вложенные файлы в зависимости от параметров, заданных разработчиком базы данных для поля с типом данных «Вложение». Эти поля дают большую свободу действий, чем поля с типом данных «Поле объекта OLE». И более рационально используют место для хранения, поскольку не создают растровые изображения исходного файла

Рассмотрим применяемые типы данных в СУБД и их соответствие в Access.

Строковые данные  

Часто используются данные типа строки, строковые данные. Строки могут быть двух типов – строки фиксированной длины и строки переменной длины.

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

В строках переменной длины можно хранить столько символов, сколько позволяет максимально хранить данная СУБД. В строках сохраняются только указанные данные и никаких дополнительных.

Поля с фиксированной длиной обеспечивают:

· повышение производительности при сортировке и манипулировании данными;

· позволяют индексировать столбцы, многие СУБД не способны индексировать столбцы с данными переменной длины.

Строковые данные

Тип данных

Описание

Access

CHAR

Строка фиксированной длины, состоящая из 1-255 символов. Размер должен быть определен во время создания

CHAR - текстовый

NCHAR

Особая форма типа CHAR, разработанная с целью поддержки многобайтовых символов или символов Unicode.

-

NVARCHAR

Специальная форма типа данных TEXT, разработанная с целью поддержки многобайтовых символов.

-

TEXT (другие названия LONG, MEMO, VARCHAR)

Текст переменной длины

VARCHAR – до 255 символов

MEMO – неограниченно

 

Примечание. Если число используется для вычислений, то его лучше хранить в столбце, предназначенном для числовых данных. Если оно используется как строковый литерал, то лучше хранить в столбце с данными строкового типа. Например, код 01234 в числовом поле будет сохранено как 1234.

Числовой тип данных  

Числовые типы данных предназначены для хранения чисел. В большинстве СУБД поддерживаются многие числовые типы данных, каждый из которых предназначен для хранения чисел определенного диапазона.

Числовые типы данных

Тип данных

Описание

Access

BIT

Одноразрядное значение, 0 или 1

BINARY - логический

DECIMAL (NUMERIC)

Значения с фиксированной или плавающей запятой различной степени точности

NUMERIC – двойное с плавающей точкой, Авто

FLOAT (NUMBER)

Значения с плавающей запятой

FLOAT (NUMBER) – двойное с плавающей точкой, Авто

INT (INTEGER)

4-разрядные целые значения, поддерживаются числа от -2147483648 до 2147483647

INT (INTEGER, LONG) – длинное целое, Авто

REAL

4-разрядные значения с плавающей запятой

REAL –одинарное с плавающей точкой, Авто

SMALLINT

2-разрядные целые значения, поддерживаются числа от -32768 до 32767

SMALLINT – целое, Авто

TINYINT

1-байтовые целые значения, поддерживаются числа от 0 до 255

-

Денежный тип данных  

Денежный тип данных

Тип данных

Описание

Access

MONEY

(CURRENCY)

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

MONEY CURRENCY – денежный, Авто

Типы данных даты и времени  

Типы данных даты и времени

Тип данных

Описание

Access

DATE

Значение даты

DATE – дата/время

DATETIME (TIMESTAMP)

Значения даты и времени

DATETIME (TIMESTAMP) - дата/время

SMALLDATETIME

Значения даты и времени с точностью до минуты (без значений секунд или миллисекунд)

-

TIME

Значение времени

TIME – дата/время

Не существует стандартного способа указания даты, который подходил бы к любой СУБД. В большинстве реализаций приемлем формат типа 2009-03-20 или MAR 20th 2009.

Поскольку в каждый СУБД используется свой формат представления даты, ODBC (Open DataBase Connectivity - программный интерфейс (API) доступа к базам данных) создал свой собственный формат , который способен работать с любой СУБД при использовании ODBC. Формат ODBC выглядит так: {d ‘2009-03-20’} для значений дат, {t ’21:46:29’} для значений времени и {ts ‘2009-03-20 21:46:29’} для значений даты и времени.

Двоичные типы данных  

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

Двоичные типы данных

Тип данных

Описание

Access

BINARY

Двоичные данные фиксированной длины (максимальная длина может быть от 255 байт до 8000 байт)

BINARY – двоичный, 510 разрядов

LONG RAW

Двоичные данные переменной длины объемом до 2 Гбайт

-

RAW (BINARY)

Двоичные данные фиксированной длины объемом до 255 байт  

BINARY – двоичный, 510 разрядов

VARBINARY

Двоичные данные переменной длины, максимальный объем от 255 байт до 8000 байт

VARBINARY - двоичный, 510 разрядов

17.3.  Работа со значениями NULL

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

Каждый столбец таблицы может быть или пустым (NULL), или не пустым (NOT NULL), и это его состояние оговаривается в определении таблицы во время ее создания.

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

            CREATE TABLE Orders1

            (

              order_num INTEGER NOT NULL,

              order_date DATETIME NOT NULL,

              cust_id CHAR(10) NOT NULL

            );

В этом примере все три столбца являются необходимыми, каждый содержит ключевое слово NOT NULL, которые будут препятствовать добавлению в таблицу столбцов с отсутствующим значением.

В следующем примере создадим таблицу, в которой могут быть столбцы обеих разновидностей.

            CREATE TABLE Vendors1

            (

              vend_id CHAR(10) NOT NULL,

              vend_name CHAR(50) NOT NULL,

              vend_address CHAR(50),

              vend_city CHAR(50),

              vend_state CHAR(5),

              vend_ZIP CHAR(10),

              vend_country CHAR(50)

            );

В случае допуска в столбце NULL описатель NULL можно не указывать. Значение NULL является значением по умолчанию.

Во многих СУБД отсутствие ключевых слов NOT NULL трактуется как NULL. С другой стороны, например, в СУБД DB2 наличие ключевого слова NULL является обязательным.

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

17.4.  Определение значений по умолчанию

Язык SQL позволяет определять значения по умолчанию, которые будут использованы в том случае, если при добавлении строки какое-то ее значение не указано. Значения по умолчанию определяются с помощью ключевого слова DEFAULT в определениях столбца оператора CREATE TABLE.

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

            CREATE TABLE OrderItems1

            (

              order_num INTEGER NOT NULL,

              order_item INTEGER NOT NULL,

              prod_id CHAR(10) NOT NULL,

              quantity INTEGER NOT NULL DEFAULT 1,

              item_price DECIMAL(8,2) NOT NULL

            );

Столбец quantity содержит количество каждого предмета в заказе. DEFAULT 1 в описании столбца предписывает СУБД указывать количество, равное 1, если не указано иное.

Значение по умолчанию часто используется для хранения в столбцах даты и денежных единиц. Например, системная дата может быть использована как дата по умолчанию путем указания функции или переменной, используемой для ссылки на системную дату. Например, в SQL Server – DEFAULT GETDATE(), в MySQL – DEFAULT CURRENT_DATE().

 В Access DEFAULT не работает.

17.5.  Обновление таблиц

Для обновления определения таблицы, следует воспользоваться оператором ALTER TABLE. Этот оператор позволяет изменить таблицу, при этом необходимо учитывать.

· В идеальном случае структура таблицы вообще не должна меняться после того, как в таблицу введены данные. Требуется немало времени, чтобы предугадать будущие потребности в процессе разработки таблиц, чтобы позже не потребовалось вносить в их структуру изменения.

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

· Многие СУБД не позволяют удалять или изменять столбцы в таблице.

· Большинство СУБД разрешабт переименовывать столбцы.

· Многие СУБД налагают серьезные ограничения на изменения, которые могут быть сделаны по отношению к заполненным столбцам, и несколько меньшие – по отношению к незаполненным.

Чтобы изменить таблицу посредством оператора ALTER TABLE, нужно ввести следующую информацию:

· Имя таблицы, подлежащей изменению, после ключевых слов ALTER TABLE, таблица с таким именем должна существовать.

· Список изменений, которые должны быть сделаны.

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

            ALTER TABLE Vendors

            ADD vend_phone CHAR(20);

В таблицу Vendors будет добавлен столбец vend_phone.

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

Например, удаление столбца, будет работать не во всех СУБД. В Access работает.

            ALTER TABLE Vendors

            DROP COLUMN vend_phone;

Сложные изменения структуры таблицы обычно выполняются вручную м включают следующие шаги.

· Создание новой таблицы с новым расположением столбцов.

· Использование оператора INSERT SELECT для копирования данных из старой таблицы в новую. При необходимости используются функции преобразования и вычисляемые поля.

· Проверка того факта, что новая таблица содержит нужные данные.

· Переименование старой таблицы или удаление ее.

· Присвоение новой таблице имени, которое ранее принадлежало старой таблицы.

· Восстановление триггеров, хранимых процедур, индексов и внешних ключей, если это необходимо.

17.6.  Удаление таблиц

           

Удаление самих таблиц, а не только их содержимого выполняется с помощью оператора DROP TABLE.

Пример, удалим таблицу CustCopy.

Вместе с этой лекцией читают "2. Автоматизация добычных участков".

            DROP TABLE CustCopy;

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

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

17.7.  Переименование таблиц

В разных СУБД переименование таблиц осуществляется по-разному. Не существует жестких, устоявшихся стандартов на выполнение этой операции. В СУБД MySQL, Oracle применяется оператор RENAME. В СУБД SQL Server можно использовать хранимую процедуру sp_rename.

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее