русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ый способ заполнения базы данных – используем команду INSERT


Дата добавления: 2015-07-09; просмотров: 3365; Нарушение авторских прав


 

Самый универсальный и гибкий способ создания данных состоит в использовании SQL-команды INSERT. Формат у нее такой:

 

INSERT INTO ИмяТаблицы (СписокСтолбцовТаблицы)

VALUES (СписокЗначений);

 

Если в этой команде пропустить СписокСтолбцовТаблицы, то имеются в виду ВСЕ столбцы, и именно в таком порядке, в каком они были определены при создании таблицы.

SQL-команды нужно набирать в окне SQL statement. Для выполнения команд нужно выбрать меню Query – Execute или кнопку на панели инструментов или нажать Ctrl+Enter.

Можно набрать несколько команд и выполнить их все вместе, или выделить отдельную команду (как для копирования) и выполнить только ее.

Текст SQL-команд, который также называют SQL-сценарием, можно (и нужно!) сохранять в файл. По умолчанию тип файла sql.

 

Заполним таблицу Предприятия:

 

# выберем базу данных

USE kontora;

 

# добавим строки

INSERT INTO k_firm (firm_name, firm_addr)

VALUES('Альфа', 'Москва');

INSERT INTO k_firm (firm_name, firm_addr)

VALUES('Бета', 'Казань');

INSERT INTO k_firm (firm_name, firm_addr)

VALUES('Гамма', 'Париж');

INSERT INTO k_firm (firm_name, firm_addr)

VALUES('Дельта', 'Лондон');

INSERT INTO k_firm (firm_name, firm_addr)

VALUES('Омега', 'Токио');

 

# посмотрим результат

SELECT * FROM k_firm;

 

Обратите внимание, что мы не задавали значения для столбца firm_num, поскольку этот столбец имеет свойство Auto increment, и сервер его заполняет сам, натуральными числами.

 

 

Заполним Отдел

 

INSERT INTO k_dept (dept_short_name, dept_full_name)



VALUES('Sales', 'Отдел продаж');

INSERT INTO k_dept (dept_short_name, dept_full_name)



VALUES('Mart', 'Отдел маркетинга');

INSERT INTO k_dept (dept_short_name, dept_full_name)



VALUES('Cust', 'Отдел гарантийного обслуживания');

 

SELECT * FROM k_dept;

 

 

Заполним таблицу Сотрудник. Обратите внимание, что в этой таблице можно указывать только такой номер отдела, который существует в таблице Отдел! (Оставить это поле пустым тоже можно.)

 

INSERT INTO k_staff (staff_name, K_dept_dept_num, staff_hiredate, staff_post)

VALUES('Иванов', 1, '1999-01-01', 'Менеджер');

INSERT INTO k_staff (staff_name, K_dept_dept_num, staff_hiredate, staff_post)

VALUES('Петров', 2, '2010-10-13','Менеджер');

INSERT INTO k_staff (staff_name, K_dept_dept_num, staff_hiredate, staff_post)

VALUES('Сидоров', 3, '2005-12-01','Менеджер');

INSERT INTO k_staff (staff_name, staff_hiredate, staff_post)

VALUES('Семенов', '1990-01-01','Директор');

INSERT INTO k_staff (staff_name, K_dept_dept_num, staff_hiredate, staff_post)

VALUES('Григорьев', 3, '2008-12-19','Программист');

 

SELECT * FROM k_staff;

 

 

Что же будет, если указать несуществующий номер отдела?

 

INSERT INTO k_staff

(staff_name, K_dept_dept_num, staff_hiredate, staff_post)

VALUES('Смит', 10, '2013-01-01','Консультант');

 

Будет получена следующая ошибка:

Error code: 1452

