Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум по ИРдля заочников оконч...doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
9 Мб
Скачать
☆

2.4 Команды работы с таблицами

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

Пример 7. Создадим таблицу study в базе данных studentzaot.

Таблица должна содержать следующие данные о студентах:

код студента kod, (целое число, беззнаковое, пустые значения недопустимы, значения вводятся автоматически. Является первичным ключом);

фамилия студента fam, (символьное, постоянной длины в 15 символов. По полю создается индекс);

имя студента im, (символьное, постоянной длины в 15 символов,);

пол pol (принимает одно из двух значений списка: «Ж» -женский, «М» - мужской, пустые значения недопустимы );

дата рождения data (тип ДАТА, пустые значения недопустимы);

средний балл аттестата srbal (вещественное, с одной цифрой до запятой и одной цифрой после запятой).

SQL-запрос для создания таблицы приведен в листинге 7.

Листинг 7. Создание таблицы study в базе данных

USE studentzaot;

CREATE TABLE study

(kod INT UNSIGNED NOT NULL AUTO_INCREMENT,

fam CHAR(15),

im CHAR(15),

pol ENUM('М','Ж')NOT NULL,

data DATE NOT NULL,

srbal FLOAT(3,1),

PRIMARY KEY (kod),

INDEX (fam))

TYPE=MyISAM;

      1. Команда добавления записей в таблицу

Можно назвать несколько методов добавления информации в базы данных. Можно добавить записи в таблицы вручную с помощью оператора INSERT. Можно добавлять записи прямо из текстового файла путем копирования в буфер. А можно готовый файл с исходными данными загрузить в таблицу с помощью оператора LOAD DATA. В этом разделе демонстрируется метод с использованием команды INSERT.

Команда INSERT вводит значения в записи таблицы.

insert INTO имя_таблицы VALUES (значения полей 1строки), (значения полей 2строки), (...), (значения полей последней строки);

Примечание. Список VALUES должен содержать значения всех полей одной записи таблицы. (Обычно это порядок следования названий столбцов, заданный в операторе CREATE TABLE). Если вы не знаете порядка следования столбцов, воспользуйтесь программой mysqladmin для просмотра перечня полей таблицы.

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

Для того чтобы вставить в таблицу study из листинга 7 несколько записей с информацией о студентах, можно воспользоваться командой insert (листинг 8).

Листинг 8. Оператор insert

INSERT INTO study VALUES

(0,'Иванов','Михаил','M','1990-01-05',7.8),

(0,'Горовой','Максим','M','1991-01-03',5.2),

(0,'Максимова','Екатерина','Ж','1990-01-03',9.0);

Обратите внимание! Хотя первичный ключ(kod) в таблице study объявлен как AUTO_INCREMENT (автоматически нумеруемый системой), но при вводе записей командой INSERT значение первичного ключа вы должны явно задавать, равным нулю.

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

insert INTO имя_таблицы (имя_столбцаi, имя_столбцаj) VALUES (значение_столбцаi, значение_столбцаj);

Например, запись в таблицу study можно осуществить при помощи SQL- запроса, представленного в листинге 9. Столбцы, не перечисленные в списке столбцов, получают значение по умолчанию. Так, первичный ключ получает значение null, которое интерпретируется для полей с атрибутом AUTO_INCREMENT генерацией уникального числа.

Листинг 9. Определение порядка добавления столбцов

INSERT INTO study (fam, pol, srbal) VALUES ('Смирнова','Ж',8.5);

MySQL позволяет задавать значения полей в операторе insert в форме имя_столбца=значение:

INSERT INTO имя_таблицы SET имя_столбцаi= значение, имя_столбцаj=значение;

Пример такого оператора приведен в листинге 10.

Листинг 10. Альтернативная форма оператора insert

INSERT INTO study SET fam='Смирнова', pol='Ж';

Для полей, не получивших значения, будут выставлены значения по умолчанию.