Naucz się programowania SQL i zapytań do baz danych

Ujawnienie: Twoje wsparcie pomaga utrzymać działanie witryny! Pobieramy opłatę za polecenie niektórych usług, które zalecamy na tej stronie.


SQL lub Structured Query Language to język używany przez systemy zarządzania relacyjnymi bazami danych (RDBMS) do definiowania struktur danych, aktualizowania danych i wysyłania zapytań.

Zdecydowana większość systemów relacyjnych baz danych korzysta z jakiejś formy SQL, dzięki czemu „baza danych SQL” i „relacyjna baza danych” stają się synonimami w codziennej rozmowie.

Tutaj zebraliśmy ostateczną listę najlepszych samouczków SQL, przewodników, książek i innych.

Popularne systemy RDBMS korzystające z SQL

Są to główne implementacje języka SQL. Każdy ma swoje osobliwości i własne odchylenia od normy. Niektóre z nich nie implementują wszystkich aspektów standardu SQL, a niektóre zapewniają dodatkowe funkcje i składnię.

Otwarte źródło

  • MySQL: zdecydowanie najczęściej używany system baz danych SQL typu Open Source na świecie. MySQL jest używany przez wiele bardzo popularnych aplikacji internetowych, takich jak WordPress i Drupal, i jest literą M na stosie LAMP.
  • PostgreSQL: główna alternatywa dla MySQL w przestrzeni Open Source RDBMS. Wiele osób uważa to za bardziej zaawansowaną, lepiej zaprojektowaną bazę danych.
  • MariaDB: drop-in zamiennik MySQL, o zwiększonej wydajności i dodatkowych funkcjach. Zaczęło się jako rozwidlenie MySQL, pod opieką grupy głównie byłych programistów MySQL.
  • SQLite: biblioteka, którą można włączyć do większej bazy kodu, a nie w pełni funkcjonalny system zarządzania bazą danych. Zapewnia aplikacje do przechowywania danych w oparciu o SQL.

Prawnie zastrzeżony

  • Wyrocznia
  • Microsoft SQL Server

Książki o SQL

Możesz nauczyć się trochę SQL z samouczków online, ale informacje potrzebne do bycia prawdziwym specjalistą od baz danych znajdują się głównie w książkach.

Ogólne SQL

  • Nauka SQL: dobra książka dla tych, którzy dopiero zaczynają język.
  • SQL: The Complete Reference: szczegółowe odniesienie do SQL, uważane za „standardowe” przez ostatnie 30 lat.
  • The Art of SQL: doskonała książka, która wyjaśnia, jak myśleć o modelowaniu danych, projektowaniu schematów i zapytaniach do baz danych.
  • Antypatterny SQL: unikanie pułapek programowania baz danych: Ta książka szczegółowo opisuje wiele sposobów, w jakie ludzie zwykle niewłaściwie używają i źle zarządzają relacyjnymi bazami danych, a także pomaga w diagnozowaniu i naprawianiu każdego typowego problemu. Jest to jedna z najlepszych książek na temat rzeczywistych problemów z bazami danych – niezbędna dla każdego programisty baz danych.

Po przeczytaniu jednej lub dwóch książek o wprowadzającym języku SQL powinieneś zanurzyć się w jednej z konkretnych implementacji (patrz zasoby poniżej) i popracować nad rzeczywistym projektem. Potem wróć i spójrz na więcej teorii i ogólnych zasad.

Modelowanie danych (projektowanie schematu bazy danych)

Nie wszystkie z tych zasobów dotyczą SQL, ale większy temat modelowania danych. Jednym z najważniejszych aspektów pisania kodu SQL jest zaprojektowanie schematu bazy danych. Aby to zrobić dobrze, musisz dobrze zrozumieć podstawową filozofię, sztukę i naukę modelowania danych.

  • Początek relacyjnego modelowania danych: jeden z najlepszych tekstów wprowadzających na temat modelowania danych, z dużą ilością przykładów w SQL. Jeśli nie wiesz, czym jest ORM, powinieneś przeczytać tę książkę.
  • Projektowanie baz danych dla zwykłych śmiertelników: praktyczny przewodnik po projektach relacyjnych baz danych: tekst wprowadzający z małym żargonem – doskonały dla początkujących.
  • Wzorce modelu danych: Konwencje myślenia: szczegółowy przewodnik po praktycznym sposobie myślenia o modelowaniu danych.
  • Książka zasobów modelu danych: Trzytomowe zasoby, które obejmują ogromną ilość materiałów związanych z profesjonalnym projektowaniem danych dla przedsiębiorstw i przemysłu.
    • Vol. 1: Biblioteka uniwersalnych modeli danych dla wszystkich przedsiębiorstw
    • Vol. 2: Biblioteka modeli danych dla konkretnych branż
    • Vol. 3: Uniwersalne wzorce do modelowania danych

Zapytania i analizy danych

