Wprowadzenie
MySQL przechowuje dane, którymi zarządza, w tabelach i bazach danych. Tabele przechowują dane w ramach wstępnie zdefiniowanych schematów kolumn i typów danych. Bazy danych to struktura, która może przechowywać wiele tabel, indeksów, procedur i pomaga zdefiniować zakres uprawnień, dostosowania i nie tylko.
W tym przewodniku pokażemy, jak tworzyć tabele i bazy danych w MySQL. Pokażemy Ci, jak zarządzać niektórymi funkcjami obu struktur, a następnie omówimy, jak je usunąć, aby wyczyścić, jeśli już ich nie potrzebujesz.
Wymagania wstępne
Aby postępować zgodnie z tym przewodnikiem, musisz zalogować się do serwera MySQL jako użytkownik z uprawnieniami administratora przy użyciu mysql
klient wiersza poleceń.
Jeśli nie chcesz logować się przez root
Konto administracyjne MySQL, Twój użytkownik będzie potrzebował co najmniej CREATE
uprawnienia do wykonywania czynności opisanych w tym przewodniku.
Możesz sprawdzić dostępne uprawnienia użytkownika, wpisując:
SHOW GRANTS\G
Jak utworzyć nową bazę danych?
Pierwszą rzeczą, którą pokażemy, jak to zrobić, jest utworzenie nowej bazy danych. W MySQL bazy danych zawierają tabele, indeksy, procedury i inne zasoby, które są zazwyczaj związane z pojedynczym projektem. Każdy z tych zasobów musi być utworzony w bazie danych, więc nauczenie się tworzenia nowej bazy danych jest dobrym pierwszym krokiem.
Podstawowa składnia używana do tworzenia nowej bazy danych wygląda następująco:
CREATE DATABASE <db_name>;
Zastąp
z nazwą, którą chcesz nadać swojej bazie danych przed wykonaniem polecenia. To polecenie utworzy bazę danych o podanej nazwie i ustawi bieżącego użytkownika jako właściciela nowej bazy danych.
Baza danych użyje ogólnosystemowych wartości domyślnych dla zestawu znaków, sortowania i właściwości szyfrowania:
- ZESTAW ZNAKÓW: ustawia zestaw znaków dla nowej bazy danych. Jest to opcja lokalizacji, która wpływa na to, jakie znaki są uważane za wielkie, małe i cyfry.
- UKŁADANIE: ustawia zestawianie lub kolejność sortowania bazy danych. Jest to opcja lokalizacji, która określa sposób organizacji elementów, gdy są zamawiane.
- SZYFROWANIE: ustawia szyfrowanie dla nowej bazy danych. Jest to opcja logiczna, którą może być „Y” dla tak lub „N” dla nie.
Zestawy znaków dostępne dla Twojej instalacji możesz znaleźć, wpisując:
SHOW CHARACTER SET;
Podobnie możesz znaleźć dostępne zestawienia, wpisując:
SHOW COLLATION;
Jeśli chcesz określić wartość inną niż domyślna dla jednego z tych parametrów, możesz to zrobić, dodając je po głównej instrukcji tworzenia w następujący sposób:
CREATE DATABASE <db_name> CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_0900_ai_ci' ENCRYPTION = 'Y';
Aby podążać za przykładami w tym przewodniku, utwórz bazę danych o nazwie szkoła
przy użyciu domyślnych ustawień regionalnych instancji i zestawu znaków UTF8:
CREATE DATABASE school CHARACTER SET = 'utf8mb4';
Spowoduje to utworzenie nowej bazy danych przy użyciu podanych specyfikacji.
Wymień istniejące bazy danych
Aby wyświetlić listę baz danych dostępnych na twoim serwerze, wpisz:
SHOW DATABASES;
Spowoduje to wyświetlenie listy wszystkich baz danych aktualnie zdefiniowanych w środowisku:
+--------------------+ Database |+--------------------+ information_schema | mysql | performance_schema | school | sys | testing |+--------------------+6 rows in set (0.00 sec)
Możesz sprawdzić, czy podane przez Ciebie ustawienia zostały zastosowane do nowej szkoły
bazy danych za pomocą SHOW CREATE DATABASE
polecenie:
SHOW CREATE DATABASE school;
Dane wyjściowe wyświetlą polecenie i opcje użyte do utworzenia bazy danych, dopełniając opcje dowolnymi zastosowanymi wartościami domyślnymi:
+----------+----------------------------------------------------------------------------------------------------------------------------------+ Database | Create Database |+----------+----------------------------------------------------------------------------------------------------------------------------------+ school | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |+----------+----------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)
Jak przejść do innej bazy danych w MySQL
Po utworzeniu bazy danych możesz pracować z nią na kilka różnych sposobów.
Pierwsza opcja to określenie bazy danych jako argumentu w każdym używanym poleceniu. Aby zaoszczędzić czas, jeśli uruchamiasz wiele poleceń związanych z obiektami bazy danych, możesz również „przełączyć się” lub „użyć” bazy danych, aby ustawić nową bazę danych jako domyślny kontekst dla wszystkich poleceń związanych z bazą danych, które będziesz uruchamiać .
Aby przejść do innej bazy danych, wpisz:
USE <db_name>;
W naszym przypadku możemy przejść do szkoły
baza danych, którą stworzyliśmy wpisując:
USE school;
Tworzenie tabel w bazach danych
Po utworzeniu bazy danych możesz zdefiniować w niej tabele i inne obiekty do przechowywania danych i zarządzania nimi. W MySQL tabele składają się z nazwy tabeli, definicji kolumn (te z kolei zawierają między innymi nazwy, typy danych i ograniczenia) oraz opcji tabeli.
Jaka jest składnia CREATE TABLE
MySQL polecenie?
Podstawowa składnia do tworzenia tabel przy użyciu CREATE TABLE
MySQL polecenie wygląda tak:
CREATE TABLE <table_name> ( <column_name> <data_type> [<column_constraint>], [<table_constraint>,]);
Powyższy szablon poleceń możemy podzielić na następujące elementy:
UTWÓRZ TABELĘ
:Podstawowa deklaracja tworzenia.symbol zastępczy należy zastąpić nazwą tabeli, której chcesz użyć.
:Definiuje podstawową kolumnę w tabeli.symbol zastępczy należy zastąpić nazwą, której chcesz użyć dla swojej kolumny.
określa typ danych MySQL kolumny. Dane przechowywane w tabeli muszą być zgodne ze strukturą kolumn i typami danych kolumn, aby zostały zaakceptowane.
:Ograniczenia słupów są opcjonalnymi ograniczeniami, które dodają dodatkowe wymagania dotyczące danych. Na przykład możesz wymagać, aby wpisy nie były zerowe, niepowtarzalne ani dodatnie.
:ograniczenia tabeli są podobne do ograniczeń kolumn, ale obejmują interakcję wielu kolumn. Na przykład możesz mieć ograniczenie tabeli, które sprawdza, czyDATE_OF_BIRTH
jest przedDATE_OF_DEATH
w stole.
Jak tworzyć tabele tylko wtedy, gdy jeszcze nie istnieją?
Domyślnym zachowaniem MySQL jest zgłoszenie błędu, jeśli próbujesz utworzyć tabelę, która już istnieje. Jednak opcjonalny JEŚLI NIE ISTNIEJE
Klauzula może zostać dodana do instrukcji tworzenia, aby zastąpić to zachowanie.
Możesz użyć JEŚLI NIE ISTNIEJE
klauzulę, wstawiając ją do polecenia po CREATE TABLE
fraza, ale przed nazwą tabeli:
CREATE TABLE IF NOT EXISTS table_name ( column_name TYPE [column_constraint], [table_constraint,]);
Zmodyfikuje to zachowanie polecenia w następujący sposób:Jeśli podana nazwa tabeli już istnieje, MySQL zgłosi ostrzeżenie zamiast błędu. Reszta zachowania poleceń pozostaje taka sama.
Tworzenie tabel w bazach danych MySQL
Podany powyżej szablon poleceń wystarczy do stworzenia podstawowych tabel. Aby pogłębić nasz przykład, utworzymy dwie tabele w naszej szkole
Baza danych. Jedna tabela będzie nazywać się dostawy
a drugi będzie nazywał się nauczyciele
:
W dostawach
tabeli, uwzględnimy następujące pola:
- identyfikator: Unikalny identyfikator dla każdego rodzaju artykułów szkolnych.
- nazwa: Nazwa konkretnego przedmiotu szkolnego.
- opis: Krótki opis przedmiotu.
- producent: Nazwa producenta przedmiotu.
- kolor: Kolor przedmiotu.
- inwentarz: Liczba przedmiotów, które posiadamy dla określonego rodzaju artykułów szkolnych. To nigdy nie powinno być mniejsze niż 0.
Możemy stworzyć dostawy
tabela z powyższymi cechami przy użyciu następującego SQL:
CREATE TABLE supplies ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), description VARCHAR(255), manufacturer VARCHAR(255), color VARCHAR(255), inventory INT CHECK (inventory >= 0));
Spowoduje to utworzenie zapasów
tabela w szkole
Baza danych. KLUCZ PODSTAWOWY
Ograniczenie kolumn to specjalne ograniczenie używane do wskazywania kolumn, które mogą jednoznacznie identyfikować rekordy w tabeli. W związku z tym ograniczenie określa, że kolumna nie może mieć wartości NULL i musi być unikatowa. MySQL tworzy indeksy dla kolumn klucza głównego, aby zwiększyć szybkość zapytań.
Sprawdź, czy nowa tabela jest obecna, wpisując:
SHOW TABLES;
+------------------+ Tables_in_school |+------------------+ supplies |+------------------+1 row in set (0.01 sec)
Możesz sprawdzić, czy schemat odzwierciedla twoją definicję, wpisując:
SHOW CREATE TABLE supplies\G
*************************** 1. row *************************** Table: suppliesCreate Table: CREATE TABLE `supplies` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `description` varchar(255) DEFAULT NULL, `manufacturer` varchar(255) DEFAULT NULL, `color` varchar(255) DEFAULT NULL, `inventory` int DEFAULT NULL, PRIMARY KEY (`id`), CONSTRAINT `supplies_chk_1` CHECK ((`inventory` >= 0))) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set (0.00 sec
Określone przez nas kolumny, typy danych i ograniczenia są obecne w danych wyjściowych, chociaż kolejność i sposób wyświetlania mogą się różnić.
Następnie utwórz nauczycieli
stół. W tej tabeli powinny znajdować się następujące kolumny:
- identyfikator :Unikalny numer identyfikacyjny pracownika.
- imię :Imię nauczyciela.
- nazwisko :Nazwisko nauczyciela.
- temat :Przedmiot, do którego nauczania zatrudniony jest nauczyciel.
- poziom_klasy :Poziom uczniów, do których nauczania zatrudniono nauczyciela.
Utwórz nauczycieli
tabela z powyższym schematem z następującym SQL:
CREATE TABLE teachers ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(255), last_name VARCHAR(255), subject VARCHAR(255), grade_level INT);
Jak tworzyć tabele z kluczami podstawowymi i obcymi
Informacje na temat tworzenia tabel z kluczami podstawowymi i obcymi znajdziesz w innych naszych przewodnikach po MySQL. Klucze podstawowe i klucze obce to oba rodzaje ograniczeń bazy danych w MySQL.
Klucz podstawowy to specjalna kolumna lub kolumna, która na pewno będzie unikatowa w wierszach tej samej tabeli. Wszystkie klucze podstawowe mogą służyć do jednoznacznej identyfikacji określonego wiersza. Klucze podstawowe nie tylko zapewniają, że każdy wiersz ma unikalną wartość dla kolumn klucza podstawowego, ale także zapewniają, że żaden wiersz nie zawiera NULL
wartości dla tej kolumny. Często klucz podstawowy w MySQL używa następującego formatu, aby określić automatycznie przypisywany inkrementacyjny klucz podstawowy:id INT AUTO_INCREMENT PRIMARY KEY
.
Klucze obce to sposób na zapewnienie, że kolumna lub kolumny w jednej tabeli odpowiadają wartościom zawartym w innej tabeli. Pomaga to zapewnić integralność referencyjną między tabelami.
Jak przeglądać tabele w MySQL
W MySQL możesz wyświetlić tabele na kilka różnych sposobów, w zależności od tego, jakich informacji szukasz.
Jeśli chcesz zobaczyć, jakie tabele są dostępne w Twojej bazie danych, wpisz:
SHOW TABLES;
+------------------+ Tables_in_school |+------------------+ supplies | teachers |+------------------+2 rows in set (0.00 sec)
Możesz również sprawdzić, czy schemat tabeli odpowiada Twoim specyfikacjom:
DESCRIBE teachers;
+--------------+--------------+------+-----+---------+----------------+ Field | Type | Null | Key | Default | Extra |+--------------+--------------+------+-----+---------+----------------+ id | int | NO | PRI | NULL | auto_increment | name | varchar(255) | YES | | NULL | | description | varchar(255) | YES | | NULL | | manufacturer | varchar(255) | YES | | NULL | | color | varchar(255) | YES | | NULL | | inventory | int | YES | | NULL | |+--------------+--------------+------+-----+---------+----------------+6 rows in set (0.00 sec)
nauczyciele
tabela wydaje się pasować do naszej definicji.
Jak zmienić tabele za pomocą ALTER TABLE
polecenie
Jeśli potrzebujesz zmienić schemat istniejącej tabeli w MySQL, możesz użyć ALTER TABLE
Komenda. ALTER TABLE
polecenie jest bardzo podobne do polecenia CREATE TABLE
polecenie, ale działa na istniejącej tabeli.
Zmień składnię tabeli
Podstawowa składnia modyfikacji tabel w MySQL wygląda tak:
ALTER TABLE <table_name> <change_command> <change_parameters>;
wskazuje dokładny typ zmiany, którą chcesz wprowadzić, niezależnie od tego, czy dotyczy to ustawiania różnych opcji w tabeli, dodawania lub usuwania kolumn, czy też zmiany typów lub ograniczeń.
część polecenia zawiera wszelkie dodatkowe informacje, których MySQL potrzebuje do dokończenia zmiany.
Dodawanie kolumn do tabel
Możesz dodać kolumnę do tabeli MySQL za pomocą ADD
Zmień polecenie. Parametry zmiany będą zawierać nazwę kolumny, typ i opcje, tak jak określisz je w CREATE TABLE
polecenie.
Na przykład, aby dodać kolumnę o nazwie brakująca_kolumna
tekstu
wpisz do tabeli o nazwie jakaś_tabela
, należy wpisać:
ALTER TABLE some_table ADD missing_column text;
Usuwanie kolumn z tabel
Jeśli zamiast tego chcesz usunąć istniejącą kolumnę, możesz użyć DROP COLUMN
zamiast tego polecenie. Musisz określić nazwę kolumny, którą chcesz usunąć jako parametr zmiany:
ALTER TABLE some_table DROP COLUMN useless_column;
Zmiana typu danych kolumny
Aby zmienić typ danych kolumny, możesz użyć ALTER COLUMN
zmień polecenie za pomocą MODIFY COLUMN
polecenie kolumny. Parametry w tym kontekście obejmują nazwę kolumny i jej nowy typ:
ALTER TABLE resident MODIFY COLUMN id INT;
Inne zmiany w tabeli
Wiele innych typów zmian można osiągnąć za pomocą ALTER TABLE
Komenda. Aby uzyskać więcej informacji o dostępnych opcjach, zapoznaj się z oficjalną dokumentacją MySQL dla ALTER TABLE
.
Upuść tabele
Jeśli chcesz usunąć tabelę, możesz użyć DROP TABLE
Instrukcja SQL. Spowoduje to usunięcie tabeli oraz wszelkich przechowywanych w niej danych.
Podstawowa składnia wygląda tak:
DROP TABLE <table_name>;
Spowoduje to usunięcie tabeli, jeśli istnieje i wyrzuci błąd, jeśli nazwa tabeli nie istnieje.
Jeśli chcesz usunąć tabelę, jeśli istnieje i nic nie robić, jeśli nie istnieje, możesz dołączyć IF EXISTS
kwalifikator w oświadczeniu:
DROP TABLE IF EXISTS <table_name>;
Tabele, które mają zależności od innych tabel lub obiektów, nie mogą być domyślnie usuwane, dopóki te zależności istnieją.
Usuń materiały
tabela, którą utworzyliśmy wcześniej, wpisując:
DROP TABLE supplies;
Zatrzymamy nauczycieli
bazy danych, aby zademonstrować, że instrukcja usuwania baz danych usuwa również wszystkie obiekty podrzędne, takie jak tabele.
Upuść bazy danych
DROP BAZY DANYCH
instrukcja mówi MySQL, aby usunąć określoną bazę danych. Podstawowa składnia wygląda tak:
DROP DATABASE <database_name>;
Zastąp
symbol zastępczy z nazwą bazy danych, którą chcesz usunąć. Spowoduje to usunięcie bazy danych, jeśli zostanie znaleziona. Jeśli nie można znaleźć bazy danych, wystąpi błąd:
DROP DATABASE some_database;
ERROR 1008 (HY000): Can't drop database 'some_database'; database doesn't exist
Jeśli chcesz usunąć bazę danych, jeśli istnieje, i nie robić nic w inny sposób, dołącz opcjonalny JEŻELI ISTNIEJE
opcja:
DROP DATABASE IF EXISTS some_database;
Query OK, 0 rows affected, 1 warning (0.00 sec)
Spowoduje to usunięcie bazy danych lub nic nie zrobi, jeśli nie można jej znaleźć.
Aby usunąć szkołę
bazy danych, której używaliśmy w tym przewodniku, wymień istniejące bazy danych w twoim systemie:
SHOW DATABASES;
+--------------------+ Database |+--------------------+ information_schema | mysql | performance_schema | school | sys | testing |+--------------------+6 rows in set (0.00 sec)
Usuń szkołę
bazy danych za pomocą następującego polecenia:
DROP DATABASE school;
Spowoduje to usunięcie szkoły
baza danych wraz z nauczycielami
tabela zdefiniowana wewnątrz.
Wniosek
W tym artykule omówiono podstawy tworzenia i usuwania baz danych i tabel za pomocą MySQL. Oto niektóre z najbardziej podstawowych poleceń wymaganych do skonfigurowania systemu bazy danych i zdefiniowania struktury danych.
Jak wspomniano wcześniej, instrukcje SQL opisane w tym samouczku MySQL, w szczególności CREATE TABLE
oświadczenie, mają wiele dodatkowych parametrów, które można wykorzystać do zmiany zachowania systemu. Możesz dowiedzieć się więcej na ten temat, sprawdzając oficjalną dokumentację MySQL.