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.