Каталог статей
Поиск по базе статей  
Статья на тему Интернет » Интересное в сети » Редактирование информации в&nb p;MySQL

 

Редактирование информации в&nb p;MySQL

 

 

Базы данных — специализированные структуры для хранения информации, из которых очень легко извлекать информацию, создавая всевозможные сортировки, выборки, применяя различные фильтры и так далее. Но перед тем как данные будет возможно использовать для запросов пользователя, их надо каким-то образом внести базу данных. Занесение данных может быть сделано как один раз — например, при создании каталога товаров, — так и происходить постоянно при эксплуатации базы — например, при регистрации пользователей на форуме. Помимо добавления данных, у вас наверняка появятся задачи, связанные с изменением информации, а также с удалением ненужных записей. Так как базы данных призваны облегчать работу с информацией, то, естественно, эти задачи решаются достаточно легко.

загрузка...

 

 

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

Оператор INSERT добавляет новые записи в таблицу Очевидно, что первой задачей после создания базы данных будет ее наполнение. Добавление новых записей в таблицы осуществляется командой INSERT, которая имеет несколько вариантов записи. Рассмотрим пример использования этой команды:

INSERT INTO items (item_name, category_id, item_price, item_quantity, country_id)
VALUES ("Порошок", 1, 36.50, 284, 2)

Проанализируйте необходимость использования значения NULL Такая команда добавляет одну запись в таблицу базы данных. После команды INSERT за служебным словом INTO следует имя таблицы, а затем в скобках — список имен полей, в которые необходимо занести данные. Ключевое поле VALUES стоит перед списком значений, которыми будут заполняться поля записи, причем количество элементов в списках полей и значений должно быть одинаково. Обратите внимание, что в списке полей могут присутствовать не все поля таблицы. Более того, при попытке внести значения в поля, объявленные с ключевым словом AUTO_INCREMENT, произойдет ошибка, так как они заполняются автоматически, обеспечивая уникальность записей. Поля, не вошедшие в список, заполняются значениями по умолчанию, хотя и тут надо обратить внимание на некоторые тонкости. Значение по умолчанию зависит от того, объявлено ли поле в таблице с ключевым словом NOT NULL, что определяет, могут ли значения поля приобретать значение NULL. Не путайте это значение с арифметическим нулем «0», или пустой строкой «»: NULL указывает на то, что у поля значения нет. Необходимость использования возможности приобретения полем такого значения встречается достаточно редко, и более того, в руководствах пользователя, которые есть найти на сайте www.mysql.com, можно найти предупреждение, что обработка полей со значением NULL замедляет работу сервера баз данных. Наиболее часто значение NULL используется в полях с датами, когда надо указать, что событие не произошло, что позволяет в одном поле указывать как дату события, так и с помощью значения NULL его отсутствие — например, например, рождение ребенка. Если же при создании поля в таблице было использовано ключевое слово NOT NULL, то по умолчанию поле будет приобретать, условно говоря, «нулевые» значения. Для числовых значений это будет «0», для символьных — пустая строка «», для значений типа «дата» — набор нулей. Если вас не устраивают такие значения по умолчанию, то при создании таблицы вы можете задать необходимые вам сами с помощью ключевого слова DEFAULT:

CREATE TABLE IF NOT EXISTS categories (
category_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
category_name VARCHAR(150) NOT NULL DEFAULT «Не известно»);

Одновременно можно добавить несколько записей Добавление одной записи — это наиболее часто встречающаяся операция при эксплуатации базы данных, но иногда, особенно при первом наполнении базы данных, может понадобиться занести большое количество строк. Для этого применяется та же команда, только после ключевого слова VALUES через запятые указываются несколько списков значений, соответствующих добавляемым записям:

INSERT INTO items (item_name, category_id, item_price, item_quantity, country_id)
values ("Порошок", 1, 36.50, 284, 2), ("Кукла", 2, 149.99, 5, 1),
("Молоток", 3, 90.00, 500, 3);

