Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Типы данных в MySQL

Сообщения:  [1-10]   [11-12] 

 
 автор: cheops   (20.03.2006 в 13:21)   письмо автору
 
   для: Jaroslav   (19.03.2006 в 23:24)
 

>что желательно, чтобы в таблице не было пустых ячеек.
Желательно, это не означает, что это обязательное требование. Это просто рекомендация и вообще говоря не для пустых ячеек, я для значения NULL.

   
 
 автор: Trianon   (20.03.2006 в 10:35)   письмо автору
 
   для: Евгений Петров   (19.03.2006 в 23:45)
 

все они будут занимать разное количество памяти:
TINYTEXT   - "word" - 5 байт
TEXT       - "word" - 6 байт
MEDIUMTEXT - "word" - 7 байт
LONGTEXT   - "word" - 8 байт

см. мануал (Требования к памяти для символьных типов.)
Это следствие того факта, что помимо самого текста нужно хранить ео длину.
Эта длина (в зависимости от типа поля) для своего хранения требует от 1 (для TINYTEXT) до 4 (для LONGTEXT) байт.

   
 
 автор: FBI   (20.03.2006 в 03:16)   письмо автору
 
   для: Евгений Петров   (20.03.2006 в 00:59)
 

>>Не знаю почему 20.
>Гениально!!! :))))

))))))

   
 
 автор: Caaseer   (20.03.2006 в 02:10)   письмо автору
 
   для: Jaroslav   (19.03.2006 в 23:24)
 


А почему при создании таблицы:


CREATE TABLE auth (
name TINYTEXT) NOT NULL primary key,
pass TINYTEXT NOT NULL,
email TINYTEXT NOT NULL,
family TINYTEXT NOT NULL,
nick TINYTEXT NOT NULL,
prof TINYTEXT NOT NULL,
opit TINYTEXT NOT NULL,
infa TEXT NOT NULL
) TYPE=MyISAM;


может из за скобки?

name TINYTEXT) NOT NULL primary key,

   
 
 автор: Евгений Петров   (20.03.2006 в 00:59)   письмо автору
 
   для: Jaroslav   (20.03.2006 в 00:40)
 

Не знаю почему 20.
Гениально!!! :))))

   
 
 автор: Jaroslav   (20.03.2006 в 00:40)   письмо автору
 
   для: Евгений Петров   (20.03.2006 в 00:27)
 

Не знаю почему 20.
Скорее всего не там смотрю?
Но у всех рядов все одинаково.

   
 
 автор: Евгений Петров   (20.03.2006 в 00:27)   письмо автору
 
   для: Jaroslav   (20.03.2006 в 00:18)
 

Почему 20?

   
 
 автор: Jaroslav   (20.03.2006 в 00:18)   письмо автору
 
   для: Евгений Петров   (19.03.2006 в 23:45)
 

Все имеют одинаковый размер по 20 байт.

   
 
 автор: Евгений Петров   (19.03.2006 в 23:45)   письмо автору
 
   для: cheops   (19.03.2006 в 22:54)
 

А при одинаковых значениях полей разных типов их размер одинаковый будет?
Т.е. например:
TINYTEXT - "word"
TEXT- "word" 
MEDIUMTEXT - "word"
LONGTEXT - "word"

Они будут все занимать 4 байта?

   
 
 автор: Jaroslav   (19.03.2006 в 23:24)   письмо автору
 
   для: cheops   (19.03.2006 в 22:54)
 

Спасибо!

А почему при создании таблицы:


CREATE TABLE auth (
name TINYTEXT) NOT NULL primary key,
pass TINYTEXT NOT NULL,
email TINYTEXT NOT NULL,
family TINYTEXT NOT NULL,
nick TINYTEXT NOT NULL,
prof TINYTEXT NOT NULL,
opit TINYTEXT NOT NULL,
infa TEXT NOT NULL
) TYPE=MyISAM;


происходит ошибка?


А вот так все нормально:

CREATE TABLE auth (
name VARCHAR(30) NOT NULL primary key,
pass TINYTEXT NOT NULL,
email TINYTEXT NOT NULL,
family TINYTEXT NOT NULL,
nick TINYTEXT NOT NULL,
prof TINYTEXT NOT NULL,
opit TINYTEXT NOT NULL,
infa TEXT NOT NULL
) TYPE=MyISAM;

Почему нельзя первичному ключу присвоить значение TINYTEXT?


Еще хотел уточнить. В литературе обычно пишут, что желательно, чтобы в таблице не было пустых ячеек. Как в таком случае поступать с данными, если они не обязательны для ввода?

Например, данные в таблице приведенной выше обязательны для заполнения.
А если есть другие необязательные данные, то как их лучше оформить.
Одной таблицей. Как тут:


create table other (
name VARCHAR(30) NOT NULL,
pol TINYTEXT NOT NULL,
prof2 TINYTEXT NOT NULL,
education TINYTEXT NOT NULL,
country TINYTEXT NOT NULL,
city TINYTEXT NOT NULL,
www TINYTEXT NOT NULL,
tel TINYTEXT NOT NULL,
icq TINYTEXT NOT NULL,
date TINYTEXT NOT NULL,
index (name)
);


Или надо делать много таблиц с двумя столбцами. Скажем, имя пользователя - образование; имя пользователя - профессия...
Например:

create table edu (
name VARCHAR(30) NOT NULL,
education TINYTEXT NOT NULL
index (name)
);


create table prof (
name VARCHAR(30) NOT NULL,
prof2 TINYTEXT NOT NULL,
index (name)
);

   

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования