Standard kodowania SQL Wielkie litery Zasady nazywania obiektów

Transkrypt

Standard kodowania SQL Wielkie litery Zasady nazywania obiektów
Standard kodowania SQL
(Wersja 1.0)
Wielkie litery
Wszystkie słowa kluczowe i wywołania standardowych funkcji SQL muszą być pisane wielkimi literami, na
przykład: SELECT, DELETE, FROM, WHERE, CASE, BEGIN, END, GETDATE(), NEWID(),
SUM(), AVG(), itp.
Zasady nazywania obiektów SQL
(tabele, zmienne, funkcje, procedury składowane, itp.)
• nazwy mogą być w języku polskim albo angielskim – wymagana jest konsekwencja od początku do
końca,
• w nazwach należy wykorzystywać wyłącznie alfabet łaciński, cyfry i znak „ ” (podkreślenie), a to
między innymi oznacza, że nie wolno używać polskich znaków diakletycznych,
• nazwy w miarę możliwości powinny być samokomentujące, na przykład: nr indeksu, adres, barwa,
czas, a niedopuszczalne są zamiast tego skróty typu: ni, a, b, c, itp. nic nie mówiące o danych jakie
reprezentują,
• dopuszczalne style nazywania obiektów to:
1.) PascalCasing, na przykład: NazwaPewnejZmiennejCalkowitoliczbowej,
2.) camelCasing, na przykład: nazwaPewnejZmiennejCalkowitoliczbowej,
3.) underscore-based style, na przykład: nazwa pewnej zmiennej calkowitoliczbowej.
Oczywiście wymagana jest konsekwencja od początku do końca!
Unikanie zbędnych aliasów
Aliasy tabel i kolumn można używać tylko i wyłącznie, gdy jest to konieczne a nigdy w celu zredukowania
ilości wpisywanych znaków (rozwiązanie dla leniwych: środowiska z autouzupełnianiem), na przykład:
SELECT studenci.nr indeksu, studenci.imie, studenci.nazwisko, egzaminy.ocena, przedmioty.nazwa
FROM studenci INNER JOIN egzaminy
ON studenci.guid = egzaminy.student guid
INNER JOIN przedmioty
ON egzaminy.przedmiot guid = przedmioty.guid
a w żadnym razie nie:
SELECT s.nr indeksu, s.imie, s.nazwisko, e.ocena, p.nazwa
FROM studenci AS s INNER JOIN egzaminy AS e
ON s.guid = e.student guid
INNER JOIN przedmioty AS p
ON e.przedmiot guid = p.guid
Wcięcia
Wcięcia powinny być stosowane dla każdego podzapytania i podprzypadku, przy czym szerokość jednego
poziomu wcięcia to dwie spacje. W poziomie zerowym (bez wcięcia) powinny znajdować się podstawowe
słowa kluczowe takie jak: SELECT, FROM, DELETE, WHERE, ORDER BY, HAVING, itp.
Lista argumentów selekcji (projekcji), warunki złączenia i tak dalej powinny być sformatowane w poniższy
sposób:
SELECT studenci.nr indeksu, studenci.imie, studenci.nazwisko,
egzamin.ocena, przedmioty.nazwa, przedmioty.punkty
FROM studenci LEFT JOIN egzaminy
ON studenci.guid = egzaminy.student guid
LEFT JOIN przedmioty
ON egzaminy.przedmiot guid = przedmioty.guid
WHERE student.nr indeksu BETWEEN 100000 AND 100099
AND egzamin.ocena > 2
ORDER BY student.nr indeksu DESC, przedmioty.nazwa ASC
W przypadku podzapytań, pierwsze polecenie tego zapytania powinno znajdować się w nowej linii a cały
blok powinien być odpowiednio wcięty. Nawiasy „(” (otwierający) i „)” (zamykający) powinny znajdować
się w osobnych liniach na poziomie wcięcia o jeden mniejszym od poziomu wcięcia bloku podzapytania, na
przykład:
...
WHERE egzamin.ocena > 2
AND student.nr indeksu IN
(
SELECT nr indeksu
FROM studenci
WHERE imie LIKE ’%A’ AND nazwisko LIKE ’%Z%ka’
AND adres = ’Krakow’
)
UWAGA: W przypadku krótkich (nie więcej niż sześć „wyrazów”) podzapytań możliwe jest odstępstwo
od tej reguły, na przykład:
...
WHERE egzamin.ocena > 2
AND student.guid IN (SELECT student guid FROM egzaminy)
Komentarze
Fragmenty kodu SQL, realizujące poszczególne funkcjonalności (zwłaszcza skomplikowane), powinny być
uzupełnione o komentarz.