sql >> Databáze >  >> RDS >> Mysql

Jak vytvářet a mazat databáze a tabulky v MySQL


Úvod

MySQL uchovává data, která spravuje, v tabulkách a databázích. Tabulky ukládají data v rámci předdefinovaných schémat sloupců a datových typů. Databáze jsou strukturou, která může obsahovat více tabulek, indexů, procedur a pomáhá definovat rozsah oprávnění, přizpůsobení a další.

V této příručce vám ukážeme, jak vytvářet tabulky a databáze v MySQL. Ukážeme vám, jak spravovat některé funkce obou struktur, a poté probereme, jak je odstranit a vyčistit, pokud je již nepotřebujete.



Předpoklady

Abyste mohli postupovat podle této příručky, budete se muset přihlásit k serveru MySQL pomocí uživatele s oprávněními správce pomocí mysql klient příkazového řádku.

Pokud se nechcete přihlašovat pomocí root Administrativní účet MySQL, váš uživatel bude potřebovat alespoň CREATE oprávnění provádět akce popsané v této příručce.

Dostupná oprávnění vašeho uživatele můžete zkontrolovat zadáním:

SHOW GRANTS\G


Jak vytvoříte novou databázi?

První věc, kterou si ukážeme, je vytvoření nové databáze. V MySQL databáze obsahují tabulky, indexy, procedury a další zdroje, které se obvykle týkají jednoho projektu. Každý z těchto zdrojů musí být vytvořen v databázi, takže naučit se, jak vytvořit novou databázi, je dobrý první krok.

Základní syntaxe použitá k vytvoření nové databáze vypadá takto:

CREATE DATABASE <db_name>;

Nahraďte s názvem, který chcete dát databázi před provedením příkazu. Tento příkaz vytvoří databázi s daným jménem a nastaví aktuálního uživatele jako vlastníka nové databáze.

Databáze bude používat celosystémová výchozí nastavení pro vlastnosti znakové sady, řazení a šifrování:

  • SADA ZNAKŮ: nastaví znakovou sadu pro novou databázi. Toto je možnost lokalizace, která ovlivňuje, jaké znaky jsou považovány za velká, malá písmena a číslice.
  • COLLATE: nastaví třídění nebo pořadí řazení databáze. Toto je možnost lokalizace, která určuje, jak jsou položky organizovány, když jsou objednávány.
  • ŠIFROVÁNÍ: nastaví šifrování pro novou databázi. Toto je logická možnost, která může být buď „Y“ pro ano, nebo „N“ pro ne.

Znakové sady dostupné pro vaši instalaci najdete zadáním:

SHOW CHARACTER SET;

Stejně tak můžete najít dostupné porovnávání zadáním:

SHOW COLLATION;

Pokud chcete zadat jinou než výchozí hodnotu pro jeden z těchto parametrů, můžete to udělat tak, že je přidáte za hlavní příkaz vytvoření, jako je tento:

CREATE DATABASE <db_name>  CHARACTER SET = 'utf8mb4'  COLLATE = 'utf8mb4_0900_ai_ci'  ENCRYPTION = 'Y';

Chcete-li pokračovat podle příkladů v této příručce, vytvořte databázi s názvem school pomocí výchozího nastavení národního prostředí vaší instance a znakové sady UTF8:

CREATE DATABASE school CHARACTER SET = 'utf8mb4';

Tím se vytvoří vaše nová databáze pomocí specifikací, které jste poskytli.



Seznam existujících databází

Chcete-li zobrazit databáze, které jsou dostupné na vašem serveru, zadejte:

SHOW DATABASES;

Zobrazí se seznam všech databází aktuálně definovaných v prostředí:

+--------------------+  Database           |+--------------------+  information_schema |  mysql              |  performance_schema |  school             |  sys                |  testing            |+--------------------+6 rows in set (0.00 sec)

Můžete ověřit, že vámi zadaná nastavení byla použita pro novou školu databázi pomocí SHOW CREATE DATABASE příkaz:

SHOW CREATE DATABASE school;

Výstup zobrazí příkaz a možnosti použité k vytvoření databáze, přičemž možnosti budou doplněny jakýmikoli použitými výchozími hodnotami:

+----------+----------------------------------------------------------------------------------------------------------------------------------+  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 přejít na jinou databázi v MySQL

Jakmile je databáze vytvořena, můžete s ní pracovat několika různými způsoby.

První možností je zadat databázi jako argument v každém příkazu, který použijete. Chcete-li ušetřit čas, pokud spouštíte více příkazů souvisejících s objekty databáze, můžete také „přepnout“ nebo „použít“ databázi k nastavení vaší nové databáze jako výchozího kontextu pro jakékoli příkazy související s databází, které budete spouštět. .

Chcete-li přejít na jinou databázi, zadejte:

USE <db_name>;

V našem případě můžeme přejít na školu databázi jsme vytvořili zadáním:

USE school;


Vytváření tabulek v databázích

Jakmile vytvoříte databázi, můžete uvnitř definovat tabulky a další objekty pro ukládání a správu vašich dat. V MySQL se tabulky skládají z názvu tabulky, definic sloupců (ty zase mimo jiné zahrnují názvy, datové typy a omezení) a možností tabulky.


Jaká je syntaxe CREATE TABLE MySQL příkaz?

Základní syntaxe pro vytváření tabulek pomocí CREATE TABLE MySQL příkaz vypadá takto:

CREATE TABLE <table_name> (    <column_name> <data_type> [<column_constraint>],    [<table_constraint>,]);

Výše uvedenou šablonu příkazu můžeme rozdělit na následující součásti:

  • VYTVOŘIT TABULKU :Základní prohlášení o stvoření. zástupný symbol by měl být nahrazen názvem tabulky, kterou chcete použít.
  • :Definuje základní sloupec v tabulce. zástupný symbol by měl být nahrazen názvem, který chcete pro svůj sloupec použít. určuje datový typ MySQL sloupce. Aby byla data uložená v tabulce přijata, musí odpovídat struktuře sloupců a datovým typům sloupců.
  • :Omezení sloupců jsou volitelná omezení přidávají další požadavky na data. Můžete například požadovat, aby položky nebyly nulové, jedinečné ani kladná celá čísla.
  • :Omezení tabulky jsou podobná omezením sloupců, ale zahrnují interakci více sloupců. Můžete například mít omezení tabulky, které kontroluje, zda DATE_OF_BIRTH je před DATE_OF_DEATH v tabulce.


Jak vytvoříte tabulky, pouze pokud ještě neexistují?

Výchozí chování MySQL je vyvolat chybu, pokud se pokusíte vytvořit tabulku, která již existuje. Nicméně nepovinné IF NOT EXISTS Do příkazu vytvoření lze přidat klauzuli, která toto chování přepíše.

Můžete použít IF NOT EXISTS klauzuli tak, že ji vložíte do příkazu za CREATE TABLE fráze, ale před názvem tabulky:

CREATE TABLE IF NOT EXISTS table_name (    column_name TYPE [column_constraint],    [table_constraint,]);

To změní chování příkazu následovně:Pokud zadaný název tabulky již existuje, MySQL vyvolá varování místo chyby. Zbytek chování příkazu zůstává stejný.



Vytváření tabulek v databázích MySQL

K vytvoření základních tabulek stačí výše uvedená šablona příkazu. Jako další příklad vytvoříme v naší škole dvě tabulky databáze. Jedna tabulka se bude jmenovat supplies a druhý se bude jmenovat učitelé :

V dodávky tabulky, zahrneme následující pole:

  • id: Jedinečné ID pro každý typ školních potřeb.
  • jméno: Název konkrétní školní položky.
  • popis: Krátký popis položky.
  • výrobce: Název výrobce položky.
  • barva: Barva položky.
  • inventář: Počet položek, které máme pro určitý typ školních potřeb. Ta by nikdy neměla být menší než 0.

Můžeme vytvořit dodávky tabulky s výše uvedenými vlastnostmi pomocí následujícího 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));

