Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL97-4E.DOC
Скачиваний:
3
Добавлен:
05.11.2018
Размер:
3.3 Mб
Скачать

3. Создание новых таблиц и модификация данных в таблицах

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

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

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

Новая таблица создается с помощью команды CREATE TABLE, синтаксис которой в общем виде:

CREATE TABLE <имя таблицы>

( <имя поля> <тип данных> [ (<размер данных>) ], ... )

<имя таблицы> - имя, присваиваемое реляционной таблице. В данном случае это имя файла, в котором будет содержаться таблица после создания (применительно к FoxPro в имя файла может включаться указание носителя файла и путь доступа к нему). Две таблицы, размещаемые в файлах, хранящихся в одном каталоге, не могут иметь одинаковые имена.

<имя поля> - имя столбца создаваемой таблицы.

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

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

, ... - признак повторяющейся конструкции.

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

В качестве примера использования команды CREATE TABLE приведем команду, которая создает пустую таблицу Subject (см. приложение 2), предназначенную для хранения сведений о предметах:

CREATE TABLE Subject ( Nsub N(5,0), Cname C(25), Nhour N(3,0),

Nteach N(5,0) )

Примечание: согласно синтаксису языка SQL каждая команда должна заканчиваться символом “;”. Однако в командных файлах FoxPro этот символ используется как признак продолжения команды на следующей строке. Чтобы не вносить путаницы, автор отказался от использования символа “;” во всех случаях.

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

-добавить строку в таблицу;

-исключить строку из таблицы;

-изменить значения полей в строке

и, соответственно, три команды, реализующие эти операции.

Новая строка в существующую таблицу добавляется командой, имеющей синтаксис:

INSERT INTO <имя таблицы> [ (список полей) ]

VALUES (<значение-1>,<значение-2>, ... )

где <значение-1>,<значение-2>, ... - список значений полей новой строки. Количество значений, типы и порядок их расположения должны

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

Например, для формирования новой строки в таблице Subject следует использовать команду:

INSERT INTO Subject

VALUES ( 103, ‘Информационные системы’, 90, 210 )

Если же требуется сформировать в таблице новую строку, содержащую лишь наименование предмета и объем занятий, команда приобретает следующую форму:

INSERT INTO Subject ( Cname, Nhour )

VALUES ( ‘Информационные системы’, 90 )

Для неуказанных в команде INSERT полей значения определяются по умолчанию.

Исключение строк из таблицы происходит по команде, имеющей следующий синтаксис:

DELETE FROM <имя таблицы> [ WHERE <условия отбора> ]

Примечание: в FoxPro данная команда SQL не поддерживается.

Например, для удаления всех строк таблицы Student требуется команда:

DELETE FROM Student

Если же требуется удалить только строки, соответствующие студентам математического факультета, команда удаления будет выглядеть таким образом:

DELETE FROM Student WHERE Ndep=100

Замена значений полей в строках таблицы выполняется командой:

UPDATE <имя таблицы> SET <имя поля>=<выражение>, ...

[ WHERE <условие отбора> ]

Примечание: в FoxPro данная команда SQL не поддерживается.

В отличие от команды INSERT в команде UPDATE допускается использование выражений в качестве новых значений полей. Например, замену кода одного из факультетов (физического) и кодов преподавателей, работающих на этом факультете, на другие значения можно выполнить по команде:

UPDATE Teacher SET Ndep=Ndep*2, Nteach=Nteach+300

WHERE Ndep=200

Упражнения к разделу 3

1. Напишите последовательность команд, необходимых для создания таблицы Student, описанной в предыдущем разделе, и заполнения ее требуемыми данными.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]