Hoe u een database kunt maken in MySQL (Creƫren MySQL Tabellen)

⚔ Slimme samenvatting

Een database aanmaken in MySQL volgt twee beproefde methoden: het uitvoeren van een CREATE DATABASE-instructie of het genereren van fysieke schema's vanuit een ER-model. MySQL Werkbank-forward engineering. Beide benaderingen leveren identieke, productiegereedde tafels op.

  • ļø Database aanmaken: Voer CREATE DATABASE movies uit; of CREATE SCHEMA, wat MySQL behandelt als een synoniem.
  • šŸ›”ļø Veilige herhalingen: Voeg IF NOT EXISTS toe, zodat een herhaald script het aanmaken overslaat in plaats van een foutmelding te geven over een dubbele naam.
  • 🌐 Karakterset: Kies utf8mb4 met utf8mb4_0900_ai_ci voor meertalige gegevens; latin1 met latin1_swedish_ci is geschikt voor oudere schema's die alleen Engelstalig zijn.
  • 🧱 Tabel aanmaken: Met CREATE TABLE worden de veldnamen, gegevenstypen, primaire sleutels en de opslagengine (meestal InnoDB) gedefinieerd.
  • šŸ”¢ Gegevenstypen: Kolomtypen vallen in de categorieĆ«n numeriek, tekst en datum of tijd, plus ENUM, SET, BOOL en binaire varianten.
  • āš™ļø Voorwaartse techniek: MySQL Workbench zet een goedgekeurd ER-model om in uitvoerbare SQL-scripts en voert deze uit op een live server.

Stappen om een ​​database aan te maken MySQL

Een database in MySQL Een container met een naam is een container voor tabellen, weergaven en gerelateerde objecten. Je kunt er op twee manieren een maken:

1) Door een eenvoudige SQL-query uit te voeren

2) Door gebruik te maken van voorwaartse engineering MySQL Werkbank

As SQL-beginnerLaten we eerst eens kijken naar de querymethode.

Hoe u een database kunt maken in MySQL

Hier ziet u hoe u een database kunt maken MySQL:

CREATE DATABASE is de SQL-opdracht die wordt gebruikt voor het maken van een database MySQL.

Stel je voor dat je een database met de naam 'films' moet aanmaken. Je kunt een database aanmaken in MySQL door het volgende SQL-commando uit te voeren.

CREATE DATABASE movies;

Opmerking: U kunt in plaats van CREATE DATABASE ook de opdracht CREATE SCHEMA gebruiken.

De instructie werkt slechts ƩƩn keer. Als je hem opnieuw uitvoert, krijg je een foutmelding. Laten we de query daarom verbeteren met meer parameters.

ALS NIET BESTAAT

Een MySQL Een server kan meerdere databases bevatten. Wanneer meerdere mensen die server delen, kan het voorkomen dat je een database probeert aan te maken met dezelfde naam als een bestaande database.

ALS NIET BESTAAT instrueert de MySQL De server controleert of er al een database met dezelfde naam bestaat voordat deze wordt aangemaakt. De database wordt alleen aangemaakt als de naam vrij is; zonder deze voorwaarde zou de database niet aangemaakt worden. MySQL geeft een fout.

CREATE DATABASE IF NOT EXISTS movies;

Zodra de databasenaam veilig is, is de volgende beslissing hoe... MySQL De tekst erin moet worden opgeslagen en vergeleken.

Sortering en karakterset

A karakterset bepaalt welke tekens een kolom kan opslaan, terwijl een vergelijking is de set van regels gebruikt bij vergelijking en sorteren. Beide kunnen op vier niveaus worden gedefinieerd: server, database, tabel en kolom.

De sortering die u kiest, is afhankelijk van de tekenset. De latin1-tekenset gebruikt bijvoorbeeld de latin1_swedish_ci collatie, wat de Zweedse hoofdletterongevoelige volgorde is.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci;

Voor lokale talen zoals Arabisch of Chinees, selecteer Unicode. utf8mb4 tekenset, waarin elk Unicode-teken is opgeslagen, inclusief emoji. MySQL 8.0, utf8mb4 is de standaard tekenset en utf8mb4_0900_ai_ci De standaard sortering.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

