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

Форум MySQL

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

 

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

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

тема: Из запроса к базе получить одно поле

Сообщения:  [1-10]    [11-20]  [21-30] 

 
 автор: Trianon   (15.06.2010 в 16:47)   письмо автору
 
   для: Valick   (15.06.2010 в 16:02)
 

идеальная реляционная модель таки слегка отличается от SQL-языка.

На выходе идеальной реляционной модели (РМ) мы конечно же получим РМ-таблицу .
При чем мгновенно, одним глотком так сказать, а не построчно, буфферизировано и т.д.
Но боюсь, что там уже не будет никаких ORDER BY, и тем паче LIMIT... :)

  Ответить  
 
 автор: Valick   (15.06.2010 в 16:02)   письмо автору
 
   для: Trianon   (15.06.2010 в 15:46)
 

То, что выдает SHOW CREATE TABLE
отвечу Вашими же словами
на запрос отвечает сервер.
клиент этот табличный результат представляет, как может.
Консольный клиент, PMA - визуализируют


У таблицы есть структура.
неоспоримое замечание...
теперь давайте разберемся куда же девается структура в ответе на запрос SELECT

___
может я чего-то не понимаю, в силу своей врожденной тупости, но...
при реляционной модели БД на входе мы имеем одну или более таблиц, и надо полагать на выходе мы имеем таблицу... вот меня и волнует...
что еще на выходе мы можем получить кроме таблицы?

  Ответить  
 
 автор: Trianon   (15.06.2010 в 15:46)   письмо автору
 
   для: Valick   (15.06.2010 в 15:25)
 

>даже человечьи клиенты не создают таблицу в терминах сервера.
>позвольте таки полюбопытствовать о терминах сервера
>сильно сомневаюсь что MySQL берет линейку, мочит карандаш о кончик языка и начинает вычерчивать таблицу на винчестере (CREATE TABLE), а потом пхает туды шо попало.
>т.о. то что лежит на винчестере в терминах сервера - это таблица,

Нет. То, что лежит на винчестере - это хранилище этой (и возможно других) таблицы.

>а то что возвращает SELECT - это не таблица.
>Вот я и пытаюсь понять разницу между ними.

Очень просто.
У таблицы есть структура. То, что выдает SHOW CREATE TABLE.
И интерфейс чтения (запрос SELECT) и изменения (запросы DML).
Ну и определения (запросы DDL) докучи.

  Ответить  
 
 автор: Valick   (15.06.2010 в 15:25)   письмо автору
 
   для: Trianon   (15.06.2010 в 13:55)
 

даже человечьи клиенты не создают таблицу в терминах сервера.
позвольте таки полюбопытствовать о терминах сервера
сильно сомневаюсь что MySQL берет линейку, мочит карандаш о кончик языка и начинает вычерчивать таблицу на винчестере (CREATE TABLE), а потом пхает туды шо попало.
т.о. то что лежит на винчестере в терминах сервера - это таблица,
а то что возвращает SELECT - это не таблица.
Вот я и пытаюсь понять разницу между ними.
- и там и там есть строки
- и там и там есть поля
- и там и там количество полей одинаково в каждой строке
- и там и там значения, находящиеся в одном столбце таблицы имеют один тип данных
чего именно я не могу понять?

  Ответить  
 
 автор: Trianon   (15.06.2010 в 13:55)   письмо автору
 
   для: Valick   (15.06.2010 в 11:46)
 

на запрос отвечает сервер.
клиент этот табличный результат представляет, как может.
Консольный клиент, PMA - визуализируют.
программные интерфейсы (php-шный и т.п.) - формирует буфер массивов.
и т.д.
Но
даже человечьи клиенты не создают таблицу в терминах сервера.

Хотя возможность такая есть, хоть и обглоданная. CREATE TABLE nn SELECT * FROM ...

  Ответить  
 
 автор: Valick   (15.06.2010 в 11:46)   письмо автору
 
   для: Trianon   (12.06.2010 в 04:04)
 

кстати чем отвечает консоль на запрос SELECT ?
набором строк табличного результата или все таки рисует таблицу? :)

[поправлено модератором: консольный клиент mysql и СУБД MySQL разные программы - не следует их смешивать в контексте обсуждения обработки SQL-запросов]

  Ответить  
 
 автор: Valick   (12.06.2010 в 08:07)   письмо автору
 
   для: Trianon   (12.06.2010 в 04:04)
 

единственное отличие результирующей таблицы от исходной - это то что она не имеет названия (если не использовать AS и даже в этом случее сильно сомневаюсь что у нее нет "порядкового номера на рукаве")
хотелось бы услышать по нечто большее, что мешает набору строк табличного результата быть полноценной таблицей.
___
могли бы рассказать когда в INSERT SELECT таблица перестает быть таблицей и снова обретает статус таблицы?
___
могли бы прокомментировать вот это:
   1. CREATE VIEW temp AS SELECT CONCAT('c','_',id ) AS ID,  
   2.  company_name AS name,  'customer' AS parent  
   3. FROM customers  
   4. UNION SELECT CONCAT(  'p',  '_', id ) AS ID, name,  
   5. CONCAT(  'c',  '_', parent ) FROM customers_person  

  Ответить  
 
 автор: Trianon   (12.06.2010 в 04:04)   письмо автору
 
   для: Valick   (11.06.2010 в 23:40)
 

вообще-то neadekvat прав - SELECT никакую таблицу не возвращает.
Он возвращает табличный результат. Вернее, даже набор строк табличного результата.
Таблица, всё ж - нечто большее.

  Ответить  
 
 автор: Valick   (12.06.2010 в 00:44)   письмо автору
 
   для: neadekvat   (12.06.2010 в 00:26)
 

угу, абсолютно согласен :)
Селект предназначен для выборки строк, а результатом работы селекта - будет таблица :)
даже если она состоит из одной строки(более того даже если она состоит из одного столбца) - в сущности это таблица

  Ответить  
 
 автор: neadekvat   (12.06.2010 в 00:26)   письмо автору
 
   для: Valick   (12.06.2010 в 00:22)
 

Это, пожалуй, единственное подобное изречение во всем гугле.

Пожалуйте-с:
SELECT is used to retrieve rows selected from one or more tables

(с) http://dev.mysql.com/doc/refman/5.0/en/select.html

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-30] 

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

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