Операторы MySQL

Опубликовал: Суббота, Апрель 7, 2012 в категории HTML | Пока нет комментариев

Операторы позволяют выполнить определенные действия с данными. На- пример, математические операторы позволяют произвести арифметические вычисления. Рассмотрим операторы, доступные в MySQL.

П РИМ Е ЧАНИЕ

Выполнять SQL-команды мы будем в программе MySQL monitor. Для запус- ка программы в меню Пуск выбираем пункт Программы | MySQL | MySQL server 5.1 | MySQL Command Line Client. Откроется черное окошко с за-

просом ввести пароль. Вводим пароль, заданный при установке сервера MySQL. Если установка производилась по инструкциям из разд. 4.7, то па- роль "123456". В случае успешного входа отобразится приветствие серве- ра, и программа перейдет в режим ожидания команд. В командной строке набираем USE tests; для выбора базы данных.

6.7.1. Математические операторы

Математические операторы:

? + — сложение:

SELECT 8 + 5;

? - — вычитание:

SELECT 10 - 5;

? * — умножение:

SELECT 10 * 5;

? / — деление:

SELECT 10 / 5;

/* Выведет: 2.0000 */

? DIV — целочисленное деление:

SELECT 10 DIV 5;

/* Выведет: 2 */ SELECT 10 DIV 3;

/* Выведет: 3 */

? % — остаток от деления:

SELECT 10 % 2;

/* Выведет: 0 */ SELECT 9 % 2;

/* Выведет: 1 */

? MOD — остаток от деления:

SELECT 10 MOD 2;

/* Выведет: 0 */

Вместо операторов % и MOD можно использовать функцию MOD().

SELECT MOD(10, 2);

/* Выведет: 0 */

Следует отметить, что если один из операндов равен NULL, то результат опе- рации также будет равен NULL. В отличие от языков программирования деле- ние на ноль не приводит к генерации сообщения об ошибке. Результатом опе- рации деления на ноль является значение NULL.

Если необходимо сменить знак, то перед операндом следует указать знак

– (минус):

SELECT -(-5);

/* Выведет: 5 */

В качестве примера рассмотрим возможность подсчета переходов по реклам-

ной ссылке. Для этого создадим таблицу counter в базе данных tests:

CREATE TABLE `counter` (

`id_link` INT NOT NULL AUTO_INCREMENT,

`total` INT,

PRIMARY KEY (`id_link`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Затем добавим одну запись:

INSERT INTO `counter` VALUES (1, 0);

Для подсчета переходов в тексте ссылки укажем идентификатор в базе дан-

ных и URL-адрес:

<html>

<head>

<title>Подсчет переходов по ссылкам</title>

</head>

<body>

<a href="go.php?id=1&url=http://www.mail.ru/">Перейти</a>

</body>

</html>

Регистрация переходов производится в файле go.php. Исходный код файла приведен в листинге 6.1.

Листинг 6.1. Регистрация переходов по ссылке

<?php

if (!isset($_GET['id']) || !isset($_GET['url'])) die(‘Ошибка’);

$id = $_GET['id'];

if (preg_match(‘/^[0-9]+$/s’, $id) && $id != 0) {

if ($db = @mysql_connect("localhost", "root", "123456")) {

mysql_select_db("tests");

$query = ‘UPDATE `counter` SET `total` = `total` + 1 ‘;

$query .= ‘WHERE `id_link`=’ . $id;

@mysql_query($query);

mysql_close($db);

}

}

header(‘Location: ‘ . $_GET['url']);

?>

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

Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)

Add to Social Bookmarks
  • del.ici.ous
  • Digg
  • Furl
  • Google
  • Simpy
  • Spurl
  • Y! MyWeb
  • BobrDobr
  • Mr. Wong
  • Yandex.Bookmarks
  • Text 2.0
  • News2
  • AddScoop
  • RuSpace
  • RUmarkz
  • Memori
  • Google Bookmarks
  • Pisali
  • SMI 2
  • Moe Mesto
  • 100 Zakladok
  • Vaau!
  • Technorati
  • RuCity
  • LinkStore
  • NewsLand
  • Lopas
  • Закладки - I.UA
  • Connotea
  • Bibsonomy
  • Trucking Bookmarks
  • Communizm
  • UCA

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>