Существует еще одна форма оператора INSERT для добавления одной строки. По своему действию она ничем не отличается от уже рассмотренной формы, но ее синтаксис имеет более понятный вид, что облегчает поиск ошибок в SQL-командах:

INSERT INTO items SET item_name = «Порошок», category_id = 1, item_price = 36.50, item_quantity = 284, country_id = 2;

В этом варианте после ключевого слова SET полям таблицы присваиваются значения, подобно обычным языкам программирования, а пропущенные поля приобретают значения по умолчанию, как и в первом варианте записи.

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

INSERT INTO summary (price, quantity) SELECT item_price, item_quantity FROM items;

Но, кроме добавления информации в таблицу, надо также и удалять уже неактуальную информацию. Удалить ненужные записи можно с помощью оператора DELETE:

DELETE FROM items WHERE item_name = «Порошок»;

Оператор DELETE очень прост в применении — необходимо только указать после ключевого слова FROM таблицу, из которой будут удаляться записи, а после WHERE — условие, указывающие какие строки следует удалить. Иначе говоря, условие WHERE можно назвать фильтром, и с помощью различных функций сравнения и логических операторов его можно сделать достаточно сложным, например:

DELETE FROM itmes WHERE item_price * item_quantity Оператор DELETE очень опасен В этом примере мы удаляем товары, общая цена которых меньше 100, и которые принадлежат к категории с уникальным номером 2. Но простота оператора DELETE делает его очень опасным, и еще большую опасность ему добавляет то, что если условие WHERE опущено, из таблицы удаляются ВСЕ записи, поэтому использовать его надо с большой осторожностью.

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

UPDATE items SET item_name = «Порошок стиральный», item_quantity = 50 WHERE item_id = 1;

Изменить данные в записях можно оператором UPDATE Как видно, синтаксис этого оператора тоже достаточно простой и очень близок ко второй форме оператора INSERT для одной строки: после команды UPDATE следует имя таблицы, где будут производиться изменения, а после ключевого слова SET следует список столбцов, подлежащих изменению. В данном операторе условие WHERE имеет очень важное значение, так как только с помощью него мы можем точно указать, в какой записи следует производить изменения. В приведенном примере мы точно выбрали нужную запись, воспользовавшись полем item_id, обеспечивающим уникальность записей. Если условие WHERE не указать, то изменятся ВСЕ записи таблицы. Вышесказанное не означает, что изменять можно только одну строку в таблице; как и в случае оператора DELETE, можно сконструировать достаточно сложные условия, чтобы указать строки, в которых необходимо произвести изменение. Изменения полей также не ограничиваются простым присвоением: с левой стороны от оператора присвоения "=" может стоять вычисляемое выражение. Это может быть часто полезно, когда нужно произвести одинаковые изменения над большим количеством строк:

UPDATE items SET category_id = 3, item_price = item_price * 1.5 WHERE category_id = 2;

В этом примере товары из категории с номером 2 перемещаются в категорию с номером 3, при этом цена на них увеличивается в полтора раза. Подобным образом можно составлять очень сложные выражения для одновременного редактирования большого количества строк.

Вместо механизма транзакций используйте оператор LOCK Не следует забывать, что привычный по другим серверам баз данных механизм транзакций в MySQL не доступен, и за согласованием данных в таблицах необходимо следить самому пользователю. Рассогласование данных может возникнуть, к примеру, в случае когда пользователь заносит данные в таблицу на основе уже имеющейся в базе информации, и этот момент другой пользователь делает такую же операцию. В обоих случаях занесенная информация будет содержать ошибки. Несмотря на то, что такие данные требуются крайне редко, и вероятность одновременного занесения данных очень мала, учитывать такую возможность необходимо. Решение этой проблемы во многом подобно решениям, применяемым в веб-скриптах, когда на момент записи в данных файл на него накладывается блокировка на запись или на чтение. В MySQL для этих целей используется оператор LOCK, позволяющий заблокировать необходимые таблицы:

LOCK TABLES items WRITE, categories READ, countries READ;

Ключевое слово WRITE предусматривает полную блокировку, а READ — блокировку с правами чтения. При выполнении этого оператора снимаются все установленные до этого блокировки, поэтому необходимо указывать полный список таблиц, нуждающихся в блокировке. После внесения всех необходимых изменений в данные — добавления и удаления строк, редактирования информации — блокировки с таблиц можно снять командой UNLOCK TABLES.

Ссылки по теме




Статья получена: hostinfo.ru
загрузка...

 

 

Наверх


Постоянная ссылка на статью "Редактирование информации в&nb p;MySQL":


Рассказать другу

Оценка: 4.0 (голосов: 16)

Ваша оценка:

Ваш комментарий

Имя:
Сообщение:
Защитный код: включите графику
 
 



Поиск по базе статей:





Темы статей






Новые статьи

Противовирусные препараты: за и против Добро пожаловать в Армению. Знакомство с Арменией Крыша из сэндвич панелей для индивидуального строительства Возможно ли отменить договор купли-продажи квартиры, если он был уже подписан Как выбрать блеск для губ Чего боятся мужчины Как побороть страх перед неизвестностью Газон на участке своими руками Как правильно стирать шторы Как просто бросить курить

Вместе с этой статьей обычно читают:

Volkswagen Golf V – первая официальная информация

Volkswagen опубликовал первую официальную информацию о новом Golf пятого поколения. Официальная презентация автомобиля состоится в сентябре на автосалоне во Франкфурте, однако уже сейчас нам известно почти все о новом бестселлере компании Volkswagen . • Volkswagen Golf VВнешне автомобиль изменится не сильно - дизайн пятого Golf похож на третье и четвертое поколение этой модели. Однако самое важное для будущих покупателей заключается в том, что автомобиль стал значительно бо ...

» Немецкие автомобили - 1807 - читать


«О нас» - как представлять информацию об организации на сайте

Представление компании или организации в Web является одной из наиболее важных задач веб-сайта. Объяснение целей компании и ее устремлений оказывает сайту существенную помощь в выполнении других задач. К сожалению, большинство веб-сайтов плохо справляется с этой работой.

» Юзабилити - 2555 - читать


Эффективность ранжирования пассажей как одного из способов поиска информации в текстовых коллекциях. Часть II

Первая часть статьи опубликована здесь Оценка ранжированных запросов Оценивать запрос, сравнивая его с каждым документом, задача нереальная; для эффективной оценки запроса требуется специальная форма индекса. Большинство исследований продемонстрировали, что эффективный поиск требует рассмотрения всех терминов, встречающихся в документе, за исключением стоп слов (не несущих смысловой нагрузки терминов, например: «the», «и», к тому же). Попытки сократить объем индексных терми ...

» Продвижение и оптимизация - 1808 - читать


Фактор “свежести” информации в Google

Наряду с уже патентованными терминами, как PageRank и TrustRank, возможно появление нового, а именно “FreshRank” (пока неофициального), фактора, определяющий «свежесть» документов. В патентной заявке от Моники Хензингер в адрес Патентного ведомства США утверждается, что одной из проблем, связанных с определением «свежести» документа, индексируемого в поисковой системе, являются данные о «дате последнего изменения», которые не всегда верны. Веб-мастера могут вносить изменени ...

» Продвижение и оптимизация - 1183 - читать


Кто владеет информацией – владеет миром.

Почему владельцы социальных сетей добровольно не объединятся НИКОГДА? Потому что в мутной воде легче ловить рыбу. Когда рыба (потребители) дезориентированы, не знают, что правда, а что нет – их можно ловить в сети брендов и политиков, которые выступают в роли ориентиров-маяков.

» Продвижение и оптимизация - 5054 - читать



Статья на тему Интернет » Интересное в сети » Редактирование информации в&nb p;MySQL

Все статьи | Разделы | Поиск | Добавить статью | Контакты

© RusAdvice.Org, 2006-2014, при копировании материалов, прямая индексируемая ссылка на сайт обязательна.

Энциклопедия RusAdvice.Org