U kunt de lijst met alle sorteringen en tekensets vinden hier.

Je kunt de lijst met bestaande databases bekijken door de volgende SQL-opdracht uit te voeren.

SHOW DATABASES;

Nu de database is aangemaakt, kunt u de tabellen toevoegen die de gegevens daadwerkelijk zullen bevatten.

Hoe u een tabel maakt in MySQL

Het CREATE TABLE-commando wordt gebruikt om tabellen in een database aan te maken.

Tabel maken in MySQL

Zoals het diagram laat zien, behoort elke tabel tot ƩƩn database. Tabellen worden gemaakt met de MAAK EEN TABEL een verklaring met de volgende syntaxis.

CREATE TABLE [IF NOT EXISTS] `TableName` (`fieldname` dataType [optional parameters]) ENGINE = storage Engine;

HIER

  • "CREATE TABLE" is verantwoordelijk voor het aanmaken van de tabel in de database.
  • ā€œ[IF NOT EXISTS]ā€ is optioneel en maakt de tabel alleen aan als er geen overeenkomende tabelnaam wordt gevonden.
  • ā€œ`fieldName`ā€ is de naam van het veld en ā€œdata Typeā€ definieert de aard van de gegevens die erin zijn opgeslagen.
  • ā€œ[optionele parameters]ā€ is extra informatie over een veld, zoals ā€œAUTO_INCREMENTā€ of NOT NULL.
  • De "storage engine" beheert de tabel, meestal InnoDB, die transacties en foreign keys ondersteunt.

MySQL Tabelvoorbeeld maken

Hieronder is een MySQL Voorbeeld van het aanmaken van een tabel in een database:

CREATE TABLE IF NOT EXISTS `MyFlixDB`.`Members` (
  `membership_number` INT AUTO_INCREMENT ,
  `full_names` VARCHAR(150) NOT NULL ,
  `gender` VARCHAR(6) ,
  `date_of_birth` DATE ,
  `physical_address` VARCHAR(255) ,
  `postal_address` VARCHAR(255) ,
  `contact_number` VARCHAR(75) ,
  `email` VARCHAR(255) ,
  PRIMARY KEY (`membership_number`) )
ENGINE = InnoDB;

Let op: de juiste MySQL trefwoord is AUTO_INCREMENT met een underscore. AUTOINCREMENT hoort bij SQLite en veroorzaakt een syntaxfout in MySQL.

Elke kolom heeft een gegevenstype, dus kies zorgvuldig: onderschat noch overschat het verwachte gegevensbereik.

MySQL Gegevenstypen

Gegevenstypen definiƫren de aard van de gegevens die in een bepaalde kolom van een tabel kunnen worden opgeslagen.

MySQL heeft 3 belangrijkste categorieƫn gegevenstypen, namelijk:

  1. Numerieke
  2. Tekst
  3. Datum Tijd

Numerieke gegevenstypen

Numerieke gegevenstypen worden gebruikt om numerieke waarden op te slaan. Het is erg belangrijk om ervoor te zorgen dat het bereik van uw gegevens tussen de onder- en bovengrens van het gekozen numerieke gegevenstype ligt.

KLEININT( ) -128 tot 127 normaal
0 tot 255 NIET ONDERTEKEND.
KLEINEINT( ) -32768 tot 32767 normaal
0 tot 65535 NIET ONDERTEKEND.
GEMIDDELD( ) -8388608 tot 8388607 normaal
0 tot 16777215 NIET ONDERTEKEND.
INT() -2147483648 tot 2147483647 normaal
0 tot 4294967295 NIET ONDERTEKEND.
BIGINT( ) -9223372036854775808 tot 9223372036854775807 normaal
0 tot 18446744073709551615 NIET ONDERTEKEND.
FLOAT Een klein getal bij benadering met een zwevende komma.
DUBBEL( , ) Een groot getal met een zwevende komma.
DECIMAAL( , ) Een DOUBLE die als tekenreeks wordt opgeslagen, waardoor een vast aantal decimalen mogelijk is. Een goede keuze voor het opslaan van valutawaarden.

Typen tekstgegevens

