Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Про реляционные база данных

56K
15 марта 2010 года
Craz-z-zy
14 / / 15.03.2010
Расскажите про реляционные базы данных.
Как связать таблицы?
Какой программой пользоваться(нужно работать с БД MySQL) InnoDB?
Как в дальнейшем работать с такой БД?
Как вывести ответ на запрос так, чтобы у столбцов были подписаны названия?
13
15 марта 2010 года
RussianSpy
3.0K / / 04.07.2006
А вы не пробовали мануал почитать? Книгу какую-нибудь по теории реляционных баз данных? Мануал по MySQL на родном сайте?
56K
16 марта 2010 года
Craz-z-zy
14 / / 15.03.2010
Пробовал. Изучать я начал совсем недавно, и сроки поджимают. Не подумайте, что я вот так взял и написал все эти вопросы. Насколько я понимаю, на форуме задают вопросы, которые непонятны?
Теорию реляционных баз данных я читал. Может что и упустил.
Да и практики небыло?

Какой программой пользоваться(нужно работать с БД MySQL) InnoDB?
- мне нужно работать с БД в связке с PHP. Прочитал, что Денвер не работает с движком InnoDB. Позже попробовал, работает (может есть какие-то моменты которые я упустил)

Как связать таблицы?
- почитал. Таблицы MyISAM, я понял как делать из них выборку, и как с ними работать, но вот к сожалению связи они не поддерживают :(

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

Как в дальнейшем работать с такой БД?
- В таблицах с движком MyISAM можно использовать JOIN ...
- Как добавить данные в связанные таблицы, (по отдельности или воспользоваться тем что они связаны...)

Подскажите ответы на эти вопросы, если возможно с ссылкой или с примером? Заранее спасибо...
253
16 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
На все эти вопросы, даже связанные с foreign keys (= связи) и с InnoDB, есть ответы в хороей книжке Поля Дюбуа MySQL (4 редакция, например).

Цитата:
Какой программой пользоваться (нужно работать с БД MySQL) InnoDB?


Так же, как и с MyISAM. Возможно, даже phpMyAdmin работает с ней.

Цитата:
Как связать таблицы?
- почитал. Таблицы MyISAM, я понял как делать из них выборку, и как с ними работать, но вот к сожалению связи они не поддерживают


Связи есть только в InnoDB. Лучше всего найти книжку, про которую я писал выше, и прочитать там несколько глав про foreign keys.

Цитата:
Как вывести ответ на запрос так, чтобы у столбцов были подписаны названия?


Столбцы придётся выводить самому. Скажем, так:

 
Код:
$rows = array();
$query = mysql_qyery('SELECT * FROM a_table');

while ($row = mysql_fetch_assoc($query)) {
  $rows[] = $row;
}
if (!empty($rows)) {
  $header = array_keys($rows[0]);
  array_unshift($rows, $header);
}


Цитата:
Как в дальнейшем работать с такой БД?


Работа с InnoDB не отличается от работы с MySQL, если не использовать специфичные для одного из движков функции. Вставка, удаление, выборка записей - стандартный SQL.
Связность поддерживается самим движком таблицы.

56K
17 марта 2010 года
Craz-z-zy
14 / / 15.03.2010
Спасибо большое!:)
56K
17 марта 2010 года
Craz-z-zy
14 / / 15.03.2010
Появился ещё вопрос. Возжможно сделать так, чтобы значения записывались в поле автоматически по заданной формуле, или такое поле можно не делать, а обойтись только запросом на вывод нужного значения.

как получить разницу двух ячеек формата datetime?
в этом случае можно использовать вариант работы с функциями RIGTH() LEFT()?
253
17 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
Возжможно сделать так, чтобы значения записывались в поле автоматически по заданной формуле, или такое поле можно не делать, а обойтись только запросом на вывод нужного значения.


В MySQL нет формул, которые бы считались для поля по другим полям. Что делать зависит от твоего желания - лишнее поле может быть полезно:

  • если ты часто смотришь таблицу не через какой-то свой PHP-скрипт, который считает это поле для тебя на лету, а через phpMyAdmin, mysql.exe и прочие средства.
  • если это поле гораздо чаще требуется прочитать, чем записать. Например, по такому полю можно сделать индекс что сильно увеличит время доступа к таблице по этому условию.
  • ну, и если таблица небольшая и/или тебе не жалко места для хранения ещё одного поля.
Зависит и от типа поля - обычно поля типов вроде integer/double, которые занимают фиксированное место и небольшие сами по себе можно добавлять не задумываясь, если нет проблем с местом.

Цитата:
как получить разницу двух ячеек формата datetime?


Доки MySQL тебе в помощь.

56K
04 апреля 2010 года
Craz-z-zy
14 / / 15.03.2010
Возникла проблема с удаленим значения NULL.
Пишу:
delete from user where name = NULL
пока ничего не помогает (???) даже поиск значения NULL, результатов не дает.
253
04 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004
По определению, ничто, даже другой NULL, не равен NULL. Короче говоря, NULL != NULL. Для проверки на него используется функция ISNULL(), см. доки.
2
04 апреля 2010 года
squirL
5.6K / / 13.08.2003
Цитата: Craz-z-zy
Возникла проблема с удаленим значения NULL.
Пишу:
delete from user where name = NULL
пока ничего не помогает (???) даже поиск значения NULL, результатов не дает.



http://ru.wikipedia.org/wiki/NULL_(SQL)

я не очень понял, тут форум программистов или детский садик? =//

1
04 апреля 2010 года
kot_
7.3K / / 20.01.2000
детский садик видимо - раз сразу за подобную тему автора сразу не наказали.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог