Поле comment останется без изменений, как
и поле id.
Совсем другая была бы ситуация, если бы поле id не было ключевым, т. е.
могло содержать повторяющиеся значения. Тогда теоретически в нашей
таблице могло существовать две записи с одинаковым значением этого поля.
Поскольку нам нужно обновить только одну запись, а не все, которые содержат
такое же значение поля id, следует указать дополнительное условие — limit:
UPDATE friends
SET name=fIgorf, [email protected]
WHERE id=l LIMIT 1;
limit задает количество записей, которые будут затронуты в результате
обработки запроса. В этом случае будет изменена одна из записей (обычно
первая попавшаяся). Но что делать, если нам требуется изменить не любую
запись с заданным условием, а конкретную запись? Думаю, вы уже догадались:
мы будем идентифицировать запись по другому полю, например по email:
UPDATE friends
SET name=fIgorf, [email protected]
WHERE [email protected] LIMIT 1;
Понятно, что если запись со значением [email protected] поля email не
будет найдена, то и обновления не произойдет. Для большей точности можно
дополнительно указать поле id:
UPDATE friends
SET name=fIgorf, [email protected]
WHERE (id=l) and ([email protected])
LIMIT 1;
Вот теперь точно будет обновлена нужная запись.
П3.8. Выборка записей
Выборка записей из таблицы выполняется с помощью оператора select.
Синтаксис этого оператора довольно сложный, поэтому рассмотрим его
сокращенную версию:
SELECT список_полей
FROM таблица
[WHERE условие];
Приложение 3. Основы SQL
331
Например:
SELECT *
FROM friends;
В приведенном примере оператор select выведет все записи из таблицы
friends. Вместо списка полей мы указали *, поэтому будут выведены все
поля. Понятно, что в нашей таблице есть поле comment, которое может
содержать большой текст и его вывод, мягко говоря, нежелателен, поэтому
целесообразнее следующий оператор:
SELECT id, name, email »
FROM friends;
Данный оператор также выведет все записи (пока у нас только одна запись) из
таблицы friends, но при этом будут выведены все поля, кроме comment. Чтобы
увидеть поле comment, которое соответствует определенной записи, нам нужно
задать условие оператора select. Предположим, что вам требуется вывести
поле comment для первой записи (обычно ее id будет равен единице):
SELECT comment
FROM friends
WHERE id=l;
Примечание
Полный синтаксис оператора select выглядит так:
SELECT [DISTINCT I ALL] {*| [поле1 AS псевдоним] [,..., полеЫ AS
псевдоним] }
FROM Имя_таблицы1 [,..., Имя_таблицыЫ]
[WHERE условие]
[GROUP BY список полей] [HAVING условие]
[ORDER BY список полей]
О том, как использовать все его возможности, вы узнаете чуть позже.
П3.9. Удаление записей
Условия удаления записи устанавливаются аналогично условиям обновления
записи.
332
Приложения
Удаление записей осуществляется оператором delete:
DELETE
FROM таблица
WHERE условие;
Вот небольшой пример:
DELETE
FROM friends
WHERE id=l;
Данный оператор удаляет первую запись в таблице. Удалить все записи из
таблицы можно, указав оператор:
DELETE
FROM friends;
П3.10. Встроенные функции
В SQL есть встроенные функции, например: count, min, max, avg, sum
(существуют и другие, но эти — самые полезные). Функция count вычисляет число
элементов, min и мах — минимальное и максимальное значения, avg —
среднее значение, a sum — сумму элементов.
Использовать эти функции очень просто. Предположим, что у нас имеется
таблица, созданная следующим оператором create (естественно, будем
считать, что таблицу сразу после создания заполнили реальными данными):
CREATE TABLE books (
bid int auto_increment,
title varchar(50) not null,
autor varchar(50) not null,
price double,
primary key (bid)
);
Следующий оператор выведет число записей в таблице:
SELECT COUNT(*)
FROM books;
Вообще, в этом операторе особого смысла нет, поскольку существует
функция mysqinumrows (), но иногда он тоже может пригодиться.
Приложение 3.
5th Фев 2011
|
Теги:
|