2016-06-19 13 views
5

Jestem bardzo początkującym w SQL, więc przykro mi, jeśli to pytanie jest prymitywne.
Właśnie zacząłem podążać za tutorialem http://www.w3schools.com, więc pobrałem bazę danych "Northwind", aby spróbować nad nią pracować, i za pomocą konsoli pgAdmin 3 uzyskać dostęp do bazy danych. Próbowałem tylko proste polecenia, aby wybrać jedną kolumnę tabeli, ale daje ten sam komunikat następujące z dowolnej kolumny z dowolnej tabeliSQL - WSKAZÓWKA w celu odniesienia do kolumny

LINE 1: select City from Customers; 
         ^
HINT: Perhaps you meant to reference the column "customers.City". 

chciałbym zapytać czy jest jakaś rzecz nie tak w moim dowództwem? i jak to naprawić?

Dzięki

+1

w3school został zhakowany? (Dostaję wszelkiego rodzaju reli-nonsense) – wildplasser

+1

@wildplasser Myślę, że właściwym adresem URL jest http://www.w3schools.com –

+0

@wildplasser sorry to było moje mistyping. Edytowałem to łącze, jak powiedział Martin. – philippos

Odpowiedz

10

Po zaimportowaniu tej bazy danych "Northwind" nazwy kolumn zostały zaimportowane w CamelCase - import musiał dodać podwójne cudzysłowy do identyfikatorów kolumn do zapytań create table.

Jest to dość niefortunne, ponieważ mogłoby to spowodować, że trzeba by przytoczyć je również we wszystkich zapytań, jak:

select "City" from customers; 

Aby pozostać przy zdrowych zmysłach sugeruję Ci rename all columns to lower case. W ten sposób nie ma znaczenia, z jakiego przypadku korzystasz, ponieważ Postgres automatycznie zamienia wszystkie niecytowane identyfikatory na małe litery. Wtedy to wszystko zadziała:

select city from customers; 
select City from Customers; 
SELECT CITY FROM CUSTOMERS; 
+0

Dziękuję @Tometzky! Działało po zmianie nazwy wszystkich kolumn. Jednak chciałbym zapytać, czy masz jakieś odniesienie do importowania bazy danych w taki sposób, że zachowałbym wszystkie nazwiska tak, jak były pierwotnie. – philippos

0

Nie ma nic złego w zapytaniu. Wygląda na to, że twój tutorial chce, abyś postępował zgodnie z praktyką zawsze poprzedzając nazwę tabeli do kolumn, do których się odwołujesz. W rzeczywistości jest to wymagane tylko wtedy, gdy w przeciwnym razie spowodowałoby to niejednoznaczność (np. Jeśli odwołujesz się do dwóch tabel, z których każda ma kolumnę Miasto).

+0

To wygląda jak funkcja postgres, a nie samouczek. http://pgeoghegan.blogspot.co.uk/2015/11/suggesting-corrected-column.html Zgaduję, że ma to coś wspólnego z wrażliwością na wielkość liter, ponieważ "klienci" kontra "klienci" przeskakują, ale nie jestem dostatecznie zaznajomiony z Postgres. być pewnym. –

Powiązane problemy