SQL - podstawy,  
Niektóre popularne bazy danych SQL:
Microsoft  SQL Server, MYSQL, PostgreSQL, Oracle,
Firebird i Fyracle, IBM DB2,
Microsoft Access
(na podstawie Wikipedii)

SQL (ang. Structured Query Language) strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych.
Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi zarządzania bazą danych (DBMS).
SQL został opracowany w latach 70. w firmie IBM. Stał się standardem w komunikacji z serwerami relacyjnych baz danych.
Wiele współczesnych systemów relacyjnych baz danych używa do komunikacji z użytkownikiem SQL, dlatego potocznie mówi się, że korzystanie z relacyjnych baz danych to korzystanie z SQL-a.
Pierwszą firmą, która włączyła SQL do swojego produktu komercyjnego, był Oracle.
Dalsze wprowadzanie SQL-a, w produktach innych firm, wiązało się nierozłącznie z wprowadzaniem modyfikacji pierwotnego języka.
Wkrótce utrzymanie dalszej jednolitości języka wymagało wprowadzenia standardu.
W 1986 SQL stał się oficjalnym standardem, wspieranym przez Międzynarodową Organizację Normalizacyjną (ISO) i jej członka, Amerykański Narodowy Instytut Normalizacji (ANSI)

Formy SQL
Z technicznego punktu widzenia, SQL jest podjęzykiem danych.  Oznacza to, że jest on wykorzystywany wyłącznie do komunikacji z bazą danych.
Nie posiada on cech pozwalających na tworzenie kompletnych programów.
Jego wykorzystanie może być trojakie i z tego względu wyróżnia się trzy formy SQL-a:
  1. SQL interakcyjny (autonomiczny) wykorzystywany jest przez użytkowników w celu bezpośredniego pobierania lub wprowadzania informacji do bazy.
    Przykładem może być zapytanie prowadzące do uzyskania zestawienia aktywności kont w miesiącu.
    Wynik jest wówczas przekazywany na ekran, z ewentualną opcją przekierowania go do pliku lub drukarki.
  2. Statyczny kod SQL (Static SQL) nie ulega zmianom i pisany jest wraz z całą aplikacją, podczas której pracy jest wykorzystywany.
    Nie ulega zmianom w sensie zachowania niezmiennej treści instrukcji, które jednak zawierać mogą odwołania do zmiennych lub parametrów przekazujących wartości z lub do aplikacji.
    Statyczny SQL występuje w dwóch odmianach.
    1) Embedded SQL (Osadzony SQL) oznacza włączenie kodu SQL do kodu źródłowego innego języka.
    Większość aplikacji pisana jest w takich językach jak C++ czy Java, jedynie odwołania do bazy danych realizowane są w SQL.
    W tej odmianie statycznego SQL-a do przenoszenia wartości wykorzystywane są zmienne.
    2) Język modułów. W tym podejściu moduły SQL łączone są z modułami kodu w innym języku.
    Moduły kodu SQL przenoszą wartości do i z parametrów, podobnie jak to się dzieje przy wywoływaniu podprogramów w większości języków proceduralnych. Jest to pierwotne podejście, zaproponowane w standardzie SQL. Embedded SQL został do oficjalnej specyfikacji włączony nieco później.
  3. Dynamiczny kod SQL (Dynamic SQL) generowany jest w trakcie pracy aplikacji.
    Wykorzystuje się go w miejsce podejścia statycznego, jeżeli w chwili pisania aplikacji nie jest możliwe określenie treści potrzebnych zapytań – powstaje ona w oparciu o decyzje użytkownika.
    Tę formę SQL generują przede wszystkim takie narzędzia jak graficzne języki zapytań.
    Utworzenie odpowiedniego zapytania jest tu odpowiedzią na działania użytkownika.
Wymagania tych trzech form różnią się i znajduje to odbicie w wykorzystywanych przez nie konstrukcjach językowych.
Zarówno statyczny, jak i dynamiczny SQL uzupełniają formę autonomiczną cechami odpowiednimi tylko w określonych sytuacjach.
Zasadnicza część języka pozostaje jednak dla wszystkich form identyczna.

