Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию
    главная     хостинг    
Поиск по сайту:  
Смотрите также
Языки программирования
C#
MS Visual C++
Borland C++
C++ Builder
Visual Basic
Quick Basic
Turbo Pascal
Delphi
JavaScript
Java
PHP
Perl
Assembler
AutoLisp
Fortran
Python
1C

Интернет-технологии
HTML
VRML
HTTP
CGI
FTP
Proxy
DNS
протоколы TCP/IP
Apache

Web-дизайн
HTML
Дизайн
VRML
PhotoShop
Cookie
CGI
SSI
CSS
ASP
PHP
Perl

Программирование игр
DirectDraw
DirectSound
Direct3D
OpenGL
3D-графика
Графика под DOS

Алгоритмы
Численные методы
Обработка данных

Сис. программирование
Драйверы

Базы данных
MySQL
SQL

Другое

Хостинг


Друзья
demaker.ru
Реклама

Лучший хостинг. Аренда серверов




helloworld.ru

Программирование на PHP в примерах

Подробности к шагу 12

Для экспериментов с операторами и функциями mysql удобно создать таблицу-пустышку по аналогии с oracle-иным решением (я думаю, Вы уже создали какую-нибудь базу для экспериментов, ну, например, mysqladmin create test):

connect test;
create table dual (id char(1));
insert into dual values('X');

Итак, сокращенный список операторов и функций MySQL. (Здесь описаны лишь некоторые функции, отобранные в основном по критерию отличности от SQL-стандарта.)

Условия WHERE:

  • [NOT] BETWEEN .. AND - диапазон (как в стандарте - просто напоминаю).
  • [NOT] IN (...) - список значений (то же замечание).
  • Стандартный оператор [NOT] LIKE строка_с_подстановками, где подстановки могут быть символом '%' (любое число символов) и/или '_' (одиночный символ), например, поле field в таблице test некоторой записи содержит такой текст: "PHP - рулез форева!"; тогда добраться до него можно так:

    select * from test where field like '%рул_з%'

    (предполагается, что мы забыли, что именно является рулезом и как вообще пишется рулез: "рулЕз" или "рУлиз" ;)
  • [NOT] REGEXP/RLIKE - (а вот это интересно!) использование регулярных выражений (!), например, если таблица из предыдущего примера хранит записи с утверждениями для всех версий PHP, а мы согласны с рулезностью только 3-й и 4-й версий, то условие WHERE можно записать так:

    field regexp '^PHP[3|4]'
  • LIMIT [начало,] конец_выборки - ограничение диапазона выборки. По моему скромному разумению, без этой фразы mysql в интернете не прижился бы. LIMIT позволяет ограничить объем выборки указанным диапазоном. На этой штуке базируется логика выборки данных для всяких форумов, конференций, новостных страниц и пр. Почему? Ну представьте, что посетитель Вашей страницы хочет просмотреть список новостей, начиная с текущей даты. Вы можете вывалить ему в ответ список сообщений (допустим, их накопилось штук 300 или 1000), превратив бегунок вертикального скроллбара броузера в узкую полоску или выдать сообщения порциями по нескольку штук. Но где хранить всю выборку между выдачами очередных порций? Ведь после ответа на запрос клиентского броузера web-сервер разорвет соединение, освободив выделенные ранее ресурсы. Решение может быть таким:

    $result=mysql_query("SELECT * FROM ".$table." LIMIT ".$start.", ".$rows);

    где $start=$rows * $page_number, а $page_number - параметр, на 1 больший номера текущей страницы для перехода к следующей "пачке", и на 1 меньший - для предыдущей порции Ваших сообщений. Этот прием будет продемонстрирован в следующих шагах, когда мы разработаем полноценный отчет по книжным спискам.
  • PROCEDURE имя_процедуры - с версии 3.22 можно задать процедуру обработки запроса. Эту возможность я сам еще не использовал. Привожу ее для "кучи". Позднее разберусь - опишу.

Некоторые функции, которые могут быть использованы в WHERE и в SELECT (скажем, в конструкции SELECT функция(...) FROM dual, где dual - созданная нами таблица с одной (все равно какой) записью - см. замечание в начале "Подробностей").

  • DATABASE() - вернет имя текуще базы. Скажем,
    SELECT DATASET() FROM какая_нибудь_таблица_из_открытой_базы LIMIT 1

    (LIMIT - чтобы на выводе иметь только одну строку).

Обращаю внимание на изобилие форматов вывода для дат в функции DATE_FORMAT().

  • ENCRYPT и PASSWORD - предназначены для шифрования строк (по-моему, по методу DES от UNIX-операционок).










helloworld.ru © 2001-2021
Все права защищены