2009-11-11 20 views
33

Czy ktoś może polecić dobrą instrukcję obsługi ANSI SQL?ANSI SQL Manual

Nie muszę oznaczać samouczka, ale odpowiedni dokument referencyjny do wyszukiwania, gdy potrzebujesz podstawowego lub bardziej dogłębnego wyjaśnienia lub przykładu.

Obecnie używam W3Schools SQL Tutorial i SQL Tutorial, które są w porządku, ale nie uważam ich za wystarczająco "głębokie".

Oczywiście, każdy główny producent RDBMS będzie posiadał podręczniki referencyjne dotyczące własnego produktu, ale są one tendencyjne i kiedyś będą używać opatentowanych rozszerzeń.

EDYTOWANA: Celem tego pytania było skupienie się na rzeczach, które mają wspólne silniki baz danych, tj. Korzenie SQL. Ale zrozumienie różnic może być również pozytywne - this jest całkiem interesujący.

+2

Jaki byłby sens posiadania takiego dokumentu? Aby rzeczywiście korzystać z rzeczywistej bazy danych, potrzebny jest dokument od producenta RDBMS z uprzedzeniem i rozszerzeniami produktu. Co próbujesz zrobić? –

+13

Zwykle staram się unikać rozszerzeń własnościowych, jeśli dostępna jest opcja SQL Infor Ansi. – Adrian

+2

Dlaczego? Opatentowane funkcje są zazwyczaj bardziej wydajne. Nigdy nie używam standardu ansii, jeśli dostępna jest lepsza wersja t-sql. Ponieważ większość baz danych nie implementuje tego standardu całkowicie lub z tymi samymi wynikami dla tych samych zapytań (obsługa Oracle i SQl Server działa inaczej, więc standardowy kod ANSII nie zawsze daje takie same wyniki w obu bazach danych z tymi samymi rekordami), Standard ANSII nie pomaga ci zbytnio. – HLGEM

Odpowiedz

24

Oto „Druga Nieformalne Wstępny przegląd” z SQL:1992, który wydaje się być na tyle dokładne, na wszystko mam wzrok. 1992 r. Obejmuje większość rzeczy rutynowo stosowanych w DBMS.

+8

ISO ma [listę swobodnie dostępnych standardów] (http://www.iso.org/PubliclyAvailableStandards). Zawiera technologię _Information - Języki baz danych - SQL - Część 1: Framework (SQL/Framework) _ (ISO/IEC 9075-1: 2008). (To powinna być pierwsza część serii standardów, które _nie są publicznie dostępne.) Jest w formacie PDF, więc powinno być _ lepsze_ przeczytanie (starszej?) Wersji tekstowej. –

5

Głównym problemem związanym z podręcznikiem ANSI SQL Reference jest to, że nie można znaleźć bazy danych, która ją implementuje. A kiedy tak się stanie, przekonasz się, że ANSI SQL nie może rozwiązać niektórych codziennych problemów. Dlatego wszystkie profesjonalne bazy danych definiują rozszerzenia.

Tak więc w pracy będziesz potrzebować podręcznika dla konkretnej wersji bazy danych, z której korzystasz.

+0

czy nie jest to sql lite kto jest pełny ansi-92? na studia może idealnie pasować. I tak, ansi sql nie rozwiązuje codziennych problemów, ale tak samo jest z każdym dialektem sql, co oznacza, że ​​potrzebujesz części proceduralnej i tak dalej. ale to jest ducha sql, Q jest tylko dla zapytania tutaj, to jest prawdą, aby zrobić resztę z innymi specyficznymi narzędziami, czy są one rozszerzeniami języka lub wersją, gdzie sql jest osadzony jako biblioteka – netalex

+1

Współpracowałem z Oracle, DB2, MySQL , Sybase, H2 i kilka innych. Żadna z nich nie jest bardzo podobna, nawet jeśli spojrzysz na część Q (zapytanie). Oracle obsługuje na przykład zapytania rekurencyjne i wskazówki optymalizatora. Nie jestem pewien, które części standardowych SQL Lite implementuje, ale jest to kwestią sporną. Jeśli ograniczysz swoje studia do ANSI-92, natkniesz się na wiele dodatkowych szczegółów, gdy spróbujesz zastosować je po raz pierwszy. Ja na przykład nie odczuwałem potrzeby spojrzenia w standard, odkąd opuściłem szkołę 20 lat temu. –

+0

Myślę, że mówimy to samo. Chodzi mi o to, że niestandardowa część w sql dialekcie jest częścią, która dla sqllite musi być odtwarzana przez język programowania hosta (c, javascript ...) – netalex

6

Dokumenty ANSI można kupić od - zgadłeś - ANSI.

http://webstore.ansi.org/

+0

Pytanie dotyczyło SQL Reference. Odpowiedź zatem musi być ANSI. +1 –

+0

Są też tandetne tanie ... och, czekaj. –

14

SQL nie jest jak C lub Java, gdzie istnieje norma dla danego języka, a następnie szereg firm i organizacje wdrażają język najlepiej jak potrafią, zgodnie z normą.

Zamiast tego główne bazy danych pojawiły się przed standardem SQL, a standard jest rodzajem kompromisu, w którym każdy sprzedawca bazy danych chciał uzyskać swój konkretny dialekt i funkcje w standardzie.

W związku z tym istnieje znacznie większa różnorodność baz danych niż typowych kompilatorów języka programowania, a do korzystania z bazy danych naprawdę trzeba znać ten konkretny dialekt SQL.

Powiedziawszy to, mam na półce Gultzana i Peltzera SQL-99 Complete, Really. Jest to dobra książka, jeśli chcesz wiedzieć, co naprawdę zawiera norma. (I tak, istnieje nowsza wersja od SQL-99, ale nikt się tym nie przejmuje.)

EDIT: Faktycznie, nie ma po prostu jeden nowsza wersja od SQL-99, ale trzy: SQL: 2003, SQL: 2006 i SQL: 2008. I nadal nikogo to nie obchodzi. W rzeczywistości wiele nawet nie dba o SQL-99, więc SQL-92 jest w pewnym sensie "standardem".

+0

+1 Używam tej samej książki co moje referencje dla standardowego SQL. Dość kilku dostawców * ma * zaimplementowane funkcje z SQL-99 i SQL: 2003, więc to nie jest tak, jak nikt nie dba! Po prostu zajmuje im to ponad 10 lat. :-) –

