71753

Изменение таблицы. Выбор данных из таблиц

Лабораторная работа

Информатика, кибернетика и программирование

Оператор ALTER охватывает широкий набор действий, которые изменяют структуру таблицы. Этот оператор используется для добавления, изменения или удаления столбцов существующей таблицы, а также для удаления индексов. Несколько операторов ALTER могут быть объединены в одно предложение...

Русский

2014-11-11

53 KB

0 чел.

Лабораторная работа №3.

Изменение таблицы. Выбор данных из таблиц.

ALTER/MODIFY

ALTER [IGNORE] TABLE table ADD [COLUMN] create_clause

ALTER [IGNORE] TABLE table ADD INDEX [name] (column, . . .)

ALTER [IGNORE] TABLE table ADD UNIQUE [name] (column, . . .)

ALTER [IGNORE] TABLE table ALTER [COLUMN] column SET DEFAULT value

ALTER [IGNORE] TABLE table ALTER [COLUMN] column DROP DEFAULT

ALTER [IGNORE] TABLE table CHANGE [COLUMN] column create..clause

ALTER [IGNORE] TABLE table DROP [COLUMN] column

ALTER [IGNORE] TABLE table DROP FOREIGN KEY key

ALTER [IGNORE] TABLE table DROP INDEX key

ALTER [IGNORE] TABLE table DROP PRIMARY KEY

ALTER [IGNORE] TABLE table MODIFY [COLUMN] create_clause

ALTER [IGNORE] TABLE table RENAME [AS] new_name

Оператор ALTER охватывает широкий набор действий, которые изменяют структуру таблицы. Этот оператор используется для добавления, изменения или удаления столбцов существующей таблицы, а также для удаления индексов. Несколько операторов ALTER могут быть объединены в одно предложение с помощью запятых:

ALTER TABLE mytable DROP myoldcolumn, ADD mynewcolumn INT

Для модификации таблицы MySQL создает копию таблицы и изменяет ее, выполняя все модифицирующие запросы. Когда все изменения сделаны, старая таблица удаляется, а ее место занимает новая таблица. В этой точке выполняются все поставленные в очередь запросы. В целях безопасности, если какой-либо из запросов создает дублирующие ключи, которые должны быть уникальными, предложение ALTER откатывается и отменяется. Если в предложении присутствует ключевое слово IGNORE, дублированные уникальные ключи игнорируются, и запрос ALTER исполняется как обычно. Имейте в виду, что использование IGNORE для активной таблицы с уникальными ключами может привести к искажению и порче таблицы.

Как указывалось выше, есть несколько разных, зачастую противоположных действий, выполняемых ALTER:

ADD [COLUMN] create,clause

Добавляет новый столбец в таблицу. Выражение create_clause имеет тот же вид, что и используемое в операторе CREATE (см. ниже). Таблица должна существовать и не иметь столбца с тем же именем, что у добавляемого столбца. (Ключевое слово COLUMN необязательно и не имеет эффекта.)

ADD INDEX [ name] (column , ...)

Создает индекс из указанных столбцов. В индексе могут быть скомбинированы до 15 столбцов. Указывать имя для индекса необязательно. Если не задано имя, индекс будет назван по имени первого столбца в списке (с числовым суффиксом _2, _3 и т. д., если это необходимо для уникальности).

ADD UNIQUE [name] (column, ...)

Идентично ADD INDEX за исключением того, что индексированные поля гарантированно уникальны. То есть, если пользователь попытается добавить значение, уже существующее в уникальном индексе, будет выдано сообщение об ошибке.

ALTER [COLUMN] column SET DEFAULT value

ALTER [COLUMN] column DROP DEFAULT

Создает, изменяет или удаляет значение по умолчанию для столбца. Если используется фраза SET DEFAULT , значение по умолчанию для указанного столбца изменяется на новое (даже если до этого не существовало значений по умолчанию). При использовании DROP DEFAULT, существующее значение по умолчанию удаляется. При этом любые существующие записи, созданные с помощью этого значения, остаются неизмененными. (Ключевое слово COLUMN необязательно и не имеет эффекта.)

CHANGE [COLUMN] new_column_name create_clause

MODIFY [COLUMN] create__clause

Изменяет определение столбца. Предложение используется для изменения типа данных столбца с минимально возможным воздействием на данные. Выражение create_clause то же, что и в операторе CREATE. Оно включает имя столбца и поэтому, используя это предложение, вы изменяете имя столбца. (Например, ALTER TABLE mytable CHANGE name newname CHAR(30) .) Предложение MODIFY аналогично CHANGE, но новый столбец имеет то же имя, что и старый. Ключевое слово COLUMN необязательно и не имеет эффекта. Следующие преобразования типов данных выполняются автоматически:

Целых чисел к числам с плавающей запятой, и наоборот (например, BIGINT к DOUBLE).

Меньших числовых значений к большим (например, INTEGER к BIGINT).

