Типы данных в MySQL (сжатый справочник для PHP программиста)
Что и как и как много хранит MySQL?
Данный материал создан специально для программистов, которые быстро смогут определиться какой тип данных лучше выбрать для хранения значений в БД MySQL.
Для затравки, интересная цитата из мануала по MySQL:
«Максимальный размер записи в MyISAM составляет 65534 байтов. Каждый BLOB или TEXT-столбец засчитывается здесь как 5-9 байтов.» — как это трактовать однозначно не понятно. НО ясно что много-примного столбцов в таблицу на засунешь. «Извращенистые программисты» — будьте аккуратны (66000 столбцов вы точно создать не сможете).
UPD: Если найдете ошибку, или я что-то где-то утаил — отпишитесь в комментах, с удовольствием добавлю.
UPD1 В первую очередь (и самый лучший вариант для новичков) прочитать ОФИЦИАЛЬНЫЙ МАНУАЛ dev.mysql.com/doc/refman/5.0/en/data-types.html (спасибо Psyh за прямую ссылку), а здесь вырезка для META обработчиков данных (как в лице программистов так и в лице машинной обработки).
UPD2 В принципе, все что написано ниже, можно прочитать по адресу www.mysql.ru/docs/man/Column_types.html (за ссылку «русского перевода», спасибо artuska).
UPD3 Еще одну неплохую ссылку предоставил 4all: newcontinent.ru/h/mysqlc (материал на русском)
UPD4 Цитата из комментов от egorF:
# 14«Как главный редактор русскоязычного перевода доки на MySQL, я рекомендую в него не заглядывать — он уже сказочно морально устарел.»
Следующий массив вполне понятен PHP программистам.
Да и вообще, любые уважающие себя программисты это поймут.
Например:
‘int’=>Array(‘byte’=>4, ‘min’=>-2147483648, ‘max’=>2147483647, ‘umin’=>0, ‘umax’=>4294967295),
Используется так:
Мне надо сохранить в поле максимальное числовое значение 234 259 000 000 000.
INT — для этого не подходит. Смотрим другие типы и находим, что BIGINT вполне подойдет.
$MYSQL_TYPES=Array(
// INTEGER
// byte — кол-во байт на хранение,
// max/min — предельные значения,
// umax/umin — беззнаковые предельные значения
‘int’ =>Array( ‘byte’ =>4, ‘min’ =>-2147483648, ‘max’ =>2147483647, ‘umin’ =>0, ‘umax’ =>4294967295),
‘bigint’ =>Array( ‘byte’ =>8, ‘min’ =>-9223372036854775808, ‘max’ =>9223372036854775807, ‘umin’ =>0, ‘umax’ =>18446744073709551615),
‘tinyint’ =>Array( ‘byte’ =>1, ‘min’ =>-128, ‘max’ =>127, ‘umin’ =>0, ‘umax’ =>255),
‘smallint’ =>Array( ‘byte’ =>2, ‘min’ =>-32768, ‘max’ =>32767, ‘umin’ =>0, ‘umax’ =>65535),
‘mediumint’ =>Array( ‘byte’ =>3, ‘min’ =>-8388608, ‘max’ =>8388607, ‘umin’ =>0, ‘umax’ =>16777215),
// FLOAT DOUBLE
// Внимание! Не храните денежные значения в этих полях. Деньги надо хранить — в DECIMAL
// у FLOAT ТОЧНОСТЬ ТОЛЬКО 7 ЦИФР. (все остальные цифры «смазываются»)
// у DOUBLE ТОЧНОСТЬ ТОЛЬКО 15 ЦИФР. (все остальные цифры «смазываются»)
// byte — кол-во байт для хранения поля (по-умолчанию)
// max_byte — максимальное кол-во байт для хранения
// negative_min/negative_max — минмаксы для отрицательных чисел
// positive_min/positive_max — минмаксы для положительных чисел
‘float’ =>Array( ‘byte’ =>4, ‘max_byte’ =>8, ‘negative_min’ =>-3.402823466E+38, ‘negative_max’ =>-1.175494351E-38, ‘positive_min’ =>1.175494351E-38, ‘positive_max’ =>3.402823466E+38),
‘double’ =>Array( ‘byte’ =>8, ‘negative_min’ =>-1.7976931348623157E+308, ‘negative_max’ =>-2.2250738585072014E-308, ‘positive_min’ =>2.2250738585072014E-308, ‘positive_max’ =>1.7976931348623157E+308),
// BOOLEAN
// сами все поймете
‘bool’ =>Array( ‘byte’ =>1, ‘true’ =>1, ‘false’ =>0),
‘boolean’ =>Array( ‘byte’ =>1, ‘true’ =>1, ‘false’ =>0),
// VARCHAR
// byte — кол-во байт отведенных для хранения (можно задать меньше)
// min_byte — минимальное кол-во байт в которых может храниться поле (если длина равна 1)
// В MYSQL 5.0.3 и выше, VARCHAR может быть до 65,535 символов.
// length — максимальная длина символов в поле
‘varchar’ =>Array( ‘byte’ =>256, ‘min_byte’ =>2, ‘length’ =>255),
‘char’ =>Array( ‘byte’ =>256, ‘min_byte’ =>2, ‘length’ =>255),
// TEXT
// byte — кол-во байт для хранения поля
// min_byte — минимальное кол-во байт для хранения одного символа (если длина поля равна 1)
// length — максимальное количество символов в поле
‘tinytext’ =>Array( ‘byte’ =>256, ‘min_byte’ =>2, ‘length’ =>255),
‘text’ =>Array( ‘byte’ =>65537, ‘min_byte’ =>3, ‘length’ =>65535),
‘mediumtext’ =>Array( ‘byte’ =>16777218, ‘min_byte’ =>4, ‘length’ =>16777215),
‘longtext’ =>Array( ‘byte’ =>4294967300, ‘min_byte’ =>5, ‘length’ =>4294967296),
‘tinyblob’ =>Array( ‘byte’ =>256, ‘min_byte’ =>2, ‘length’ =>255),
‘blob’ =>Array( ‘byte’ =>65537, ‘min_byte’ =>3, ‘length’ =>65535),
‘mediumblob’ =>Array( ‘byte’ =>16777219, ‘min_byte’ =>4, ‘length’ =>16777215),
‘longblob’ =>Array( ‘byte’ =>4294967300, ‘min_byte’ =>5, ‘length’ =>4294967296),
Использование типа данных MySQL BLOB для хранения изображений с PHP в Ubuntu 18.04
Published on May 21, 2020
Автор выбрал Girls Who Code для получения пожертвования в рамках программы Write for DOnations.
Введение
Большие двоичные объекты ( BLOB ) — это тип данных MySQL для хранения двоичных данных, таких как изображения, мультимедийные файлы и файлы PDF.
При создании приложений, для которых требуются тесно связанные базы данных, где изображения нужно синхронизировать с другими данными (например, портал сотрудников, база данных студентов или финансовое приложение), будет полезно хранить изображения, например, фотографии паспортов и подписей студентов, в базе данных MySQL вместе с другой связанной информацией.
В этом обучающем модуле мы используем тип данных MySQL BLOB для сохранения изображений в коде PHP в Ubuntu 18.04.
Предварительные требования
Для выполнения этого обучающего модуля вам потребуется следующее:
Шаг 1 — Создание базы данных
Для начала создайте тестовую базу данных для своего проекта. Для этого подключитесь к серверу через SSH и запустите следующую команду для входа на сервер MySQL с привилегиями root:
Затем запустите следующую команду для создания базы данных. В этом обучающем модуле мы назовем базу данных test_company :
После создания базы данных вы увидите следующее:
Затем создайте учетную запись test_user на сервере MySQL и обязательно замените PASSWORD на надежный пароль:
Вывод должен выглядеть так:
Вы должны увидеть следующее:
Очистите таблицу прав доступа, чтобы СУБД MySQL перезагрузила разрешения:
На экран должно быть выведено следующее:
Выполните выход из сервера MySQL:
Снова войдите в систему под учетными данными созданного пользователя test_user :
После выбора базы данных test_company MySQL выведет на экран следующее:
product_image : в этом столбце данные типа BLOB используются для хранения двоичных данных изображений продуктов.
Выполните выход с сервера MySQL:
Вы увидите следующее
Теперь таблица products готова для хранения записей, в том числе изображений продуктов, и на следующем шаге мы заполним ее продуктами.
Шаг 2 — Создание скриптов PHP для подключения к базе данных и ее заполнения
Для создания кода PHP откройте новый файл в текстовом редакторе:
Сохраните и закройте файл.
В этом файле мы использовали четыре константы PHP для подключения к базе данных MySQL, созданной на шаге 1:
Следующая строка в вашем файле инициирует объект данных PHP (PDO) и выполняет подключение к базе данных MySQL:
Ближе к концу файла мы зададим пару атрибутов PDO:
Мы добавим файл /var/www/html/config.php в два скрипта PHP для вставки и получения записей, которые мы сейчас создадим.
Вначале создайте скрипт PHP /var/www/html/insert_products.php для вставки записей в таблицу products:
Затем добавьте следующую информацию в файл /var/www/html/insert_products.php :
Сохраните и закройте файл.
Затем вы подготовили выражение SQL и использовали выражение PHP foreach <. >для вставки каждого продукта в базу данных.
Для выполнения файла /var/www/html/insert_products.php запустите его в окне браузера, используя следующий URL. Замените your-server-IP публичным IP-адресом вашего сервера:
После выполнения файла вы получите в браузере сообщение, подтверждающее успешную вставку записей в базу данных.
Шаг 3 — Отображение информации о продуктах из базы данных MySQL
Мы разместили в базе данных информацию о продуктах и их ихображения. Теперь мы создадим еще один скрипт PHP, который будет запрашивать и выводить информацию о продуктах в таблице HTML в браузере.
Для создания файла введите следующее:
Затем введите в файл следующую информацию:
Сохраните изменения в файле и закройте его.
Это подтверждает, что скрипт PHP для извлечения изображений из базы данных MySQL работает ожидаемым образом.
Заключение
В этом обучающем модуле мы использовали тип данных MySQL BLOB для хранения и вывода изображений в коде PHP в Ubuntu 18.04. Мы увидели основные преимущества хранения изображений в базе данных по сравнению с их хранением в файловой системе. В число этих преимуществ входят портативность, безопасность и удобство резервного копирования. Эта технология будет вам полезна, если вы создаете приложение, для которого требуется хранить информацию и изображения вместе, например, студенческий портал или базу данных сотрудников.
Дополнительную информацию о поддерживаемых типах данных в MySQL можно найти в руководстве по типам данных MySQL. Если вас интересуют дополнительные материалы по MySQL и PHP, пройдите следующие обучающие модули:
Как хранить изображения в MySQL с помощью BLOB
BLOB (или Binary Large Object, большой двоичный объект) – это тип данных MySQL, который позволяет хранить двоичные данные: изображения, мультимедиа и файлы PDF.
Хранить изображения (такие как фотографии и подписи) в базе данных MySQL вместе с другой информацией удобно в том случае, если вы разрабатываете приложения с сильной привязкой к БД (например, портал поиска работы, база данных студентов или финансовое приложение), и в этой БД изображения должны быть синхронизированы с другими данными.
И тогда на помощь приходит тип данных BLOB. Этот подход устраняет необходимость в создании отдельной файловой системы для хранения изображений, а также централизует базу данных, делая ее более портативной и надежной, поскольку данные изолированы от файловой системы. А еще это упрощает создание резервных копий, поскольку вы можете создать один дамп MySQL, содержащий все ваши данные.
Извлечение данных обрабатывается быстрее, а при создании новых записей вы можете быть уверены, что правила проверки данных и ссылочная целостность четко соблюдены (особенно при использовании транзакций MySQL).
В этом мануале мы расскажем о том, как использовать тип данных BLOB для хранения изображений с помощью PHP.
Требования
1: Создание базы данных
Давайте начнем с создания тестовой базы данных для этого проекта. Подключитесь к серверу по SSH, а затем выполните следующую команду, чтобы войти на сервер MySQL как пользователь root:
Введите root-пароль базы данных MySQL и нажмите Enter, чтобы продолжить.
После этого выполните следующую команду, чтобы создать базу данных. В этом руководстве мы назовем ее test_company:
CREATE DATABASE test_company;
После создания БД вы увидите следующее:
Query OK, 1 row affected (0.01 sec)
Теперь нам нужно создать на сервере MySQL учетную запись test_user; не забудьте заменить PASSWORD сложным паролем:
CREATE USER ‘test_user’@’localhost’ IDENTIFIED BY ‘PASSWORD’;
Вы получите следующий результат:
Query OK, 0 rows affected (0.01 sec)
Чтобы предоставить пользователю test_user полные права доступа к базе данных test_company, запустите команду:
GRANT ALL PRIVILEGES ON test_company.* TO ‘test_user’@’localhost’;
Вы должны получить следующий результат:
Query OK, 0 rows affected (0.01 sec)
В завершение нужно сбросить таблицы привилегий, чтобы MySQL перезагрузил права:
На экране должно появиться:
Query OK, 0 rows affected (0.01 sec)
Теперь, когда база данных test_company и пользователь test_user готовы, мы можем перейти к созданию таблицы. Предположим, нам нужна таблица products для хранения списка товаров. Позже мы попробуем вставить и извлечь данные из этой таблицы, чтобы понять, как работает BLOB в MySQL.
Выйдите из оболочки MySQL:
Затем снова войдите в систему, на этот раз – как пользователь test_user:
При появлении запроса введите пароль test_user и нажмите Enter, чтобы продолжить. Затем откройте базу данных test_company, набрав команду:
Перейдя в базу данных test_company, MySQL отобразит такой результат:
Затем создайте таблицу products:
CREATE TABLE `products` (product_id BIGINT PRIMARY KEY AUTO_INCREMENT, product_name VARCHAR(50), price DOUBLE, product_image BLOB) ENGINE = InnoDB;
Эта команда создаст таблицу по имени products. В таблице будет четыре столбца:
Для поддержки широкого спектра функций, включая транзакции MySQL, мы использовали механизм InnoDB. Выполнив вышеприведенную команду для создания таблицы, вы увидите следующий результат:
Query OK, 0 rows affected (0.03 sec)
Выйдите из сервера MySQL:
Вы получите сообщение:
Таблица products готова. Вы можете использовать ее для хранения некоторых записей, включая изображения продуктов. Скоро мы заполним ее данными.
2: Создание PHP-скрипта для заполнения базы данных
На этом этапе мы создадим сценарий PHP, который будет подключаться к базе данных MySQL, созданной в первом разделе руководства. Сценарий подготовит три записи о товарах и вставит их в таблицу products.
Чтобы создать PHP-скрипт, откройте новый файл в текстовом редакторе:
sudo nano /var/www/html/config.php
Затем вставьте в него следующую информацию (замените PASSWORD паролем test_user, который вы создали в разделе 1):
Сохраните и закройте файл.
В этом файле для подключения к базе данных MySQL мы использовали четыре константы PHP:
Следующая строка в файле инициирует PHP Data Object (PDO) и подключается к базе данных MySQL:
Ближе к концу файла мы установили пару атрибутов PDO:
Файл /var/www/html/config.php нужно включить в два сценария PHP, которые мы создадим далее. Они будут отвечать за вставку и извлечение записей соответственно.
Сначала создайте PHP-скрипт /var/www/html/insert_products.php для вставки записей в таблицу products:
sudo nano /var/www/html/insert_products.php
Затем добавьте следующие конфигурации в файл /var/www/html/insert_products.php:
‘product_name’ => ‘VIRTUAL SERVERS’,
‘product_name’ => ‘MANAGED KUBERNETES’,
‘product_name’ => ‘MySQL DATABASES’,
$sql = «INSERT INTO products(product_name, price, product_image) VALUES (:product_name, :price, :product_image)»;
echo «Records inserted successfully»;
Сохраните и закройте файл.
Затем мы создали массив данных о товарах, которые нужно вставить в БД. Помимо product_name и price, которые заданы в виде строк и числовых значений соответственно, сценарий использует встроенную функцию PHP file_get_contents для чтения изображений из внешнего источника и передачи их в виде строк в столбец product_image.
После этого мы подготовили оператор SQL и использовали оператор PHP foreach <…>для вставки каждого продукта в базу данных.
Запустите /var/www/html/insert_products.php в окне браузера, используя следующий URL-адрес (не забудьте заменить your-server-IP внешним IP-адресом сервера):
На экране вы увидите сообщение об успешном выполнении файла – следовательно, записи были вставлены в базу данных.
Records inserted successfully
Итак, мы успешно вставили три записи, содержащие изображения товаров, в таблицу. На следующем этапе мы напишем сценарий PHP для извлечения этих записей и отображения их в браузере.
3: Извлечение и визуализация данных из БД MySQL
Имея в базе данных информацию и изображения товаров, вы можете написать второй сценарий PHP, который будет запрашивать и отображать данные в таблице HTML в браузере.
Blob mysql что это
If strict SQL mode is not enabled and you assign a value to a BLOB or TEXT column that exceeds the column’s maximum length, the value is truncated to fit and a warning is generated. For truncation of nonspace characters, you can cause an error to occur (rather than a warning) and suppress insertion of the value by using strict SQL mode. See Section 5.1.11, “Server SQL Modes”.
Truncation of excess trailing spaces from values to be inserted into TEXT columns always generates a warning, regardless of the SQL mode.
For TEXT and BLOB columns, there is no padding on insert and no bytes are stripped on select.
In most respects, you can regard a BLOB column as a VARBINARY column that can be as large as you like. Similarly, you can regard a TEXT column as a VARCHAR column. BLOB and TEXT differ from VARBINARY and VARCHAR in the following ways:
BLOB and TEXT columns cannot have DEFAULT values.
If you use the BINARY attribute with a TEXT data type, the column is assigned the binary ( _bin ) collation of the column character set.
LONG and LONG VARCHAR map to the MEDIUMTEXT data type. This is a compatibility feature.
Because BLOB and TEXT values can be extremely long, you might encounter some constraints in using them:
Only the first max_sort_length bytes of the column are used when sorting. The default value of max_sort_length is 1024. You can make more bytes significant in sorting or grouping by increasing the value of max_sort_length at server startup or runtime. Any client can change the value of its session max_sort_length variable:
Each BLOB or TEXT value is represented internally by a separately allocated object. This is in contrast to all other data types, for which storage is allocated once per column when the table is opened.
In some cases, it may be desirable to store binary data such as media files in BLOB or TEXT columns. You may find MySQL’s string handling functions useful for working with such data. See Section 12.8, “String Functions and Operators”. For security and other reasons, it is usually preferable to do so using application code rather than giving application users the FILE privilege. You can discuss specifics for various languages and platforms in the MySQL Forums (http://forums.mysql.com/).
Студент нанимается на лето подработать в
университете, его спрашивают:
— Языком владеешь?
— Я в совершенстве владею языком!
— Отлично, будешь наклеивать марки на конверты.
Обзор
СУБД MySQL предоставляет в Ваше распоряжение подмножество языка SQL, соответствующее спецификации ANSI SQL 92.
ALTER TABLE
Команда ALTER TABLE может быть использована для изменения определения таблицы. ALTER TABLE работает с временно созданной таблицей в которую копирует все данные из текущей таблицы. Когда копия готова, старая таблица удаляется, а новая переименуется в нее. Это выполнено таким способом, что все изменения автоматически переназначаются на новую таблицу.
Пока работает ALTER TABLE, старая таблица доступна для других клиентов. Обновления и запись в таблицу останавливаются и будут выполнены только после того, как новая таблица будет готова. Если IGNORE не определен, то копирование будет прервано и процесс отработан назад в случае наличия любых уникальных ключей, дублированных в новой таблице.
Вы можете использовать функцию C API mysql_info(&MYSQL_RESULT) чтобы узнать, сколько записей скопировано и сколько удалено из-за дублированных ключей.
Для использования команды ALTER TABLE вы должны иметь права доступа select, insert, delete, update, create и drop для этой таблицы.
CREATE TABLE
Здесь create_definition имеет следующий формат:
В MySQL все поля имеют неявное значение по умолчанию, если объявлены, как не пустые (NOT NULL). Если вы не даете значения по умолчанию при использовании не пустого поля, оно будет назначено, исходя из типа поля.
Блок FOREIGN нужен только для совместимости. Ключевое слово REFERENCE тоже не выполняет в данной версии никаких действий.
Команда MySQL CREATE TABLE не поддерживает ключевое слово SQL CHECK.
Для создания таблицы Вы должны иметь права доступа create.
Если Вы желаете начать отсчет не с ноля, просто вставьте желательное стартовое значение в первой записи, которую Вы вставляете в данную таблицу. В настоящее время нет никакого другого способа достичь этого эффекта.
Если Вы используете AUTO_INCREMENT, Вы можете использовать его только в одном поле таблицы. Обратите внимание также, что это поле должно быть объявлено как первичный ключ, и должно быть числовым.
INT(5) ZEROFILL; значение 5 превращается в «00005»
Типы данных
Поля должны иметь один из следующих типов данных:
| BIGINT [(length)] [UNSIGNED] [ZEROFILL] | 8 байт целое (если компилятор поддерживает такой тип) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| BLOB | Двоичный объект (максимальная длина 65535 байт) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| CHAR(NUM) | Строка фиксированной длины (1 КлючиMySQL таблица может иметь до 16 ключей, каждый из которых может иметь до 15 полей. Максимальная поддерживаемая длина ключа 120 байт. Вы можете увеличить длину ключа, изменяя N_MAX_KEY_LENGTH в файле nisam.h и перекомпилировав пакет. Обратите внимание, что длинные ключи могут привести к низкой эффективности. При создании ключа Вы можете факультативно определить, что только первые N символов поля будут использоваться. Например, если Вы хотите создавать уникальный ключ на поле, в котором только первые 40 символов уникальны, можно сделать следующее. CREATE TABLE SomeTable (composite CHAR(200), INDEX comp_idx(composite(40))); Вы можете иметь один первичный ключ на таблицу. Если поле определено, как поле первичного ключа, то генерируется индекс. Нет никакой необходимости определять нормальный ключ. Кроме того, при определении дополнительных индексов, которые содержат первичный ключ не будет иметь смысла, поскольку первичный ключ сделает индекс бесполезным. Ключи с несколькими полями следует использовать для оптимизации узкоспецифических запросов. То есть, все поля в предложении WHERE запроса должны появляться в многопольном ключе. Поскольку MySQL использует B-Tree не нужно объявлять ключи, которые являются префиксами других ключей. Оптимизатор найдет любой пригодный для использования префикс ключа и использует его, чтобы выполнить поиск. Например, если Вы объявляете следующий ключ: INDEX (first, second, third, fourth) Вы также неявно создали следующие ключи: (first, second, third) Объявление ненужных ключей только займет дополнительное место и замедлит ваши запросы. Ключи должны быть созданы во время создания таблицы или изменения таблицы с использованием команды ALTER TABLE. BLOB’ыКак отмечено выше, MySQL поддерживает четыре типа BLOB: MySQL WIN95 ODBC драйвер определяет BLOB как LONGVARCHAR. Двоичные данные в BLOBSЕсли Вы вставляете двоичные данные в BLOB, Вы не должны применять следующие символов: CREATE INDEX
В MySQL эта команда проверит был ли данный индекс создан, когда создавалась таблица. Она не создает индекс. Это предусмотрено по причинам совместимости. Если Вы хотите добавить, ключ используйте команду ALTER TABLE. DELETE
Здесь where_definition имеет формат: where_expr имеет формат: Удаляет записи из таблицы. Вы должны иметь права доступа delete для удаления записей. DESCRIBE(DESCRIBE | DESC) table [column] Удаляет (в оригинальной документации почему-то сказано, что роняет) одну или несколько таблиц. Если Вы хотите только удалить все данные в таблице и сохранить ее структуру для будущего повторного заполнения, Вы можете использовать команду DELETE. ОСТЕРЕГАЙТЕСЬ! DROP TABLE полностью удалит именованную таблицу(ы) из вашей системы. Не предусмотрено никакого UNDO или UNERASE (если Вы не имеете резервной копии, конечно). Вы должны иметь права доступа delete, чтобы использовать DROP. DROP INDEXDROP INDEX index_name Эта команда ничего не делает. Чтобы удалить индекс, Вы должны использовать команду ALTER TABLE. DROP INDEX предусмотрен по причине совместимости. Это вводит в заблуждение некоторые клиенты, которые думают, что получили то, что они просили. Прежде всего это касается тупых ODBC драйверов. GRANTКоманда GRANT ничего не делает. Она всегда возвращает истину и нужна прежде всего, чтобы ввести в заблуждение некоторые прикладные программы, которые используют ODBC и думают, что команда GRANT, которую они выдали, что-то сделала. Вообще, ODBC такая библиотека, что для совместимости с ней предусмотрена не одна функция. См. главу Администрирование пакета для получения подробностей по поводу прав доступа в MySQL. SELECTwhere_expr имеет формат: Оператор SELECT является краеугольным камнем всего языка SQL. Он используется, чтобы выполнить запросы к базе данных. Это действительно основа языка SQL. Для хорошего общего учебника о том, как работает SELECT, посмотрите http://w3.one.net/ HAVING по существу, WHERE применительно к результатам. Он используется главным образом для узкой области данных, возвращенных запросом. Вы должны иметь права select для использования SELECT. Функцииselect_expression может содержать следующие функции и операторы: ELT(3,»First»,»Second»,»Third»,»Fourth») | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| FIELD(Z,a,b,c) | Возвращает a, если Z == a, b, если Z == b и т. д. a,b,c,d строки. FIELD(«Second»,»First»,»Second»,»Third»,»Fourth») select_expression может также содержать один или большее количество следующих математических функций.
select_expression может также содержать одну или больше следующих строковых функций.
|