+4

Czy C nie jest dokładnie takie jak SQL w ten sposób, z wieloma różnymi konkurującymi rozszerzeniami przed wysiłkiem standaryzacyjnym? (Który wyprodukował C89, więc może wyglądać * teraz * tak, jak każdy zawsze postępował zgodnie ze standardem, 20 lat później.) –

+2

SQL-99 Complete, naprawdę jest teraz darmowy, online: https://mariadb.com/kb/en/sql -99/ –

1

Bardzo podoba mi się po prostu o coś Joe Celko napisał Celko's Books

+0

+1. Dobre książki. – z5h

+1

Zgadzam się, że książki Celko są warte przeczytania, ale nie są kompletnymi książkami referencyjnymi SQL. –

0

Zasoby DevGuru zawsze pracował dobrze dla mnie: http://www.devguru.com/technologies/t-sql/home.asp

Chociaż muszę przyznać, że nie jest w ścisłym skoncentrowane źródło „ANSI”. Zawsze byłem skoncentrowany na MS SQL i był mi pomocny, kiedy zaczynałem. IMHO Najlepszym rozwiązaniem będzie użycie kilku zasobów - w szczególności co najmniej jednej z każdej platformy DB, z której chcesz skorzystać.

zacytować intro DevGuru ich zasobu T-SQL:

Chociaż istnieją standardy SQL takie jak ANSI SQL92 i SQL99 większość baz używać własnego dialektu i/lub extentions. Smak Microsoft SQL używany w SQL Server 7 i SQL Server 2000 nazywa się T-SQL. Podczas gdy wiele z przykładów w tym krótkim odwołaniu może działać na innych bazach danych, to jest założono, że SQL Server 2000 jest używany, specjalnie dla zaawansowanych tematów, takich jak procedur przechowywanych.

2

To przypomina mi mój drugi rok studiów uniwersyteckich, gdzie uczymy się teorii relacyjnej zamiast SQL.

Przeczytaj dobrą książkę na temat teorii relacyjnej. Teoria i praktyka baz danych rozwinęły się od czasu, gdy Edgar Codd początkowo zdefiniował model relacyjny w 1969 roku. Niezależnie od produktów SQL, SQL i Relational Theory opierają się na dekadach badań, aby zaprezentować najnowszą terapię materiałem dostępnym w dowolnym miejscu. Każdy, kto ma skromne i zaawansowane tło w SQL, skorzysta z wielu wglądów w tej książce.

alt text

Oreilly stycznia 2009

+0

Tak, to dobra książka na temat koncepcji i teorii baz relacyjnych, ale nie jest to odniesienie do języka SQL. –

2

znalazłem najlepszy sposób na naukę języka SQL było rzeczywiście dostać się do pisania kwerend i zrozumienia natury złączeń/warunkowe itd znalazłem ten link z wieloma DIY przykłady za najlepsze: http://sqlzoo.net/

+0

+1: mimo że witryna jest nieco nieprzejrzysta, odniosłem się do sqlzoo.net wystarczająco często, aby uzyskać szczegółowe informacje na temat DB. Dobry. – BalusC