Tworzenie baz danych i tabel w SQL

click fraud protection

Czy jesteś gotowy, aby rozpocząć tworzenie baz danych i tabel za pomocą Strukturalny język zapytań? W tym artykule omówimy proces ręcznego tworzenia tabel za pomocą poleceń CREATE DATABASE i CREATE TABLE. Jeśli jesteś nowy w SQL, możesz chcieć przejrzeć niektóre Podstawy SQL pierwszy.

Wymagania biznesowe

Zanim usiądziemy przy klawiaturze, musimy upewnić się, że dobrze rozumiemy wymagania klienta. Jaki jest najlepszy sposób na uzyskanie tego wglądu? Oczywiście rozmowa z klientem! Po spotkaniu z Dyrektorem ds. Zasobów Ludzkich XYZ dowiedzieliśmy się, że jest to firma zajmująca się sprzedażą gadżetów i interesuje ją przede wszystkim śledzenie informacji o swoich pracownikach sprzedaży.

XYZ Corporation dzieli swoje siły sprzedaży na regiony wschodnie i zachodnie, z których każdy jest podzielony na wiele terytoriów, którymi zajmują się poszczególni przedstawiciele handlowi. Dział HR chciałby śledzić obszar zajmowany przez każdego pracownika, a także informacje o wynagrodzeniach i strukturę nadzorczą każdego pracownika. Aby spełnić te wymagania, zaprojektowaliśmy bazę danych składającą się z trzech tabel, pokazanych na

instagram viewer
Diagram encji i relacji na tej stronie.

Wybór platformy bazodanowej

Zdecydowaliśmy się użyć system zarządzania bazą danych (lub DBMS), który jest zbudowany na Structured Query Language (SQL). Dlatego wszystkie nasze polecenia do tworzenia baz danych i tabel powinny być pisane z uwzględnieniem standardu ANSI SQL.

Dodatkową korzyścią jest to, że użycie SQL zgodnego z ANSI zapewni, że te polecenia będą działać na każdym DBMS, który obsługuje standard SQL, w tym Oracle i Microsoft SQL Server. Jeśli nie wybrałeś jeszcze platformy dla swojej bazy danych, Opcje oprogramowania bazy danych przeprowadzi Cię przez proces wyboru.

Tworzenie bazy danych

Naszym pierwszym krokiem jest stworzenie samej bazy danych. Wiele systemów zarządzania bazami danych oferuje szereg opcji dostosowywania parametrów bazy danych na tym etapie, ale nasza baza danych pozwala tylko na proste tworzenie bazy danych. Podobnie jak w przypadku wszystkich naszych poleceń, możesz chcieć zapoznać się z dokumentacją swojego DBMS, aby określić, czy jakiekolwiek zaawansowane parametry obsługiwane przez konkretny system spełniają Twoje potrzeby. Użyjmy polecenia CREATE DATABASE, aby skonfigurować naszą bazę danych:

TWÓRZ BAZY DANYCH personel

Zwróć szczególną uwagę na wielkość liter użytą w powyższym przykładzie. Powszechną praktyką wśród programistów SQL jest używanie wszystkich wielkich liter dla słów kluczowych SQL, takich jak „CREATE” i „BAZA DANYCH” przy użyciu wszystkich małych liter dla nazw zdefiniowanych przez użytkownika, takich jak baza danych „personel” Nazwa. Te konwencje zapewniają łatwą czytelność.

Teraz, gdy zaprojektowaliśmy i utworzyliśmy naszą bazę danych, jesteśmy gotowi do rozpoczęcia tworzenia trzech tabel używanych do przechowywania danych osobowych XYZ Corporation.

Tworzenie naszego pierwszego stołu

Nasza pierwsza tabela zawiera dane osobowe każdego pracownika naszej firmy. Musimy podać imię i nazwisko, pensję, identyfikator i kierownika każdego pracownika. Dobrą praktyką projektową jest rozdzielenie nazwiska i imienia na osobne pola, aby w przyszłości uprościć wyszukiwanie i sortowanie danych. Ponadto będziemy śledzić przełożonego każdego pracownika, wstawiając odniesienie do identyfikatora pracownika kierownika w każdym rekordzie pracownika. Przyjrzyjmy się najpierw tabeli pożądanego pracownika.

Atrybut ReportsTo przechowuje identyfikator kierownika dla każdego pracownika. Na podstawie przedstawionych przykładowych rekordów możemy ustalić, że Sue Scampi jest menedżerem zarówno Toma Kendalla, jak i Johna Smitha. Jednak w bazie danych nie ma informacji o menedżerze Sue, na co wskazuje wpis NULL w jej wierszu.

Teraz możemy użyć SQL do stworzenia tabeli w naszej bazie danych personalnych. Zanim to zrobimy, upewnijmy się, że jesteśmy we właściwej bazie danych, wydając polecenie USE:

UŻYWAĆ personelu;

Alternatywnie, „personel BAZY DANYCH”; polecenie pełniłoby tę samą funkcję. Teraz możemy przyjrzeć się poleceniu SQL użytemu do stworzenia tabeli naszych pracowników:

STWÓRZ STÓŁ pracowników
(liczba całkowita pracownika NIE NULL,
nazwisko VARCHAR(25) NOT NULL,
imię VARCHAR(25) NOT NULL,
raporty do INTEGER NULL);

Podobnie jak w powyższym przykładzie, należy zauważyć, że konwencja programowania nakazuje, aby używać wszystkich wielkich liter w słowach kluczowych SQL i małych liter w kolumnach i tabelach nazwanych przez użytkownika. Powyższe polecenie może początkowo wydawać się mylące, ale w rzeczywistości kryje się za nim prosta struktura. Oto uogólniony widok, który może nieco wyjaśnić:

CREATE TABLE nazwa_tabeli
(attribute_name opcje typu danych,
...,
opcje typu danych nazwa_atrybutu);

Atrybuty i typy danych

W poprzednim przykładzie nazwa tabeli to pracownicy i uwzględniamy cztery atrybuty: identyfikator pracownika, nazwisko, imię i podwładnydo. Typ danych wskazuje rodzaj informacji, które chcemy przechowywać w każdym polu. Identyfikator pracownika jest prostą liczbą całkowitą, więc użyjemy typu danych INTEGER zarówno w polu identyfikatora pracownika, jak i polu reportto. Nazwiska pracowników będą ciągami znaków o zmiennej długości i nie oczekujemy, że pracownik będzie miał imię lub nazwisko dłuższe niż 25 znaków. Dlatego dla tych pól użyjemy typu VARCHAR(25).

Wartości NULL

Możemy również określić albo NULL lub NOT NULL w polu opcji instrukcji CREATE. To po prostu informuje bazę danych, czy wartości NULL (lub puste) są dozwolone dla tego atrybutu podczas dodawania wierszy do bazy danych. W naszym przykładzie dział HR wymaga, aby dla każdego pracownika był przechowywany identyfikator pracownika i pełne imię i nazwisko. Jednak nie każdy pracownik ma kierownika (prezes nikomu nie podlega!), dlatego dopuszczamy w tym polu wpisy NULL. Zauważ, że NULL jest wartością domyślną, a pominięcie tej opcji niejawnie pozwoli na wartości NULL dla atrybutu.

Budowanie pozostałych tabel

Przyjrzyjmy się teraz tabeli terytoriów. Po szybkim spojrzeniu na te dane wydaje się, że musimy przechowywać liczbę całkowitą i dwa ciągi o zmiennej długości. Podobnie jak w naszym poprzednim przykładzie, nie oczekujemy, że identyfikator regionu będzie zajmował więcej niż 25 znaków. Jednak niektóre z naszych terytoriów mają dłuższe nazwy, więc rozszerzymy dozwoloną długość tego atrybutu do 40 znaków.

Spójrzmy na odpowiedni SQL:

UTWÓRZ TABELĘ terytoria
(territoryid INTEGER NOT NULL,
terytorium Opis VARCHAR(40) NOT NULL,
regionid VARCHAR(25) NOT NULL);

Na koniec użyjemy tabeli EmployeeTerritories do przechowywania relacji między pracownikami i terytoriami. Szczegółowe informacje na temat każdego pracownika i terytorium są przechowywane w naszych dwóch poprzednich tabelach. Dlatego w tej tabeli musimy tylko przechowywać dwie liczby całkowite. Jeśli musimy rozszerzyć te informacje, możemy użyć JOIN w naszych poleceniach wyboru danych, aby uzyskać informacje z wielu tabel.

Ta metoda przechowywania danych zmniejsza redundancję w naszej bazie danych i zapewnia optymalne wykorzystanie miejsca na naszych dyskach. Szczegółowo omówimy polecenie JOIN w przyszłym samouczku. Oto kod SQL do zaimplementowania naszej tabeli końcowej:

UTWÓRZ TABELĘ terytoria pracowników
(liczba całkowita pracownika NIE NULL,
terytoriumid INTEGER NOT NULL);

Mechanizm SQL umożliwia zmianę struktury bazy danych po utworzeniu

Jeśli jesteś dzisiaj szczególnie bystry, być może zauważyłeś, że „przypadkowo” pominęliśmy jeden z wymagań projektowych podczas implementacji naszych tabel bazy danych. Dyrektor HR w XYZ Corporation poprosił o śledzenie w bazie danych informacji o wynagrodzeniach pracowników, a my zaniedbaliśmy to w tworzonych przez nas tabelach bazy danych.

Jednak, nie wszystko stracone. Możemy użyć polecenia ALTER TABLE, aby dodać ten atrybut do naszej istniejącej bazy danych. Chcemy przechowywać wynagrodzenie jako wartość całkowitą. Składnia jest bardzo podobna do składni polecenia CREATE TABLE, oto ona:

Pracownicy ALTER TABLE
DODAJ pensję INTEGER NULL;

Zauważ, że określiliśmy, że dla tego atrybutu dozwolone są wartości NULL. W większości przypadków nie ma możliwości dodania kolumny do istniejącej tabeli. Wynika to z faktu, że tabela zawiera już wiersze bez wpisu dla tego atrybutu. Dlatego DBMS automatycznie wstawia wartość NULL, aby wypełnić pustkę.

instagram story viewer