Prawidłowe skonfigurowanie struktur danych i wypełnienie bazy danych dobrymi, solidnymi danymi są niezwykle ważne. Ale kiedy uzyskasz wszystkie te dane, co z nimi zrobisz? Te książki pomogą ci nauczyć się, jak robić więcej niż SELECT *, ucząc cię tworzenia wydajnych i wnikliwych zapytań, które zapewniają dane, których naprawdę potrzebujesz.

  • Począwszy od zapytań SQL: od początkującego do profesjonalisty
  • Zapytania SQL dla zwykłych śmiertelników: praktyczny przewodnik po manipulacji danymi w SQL
  • Język SQL: jak uzyskać dostęp do danych w relacyjnych bazach danych
  • Analiza danych za pomocą SQL i Excela
  • Prawdziwe zapytania SQL: 50 wyzwań

Zaawansowane programowanie SQL

Oto kilka książek dla administratorów baz danych i specjalistów ds. Danych.

  • Sztuczki SQL
  • SQL for Smarties: świetna książka na zaawansowane tematy SQL, napisana przez kogoś, kto przyczynił się do specyfikacji SQL. (Właściwie wszystko tego autora jest warte przeczytania.)

Wydajność i optymalizacja SQL

Wymagania wstępne dla wysokowydajnych projektów baz danych to doskonałe modelowanie danych i dobrze zaprojektowane zapytania. Upewnij się więc, że czytasz książki z tych sekcji, zanim zaczniesz patrzeć na zaawansowane techniki optymalizacji.

Należy również pamiętać, że wiele najpotężniejszych technik optymalizacji jest specyficznych dla implementacji. W odpowiednich sekcjach poniżej znajdują się książki i zasoby dotyczące każdej z głównych implementacji SQL.

  • Wyjaśnienie wydajności SQL Wszystko, co programiści powinni wiedzieć o wydajności SQL
  • Tuning SQL
  • Dostrajanie wydajności SQL

Nauka o danych i matematyka

Teoria relacyjnych baz danych oparta jest na gałęzi matematyki o nazwie „Algebra relacyjna”. Większość praktykujących SQL nie musi badać matematyki związanej z SQL. Ale jeśli jesteś zainteresowany głębokim zanurzeniem się w naukę o danych, te książki pomogą ci znaleźć drogę.

  • Teoria i praktyka algebry relacyjnej: Przekształcanie algebry relacyjnej w SQL
  • Matematyka stosowana dla specjalistów baz danych
  • Algebra danych: podstawa gospodarki opartej na danych

Książki o konkretnych implementacjach SQL

SQL jest standardem, ale istnieje tylko w określonych implementacjach. Każdy ma swoje dziwactwa. Jeśli chcesz zostać prawdziwym profesjonalistą w dziedzinie baz danych, musisz znać szczegółowe informacje o konkretnym systemie RDBMS, z którym masz do czynienia.

  • MySQL
    • Nauka MySQL
    • MySQL (biblioteka programistów)
    • MySQL Cookbook: Rozwiązania dla programistów i administratorów baz danych
    • Nauka PHP, MySQL & JavaScript: Z jQuery, CSS & HTML5
    • Wysoka wydajność MySQL: optymalizacja, kopie zapasowe i replikacja
  • PostgreSQL
    • PostgreSQL: działa i działa
    • Począwszy od baz danych z PostgreSQL
    • PostgreSQL dla architektów danych
    • Książka kucharska o wysokiej dostępności PostgreSQL 9
    • PostgreSQL 9.0 Wysoka wydajność
  • MariaDB
    • Rozpoczęcie pracy z MariaDB
    • Opanowanie MariaDB
    • Książka kucharska MariaDB
    • MariaDB Wysoka wydajność
  • SQLite
    • Ostateczny przewodnik po SQLite
    • Uproszczony SQLite dla aplikacji mobilnych
  • Wyrocznia
    • Oracle Essentials
    • Programowanie Oracle PL / SQL
    • Oracle Tuning: The Definitive Reference
    • Oracle Tuning Power Scripts
    • Dostrajanie i optymalizacja wydajności Oracle SQL
  • Microsoft SQL Server
    • Przedstawiamy Microsoft SQL Server 2014
    • Microsoft SQL Server 2014 Unleashed
    • Dostrajanie zapytań Microsoft SQL Server 2014 & Optymalizacja

Zasoby online

Chociaż mogą nie zapewniać dogłębności najlepszych książek, w Internecie dostępnych jest wiele bardzo przydatnych zasobów.

Poradniki

Niestety, nie ma zbyt wielu naprawdę dobrych samouczków online dla SQL. Wymienione tutaj kursy są świetnym miejscem do rozpoczęcia jako początkujący, ale jeśli poważnie myślisz o nauce języka SQL, musisz przewinąć do sekcji książek i kupić trochę martwych drzew.

  • Samouczek SQL od W3 Schools
  • Kurs SQL
  • SQL Zoo

Dokumentacja języka SQL

Przydatne jest posiadanie podręcznego internetowego odnośnika do konkretnej implementacji podczas wykonywania zadania kodowania. Żaden z nich nie działa szczególnie dobrze jako samouczki do nauki języka SQL (chyba że lubisz czytać materiały referencyjne), ale świetnie nadają się do konsultacji, gdy potrzebujesz wiedzieć, jak działa określone polecenie.

  • Skrócona instrukcja SQL
  • Odwołanie do składni MySQL
  • Podręcznik PostgreSQL
  • Dokumentacja języka Oracle SQL
  • SQL w rozumieniu SQLite
  • Dokumentacja języka SQL Server – Microsoft