Больших числовых значений к меньшим (например, DOUBLE к FLOAT). Если значение выходит за пределы нового типа, используется максимально возможное значение нового типа данных (или наименьшее из отрицательных).

  •  Числовых к текстовым (например, SMALLINT к CHAR(5)).
  •  Текстовых к числовым (например, VARCHAR к MEDIUMINT). Текст преобразуется либо в целое число, либо в число с плавающей запятой. (Что более подходит для нового типа.)
  •  Меньших символьных типов к большим (например, BLOB к LONG-TEXT).
  •  Больших символьных типов к меньшим (например, TEXT к VARCHAR (255) ). Если значение больше, чем позволяет новый тип данных, текст усекается для соответствия этому типу.
  •  Даже для преобразований, которые здесь не упомянуты (например, TIMESTAMP к YEAR), MySQL попытается сделать все возможное, чтобы совершить разумное преобразование. При использовании CHANGE преобразование будет выполнено в любом случае, ни при каких обстоятельствах MySQL не сдастся и не выдаст сообщения об ошибке. Помня об этом, вы должны (1) сделать резервную копию данных перед преобразованием и (2) немедленно проверить новые значения на «разумность».

Примеры

# Добавить поле 'address2' к таблице 'people' и. задать ему тип данных

# 'VARCHAR' с максимальной длиной 200 символов.

  •  ALTER TABLE people ADD COLUMN address2 VARCHAR(100)

# Добавить два новых индекса к таблице 'hr', обычный индекс для поля

# 'salary'

# и уникальный индекс для поля 'id'. Также продолжить выполнение, если

# найдены

# дублируемые значения при создании индекса 'id_idx' (очень опасно!).

  •  ALTER TABLE hr ADD INDEX salary_idx ( salary )
  •  ALTER IGNORE TABLE hr ADD UNIQUE id_idx ( id )

# Изменить значение по умолчанию для поля 'price' в таблице 'sprockets'

# на $19.95.

  •  ALTER TABLE sprockets ALTER price SET DEFAULT '$19.95'

# Удалить значение по умолчанию для поля 'middle_name' в таблице 'names'.

  •  ALTER TABLE names ALTER middle_name DROP DEFAULT

# Изменить тип данных для поля 'profits' с начального значения (которым,

# возможно, было INTEGER) на BIGINT.

  •  ALTER TABLE finanaces CHANGE COLUMN profits profits BIGINT

# Удалить поле 'secret_stuff' из таблицы 'not_private_anymore'

  •  ALTER TABLE not_private_anymore DROP secret_stuff

# удалить индекс с именем 'id_index' также как и первичный ключ

# из таблицы 'cars'.

  •  ALTER TABLE cars DROP INDEX id_index, DROP PRIMARY KEY

# Переименовать таблицу 'rates_current' на 'rates_1997'

  •  ALTER TABLE rates_current RENAME AS rates_1997

SELECT

  •  SELECT [DISTINCT] columns FROM table [clause]

Выбирает данные из таблицы. Оператор SELECT является основным методом чтения данных из таблиц баз данных.

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

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

Имена столбцов могут быть указаны как column или как table, column . Длинная форма необходима только для того, чтобы отличать столбцы с одинаковыми именами, но ее можно использовать в любое время (например, SELECT name FROM people; SELECT people, name FROM people ).

Список таблиц для соединения указывается как Table1, Table2, Tab-1еЗ, .... Таблицы будут соединены таким образом, как mSQL сочтет наиболее эффективным. Именам таблиц могут быть присвоены псевдонимы (например, SELECT t1.name, t2.address FROM Iong_table_name=t1, Ionger_table_name=t2 ). Если не указано выражение clause, SELECT вернет все данные из выбранной таблицы (или таблиц).

Практические задания:

1. Создать таблицу tbl_topics содержащую следующий набор столбцов:

Столбец

Тип данных

 Диапазон значений

topic_id

целочисленный

0 - 127

topic_name

текстовый

Не более 100 символов

Поле topic_id определить как идентификатор и использовать в качестве первичного ключа.

2. Создать таблицу tbl_books для хранения данных о книгах, содержащую следующий набор столбцов:

Столбец

Тип данных

Диапазон

Описание

b_id

текстовый

17 символов

ISBN код книги

b_name

текстовый

Не более 255 символов.Значения Null не допускаютсяНазвание книги

 

b_author

текстовый

Не более 255 символов

Автор

b_topic

целочисленный

 

Код категории, к которой относится книга

b_price

числовой, точность до 2-х знаков после запятой

 

Стоимость

Поле b_id определить как идентификатор и использовать в качестве первичного ключа.

3. Увеличить верхнюю границу диапазона возможных значений в поле topic_id таблицы tbl_tobics до 215-1

4. Добавить в таблицу tbl_topics названия категорий: классика, лирика, мемуары, психология, философия.

5. Добавить несколько строк в таблицу tbl_books.

6. Сделать поле b_id автоинкрементным.

7. Удалить с поля b_id опцию первичного ключа.


 

