W instrukcjach SQL należy zawsze stosować pełną nazwę tabeli (łącznie z nazwą bazy danych).
W instrukcji należy zawsze określić jawnie nazwę bazy danych oraz nazwy poszczególnych tabel. (W przypadku głównej bazy danych należy stosować słowo „main”). Przykład: poniższy kod zawiera jawną nazwę bazy danych
main
:
SELECT employeeId
FROM main.employees
Jawne określanie nazw baz danych powoduje, że środowisko wykonawcze nie musi sprawdzać każdej podłączonej bazy danych w celu odnalezienia określonej tabeli. Uniemożliwia również wybór błędnej bazy danych w środowisku wykonawczym. Należy przestrzegać tej reguły, nawet jeśli klasa SQLConnection jest połączona tylko z jedną bazą danych. W tle klasa SQLConnection jest również połączona z tymczasową bazą danych, która jest dostępna za pośrednictwem instrukcji SQL.
W instrukcjach SQL
INSERT
i
SELECT
należy stosować jawne nazwy kolumn.
Poniższe przykłady prezentują stosowanie jawnych nazw kolumn:
INSERT INTO main.employees (firstName, lastName, salary)
VALUES ("Bob", "Jones", 2000)
SELECT employeeId, lastName, firstName, salary
FROM main.employees
Należy porównać poprzednie przykłady z kolejnymi. Należy unikać takiego stylu kodowania:
-- bad because column names aren't specified
INSERT INTO main.employees
VALUES ("Bob", "Jones", 2000)
-- bad because it uses a wildcard
SELECT *
FROM main.employees
W przypadku braku jawnych nazw kolumn środowisko wykonawcze musi wykonywać dodatkowe operacje w celu określenia nazw kolumn. Jeśli instrukcja
SELECT
używa symbolu wieloznacznego zamiast jawnych kolumn, środowisko wykonawcze pobierze wówczas dodatkowe dane. Te dodatkowe dane wymagają przetworzenia i tworzą dodatkowe instancje obiektów, które nie są potrzebne.
Należy unikać łączenia tej samej tabeli wiele razy w instrukcji, chyba że konieczne jest porównanie tabeli z nią samą.
Ponieważ instrukcje SQL są coraz dłuższe, wielokrotne złączenie tabeli bazy danych w zapytaniu może nastąpić nieumyślnie. Często ten sam wynik można uzyskać, używając tabeli tylko raz. Wielokrotne złączenie tej samej tabeli może powstać, jeśli w zapytaniu jest używany co najmniej jeden widok. Na przykład można złączyć tabelę z zapytaniem oraz użyć widoku, który zawiera dane z tabeli. Obie operacje spowodują co najmniej jedno złączenie.
|
|
|