Zoals de naam van de gegevenstypecategorie al aangeeft, worden deze gebruikt om tekstwaarden op te slaan. Zorg er altijd voor dat de lengte van uw tekstuele gegevens de maximale lengte van de kolom niet overschrijdt.

TEKEN( ) Een vast gedeelte van 0 tot 255 tekens lang.
VARCHAR( ) Een variabel gedeelte van 0 tot 255 tekens lang.
KLEINE TEKST Een tekenreeks met een maximale lengte van 255 tekens.
TEKST Een tekenreeks met een maximale lengte van 65535 tekens.
BLOB Een tekenreeks met een maximale lengte van 65535 tekens.
MEDIUMTEKST Een tekenreeks met een maximale lengte van 16777215 tekens.
MEDIUM BLOB Een tekenreeks met een maximale lengte van 16777215 tekens.
LANGE TEKST Een tekenreeks met een maximale lengte van 4294967295 tekens.
LANGBLOB Een tekenreeks met een maximale lengte van 4294967295 tekens.

Datum- en tijdgegevenstypen

Datum- en tijdgegevenstypen slaan kalender- en klokwaarden op in een vast formaat, waardoor sorteren en vergelijken betrouwbaar blijft.

DATUM YYYY-MM-DD
DATUM TIJD JJJJ-MM-DD UU:MM:SS
TIJDSTAMP JJJJMMDDUUMMSS
TIJD HH: MM: SS

Andere gegevenstypen

Naast de bovengenoemde zijn er nog enkele andere gegevenstypen in MySQL.

ENUM Om een ​​tekstwaarde op te slaan die is gekozen uit een lijst met vooraf gedefinieerde tekstwaarden.
SET Dit wordt ook gebruikt voor het opslaan van tekstwaarden gekozen uit een lijst met vooraf gedefinieerde tekstwaarden. Het kan meerdere waarden hebben.
BOOL Synoniem voor TINYINT(1), gebruikt om Booleaanse waarden op te slaan
BINARY Vergelijkbaar met CHAR; het verschil is dat teksten in binaire vorm worden opgeslagen.
VARBINAIR Vergelijkbaar met VARCHAR; het verschil is dat teksten in binaire vorm worden opgeslagen.

Laten we nu eens kijken naar een query voor het maken van een tabel die alle gegevenstypen gebruikt. Bestudeer deze query en identificeer hoe elk gegevenstype is gedefinieerd in de onderstaande CREATE TABLE-code. MySQL voorbeeld.

CREATE TABLE `all_data_types` (
    `varchar` VARCHAR( 20 )  ,
    `tinyint` TINYINT  ,
    `text` TEXT  ,
    `date` DATE  ,
    `smallint` SMALLINT  ,
    `mediumint` MEDIUMINT  ,
    `int` INT  ,
    `bigint` BIGINT  ,
    `float` FLOAT( 10, 2 )  ,
    `double` DOUBLE  ,
    `decimal` DECIMAL( 10, 2 )  ,
    `datetime` DATETIME  ,
    `timestamp` TIMESTAMP  ,
    `time` TIME  ,
    `year` YEAR  ,
    `char` CHAR( 10 )  ,
    `tinyblob` TINYBLOB  ,
    `tinytext` TINYTEXT  ,
    `blob` BLOB  ,
    `mediumblob` MEDIUMBLOB  ,
    `mediumtext` MEDIUMTEXT  ,
    `longblob` LONGBLOB  ,
    `longtext` LONGTEXT  ,
    `enum` ENUM( '1', '2', '3' )  ,
    `set` SET( '1', '2', '3' )  ,
    `bool` BOOL  ,
    `binary` BINARY( 20 )  ,
    `varbinary` VARBINARY( 20 )
) ENGINE = MYISAM;

Beste werkwijzen voor het maken van een MySQL Database

Een paar conventies zorgen ervoor dat je scripts leesbaar blijven:

  • Gebruik hoofdletters voor SQL-trefwoorden, bijvoorbeeld: ā€œDROP SCHEMA IF EXISTS `MyFlixDB`;ā€
  • Sluit al je SQL-opdrachten af ​​met een puntkomma.
  • Vermijd het gebruik van spaties in schema-, tabel- en veldnamen. Gebruik in plaats daarvan underscores om schema-, tabel- of veldnamen te scheiden.
  • Geef de voorkeur aan InnoDB boven MyISAM voor nieuwe tabellen, omdat InnoDB transacties, vergrendeling op rijniveau en externe sleutels ondersteunt.

