Вход Регистрация
Файл: backUP/php_lsn/php11.html
Строк: 44
<?php

<html>                                                                              
<
head>
<
title>PHPШаг за шагом.</title>
<
meta content="text/html; charset=Windows-1251" http-equiv=Content-Type>
</
head>
<
body text=black bgcolor=white link=blue vlink=blue alink=red>
<
font color=red><h2 align=center>Шаг 11. Краткий справочник по MySQLТипы данных.</h2></font>
<
p>Прежде чем продолжать разрабатывать наше творение я приведу краткую справку по <b>MySQL</b>, а точнеекоротко опишу типы данных <b>mysql</b>, функции и особенности <b>sql</b>-запросовСам <b>sql</b>, я думаюВы знаете (если это не так то к вашим услугам раздел "SQL by step" на "Первых шагах"! ;)

<
p>Я не буду описывать подробно все изобилие типов <b>MySQL</b>. Я уверенчто это лишнееДело в томчто в <b>mysql</b>-е числовые и текстовые группы типов очень многочисленныОтличаются типы в этих группах размером в байтах и возможными модификаторамиПодробности можно посмотреть в мануале в директории <b>Docs</bкаталога с <b>mysql</b>-ем в разделе "<b>7.3 Column types</b>"Там и английский знать особо не нужно смотрите на название и цифры длины! ;) 
<
p>Здесь я сделаю обзор самих групп типов данных для быстрого введение.
<
p>MySQL поддерживает следующие типы/группы типов данных:
<
ol>
<
li>ЧисловыеВозможные модификаторы: <b>UNSIGNED</bдля объявления беззнаковости, <b>ZEROFILL</bдля заполнения лидирующих пробелов нулями (имеется в виду внешний вид при выводе). Могут быть созданы как целые (<b>TINYINT</b>, <b>SMALLINT</b>, <b>INT</b>, <b>BIGINT</bи пр.), так и числа с плавающей точкой (<b>FLOAT</b>, <b>DOUBLE</b>, <b>REAL</bи пр.).
<
li>СтроковыеВозможные модификаторы: <b>BINARY</bдля объявления поля как бинарного (любые коды хранимых символов), <b>NATIONAL</b> - модификатор по умолчанию, - использование набора символов для сортировкисравнения и прЗанятный модификаторОтвечает за конструкцию <b>SET</b>-группы: <b>SET CHARACTER SET character_set_name | DEFAULT</b>, где <b>character_set_name</bможет принимать значение <b>cp1251_koi8</b>. <p>Однако эти установки выставлены по умолчаниюВыходитбез модификатора результат тот жечто и с нимЯ так понялчто эти фишки для будущего использованияМодификатор для типа <b>CHAR VARYING</bсоздает строковое поле переменной длины.
<
li><b>BLOB</b>-поля поля для хранения двоичных данных.
</
ol>
Типы данныхне попавшие в предыдущие три группы:
<
ol start=4>
<
li><b>TIMESTAMP</b> - поле хранит дату и время последнего изменения записиЭто значитчтодобавив в таблицу поле типа <b>TIMESTAMP</b> (напримервоспользовавшись конструкцией <b>ALTER TABLE table_name ADD COLUMN column_name TIMESTAMP</b>), Выне производя никаких изменений поля типа <b>TIMESTAMP</b>, будете в нем иметь время последней операции с записьювлияющей на содержимое строки таблицы.
<
li><b>DATE</b>, <b>TIME</b>, <b>DATETIME</b> - поля хранения датывремении тогои другогоТутя думаю все ясно.
<
li><b>YEAR</b> - поледобавленное в версии 3.22, - для хранения года в интервале с 1901 по 2155.
<li><b>ENUM</b> - полехранящее одно из значенийуказанных в списке при создании (модификации структуры)
таблицынапример, <b>ALTER TABLE tab_name ADD COLUMN col_enum ENUM('Ага''Угу''Ну его нафиг')</b>.
Теперь поместить в поле <b>col_enum</bодно из перечисленных значений можно так:
<
pre>
INSERT INTO tab_name SET col_enum='Ага'
 
или
UPDATE tab_name SET col_enum
=3.
</pre>
В последнем случае в <b>col_enum</bбудет значение <b>'Ну его нафиг'</b>. Присвоение полю значения не из списка (например, <b>col_enum=7</bили <b>col_enum='format c:'</b>) запишет в поле пустую строку (даже не '<b>NULL</b>').
<
li>тип <b>SET</bв отличии от типа <b>ENUM</bпредназначен для хранения списка значенийнапример,
<
pre>
ALTER TABLE tab_name ADD COLUMN col_set SET ('один','два','три','четыре')
</
pre>
Теперь изменим значение поля:
<
pre>
UPDATE tab_name SET col_set='один' WHERE поле=значение
</pre>
После такого запроса <b>col_set</bбудет содержать значение 'один'.
<
pre>
UPDATE tab_name SET col_set=15
</pre>
Здесь <b>col_set</bсодержит значение 'один,два,три,четыре'Даименно
строку с 
<b>set</b>-значениямиразделенными запятымиЦифра <b>15</b> - это двоичное <b>1111</b>. Каждый бит отвечает за свое значение в спискеНапример'del'10 'file1.txt'11 'del,file1.txt' и т.дКак и в случае с <b>ENUM</bустановка недопустимого значения записывает в поле пустую строку.
</
ol>
В следующем шаге краткий обзор функций <b>MySQL</b>, используемых в <b>SELECT</b>-запросах и в условиях <b>WHERE</b>. Подробностями самого <b>SELECT</b>-а мы займемся несколько позжекогда в целом реализуем первый проект книжную базу.
<
hr>
<
center><font size=2><a href=php10.html>Предыдущий Шаг</a></font></center>
<
hr><center><font size=2>By <a href="mailto:kgp@nm.ru?SUBJECT=FromPHPByStep">Konstantin Platonov</a>.</center>
</
body>
</
html>
?>
Онлайн: 1
Реклама