Tím vytvoříte zásoby tabulky v rámci školy databáze. PRIMÁRNÍ KLÍČ sloupcové omezení je speciální omezení používané k označení sloupců, které mohou jednoznačně identifikovat záznamy v tabulce. Omezení jako takové určuje, že sloupec nemůže mít hodnotu null a musí být jedinečný. MySQL vytváří indexy pro sloupce primárního klíče pro zvýšení rychlosti dotazování.

Ověřte přítomnost nové tabulky zadáním:

SHOW TABLES;
+------------------+  Tables_in_school |+------------------+  supplies         |+------------------+1 row in set (0.01 sec)

Můžete ověřit, že schéma odpovídá vaší definici, zadáním:

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

Sloupce, datové typy a omezení, která jsme zadali, jsou ve výstupu přítomny, i když pořadí a zobrazení se mohou lišit.

Dále vytvořte učitele stůl. V této tabulce by měly být přítomny následující sloupce:

  • id :Jedinečné identifikační číslo zaměstnance.
  • křestní_jméno :Křestní jméno učitele.
  • příjmení :Příjmení učitele.
  • předmět :Předmět, který má učitel vyučovat.
  • úroveň_úrovně :Stupeň studentů, pro které je učitel najat.

Vytvořte učitele tabulka s výše uvedeným schématem s následujícím 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 vytvořit tabulky s primárními klíči a cizími klíči

Informace o vytváření tabulek s primárními a cizími klíči naleznete v některých našich dalších příručkách MySQL. Primární klíče a cizí klíče jsou oba typy omezení databáze v rámci MySQL.

Primární klíč je speciální sloupec nebo sloupec, u kterého je zaručeno, že bude jedinečný napříč řádky ve stejné tabulce. Všechny primární klíče lze použít k jednoznačné identifikaci konkrétního řádku. Primární klíče nejen zajišťují, že každý řádek má jedinečnou hodnotu pro sloupce primárního klíče, ale také zajišťují, že žádné řádky neobsahují NULL hodnoty pro daný sloupec. Primární klíč v MySQL často používá k určení automaticky přiřazeného inkrementačního primárního klíče následující formát:id INT AUTO_INCREMENT PRIMARY KEY .

Cizí klíče představují způsob, jak zajistit, aby sloupec nebo sloupce v jedné tabulce odpovídaly hodnotám obsaženým v jiné tabulce. To pomáhá zajistit referenční integritu mezi tabulkami.




Jak zobrazit tabulky v MySQL

V MySQL můžete vypisovat tabulky několika různými způsoby v závislosti na tom, jaké informace hledáte.

Pokud chcete vidět, jaké tabulky jsou ve vaší databázi k dispozici, zadejte:

SHOW TABLES;
+------------------+  Tables_in_school |+------------------+  supplies         |  teachers         |+------------------+2 rows in set (0.00 sec)

Můžete také zkontrolovat, zda schéma tabulky odpovídá vašim specifikacím:

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)

učitelé Zdá se, že tabulka odpovídá naší definici.



Jak změnit tabulky pomocí ALTER TABLE příkaz

Pokud potřebujete změnit schéma existující tabulky v MySQL, můžete použít ALTER TABLE příkaz. ALTER TABLE příkaz je velmi podobný příkazu CREATE TABLE příkaz, ale pracuje na existující tabulce.


Změnit syntaxi tabulky

Základní syntaxe pro úpravu tabulek v MySQL vypadá takto:

ALTER TABLE <table_name> <change_command> <change_parameters>;

označuje přesný typ změny, kterou byste chtěli provést, ať už jde o nastavení různých možností v tabulce, přidání nebo odebrání sloupců nebo změnu typů nebo omezení. část příkazu obsahuje další informace, které MySQL potřebuje k dokončení změny.



Přidávání sloupců do tabulek

Sloupec do tabulky MySQL můžete přidat pomocí ADD změnit příkaz. Parametry změny budou zahrnovat název sloupce, typ a možnosti, stejně jako byste je zadali v CREATE TABLE příkaz.

Chcete-li například přidat sloupec s názvem missing_column textu zadejte do tabulky s názvem nejaká_tabulka , napsali byste:

ALTER TABLE some_table ADD missing_column text;


Odebrání sloupců z tabulek

Pokud místo toho chcete odstranit existující sloupec, můžete použít DROP COLUMN místo toho příkaz. Jako parametr změny musíte zadat název sloupce, který chcete vypustit:

ALTER TABLE some_table DROP COLUMN useless_column;


Změna datového typu sloupce

Chcete-li změnit typ dat sloupce, můžete použít ALTER COLUMN změnit příkaz pomocí MODIFY COLUMN sloupcový příkaz. Mezi parametry v tomto kontextu patří název sloupce a jeho nový typ:

ALTER TABLE resident MODIFY COLUMN id INT;


Další změny v tabulce

Mnoho dalších typů změn lze dosáhnout pomocí ALTER TABLE příkaz. Další informace o dostupných možnostech naleznete v oficiální dokumentaci MySQL pro ALTER TABLE .




Zrušit tabulky

Pokud chcete smazat tabulku, můžete použít DROP TABLE SQL příkaz. Tím smažete tabulku i všechna data v ní uložená.

Základní syntaxe vypadá takto:

DROP TABLE <table_name>;

Toto smaže tabulku, pokud existuje, a vyvolá chybu, pokud název tabulky neexistuje.

Pokud si přejete smazat tabulku, pokud existuje, a nedělat nic, pokud neexistuje, můžete zahrnout IF EXISTS kvalifikátor v rámci příkazu:

DROP TABLE IF EXISTS <table_name>;

Tabulky, které jsou závislé na jiných tabulkách nebo objektech, nelze ve výchozím nastavení odstranit, dokud tyto závislosti existují.

Smažte dodávky tabulku, kterou jsme vytvořili dříve zadáním:

DROP TABLE supplies;

učitele si ponecháme databáze, abyste demonstrovali, že příkaz k odstranění databází také odstraní všechny podřízené objekty, jako jsou tabulky.



Zrušit databáze

DROP DATABASE příkaz říká MySQL, aby smazala zadanou databázi. Základní syntaxe vypadá takto:

DROP DATABASE <database_name>;

Nahraďte zástupný symbol s názvem databáze, kterou chcete odstranit. To smaže databázi, pokud je nalezena. Pokud databázi nelze najít, dojde k chybě:

DROP DATABASE some_database;
ERROR 1008 (HY000): Can't drop database 'some_database'; database doesn't exist

Pokud si přejete smazat databázi, pokud existuje, a jinak nedělat nic, zahrňte volitelný IF EXISTS možnost:

DROP DATABASE IF EXISTS some_database;
Query OK, 0 rows affected, 1 warning (0.00 sec)

To odstraní databázi nebo neudělá nic, pokud ji nelze najít.

Chcete-li odebrat školu databáze, kterou jsme použili v této příručce, uveďte seznam existujících databází ve vašem systému:

SHOW DATABASES;
+--------------------+  Database           |+--------------------+  information_schema |  mysql              |  performance_schema |  school             |  sys                |  testing            |+--------------------+6 rows in set (0.00 sec)

Smažte školu databázi pomocí následujícího příkazu:

DROP DATABASE school;

Tím se odstraní škola databáze spolu s učiteli tabulka definovaná v.



Závěr

Tento článek se zabývá základy vytváření a odstraňování databází a tabulek pomocí MySQL. Toto jsou některé z nejzákladnějších příkazů potřebných k nastavení databázového systému a definování struktury vašich dat.

Jak již bylo zmíněno dříve, příkazy SQL popsané v tomto tutoriálu MySQL, zejména CREATE TABLE prohlášení, mají mnoho dalších parametrů lze použít ke změně chování systému. Můžete se o nich dozvědět více v oficiální dokumentaci MySQL.




  1. Jak nainstalovat Cassandra v3 na CentOS 6

  2. Jak najít název omezení v Oracle

  3. Jak najít optimální jedinečný identifikátor v tabulce na serveru SQL Server:sp_special_columns

  4. Funkce REPLACE() v Oracle