Narzędzia SQL i zarządzania bazami danych

Bardzo niewiele osób naprawdę lubi pisać surowy kod SQL gołymi rękami. Narzędzia te zapewniają szereg funkcji interfejsu do obsługi projektowania i zarządzania bazami danych w bardziej przyjazny i wydajny sposób.

  • SQL Workbench / J
  • MySQL Workbench
  • Zaawansowane narzędzie do wysyłania zapytań
  • HeidiSQL
  • Wiewiórka SQL

Społeczności internetowe

Czasami najlepszym sposobem na znalezienie czegoś jest zwrócenie się do eksperta. Istnieje wiele społeczności internetowych, w których możesz rozmawiać z innymi praktykami SQL i uzyskać pomoc, porady, zachęty i wsparcie moralne.

  • Administratorzy baz danych stos wymiany
  • Zespoły SQL (tylko Microsoft SQL)
  • Forum bazy danych Oracle
  • Fora MySQL
  • Lista mailingowa SQLite

Powiązane pojęcia i technologie

Specjaliści SQL powinni przynajmniej częściowo zapoznać się z następującymi pojęciami i technologiami.

  • NoSQL / nierelacyjne bazy danych: SQL reprezentuje jeden szczególny sposób przechowywania danych. Inną ważną alternatywą jest NoSQL, czyli nierelacyjne przechowywanie danych.
    • MongoDB
    • KanapaDB
    • Duży stół
    • Cassandra
  • Active Record: Active Record to wspólny wzorzec programowania, który zapewnia warstwę abstrakcji między kodem aplikacji a implementacją bazy danych.
    • Aktywny rekord w Ruby on Rails
    • Aktywny rekord dla PHP
  • Object Relational Mapping (ORM): ORM to sposób „tłumaczenia” między obiektowymi językami programowania a systemami relacyjnych baz danych. Jest to ogólnie przyjęty wzorzec projektowy, ale niektóre osoby nie akceptują.
  • Relacyjny model danych: Jest to wizualny sposób reprezentowania projektu bazy danych. Jest to świetna technika do omawiania i planowania schematu bazy danych. Jeśli naprawdę Ci się spodoba, pokochasz UML.
  • Zarządzanie wiedzą: KM to proces pozyskiwania i rozpowszechniania wiedzy organizacyjnej lub instytucjonalnej. Chociaż zarządzanie danymi i zarządzanie wiedzą są odrębnymi dyscyplinami, nakładają się na siebie.
  • Teoria zbiorów: Teoria zbiorów jest gałęzią matematyki i logiki. Wraz z relacyjną algebrą stanowi podstawę większości teorii stojących za technologią baz danych.

FAQ

Oto odpowiedzi na kilka często zadawanych pytań.

Co to jest SQL?

SQL lub Structured Query Language, to język do interakcji z relacyjnym systemem zarządzania bazami danych (RDBMS). Składa się z dwóch głównych części

  • Język definicji danych – polecenia i składnia używane do definiowania lub odzwierciedlania struktury zbioru danych
  • Język zapytań o dane – polecenia i składnia używane do wstawiania, edytowania, manipulowania i odzyskiwania przechowywanych danych

SQL jest standardem, a nie konkretną technologią. W praktyce SQL istnieje tylko w określonych implementacjach, takich jak MySQL lub PostgreSQL.

Kto zarządza standardem SQL?

SQL jest standardem Międzynarodowej Organizacji Normalizacyjnej (ISO).

Jakie są alternatywy dla SQL?

Istnieją dwa różne zestawy alternatyw dla SQL.

Z jednej strony istnieją alternatywne języki do stosowania w systemie relacyjnych baz danych. Istnieje kilka takich alternatyw językowych używanych w wyspecjalizowanych ustawieniach, ale żadna z nich nie ma takiego ogólnego zastosowania, jakim cieszy się SQL.

Z drugiej strony są alternatywą dla relacyjnego modelu projektowania baz danych – to znaczy nierelacyjnych baz danych, które czasem nazywane są bazami danych „NoSQL”. Istnieje wiele bardzo popularnych nierelacyjnych systemów baz danych, w tym CouchDB i Mongo.

Której implementacji bazy danych SQL należy użyć lub nauczyć się jej używać?

Jeśli pracujesz i piszesz aplikacje (lub planujesz pisać aplikacje) w PHP, powinieneś zacząć od MySQL. Możesz także zajrzeć do MariaDB.

Aplikacje internetowe we wszystkich innych językach – takich jak Ruby lub Python – zwykle używają PostgreSQL.

SQLite jest często używany jako miejsce do przechowywania aplikacji mobilnych. Ruby on Rails używa również SQLite jako domyślnej wbudowanej bazy danych, ale większość aplikacji produkcyjnych napisanych w Railsach używa PostgreSQL.

Oracle jest wiodącą bazą danych dla aplikacji korporacyjnych (dużych organizacji).

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me