De querymethode is voltooid. De tweede route benadert dezelfde database vanuit een visueel model in plaats van met handgeschreven SQL.

Hoe maak je MySQL Werkbank ER-diagram Forward Engineering

MySQL Werkbank heeft hulpprogramma's die forward engineering ondersteunen. Voorwaartse techniek is de technische term die het proces beschrijft van het automatisch vertalen van een logisch model naar een fysieke implementatie.

We hebben een gemaakt ER-diagram in onze ER-modellering Les. We gaan nu dat ER-model gebruiken om de SQL-scripts te genereren waarmee we onze database gaan creƫren.

De MyFlix-database maken vanuit het MyFlix ER-model

Stap 1) Open het ER-model van de MyFlix-database. die u eerder hebt gemaakt.

Stap 2) Selecteer voorwaartse ingenieur

Klik op het menu Database en selecteer Forward Engineer.

Selecteer de voorwaartse ingenieur in MySQL Werkbank

Stap 3) Verbindingsopties

In het volgende venster kunt u verbinding maken met een instantie van MySQL server. Klik op de vervolgkeuzelijst voor opgeslagen verbindingen en selecteer lokale host. Klik op Uitvoeren.

Verbindingsopties in de wizard voor de forward engineer

Stap 4) Selecteer de onderstaande opties.

Selecteer de onderstaande opties in de wizard die verschijnt. Klik op Volgende.

Mogelijkheden voor het ontwikkelen van een toekomstgerichte database voor MyFlix

Stap 5) Laat de selecties standaard staan ​​en klik op Volgende.

Het volgende scherm toont een overzicht van de objecten in ons EER-diagram. Onze MyFlix-database bevat 5 tabellen. Laat de selecties standaard staan ​​en klik op Volgende.

Samenvatting van objecten in het MyFlix EER-diagram

Stap 6) RevBekijk het SQL-script

In het onderstaande venster ziet u een voorbeeld van het SQL-script waarmee onze database wordt aangemaakt. Sla het script op als een *.sql-bestand of kopieer het naar het klembord en klik vervolgens op Volgende.

Voorbeeld van het gegenereerde SQL-script

Stap 7) Voortgang vastleggen

Het onderstaande venster verschijnt zodra de database is aangemaakt op de geselecteerde locatie. MySQL Serverinstantie. De tabellen uit het ER-model bevinden zich nu fysiek op de server.

Voortgangsvenster voor forward engineering commits

De database met voorbeeldgegevens is bijgevoegd. We zullen deze database in de volgende lessen gebruiken. Importeer hem eenvoudigweg in de code. MySQL Werkbank om mee te beginnen.

Klik hier om MyFlixDB te downloaden

Veelgestelde vragen

Er is geen verschil in MySQLCREATE SCHEMA is een alias voor CREATE DATABASE, en beide bouwen hetzelfde object. In andere systemen, zoals OracleEen schema en een database blijven echter afzonderlijke concepten.

Voer DROP DATABASE IF EXISTS movies; uit vanaf de client of vanaf MySQL WerkbankHet commando verwijdert de database en alle tabellen daarin permanent, dus maak eerst een back-up.

Het account heeft het CREATE-privilege op globaal niveau nodig. Beheerders verlenen dit privilege met GRANT CREATE ON *.* TO 'user'@'localhost';. Zonder dit privilege geeft de server een foutmelding dat de toegang is geweigerd.

Ja. AI-assistenten zetten een eenvoudige beschrijving van uw entiteiten om in CREATE TABLE-scripts met sleutels en gegevenstypen. Controleer altijd de gegenereerde typen, lengtes en beperkingen voordat u het script op een productieserver uitvoert.

AI-functies in moderne databaseclients lezen uw gegevens. ER-diagram Of raadpleeg de querygeschiedenis en stel normalisatiecorrecties, indexkandidaten en gegevenstypecorrecties voor. De suggesties versnellen de ontwerpbeoordelingen, maar elke wijziging wordt nog steeds door een mens goedgekeurd.

Vat dit bericht samen met: