[sql] Вопросы по БД

Discussion in 'PHP' started by FraiDex, 25 Feb 2008.

Thread Status:
Not open for further replies.
  1. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    спасибо за наводку
    кстати реализовал через time() и там еще чуть дополнил
     
  2. IRS

    IRS New Member

    Joined:
    3 Aug 2011
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Господа, есть СУБД, похоже на базе MySQL или MS SQL, точнее не знаю (в этом новичок), к СУБД консольный доступ. Необходимо узнать список таблиц.
    Команда SHOW TABLES выдает следующее:
    SQL-запрос выполнен (Время от начала 6 мин. 40 сек., время запроса 0.02 сек.).code: 0:0 i=10
     
  3. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Code:
    SELECT table_name
    FROM information_schema.tables
    
     
  4. IRS

    IRS New Member

    Joined:
    3 Aug 2011
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Насколько я понял, INFORMATION_SCHEMA - это что-то типа отдельной информационной бд. (если не прав - просьба поправить).
    при вводе команд
    select table_name
    <вылетает с неизвестной ошибкой>
    select table_name from INFORMATION_SCHEMA.TABLES
    пишет что набор данных (схема) не найден ошибка 36049
    при запросе списка баз данных БД information_schema не выводит, вроде как ее нет.
     
  5. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    мб прав не хватает? 36049 - вообще впервые вижу такой номер ошибки. скопипасти полный эррор сюда.

    ида,
    ???
    upd: не прочитал первый пост. это не mysql точно, и врятле mssql. и там и там должен был отработать запрос в information_schema
     
    #1545 Чакэ, 17 Nov 2011
    Last edited: 17 Nov 2011
  6. IRS

    IRS New Member

    Joined:
    3 Aug 2011
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    скопипастить не получится - это другая машина.
    но полный эрр - пожалуйста:

    # SELECT table_name FROM information_schema.tables
    Ошибка при обработке запроса.
    Ошибка: 36049 (Набор данных (схема) не найден)
    Результат: 0 (0)
    #
    #
    # SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
    Ошибка при обработке запроса.
    Ошибка: 36049 (Набор данных (схема) не найден)
    Результат: 0 (0)
    #
    # SELECT TABLE_NAME
    Ошибка при обработке запроса.
    Ошибка: 10054 (Нет описания ошибки)
    Результат: 0 (0)

    при последнем запросе одновременно с ошибкой в консоли выводит окно "Обнаружена ошибка. Приносим извинения за неудобства.
    Если работа не была закончена, рабочие данные могут быть утеряны."

    Да, база не MySQL и не ms. она самописная. я лишь предположил, что она написана на базе My или MS... контактов с разработчиками нет.
     
  7. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    к сожалению помочь ничем не могу.

    оффтопик
    в лучших традициях виндовс.
     
  8. IRS

    IRS New Member

    Joined:
    3 Aug 2011
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    ну да...) все равно спасибо... буду дальше ковыряться...
     
  9. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Пишу программу автоматически генерирующую код БД(MSSQL, Firebird, PostgreSQL).
    Если с MSSQL & Firebird проблем особых не возникло, так как с данными Бд уже приходилось работать, то с PostgreSQL возникли небольшые трудности.

    1.Как обращаться к системным параметрам бд?например мне нужен список имен существующих БД и проверка.В MsSQL например я это делал следующим образом:
    Code:
    if exists (select name from sys.databases where name = N'MS_Datenbank_Struktur')
    Какая альтернатива есть sys.databases ?Как идет обращение к списку дб или например таблиц?

    2.Можно ли в pgAdmin выполнить скрипт?Что бы создать БД приходится добавлять её посредство пары кликов и заполнения поля.То есть если я далее в этой бд пытаюсь исполнить скрипт типо :
    Drop database DaеabaseName;
    Create Database DatabaseName;
    Получаю ошибку, что не возможно удалить дб,так как она испольщуется(что естественно, так как sql запрос я составляю находясь в ней).

    3.Как создавать дб через консоль?Мои действия:
    C:\Programme\PostgreSQL\9.1\bin> createdb -u postgres -p 5432 - h localhost -E UTF-8 -e DatabaseName

    Все отлично - БД создается бе проблем. Однако, мне требуется что БД создавалась из sql - файла, то есть в MSSQL я писал например следующее:
    sqlcmd -S.\SQLEXPRESS -E -i "FielPath"
    Команды в хелпе консоли смотрел, однако не нашел нужного.

    Буду рад советам и помощи.
     
  10. Mr.Snuffer

    Mr.Snuffer Member

    Joined:
    2 Jul 2010
    Messages:
    140
    Likes Received:
    13
    Reputations:
    0
    Посоны, очередной вопрос, как построить запрос.

    я выбираю из базы 20 записей
    Таблица выглядит так

    id | time | free

    Нужно ПОЛУЧЕНЫЕ записи отсортировать ордер бай деск тайм и ордер бай деск фрии.

    Заранее спасибо
     
  11. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,413
    Likes Received:
    910
    Reputations:
    863
    Имею предстовление как по одной оприделенной табле вывести деск чтоб сохранялась структура значений, вот пример в information_schema.tables:
    в твоем случае что то подобное будет выглядить примерно так
    где time то поле по которому нужен вывод под деск.
     
    _________________________
  12. Mr.Snuffer

    Mr.Snuffer Member

    Joined:
    2 Jul 2010
    Messages:
    140
    Likes Received:
    13
    Reputations:
    0
    Спасибо, ща попробую
     
  13. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Code:
    ... ORDER BY `time` DESC, `free` DESC LIMIT 0, 20
    
     
  14. awdrg

    awdrg Member

    Joined:
    30 Jan 2009
    Messages:
    195
    Likes Received:
    31
    Reputations:
    1
    как можно сделать таблицу, одна из ячеек которой будет списком? sqlite
     
  15. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1

    По прежнему ожидаю советов и помощи.
     
  16. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    За то время, что вы ждете ответа, можно было найти ответы на оффсайте.
    1. sys.databases - вы СУБД не попутали? В восьмой ветке это таблица pg_database.
    2. Подключитесь к другой БД, дропайте нужную.
    3. Команда создания новой базы такая же, что и в других СУБД.
     
  17. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Во первых во время выходных я этим не занимался.
    Во вторых - не мешало бы читать более внимательно&
    я писал - что sys.database - не для postgresql, я привел лишь пример.pg_database & pg_tables - да, уже прочел об этом.
    По второму пункту - да, здесь я был невнимателен.Естественно надо было юзать мастер-дб.
    По третьему пункту - вы видимо невнимательно прочли, что я спрашивал -я спрашивал как создать дб из sql - файла.

    Кому потребуется:
    cd C:\programme\PostgreSQL\9.1\bin
    >psql -U postgres -f "PathToSQLFile"

    Естественно, у каждого свой путь к директории с постгре. Так же не забывайте - что если в начале инсталяции вы создали пароль к учетной записи - то при использовании команд через консоль, у вас будет запрашивать пароль.
    *При вводе пароля в консоль пароль не отображается, так что не паниковать.
    Как бы то ни было, все
     
  18. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Как только на MySQL выбрать:
    SELECT * FROM `Table` WHERE `Status` = 'XXXXXX'
    где XXXXXX - это результат запроса:
    SELECT id FROM `Table` WHERE `111` = 'N'

    Т.е. XXXXXX это любая строка из 2го запроса
     
  19. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Code:
    select * from table where status in (select id from table where 111 = 'N')
    так? Или я тебя неправильно понял?

    table и table - одна и та же таблица? Если разные, но для примера написано одно и то же название, можно так:

    Code:
    select a.id, b.* from table a 
    inner join table b on b.status = a.id
    where a.111 = 'N'
     
    #1559 FindeR, 1 Dec 2011
    Last edited: 1 Dec 2011
  20. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    вот заметил такое:

    [​IMG]
    [​IMG]
    это и есть дата обновления таблиц? или что то другое ?
     
Thread Status:
Not open for further replies.