VR
Virtual Reality On-line   Журнал
Новости   |     Журнал    |    Хаkер    |     Магазин   |   Проекты
[   Вход    ]
[Kарта сайтa]

[ Download  ]
[  Конкурс  ]
[ Анекдоты  ]
[  Ссылки   ]
[  Реклама  ]
[ Почтальон ]
[ О проекте ]






TopList
Язык запросов SQL
Работа с полями
:

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

Для всего этого в SQL есть три магических оператора: INSERT (вставить), UPDATE (модифицировать), DELETE (удалить). Рассмотрим вставку строки, для этого используется простейшая конструкция:

 INSERT INTO Имя Таблицы
 VALUES (Значение 1, Значение 2, и т.д.);

Это общий вид. После оператора VALUES идёт перечисление всех полей строки. Теперь взглянём на конкретный пример:

 INSERT INTO User1
 VALUES ('Иванов', 'Сергей', 34);

Этой командой мы вставили строку и присвоили значения полям. В моей таблицы три поля: первые два поля строковые (Фамилия и Имя), последнее поле - целое число (возраст). Типы данных обязаны совпадать с теми, что установлены в таблицы, иначе секир башка твоему запросу.

А если ты не хочешь задавать все поля? Тогда ты можешь оставить их пустыми с помощью NULL:

 INSERT INTO User1
 VALUES ('Иванов', NULL, 34);

Как видишь, второе поле я оставил пустым и в него не будет заноситься значение.

А если у тебя таблица с большим количеством полей и ты хочешь заполнить только два из них? Неужели придется всем остальным полям ставить значение NULL? Нет. SQL - это достаточно продуманный язык и в нём есть на этот случай удобная вещичка:

 INSERT INTO User1 (Family, Age)
 VALUES ('Иванов', 35);

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

Теперь представь, что ты хочешь сохранить результат запроса SELECT в отдельной таблице. Для этого в SQL всё уже предусмотрено. Тебе нужно только написать:

 INSERT INTO User1
 SELECT *
 FROM User2
 WHERE Age=10

В этом примере сначала выполнится запрос SELECT:

 SELECT *
 FROM User2
 WHERE Age=10

После его выполнения, результат будет занесён в таблицу User1. Ну как? Только не забудь, что количество столбцов в запросе и результирующей таблицы должно быть одинаково. А самое главное, это чтобы тип данных совпадал, иначе Гитлер капут.

Усложняем задачу. Теперь рассмотрим такой запрос:

 INSERT INTO User1(Name,Age)
 SELECT Name,Age
 FROM User2
 WHERE Age=10

Теперь в таблицу User1 будут перенесены только два столбца (имя и возраст). Здесь действуют те же ограничения - количество полей должно быть одинаково. Но есть и ещё одно - поля должны быть перечислены в таком порядке, чтобы типы и длина полей совпадали. У меня они перечислены так, что первое поле строковое, а второе целое число.

Двигаемся дальше. Мы смогли добавить строки, но надо и научиться изменять данные. Для этого нам доступна команда UPDATE . Сразу же попробуем взглянуть на пример:

 UPDATE User1
 SET age=65

Первая строка говорит о том, что нам надо обновить базу User1. Вторая строка начинается с оператора SET (установить). После этого я пишу поле, которое хочу обновить и присваиваю ему значение.

Этот маленький пример установит поле age у всех строк в значение 65. Если тебе нужно обновить только определённые строки, то ты должен написать так:

 UPDATE User1
 SET age=65
 WHERE Name LIKE 'Вася'

Этот запрос установит значение 65 в поле AGE только тем строкам, в которых поле Name равно "Вася".

И снова усложняем себе жизнь.

 UPDATE User1
 SET age=age+1

Этот запрос увеличит во всех строках таблицы поле Age на единицу.

И наконец, обновление сразу нескольких полей:

 UPDATE User1
 SET age=age+1, Name='Иван'
 WHERE Family LIKE 'Сидоров'

Этот запрос увеличит поле Age на единицу и установит поле Name в "Иван" во всех строках, где поле Family равно "Сидоров".

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

DELETE FROM User1

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

Теперь рассмотрим другой пример:

DELETE FROM User1
WHERE Age=10

Этот пример удаляет только те строки, в которых поле Age равно 10.

Всё. Мы и так сегодня изучили достаточно много, поэтому пора заканчивать. Удачи!!!


Design by FMk group ©
Copyright©: Horrific aka Флёнов Михаил ©