Перейти на главную   
  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 в примерах

Шаг 11. Краткий справочник по MySQL. Типы данных

Прежде чем продолжать разрабатывать наше творение я приведу краткую справку по MySQL, а точнее, коротко опишу типы данных mysql, функции и особенности sql-запросов. Сам sql, я думаю, Вы знаете (если это не так - то к вашим услугам раздел "SQL by step" на "Первых шагах"! ;)

Я не буду описывать подробно все изобилие типов MySQL. Я уверен, что это лишнее. Дело в том, что в mysql-е числовые и текстовые группы типов очень многочисленны. Отличаются типы в этих группах размером в байтах и возможными модификаторами. Подробности можно посмотреть в мануале в директории Docs каталога с mysql-ем в разделе "7.3 Column types". Там и английский знать особо не нужно - смотрите на название и цифры длины! ;)

Здесь я сделаю обзор самих групп типов данных - для быстрого введение.

MySQL поддерживает следующие типы/группы типов данных:

  1. Числовые. Возможные модификаторы: UNSIGNED для объявления беззнаковости, ZEROFILL для заполнения лидирующих пробелов нулями (имеется в виду внешний вид при выводе). Могут быть созданы как целые (TINYINT, SMALLINT, INT, BIGINT и пр.), так и числа с плавающей точкой (FLOAT, DOUBLE, REAL и пр.).
  2. Строковые. Возможные модификаторы: BINARY для объявления поля как бинарного (любые коды хранимых символов), NATIONAL - модификатор по умолчанию, - использование набора символов для сортировки, сравнения и пр. Занятный модификатор. Отвечает за конструкцию SET-группы: SET CHARACTER SET character_set_name | DEFAULT, где character_set_name может принимать значение cp1251_koi8.

    Однако эти установки выставлены по умолчанию. Выходит, без модификатора результат тот же, что и с ним. Я так понял, что эти фишки для будущего использования. Модификатор для типа CHAR VARYING создает строковое поле переменной длины.
  3. BLOB-поля - поля для хранения двоичных данных.

Типы данных, не попавшие в предыдущие три группы:

  1. TIMESTAMP - поле хранит дату и время последнего изменения записи. Это значит, что, добавив в таблицу поле типа TIMESTAMP (например, воспользовавшись конструкцией ALTER TABLE table_name ADD COLUMN column_name TIMESTAMP), Вы, не производя никаких изменений поля типа TIMESTAMP, будете в нем иметь время последней операции с записью, влияющей на содержимое строки таблицы.
  2. DATE, TIME, DATETIME - поля хранения даты, времени, и того, и другого. Тут, я думаю все ясно.
  3. YEAR - поле, добавленное в версии 3.22, - для хранения года в интервале с 1901 по 2155.
  4. ENUM - поле, хранящее одно из значений, указанных в списке при создании (модификации структуры) таблицы, например, ALTER TABLE tab_name ADD COLUMN col_enum ENUM('Ага', 'Угу', 'Ну его нафиг'). Теперь поместить в поле col_enum одно из перечисленных значений можно так:

    INSERT INTO tab_name SET col_enum='Ага'

    или

    UPDATE tab_name SET col_enum=3

    В последнем случае в col_enum будет значение 'Ну его нафиг'. Присвоение полю значения не из списка (например, col_enum=7 или col_enum='format c:') запишет в поле пустую строку (даже не 'NULL').
  5. тип SET в отличии от типа ENUM предназначен для хранения списка значений, например,

    ALTER TABLE tab_name ADD COLUMN col_set SET ('один','два','три','четыре')

    Теперь изменим значение поля:

    UPDATE tab_name SET col_set='один' WHERE поле=значение

    После такого запроса col_set будет содержать значение 'один'.

    UPDATE tab_name SET col_set=15

    Здесь col_set содержит значение 'один,два,три,четыре'. Да, именно строку с set-значениями, разделенными запятыми. Цифра 15 - это двоичное 1111. Каждый бит отвечает за свое значение в списке. Например: 1 - 'del', 10 - 'file1.txt', 11 - 'del,file1.txt' и т.д. Как и в случае с ENUM установка недопустимого значения записывает в поле пустую строку.

В следующем шаге - краткий обзор функций MySQL, используемых в SELECT-запросах и в условиях WHERE. Подробностями самого SELECT-а мы займемся несколько позже, когда в целом реализуем первый проект - книжную базу.











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