Stappen om een database te maken in MySQL
Maak een database op twee manieren
1) Door een eenvoudige SQL-query uit te voeren
2) Door gebruik te maken van forward engineering in MySQL Workbench
In deze SQL-zelfstudie leert u:
- Hoe een database te maken
- Hoe maak je een tabel in MySQL
- Gegevenstypen
- MySQL-werkbank ER-diagram vooruit Engineering
Laten we als SQL-beginner eerst eens kijken naar de query-methode.
Hoe een database te maken
Hier ziet u hoe u een database in MySQL maakt:
CREATE DATABASE is de SQL-opdracht die wordt gebruikt voor het maken van een database in MySQL.
Stel je voor dat je een database moet maken met de naam "films". U kunt een database in MySQL maken door de volgende SQL-opdracht uit te voeren.
CREATE DATABASE movies;
Let op: je kunt ook het commando CREATE SCHEMA gebruiken in plaats van CREATE DATABASE
Laten we nu onze SQL-query verbeteren door meer parameters en specificaties toe te voegen.
INDIEN NIET BESTAAT
Een enkele MySQL-server kan meerdere databases hebben. Als u niet de enige bent die toegang heeft tot dezelfde MySQL-server of als u met meerdere databases te maken heeft, is de kans groot dat u probeert een nieuwe database aan te maken met de naam van een bestaande database. INDIEN NIET BESTAAT, kunt u de MySQL-server opdracht geven om het bestaan van een database met een vergelijkbare naam te controleren voordat u een database aanmaakt.
Wanneer IF NOT EXISTS wordt gebruikt, wordt de database alleen gemaakt als de opgegeven naam niet in strijd is met de naam van een bestaande database. Zonder het gebruik van IF NOT EXISTS geeft MySQL een foutmelding.
CREATE DATABASE IF NOT EXISTS movies;
Sortering en tekenset
Sortering is een reeks regels die ter vergelijking worden gebruikt. Veel mensen gebruiken MySQL om andere gegevens dan Engels op te slaan. Gegevens worden in MySQL opgeslagen met behulp van een specifieke tekenset. De karakterset kan op verschillende niveaus worden gedefinieerd, namelijk server, database, tabel en kolommen.
U moet de sorteerregels selecteren die op hun beurt afhangen van de gekozen tekenset.
De tekenset Latin1 gebruikt bijvoorbeeld de
latin1_swedish_ci
collatie, wat de Zweedse hoofdlettergevoelige volgorde is.
CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci
De beste praktijk bij het gebruik van lokale talen zoals Arabisch, Chinees, enz. Is om Unicode (utf-8) -tekenset te selecteren die verschillende sorteringen heeft of gewoon vasthouden aan de standaard sortering utf8-general-ci.
U kunt de lijst met alle sorteringen en tekensets hier vinden
U kunt een lijst met bestaande databases zien door de volgende SQL-opdracht uit te voeren.
SHOW DATABASES
Hoe maak je een tabel in MySQL
De opdracht CREATE TABLE wordt gebruikt om tabellen in een database te maken
Tabellen kunnen worden gemaakt met de instructie CREATE TABLE en het heeft eigenlijk de volgende syntaxis.
CREATE TABLE [IF NOT EXISTS] `TableName` (`fieldname` dataType [optional parameters]) ENGINE = storage Engine;
HIER
- "CREATE TABLE" is degene die verantwoordelijk is voor het aanmaken van de tabel in de database.
- "[INDIEN NIET BESTAAT]" is optioneel en maak de tabel alleen als er geen overeenkomende tabelnaam wordt gevonden.
- "" fieldName "" is de naam van het veld en "data Type" definieert de aard van de gegevens die in het veld moeten worden opgeslagen.
- "[optionele parameters]" aanvullende informatie over een veld zoals "AUTO_INCREMENT", NOT NULL etc.
MySQL Create Table Voorbeeld
Hieronder ziet u een MySQL-voorbeeld om een tabel in de database te maken:
CREATE TABLE IF NOT EXISTS `MyFlixDB`.`Members` (`membership_number` INT AUTOINCREMENT ,`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;
Laten we nu eens kijken wat de gegevenstypen van MySQL zijn. U kunt ze allemaal gebruiken, afhankelijk van uw behoefte. U moet altijd proberen om de potentiële reeks gegevens niet te onderschatten of te overschatten bij het maken van een database.
GEGEVENS TYPES
Gegevenstypen bepalen de aard van de gegevens die in een bepaalde kolom van een tabel kunnen worden opgeslagen
MySQL heeft 3 hoofdcategorieën van gegevenstypen, namelijk
- Numeriek,
- Tekst
- 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 zich tussen de onder- en bovengrenzen van numerieke gegevenstypen bevindt.
TINYINT () | -128 tot 127 normaal 0 tot 255 ONGETEKEND. |
KLEIN () | -32768 tot 32767 normaal 0 tot 65535 NIET ONDERTEKEND. |
GEMIDDELD () | -8388608 tot 8388607 normaal 0 tot 16777215 ONGETEKEND. |
INT () | -2147483648 tot 2147483647 normaal 0 tot 4294967295 ONGETEKEND. |
GROOT () | -9223372036854775808 tot 9223372036854775807 normaal 0 tot 18446744073709551615 ONGETEKEND. |
VLOTTER | Een klein getal bij benadering met een drijvende komma. |
DUBBEL (,) | Een groot getal met een drijvende komma. |
DECIMAAL (,) | EEN DUBBEL opgeslagen als een string, rekening houdend met een vast decimaalteken. Keuze voor het opslaan van valutawaarden. |
Tekstgegevenstypen
Zoals de categorienaam van het gegevenstype impliceert, worden deze gebruikt om tekstwaarden op te slaan. Zorg er altijd voor dat de lengte van uw tekstuele gegevens de maximale lengte niet overschrijdt.
CHAR () | Een vast gedeelte van 0 tot 255 tekens lang. |
VARCHAR () | Een variabele sectie van 0 tot 255 tekens lang. |
TINYTEXT | 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. |
MEDIUMBLOB | Een tekenreeks met een maximale lengte van 16777215 tekens. |
LONGTEXT | Een tekenreeks met een maximale lengte van 4294967295 tekens. |
LONGBLOB | Een tekenreeks met een maximale lengte van 4294967295 tekens. |
Datum Tijd
DATUM | JJJJ-MM-DD |
DATUM TIJD | JJJJ-MM-DD UU: MM: SS |
TIJDSTAMP | JJJJMMDDUUMMSS |
TIJD | UU: MM: SS |
Afgezien van bovenstaande zijn er enkele andere gegevenstypen in MySQL.
ENUM | Om tekstwaarde op te slaan die is gekozen uit een lijst met voorgedefinieerde tekstwaarden |
SET | Dit wordt ook gebruikt voor het opslaan van tekstwaarden die zijn gekozen uit een lijst met voorgedefinieerde tekstwaarden. Het kan meerdere waarden hebben. |
BOOL | Synoniem voor TINYINT (1), gebruikt om Booleaanse waarden op te slaan |
BINAIR | Net als bij CHAR is het verschil dat teksten in binair formaat worden opgeslagen. |
VARBINAIR | Net als bij VARCHAR is het verschil dat teksten in binair formaat worden opgeslagen. |
Laten we nu eens kijken naar een query voor het maken van een tabel met gegevens van alle gegevenstypen. Bestudeer het en bepaal hoe elk gegevenstype wordt gedefinieerd in het onderstaande MySQL-voorbeeld van een tabel.
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 praktijken
- Gebruik hoofdletters voor SQL-sleutelwoorden, bijv. "DROP SCHEMA IF EXISTS` MyFlixDB`; "
- Beëindig al uw SQL-opdrachten met puntkomma's.
- Gebruik geen spaties in schema-, tabel- en veldnamen. Gebruik in plaats daarvan onderstrepingstekens om schema-, tabel- of veldnamen te scheiden.
MySQL-werkbank ER-diagram forward engineering
MySQL-workbench heeft hulpprogramma's die forward engineering ondersteunen. Forward engineering is een technische term die het proces beschrijft van het automatisch vertalen van een logisch model naar een fysiek werktuig .
We hebben een ER-diagram gemaakt op basis van onze zelfstudie over ER-modellering. We zullen nu dat ER-model gebruiken om de SQL-scripts te genereren die onze database zullen maken.
De MyFlix-database maken op basis van het MyFlix ER-model
1. Open het ER-model van de MyFlix-database dat u in een eerdere zelfstudie hebt gemaakt.
2. Klik op het databasemenu. Selecteer doorstuurmedewerker
3. In het volgende venster kunt u verbinding maken met een instantie van MySQL-server. Klik op de vervolgkeuzelijst met opgeslagen verbindingen en selecteer de lokale host. Klik op Uitvoeren
4. Selecteer de onderstaande opties in de wizard die verschijnt. Klik volgende
5. Het volgende scherm toont de samenvatting van objecten in ons EER-diagram. Onze MyFlix DB heeft 5 tafels. Houd de standaardselecties en klik op Volgende.
6… Het onderstaande venster verschijnt. In dit venster kunt u een voorbeeld van het SQL-script bekijken om onze database te maken. We kunnen de scripts opslaan in een * .sql "-bestand of de scripts naar het klembord kopiëren. Klik op de knop Volgende
7. Het onderstaande venster verschijnt nadat de database met succes is aangemaakt op de geselecteerde MySQL-serverinstantie.
Overzicht
- Het maken van een database omvat het vertalen van het logische databaseontwerpmodel naar de fysieke database.
- MySQL ondersteunt een aantal gegevenstypen voor numerieke waarden, datums en tekenreeksen.
- De opdracht CREATE DATABASE wordt gebruikt om een database te maken
- De opdracht CREATE TABLE wordt gebruikt om tabellen in een database te maken
- MySQL-workbench ondersteunt forward engineering, waarbij automatisch SQL-scripts worden gegenereerd vanuit het logische databasemodel die kunnen worden uitgevoerd om de fysieke database te maken
De database is samen met de dummy-gegevens bijgevoegd. We zullen deze database gebruiken voor al onze verdere tutorials. Importeer eenvoudig de database in MySQL Workbench om aan de slag te gaan
Klik hier om MyFlixDB te downloaden