Cannot add or update a child row: a foreign key constraint fails (`kontora`,`k_staff`, CONSTRAINT `fk_staff_k_dept` FOREIGN KEY (`k_dept_dept_num`) REFERENCES `k_dept` (`dept_num`) …

 

 

Заполним таблицу Договор

 

INSERT INTO k_contract

(contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('A', 1, 1,'2011-11-01');

INSERT INTO k_contract

(contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('B', 1, 2,'2011-10-01');

INSERT INTO k_contract

(contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('C', 1, 1,'2011-09-01');

INSERT INTO k_contract

(contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('A', 2, 2,'2011-11-15');

INSERT INTO k_contract

(contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('B', 2, 2,'2011-08-01');

INSERT INTO k_contract

(contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('C', 3, 1,'2011-07-15');

INSERT INTO k_contract

(contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('A', 4, 1,'2011-11-12');

 

SELECT * FROM k_contract;

 

 

Заполним таблицу Счет

 

INSERT INTO k_bill

(k_contract_contract_num, bill_date, bill_term, bill_sum)

VALUES(1, '2011-11-12', '2011-12-12', 1000);

INSERT INTO k_bill

(k_contract_contract_num, bill_date, bill_term, bill_sum)

VALUES(1, '2011-12-12', '2012-01-12', 2000);

INSERT INTO k_bill

(k_contract_contract_num, bill_date, bill_term, bill_sum)

VALUES(1, '2012-01-12', '2012-02-12',2000);

INSERT INTO k_bill

(k_contract_contract_num, bill_date, bill_term, bill_sum)

VALUES(2, '2011-12-12', '2012-01-12', 6000);

INSERT INTO k_bill

(k_contract_contract_num, bill_date, bill_term, bill_sum)

VALUES(2, '2012-01-12', '2012-02-12', 2000);

INSERT INTO k_bill

(k_contract_contract_num, bill_date, bill_term, bill_sum)

VALUES(3, '2012-01-12', '2012-02-12', 2500);

INSERT INTO k_bill

(k_contract_contract_num, bill_date, bill_term, bill_sum)

VALUES(4, '2011-12-12', '2012-01-12', 1500);

INSERT INTO k_bill

(k_contract_contract_num, bill_date, bill_term, bill_sum)

VALUES(5, '2011-12-12', '2012-01-12', 1200);

INSERT INTO k_bill

(k_contract_contract_num, bill_date, bill_term, bill_sum)

VALUES(5, '2012-01-12', '2012-02-12', 10000);

 

SELECT * FROM k_bill;

 

 

И остальные таблицы:

 

SELECT * FROM k_payment;

 

 

SELECT * FROM k_price;

 

'У' означает услугу, 'Т' – товар.

 

SELECT * FROM k_protokol;

 

Кроме команды добавления данных INSERT, есть полезные команды изменения данных UPDATE и удаления данных DELETE.

 

Формат команды UPDATE:

 

UPDATE [INTO] ИмяТаблицы SET ИмяСтолбца=НовоеЗначение

[WHERE Условие];

 

Квадратные скобки означают необязательную часть команды. Если условия нет, то изменяются ВСЕ строки заданной таблицы.

 

Применим эту команду на практике. Если вы обратили внимание, в таблице Отдел остался незаполненным столбец k_staff_staff_num, означающий номер сотрудника – руководителя отдела.

UPDATE k_dept SET k_staff_staff_num=2

WHERE dept_short_name='Mart';

UPDATE k_dept SET k_staff_staff_num=3

WHERE dept_short_name='Cust';

UPDATE k_dept SET k_staff_staff_num=1

WHERE dept_short_name='Sales';

 

Результат:

Формат команды DELETE:

DELETE [FROM] имя_таблицы [WHERE условие];

Квадратные скобки означают необязательную часть команды. Если условия нет, то удаляются ВСЕ строки заданной таблицы.

Пример: удаляем фирму с номером 5:

DELETE FROM k_firm WHERE firm_num=5;

Результат успешный. А что будет, если попробовать удалить фирму с номером 1? У этой фирмы есть подчиненные строки в таблице Договор.

Ошибка:

Error Code 1451

Cannot delete or update a parent row: a foreign key constraint fails (`kontora`, `k_contract`, CONSTRAINT `fk_contract_k_firm` FOREIGN KEY (`k_firm_firm_num`) REFERENCES `k_firm` (`firm_num`) …

 



<== предыдущая лекция | следующая лекция ==>
Заполнение базы данных, модификация данных | Ой способ заполнения базы данных – используем визуальные средства


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.