На главную Напишите нам! Напишите нам!
14-11-2012
колонтитул в word 2007, 0000002111

Обновление записей. Оператор UPDATE - MySQL

Синтаксис оператора UPDATE, который используется для обновления записей, выглядит так:

UPDATE Имя_таблицы
SET Поле1 = Значение1, ... , ПолеN = ЗначениеN
[WHERE Условие];

Если не задано условие WHERE, будет модифицирована вся таблица, а это может повлечь за собой непредсказуемые последствия, поскольку для всех записей будут установлены одинаковые значения полей, поэтому всегда указывайте условие WHERE.

Предположим, нам необходимо обновить запись, если, например, клиент Иванов переехал в другой город и нам нужно отметить это событие в базе данных. Сделаем следующее:

UPDATE CLIENTS
SET CITY = 'Псков'
WHERE C_NO = 1;

Данный запрос нужно понимать так: найти запись, поле C_NO которой = 1 (это код клиента Иванова), и установить значение CITY равным "Псков".

Удаление записей. Оператор DELETE

Если нам необходимо удалить всех клиентов, номера которых превышают 5, то мы поступим следующим образом:

DELETE FROM CLIENTS
WHERE C_NO > 5;

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

DELETE FROM CLIENTS;

Если вторая часть оператора DELETE-WHERE не указана, занчит, действие оператора распространяется на все записи сразу.

Выбор записей. Оператор SELECT

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

SELECT [DISTINCT|ALL] {*| [поле1 AS псевдоним] [,..., полеN AS псевдоним]}
FROM Имя_таблицы1 [,..., Имя_таблицыN]
[WHERE условие]
[GROUP BY список полей] [HAVING условие]
[ORDER BY список полей]

Мы полностью не будем рассматривать оператор SELECT, лучше это делать на конкретном примере. Сейчас мы рассмотрим оператор SELECT в общих чертах. Например, для вывода всех записей из таблицы CLIENTS сделайте следующее:

SELECT * FROM CLIENTS;

В результате вы получите следующий ответ сервера:

C_NO FIO ADDR CITY PHONE
1 Иванов И.И. Вокзальная 3 Москва 09599911100
1 Иванов И.И. Вокзальная 3 Москва 09599911100
2 Петров П.П. Мира 29 Екатеринбург 3438920437

Обратите внимание на первые две записи - они одинаковые. Теоретически, добавление одинаковых записей возможно - ведь мы не указали первичный ключ таблицы. Если вы хотите исключить одинаковые записи из ответа сервера (но не из таблицы), используйте запрос:

SELECT DISTINCT *
FROM CLIENTS;

Предположим, вы хотите вывести только фамилию и номер телефона клиента, тогда используйте следующий запрос:

SELECT DISTINCT FIO, PHONE
FROM CLIENTS;

Если вам нужно вывести все товары, цена на которые превышает 800, то воспользуйтесь таким запросом:

SELECT *
FROM TOOLS
WHERE PRICE > 800;

Вы можете использовать следующие операторы отношений: <, >, =, <>, <=, >=.

Если в вашей таблице присутствуют несколько однофамильцев, то для вывода информации обо всех из них, используйте модификатор LIKE, например:

SELECT *
FROM CLIENTS
WHERE FIO LIKE '%Иванов%';

Приведенный запрос можно причитать так: вывести информацию о клиентах, фамилия которых похожа на 'Иванов'.

Если вам необходимо выбрать данные из разных таблиц, то перед именем поля нужно указывать имя таблицы. Вот запрос, который позволяет вывести имена всех клиентов, которые хотя бы один раз покупали товар:

SELECT DISTINCT CLIENTS.FIO
FROM CLIENTS, ORDERS
WHERE CLIENTS.C_NO = ORDERS.C_NO;

Оператор SELECT позволяет ипользовать вложенные запросы, однако MySQL их не поддерживает.

Внутренние функции MIN, MAX, AVG, SUM

При работе с оператором SELECT вам доступны несколько очень полезных внутренних функций MySQL, вычисляющих колличество элементов (COUNT), сумму элементов (SUM), максимальное и минимальное значения (MAX и MIN), а также среднее значение (AVG).

Следующие операторы выведут, соответственно, колличество записей в таблице CLIENTS, самый дорогой товар и сумму цен всех товаров:

SELECT COUNT(*)
FROM CLIENTS;

SELECT MAX(PRICE)
FROM TOOLS;

SELECT SUM(PRICE)
FROM TOOLS;

колонтитулы в word 2007, 000000211111
Класс!
 
Яндекс.Метрика
Копирование возможно при указании прямой индексируемой гиперссылки
0000002