А также другие работы, которые могут Вас заинтересовать

29017. Термическое закрепление грунтов. Область применения и методы контроля качества работ 33.5 KB
  В результате этого образуются прочные водостойкие структурные связи между частицами и агрегатами грунта. Отметим что температура газов которыми производится обработка грунта не должна превышать 750.12 суток в результате чего получается упрочнённый конусообразный массив грунта диаметром поверху 15. Образуется как бы коническая свая из обожжённого непросадочного грунта с прочностью до 10 МПа.
29018. Что называется грунтом, его составные элементы 25 KB
  Структурные связи между частицами грунта. Грунтами называют любые горные породы коры выветривания земли сыпучие или связные прочность связей у которых между частицами во много раз меньше чем прочность самих минеральных частиц или эти связи между частицами отсутствуют вовсе. Вода и газы находятся в порах между твердыми частицами минеральными и органическими. Газообразные включения пары газы всегда в том или ином количестве содержатся в грунтах и могут находиться в следующих состояниях: замкнутом или защемленном располагаясь в...
29019. Назовите виды давления грунта на подпорную стенку в зависимости от ее поступательного движения. Какой вид имеет диаграмма давления грунта на стенку в зависимости от ее перемещения 31.5 KB
  Какой вид имеет диаграмма давления грунта на стенку в зависимости от ее перемещения В зависимости от поступательного движения подпорной стенки на нее могут действовать следующие виды давления грунта: активное давление; пассивное давление; давление покоя. Активным называется минимальное из всех возможных для данной стенки давление на нее грунта проявляющееся в том случае если стенка имеет возможность переместиться в сторону от засыпки рис. Активное давление иногда называют распором. Пассивным называется максимальное из всех возможных...
29020. Напряжения, возникающие в массиве грунта от действия сооружения, накладываются на поле начальных напряжений, к которым относятся напряжения от собственного веса грунта 28 KB
  Напряжения возникающие в массиве грунта от действия сооружения накладываются на поле начальных напряжений к которым относятся напряжения от собственного веса грунта. Как вычислить вертикальные напряжения в массиве грунта от его собственного веса в следующих случаях: однородное основание; многослойное основание; при наличии в толще грунта уровня подземных вод; при наличии ниже уровня подземных вод водоупорного слоя. Вертикальное напряжение от собственного веса грунта σz представляют собой вес столба грунта над рассматриваемой точкой...
29021. От чего зависит глубина заложения фундамента 31.5 KB
  Глубина заложения фундаментов является одним из основных факторов обеспечивающих необходимую несущую способность и деформации основания не превышающие предельных по условиям нормальной эксплуатации здания или сооружения. От чего зависит глубина заложения фундамента Допускается ли закладывать подошвы соседних фундаментов на разных отметках Глубина заложения фундамента определяется: инженерногеологическими условиями площадки строительства физикомеханические свойства грунтов характер напластования и пр.; гидрогеологическими условиями...
29022. В чем заключается метод вытрамбовывания котлованов 32.5 KB
  В чем заключается метод вытрамбовывания котлованов Приведите несколько наиболее распространенных конструкций и способов устройства фундаментов в вытрамбованных котлованах. Рекомендуемая область применения способов устройства фундаментов в вытрамбованных котлованах. Применяется несколько конструкций и способов устройства фундаментов в вытрамбованных котлованах. Фундаменты в вытрамбованных котлованах используются при строительстве каркасных и бескаркасных зданий в первом случае обычно располагают один фундамент под каждой колонной.
29023. Фундаменты мелкого заложения и их основные виды. Применяемые материалы и их выбор 43 KB
  Фундаменты мелкого заложения и их основные виды. К фундаментам мелкого заложения относятся фундаменты имеющие отношение их глубины заложения к ширине подошвы не превышающее 4 и передающие нагрузку на грунты основания преимущественно через подошву. Фундаменты мелкого заложения разделяются на следующие основные типы: отдельные ленточные сплошные и массивные см.2 Отдельные фундаменты устраивают под колонны опоры балок ферм и других элементов промышленных и гражданских зданий и сооружений.
29024. Отдельные фундаменты мелкого заложения. Основные конструктивные решения и применяемые материалы 48 KB
  Отдельные фундаменты мелкого заложения. Отдельные фундаменты устраивают под колонны опоры балок ферм и других элементов промышленных и гражданских зданий и сооружений. Отдельные фундаменты представляют собой кирпичные каменные бетонные или железобетонные столбы с уширенной опорной частью. Отдельные фундаменты могут выполняться в монолитном и сборном варианте.
29025. Ленточные фундаменты под стены. Конструктивные решения и применяемые материалы. Условия применения прерывистых ленточных фундаментов 36.5 KB
  Ленточные фундаменты под стены. Ленточные фундаменты под стены устраивают либо монолитными либо из сборных блоков. Монолитные ленточные фундаменты изготовляют из природного камня бетона или железобетона. Монолитные ленточные фундаменты из природного камня и бетона проектируются как жёсткие.