Składnia SQL
Użycie SQL, zgodnie z jego nazwą, polega na zadawaniu zapytań do bazy danych.
Zapytania można zaliczyć do jednego z trzech głównych podzbiorów:
SQL DML (ang. Data Manipulation Language – „język manipulacji danymi”): SELECT, INSERT, UPDATE, DELETE
SQL DDL (ang. Data Definition Language – „język definicji danych”):  CREATE, DROP, ALTER
SQL DCL (ang. Data Control Language – „język kontroli nad danymi”):  GRANT, REVOKE, DENY
Instrukcje SQL w obrębie zapytań tradycyjnie zapisywane są wielkimi literami, jednak nie jest to wymóg.
Każde zapytanie w SQL-u musi kończyć się znakiem średnika (;).
Dodatkowo, niektóre programy do łączenia się z silnikiem bazy danych (np. psql w przypadku PostgreSQL), używają swoich własnych instrukcji, spoza standardu SQL,
które służą np. do połączenia się z bazą, wyświetlenia dokumentacji itp.

DML 
DML (Data Manipulation Language) służy do wykonywania operacji na danych – do ich umieszczania w bazie, kasowania, przeglądania, zmiany.
Najważniejsze polecenia z tego zbioru to:

SELECT – pobranie danych z bazy,
INSERT – umieszczenie danych w bazie,
UPDATE – zmiana danych,
DELETE – usunięcie danych z bazy.
Dane tekstowe muszą być zawsze ujęte w znaki pojedynczego cudzysłowu (').

DDL 
Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane – czyli np. dodawać, zmieniać i kasować tabele lub bazy.
Najważniejsze polecenia tej grupy to:
CREATE (np. CREATE TABLE, CREATE DATABASE, ...) – utworzenie struktury (bazy, tabeli, indeksu itp.),
DROP (np. DROP TABLE, DROP DATABASE, ...) – usunięcie struktury,
ALTER (np. ALTER TABLE ADD COLUMN ...) – zmiana struktury (dodanie kolumny do tabeli, zmiana typu danych w kolumnie tabeli).

DCL 
DCL (Data Control Language) ma zastosowanie do nadawania uprawnień do obiektów bazodanowych.
Najważniejsze polecenia w tej grupie to:
GRANT (np. GRANT ALL PRIVILEGES ON EMPLOYEE TO PIOTR WITH GRANT OPTION) – przyznanie wszystkich praw do tabeli EMPLOYEE użytkownikowi PIOTR z opcją pozwalającą mu nadawać prawa do tej tabeli.
REVOKE – odebranie użytkownikowi wszystkich praw do tabeli, które zostały przyznane poleceniem GRANT.
DENY.



Przykładowe zapytania

Przykłady użycia wyżej wymienionych rodzajów zapytań:

SELECT *
    FROM pracownicy
    WHERE pensja > 2000
    ORDER BY staz DESC;
Zwraca tabelę (listę) utworzoną ze wszystkich kolumn (*) tabeli „pracownicy” (FROM pracownicy) zawierającą pracowników, których pensja jest większa niż 2000 (WHERE pensja > 2000) i sortuje wynik malejąco według parametru staz (ORDER BY staz DESC).

INSERT INTO pracownicy
    (imie, nazwisko, pensja, staz)
VALUES
    ('Jan', 'Kowalski', 5500, 1);
Dodaje do tabeli „pracownicy” (INTO pracownicy) wiersz (rekord) zawierający dane pojedynczego pracownika.

UPDATE pracownicy
    SET pensja = pensja * 1.1
    WHERE staz > 2;
Podwyższa o 10% pensję (SET pensja = pensja * 1.1) pracownikom, których staż jest większy niż 2 (np. lata).

DELETE FROM pracownicy
    WHERE imie = 'Jan' AND nazwisko = 'Kowalski';
Usuwa z tabeli „pracownicy” wszystkie wiersze (rekordy) dotyczące pracownika o imieniu „Jan” i nazwisku „Kowalski” (czyli takie, w których pole "imię" ma wartość Jan, a pole "nazwisko" – Kowalski.

CREATE TABLE pracownicy
(
    imie varchar(255),
    nazwisko varchar(255),
    pensja float,
    staz int
);
Tworzy tabelę „pracownicy” zawierającą pola tekstowe zmiennej długości (varchar) o nazwach „imie” (imię) i „nazwisko”, o maksymalnej długości 255 znaków, zapisaną za pomocą liczby rzeczywistej (float od ang. floating point) pensję oraz zapisany za pomocą liczby całkowitej (int od ang. integer) staż.

DROP TABLE pracownicy;
Usuwa z bazy tabelę „pracownicy”.
ALTER TABLE pracownicy
    ADD dzial varchar(255);
Dodaje do struktury tabeli „pracownicy” kolumnę „dzial” (dział), jako pole tekstowe o długości maks. 255 znaków.

Bezpieczeństwo 

Jako, że SQL jest językiem interpretowanym, istnieje możliwość nadużyć w przypadku konstruowania zapytań z wykorzystaniem parametrów pochodzących z zewnątrz aplikacji.
Szczególnie podatne na ten typ ataku są tworzone dynamicznie w oparciu o SQL-ową bazę danych serwisy internetowe.
Jeśli twórca aplikacji nie zadba o sprawdzenie poprawności (tzw. walidację) danych wejściowych stanowiących część zapytania, atakujący może być w stanie dopisać do zapytania („wstrzyknąć”) dodatkowe komendy lub zmienić ich sposób działania. Atak taki nosi nazwę SQL injection (wstrzyknięcie kodu za pomocą SQL).


Niektóre systemy bazodanowe używające SQL
Apache Derby
Caché
DATAllegro
DB2
Firebird
First SQL
Greenplum
HSQL
Ingres
Informix
InterBase SQL
MaxDB (dawniej SAP DB)
Microsoft Access
Microsoft Jet
Microsoft SQL Server
Mimer SQL
MySQL
mSQL
Neteeza
Oracle
Oracle Rdb
PostgreSQL
Pervasive
SQL/DS
SQLite
Sybase (Sybase Adaptive Server Enterprise, Sybase SQL Anywhere, Sybase IQ)
Teradata


Microsoft SQL Server

Microsoft SQL Server (MS SQL) to system zarządzania bazą danych, wspierany i rozpowszechniany przez korporację Microsoft.
Jest to główny produkt bazodanowy tej firmy, który charakteryzuje się tym, iż jako język zapytań używany jest przede wszystkim Transact-SQL, który stanowi rozwinięcie standardu ANSI/ISO.

MS SQL Server jest platformą bazodanową typu klient-serwer.
W stosunku do Microsoft Jet, który stosowany jest w programie MS Access, odznacza się lepszą wydajnością, niezawodnością i skalowalnością.
Przede wszystkim są tu zaimplementowane wszelkie mechanizmy wpływające na bezpieczeństwo operacji (m.in. procedury wyzwalane).
Poza edycjami czysto komercyjnymi Microsoft udostępnia również edycje darmowe do dowolnego zastosowania (w tym komercyjnego).
Edycje te mają różnorodne ograniczenia i tak np. do wersji 2000 (8.0) włącznie nie były m.in. udostępniane graficzne narzędzia do zarządzania bazami danych
oraz były ograniczenia co do możliwej ilości połączeń do bazy.

Począwszy od wersji 2005 (9.0) można pobrać wersję z graficznymi narzędziami i nie ma już limitu połączeń.
Narzędzia posiadają jednak ograniczone możliwości w stosunku do pełnej wersji, a nawet jedna z istotnych usług dostępnych wcześniej w darmowych wersjach, nie jest już dostępna.
Nie można już przez to wykonywać zautomatyzowanych zadań np. archiwizacji baz danych o zadanej godzinie.
Dodatkowo ograniczona została również wydajność samego serwera SQL (ograniczono wykorzystywaną pamięć RAM).

Wraz z premierą najnowszego serwera baz danych SQL Server 2005, zgodnie z wcześniejszymi zapowiedziami Microsoft udostępnił całkowicie bezpłatną wersję Express Edition do pobrania.
SQL Server 2005 Express Edition jest w sensie rozwojowym następcą bezpłatnego silnika MSDE, jednak jego możliwości są teraz w olbrzymim zakresie rozbudowane.
Może mieć zastosowanie zarówno do tworzenia aplikacji pracujących pod kontrolą systemu Windows, jak serwisów internetowych.
Wersja darmowa w stosunku do komercyjnego odpowiednika bazuje na tym samym jądrze i nie posiada limitu użytkowników.
Jest jednak limitowana do systemów jednoprocesorowych, z 1GB pamięci RAM i 4GB objętości bazy, nie posiada też graficznych narzędzi do zarządzania.
Wymagania systemowe dla tej wersji to system operacyjny Windows 2000, XP lub Windows Server 2003, 192 MB pamięci RAM, 525 MB wolnego miejsca na dysku, zainstalowany Windows Installer 3.0 i .NET Framework 2.0.



MYSQL

MySQL (wym. maj es-kiu-el) - wolnodostępny system zarządzania relacyjnymi bazami danych.
MySQL rozwijany jest przez firmę Oracle. Wcześniej przez większość czasu jego tworzeniem zajmowała się szwedzka firma MySQL AB.
MySQL AB została kupiona 16 stycznia 2008 roku przez Sun Microsystems, a ten 27 stycznia 2010 roku przez Oracle
MySQL był pisany raczej z myślą o szybkości niż kompatybilności ze standardem SQL – przez dłuższy czas MySQL nie obsługiwał nawet transakcji, co było zresztą głównym argumentem przeciwników tego projektu. MySQL obsługuje większą część obecnego standardu ANSI/ISO SQL (tj. SQL:2003). Wprowadza również swoje rozszerzenia i nowe elementy języka [3].

W wersji 5 dodano m.in. Zbliża to najnowsze wersje MySQL do PostgreSQL pod względem funkcjonalności.
MySQL cieszy się natomiast opinią jednego z szybszych serwerów bazodanowych, dzięki czemu nadaje się jako serwer dla często odwiedzanych witryn WWW.
MySQL zawiera wsparcie dla replikacji bazy danych (w trybie master-slave) i wielojęzyczności – każda tabela, a nawet każde pole może mieć własne ustawienie kodowania znaków.

Platformy, dla których dostępny jest MySQL 

Serwer MySQL dostępny jest dla wszystkich popularnych platform systemowych i różnorakich architektur procesorów. Jest dostępny także w wersji źródłowej, co umożliwia skompilowanie go dla dowolnej innej platformy.

Oficjalnie oferowane są wersje binarne dla następujących platform i architektur (MySQL 4.1): Według informacji z dokumentacji serwera, MySQL można skompilować również dla platform: Amiga, BSDI, Digital Unix, NetBSD, OpenBSD, OS/2 Warp, SCO OpenServer, SCO UnixWare, SunOS, Tru64 Unix.
Podobnie jak serwer również biblioteki klienckie MySQL, umożliwiające korzystanie z tego serwera bazodanowego z poziomu aplikacji, dostępne są dla wielu platform i języków programowania – m.in. dla C, C++, Delphi, czy PHP.



PostgreSQL
PostgreSQL to, obok MySQL i Firebird, jeden z trzech najpopularniejszych wolnodostępnych systemów zarządzania relacyjnymi bazami danych
Początkowo opracowywany na Uniwersytecie Kalifornijskim w Berkeley i opublikowany pod nazwą Ingres. 
W miarę rozwoju i zwiększania funkcjonalności, baza danych otrzymała nazwy Postgres95 i ostatecznie PostgreSQL, aby upamiętnić pierwowzór oraz zaznaczyć zgodność ze standardem SQL.
PostgreSQL zalicza się do baz typu RDBMS z rozszerzeniami obiektowymi

W samej bazie można pisać procedury składowane w różnych językach programowania:

Oracle
Oracle Database to oficjalna nazwa relacyjnego systemu baz danych (RDBMS) stworzonego przez Oracle Corporation.
Nazwa Oracle pochodzi od nazwy kodowej jednego z projektów sponsorowanych przez CIA, nad którymi pracował współzałożyciel korporacji Oracle - Larry Ellison.
Relacyjna baza danych Oracle posługuje się standardowym językiem zapytań SQL oraz posiada wbudowany wewnętrzny język tworzenia procedur składowanych PL/SQL
- będący proceduralnie obudowanym językiem SQL. 
Jako języka tworzenia procedur składowanych w bazach danych Oracle (od wersji 8i) można używać również języka Java.

System bazy danych Oracle składa się z: W skład bazy danych Oracle wchodzą: Baza danych Oracle zamiast plików potrafi również wykorzystywać tak zwane surowe urządzenia (niesformatowane partycje).
Dane w bazie Oracle przechowywane są w tabelach znajdujących się w przestrzeniach tabel (tablespace). Pojedyncza przestrzeń tabel może rozciągać się na wiele plików danych natomiast pojedynczy plik może należeć tylko do jednej przestrzeni. Przestrzeń tabel może logicznie składać się z różnego rodzaju segmentów (zbiorów bloków danych zaalokowanych na rzecz obiektu bazodanowego). Segment jest natomiast grupą extentów, które z kolei są ciągłymi zestawami bloków danych. Bloki są najmniejszą jednostką alokacji przestrzeni. Baza danych Oracle potrafi posługiwać się blokami różnej wielkości.
Najważniejszą przestrzenią tabel dla działania bazy danych jest przestrzeń SYSTEM przechowująca wszelkie słowniki bazy.

Obecnie System zarządzania bazą danych - SZBD - (ang. RDBMS) Oracle jest dystrybuowany w wersji 11g (Oficjalna premiera odbyła się 11.07.2007). 

Dostępne są różnorodne edycje SZBD Oracle różniące się możliwościami a co za tym idzie ceną.

W tej chwili dostępne są edycje Oracle:

Oracle Enterprise Edition jest standarowym i najbardziej rozbudowanym produktem firmy Oracle i może być dodatkowo rozszerzany o opcje np. takie jak: partycjonowanie tabel, RAC, zaawansowane bezpieczeństwo itd.

Oracle Standard Edition tańsza edycja bazy danych Oracle pozbawiona możliwości rozbudowy o opcje, nie posiadająca wszystkich możliwości edycji Enterprise
(brak np. mechanizmu DataGuard) oraz ograniczona ilością procesorów na jakiej można ją uruchomić.

Oracle Standard Edition One pierwszy raz ukazała się wraz z wersją 10g.
Jest to tania edycja bazy danych Oracle nie różniąca się niczym w stosunku do Oracle Standard Edition poza ograniczeniami licencyjnymi takimi między innymi jak: brak możliwości uruchomienia w konfiguracji klastrowej, ograniczenie na pracę w maszynach mających możliwość instalacji maksymalnie dwóch procesorów.

Oracle Express Edition (nie należy jej mylić z wielowymiarową bazą danych Oracle Express) jest darmową, ale bardzo ograniczoną (między innymi wykorzystanie jednego procesora, wykorzystanie maksymalnie 1 GB RAM, obsługa maksymalnie 4 GB danych użytkownika) edycją SZBD Oracle. Oracle Express Edition jest prezentowana po raz pierwszy w wersji 10gR2.

Oracle Personal jest edycją w pełni funkcjonalną, kompatybilną z dowolną wersją rodziny relacyjnych baz danych Oracle, przeznaczoną do użytku indywidualnego.

Oracle Lite jest systemem zarządzania bazą danych przeznaczonym do zastosowań mobilnych.

Od wersji 9i silniki bazy danych pomiędzy wszystkimi edycjami (wyłączając edycję Lite) jest ten sam z wprowadzeniem do niego adekwatnych dla edycji ograniczeń. W wersjach wcześniejszych silniki wersji Standard oraz Enterprise były tworzone osobno


Firebird i Fyracle

Firebird
Firebird
– system zarządzania relacyjnymi bazami danych zgodny ze standardem ANSI SQL-92;
obok MySQL oraz PostgreSQL jest jednym z trzech najpopularniejszych, wolnodostępnych systemów zarządzania bazą danych.
Oferuje również wiele elementów standardu SQL-99 oraz SQL:2003.
Działa w środowisku systemu operacyjnego Linux, Windows, Mac OS X i wielu innych.
Może być używany bez rejestrowania lub wnoszenia jakichkolwiek opłat w dowolnych zastosowaniach, również komercyjnych.
Serwer jest rozwijany na bazie kodu źródłowego serwera InterBase 6.0 udostępnionego przez firmę Inprise Corp
(obecnie znana jako Borland Software Corp) w lipcu 2000 roku na podstawie licencji InterBase Public License 1.0.
Nowe moduły dodane do serwera objęte są licencją Initial Developer's Public License.
Obie licencje są zmodyfikowanymi nieco wersjami Mozilla Public License v.1.1.

Właściwości
FyracleFyracle jest specjalną wersją Firebird - bazy danych open source - pozwalającą korzystać ze składni języka SQL w wersji PL/SQL, zaimplementowanej w serwerach Oracle.
Jej celem jest ułatwienie przenoszenia aplikacji napisanych dla Oracle do środowiska open source.
Fyracle składa się z trzech elementów:
  1. rozszerzeń bazy Firebird, takich jak obsługa dziedziczonych i tymczasowych tabel, hierarchiczne zapytania, silnik języka PL/SQL, wsparcie dla semantyki specyficznej dla Oracle - takiej jak równoważność pustych napisów i NULL w pewnych kontekstach;
  2. biblioteki klienckiej, która tłumaczy składnię specyficzną dla Oracle do wersji zrozumiałej dla serwera Firebird, na przykład zmiana w złączeniach JOIN zamiana (+)
    na składnię połączeń zgodną z ANSI;
  3. kompilatora PL/SQL, który przekształca kod źródłowy takich elementów języka jak procedury składowane, funkcje i wyzwalacze na kod bajtowy zrozumiały
    dla wspomnianego wyżej silnika PL/SQL.
Fyracle obecnie potrafi poprawnie wykonać wszystkie przykłady dołączone do Oracle 7. Cały czas dodawane są kolejne możliwości.
Celem jest pełna zgodność z Oracle 9.
Przykładem zastosowania Fyracle jest dostępny jako open source system ERP/CRM "Compiere".
Dzięki użyciu Compiere z Fyracle zostaje zmniejszone zapotrzebowanie na zasoby komputera w porównaniu do Oracle i jest znacznie prostsze do zarządzania przez typowych użytkowników Compiere. Innym przykładem jest użycie Fyracle jako bazy danych przez nie wymagające wielkich wydajności aplikacje napisane w Visual Basic, Delphi lub Oracle Developer/2000 z Oracle Developer Suite. Takie aplikacje są łatwiejsze do dystrybucji z Fyracle niż z najnowszymi wydaniami Oracle.


IBM DB2 - relacyjny serwer danych z rodziny Information Management Software.

Baza IBM DB2 v9.5 oferowana jest w trzech komercyjnych edycjach: Express, Workgroup oraz Enterprise oraz bezpłatnej edycji DB2 Express-C.
Wszystkie edycje DB2 oparte są o ten sam kod i różnią się ograniczeniami licencyjnym wynikającymi z zastosowanej platformy sprzętowej oraz ewentualnych opcjonalnych komponentów.
Wszystkie edycje zawierają ten sam zestaw graficznych narzędzi administracyjnych, które dostępne są standardowo także w języku polskim.
Bezpłatna edycja DB2 Express-C może być stosowana w komercyjnych rozwiązaniach i nie ogranicza wielkości bazy danych.
Do każdego serwera bezpłatnej bazy można wykupić wsparcie techniczne na okres jednego roku (DB2 Express-C FTL).
Wykupione wsparcie techniczne umożliwia dostęp do regularnie publikowanych przez IBM uaktualnień kodu oraz daje możliwość konfiguracji bazy w architekturze o wysokiej dostępności.

Edycje komercyjne IBM DB2 v9.5:
Edycje bezpłatne IBM DB2 v9.5:


Microsoft Access - system obsługi relacyjnych baz danych, wchodzący w skład pakietu biurowego Microsoft Office dla środowiska Windows.
Od wersji 2.0 dostępny w wersji polskiej.
Bazy danych Access są zapisywane w pojedynczych plikach (rozszerzenie mdb, skompilowana wersja mde).
Jest to wygodne w przypadku prostych zastosowań, jednak kosztem wydajności, wielodostępności oraz bezpieczeństwa danych.
Aby uniknąć takich problemów Access można podłączyć do zewnętrznych źródeł danych (do dowolnego źródła obsługującego popularne oprogramowanie pośredniczące, np. do serwera Microsoft SQL Server, PostgreSQL lub innej bazy MS Access).
W takim przypadku Access spełnia rolę graficznego interfejsu dla zewnętrznych źródeł danych, a nie całego systemu obsługi baz danych.
Access posiada własny, wbudowany aparat bazy danych (Microsoft Jet), który pełni funkcje wewnętrznej bazy danych.
Istnieje możliwość rezygnacji z MS Jet wykorzystując projekty programu Microsoft Access (rozszerzenie adp), ale wówczas wszystkie elementy bazy danych przechowywane są wyłącznie na tym podłączonym serwerze.
Do przykładowych zastosowań można zaliczyć prostsze aplikacje dla małych i średnich firm dotyczące analizy oraz przetwarzania danych.
Microsoft Access można również wykorzystać do szybkiego prototypowania aplikacji bazodanowych.
Dostęp do baz danych utworzonych w Microsoft Access wymaga posiadania programu Access, bądź też napisania osobnego programu z użyciem zewnętrznych narzędzi.
Wyjątkiem jest najbardziej rozbudowana wersja Developer, która umożliwia też tworzenie gotowej aplikacji zawartej w jednym pliku wykonywalnym.
Cechy MS Access 
W  wersji 2003 (MS Access 2003) Access ma następujące ograniczenia: Poza tym Microsoft Access zawiera wbudowany interpreter VBA (ang. Visual Basic for Applications).