Sådan opretter du en database i MySQL (Skab MySQL tabeller)
⚡ Smart opsummering
Oprettelse af en database i MySQL følger to dokumenterede stier: udførelse af en CREATE DATABASE-sætning eller generering af fysiske skemaer fra en ER-model via MySQL Fremadrettet udvikling af arbejdsbænke. Begge tilgange producerer identiske, produktionsklare tabeller.

Trin til at oprette database i MySQL
En database i MySQL er en navngiven container til tabeller, visninger og relaterede objekter. Du kan oprette en på to måder:
1) Ved at udføre en simpel SQL-forespørgsel
2) Ved at bruge forward engineering i MySQL Workbench
As SQL begyndere, lad os først se på forespørgselsmetoden.
Sådan opretter du en database i MySQL
Sådan opretter du en database i MySQL:
CREATE DATABASE er SQL-kommandoen, der bruges til at oprette en database i MySQL.
Forestil dig, at du skal oprette en database med navnet "film". Du kan oprette en database i MySQL ved at udføre følgende SQL-kommando.
CREATE DATABASE movies;
Bemærk: Du kan også bruge kommandoen CREATE SCHEMA i stedet for CREATE DATABASE.
Sætningen virker kun én gang. Hvis du kører den igen, giver det en fejl, så lad os forbedre forespørgslen med flere parametre.
HVIS IKKE FINNES
En enkelt MySQL Serveren kan indeholde mange databaser. Når flere personer deler serveren, kan du prøve at oprette en database med navnet på en eksisterende.
HVIS IKKE FINNES instruerer MySQL serveren til at kontrollere, om der er en database med samme navn, før den oprettes. Databasen oprettes kun, hvis navnet er ledigt; uden denne klausul, MySQL kaster en fejl.
CREATE DATABASE IF NOT EXISTS movies;
Når databasenavnet er sikkert, er den næste beslutning hvordan MySQL skal gemme og sammenligne teksten i den.
Samling og tegnsæt
A tegnsæt bestemmer hvilke tegn en kolonne kan gemme, mens en sortering er sættet af regler brugt i sammenligning og sortering. Begge kan defineres på fire niveauer: server, database, tabel og kolonne.
Den valgte sortering afhænger af tegnsættet. For eksempel bruger latin1-tegnsættet latin1_swedish_ci sortering, som er den svenske rækkefølge uden forskel på store og små bogstaver.
CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci;
For lokale sprog som arabisk eller kinesisk skal du vælge Unicode utf8mb4 tegnsæt, som gemmer alle Unicode-tegn, inklusive emoji. I MySQL 8.0, utf8mb4 er standardtegnsættet og utf8mb4_0900_ai_ci standardsorteringen.
CREATE DATABASE IF NOT EXISTS movies CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
Du kan finde listen over alle sorteringer og tegnsæt link..
Du kan se listen over eksisterende databaser ved at køre følgende SQL-kommando.
SHOW DATABASES;
Når databasen er på plads, kan du nu tilføje de tabeller, der rent faktisk skal indeholde posterne.
Sådan opretter du en tabel i MySQL
Kommandoen CREATE TABLE bruges til at oprette tabeller i en database.
Som diagrammet viser, tilhører hver tabel én database. Tabeller oprettes med Opret tabel sætning, som har følgende syntaks.
CREATE TABLE [IF NOT EXISTS] `TableName` (`fieldname` dataType [optional parameters]) ENGINE = storage Engine;
HER
- "CREATE TABLE" er ansvarlig for oprettelsen af tabellen i databasen.
- “[HVIS IKKE FINDES]” er valgfri og opretter kun tabellen, hvis der ikke findes et matchende tabelnavn.
- "`fieldName`" er navnet på feltet, og "datatype" definerer arten af de data, der er gemt i det.
- "[valgfrie parametre]" er ekstra information om et felt, f.eks. "AUTO_INCREMENT" eller NOT NULL.
- "Storage Engine" administrerer tabellen, normalt InnoDB, som understøtter transaktioner og fremmednøgler.
MySQL Opret tabeleksempel
Nedenfor er en MySQL eksempel på at oprette en tabel i en 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;
Bemærk: den korrekte MySQL søgeordet er AUTO_INCREMENT med et understregningstegn. AUTOINCREMENT tilhører SQLite og giver anledning til en syntaksfejl i MySQL.
Hver kolonne har en datatype, så vælg omhyggeligt: hverken undervurder eller overvurder det forventede datainterval.
MySQL Datatyper
Datatyper definerer arten af de data, der kan gemmes i en bestemt kolonne i en tabel.
MySQL har 3 hovedkategorier af datatyper, nemlig:
- Numerisk
- tekst
- Dato/tidspunkt
Numeriske datatyper
Numeriske datatyper bruges til at gemme numeriske værdier. Det er meget vigtigt at sikre, at dataområdet ligger mellem den nedre og øvre grænse for den valgte numeriske datatype.
| TINYINT( ) | -128 til 127 normalt 0 til 255 USIGNET. |
| SMALLINT( ) | -32768 til 32767 normalt 0 til 65535 USIGNET. |
| MEDIUMINT( ) | -8388608 til 8388607 normalt 0 til 16777215 USIGNET. |
| INT( ) | -2147483648 til 2147483647 normalt 0 til 4294967295 USIGNET. |
| BIGINT( ) | -9223372036854775808 til 9223372036854775807 normalt 0 til 18446744073709551615 USIGNET. |
| FLOAT | Et lille omtrentligt tal med et flydende decimaltegn. |
| DOBBELT( , ) | Et stort tal med et flydende decimaltegn. |
| DECIMAL( , ) | En DOBBELT gemt som en streng, der tillader et fast decimaltegn. Valg til lagring af valutaværdier. |
Tekstdatatyper
Som navnet på datatypekategorien antyder, bruges disse til at gemme tekstværdier. Sørg altid for, at længden af dine tekstdata ikke overstiger kolonnens maksimale længde.
| CHAR( ) | En fast sektion fra 0 til 255 tegn. |
| VARCHAR( ) | En variabel sektion fra 0 til 255 tegn lang. |
| TINYTEXT | En streng med en maksimal længde på 255 tegn. |
| TEKST | En streng med en maksimal længde på 65535 tegn. |
| Blob | En streng med en maksimal længde på 65535 tegn. |
| MIDDELTEKST | En streng med en maksimal længde på 16777215 tegn. |
| MELLEMBLOB | En streng med en maksimal længde på 16777215 tegn. |
| LANGTEKST | En streng med en maksimal længde på 4294967295 tegn. |
| LANGBLOB | En streng med en maksimal længde på 4294967295 tegn. |
Dato- og tidsdatatyper
Dato- og klokkeslætsdatatyper gemmer kalender- og urværdier i et fast format, hvilket sikrer pålidelig sortering og sammenligning.
| INFORMATION | ÅÅÅÅ-MM-DD |
| DATO TID | ÅÅÅÅ-MM-DD HH: MM: SS |
| TIDSSTEMPEL | ååååmmddttmmss |
| TIME | HH: MM: SS |
Andre datatyper
Udover ovenstående findes der også andre datatyper MySQL.
| ENUM | Sådan gemmer du en tekstværdi valgt fra en liste over foruddefinerede tekstværdier |
| SET | Dette bruges også til at gemme tekstværdier valgt fra en liste over foruddefinerede tekstværdier. Det kan have flere værdier. |
| BOOL | Synonym for TINYINT(1), bruges til at gemme booleske værdier |
| Binary | Ligesom CHAR; forskellen er, at tekster gemmes i binært format. |
| VARBINARY | Ligesom VARCHAR; forskellen er, at tekster gemmes i binært format. |
Lad os nu se på en forespørgsel til oprettelse af en tabel, der bruger alle datatyperne. Undersøg den, og identificer, hvordan hver datatype er defineret i nedenstående oprettelsestabel. MySQL eksempel.
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;
De bedste fremgangsmåder til at skabe en MySQL Database
Et par konventioner holder dine scripts læsbare:
- Brug store bogstaver til SQL-nøgleord, f.eks. “DROP SCHEMA IF EXISTS `MyFlixDB`;”
- Afslut alle dine SQL-kommandoer med semikolon.
- Undgå at bruge mellemrum i skema-, tabel- og feltnavne. Brug i stedet understregninger til at adskille skema-, tabel- eller feltnavne.
- Foretræk InnoDB frem for MyISAM til nye tabeller, fordi InnoDB understøtter transaktioner, låsning på rækkeniveau og fremmednøgler.
Forespørgselsmetoden er fuldført. Den anden rute når den samme database fra en visuel model i stedet for håndskrevet SQL.
Sådan opretter du MySQL Arbejdsbænk ER-diagram Fremadrettet ingeniørarbejde
MySQL Workbench har hjælpeprogrammer, der understøtter forward engineering. Fremadrettet ingeniørarbejde er det tekniske udtryk, der beskriver processen med automatisk oversættelse af en logisk model til en fysisk implementering.
Vi skabte en ER diagram i vores ER-modellering lektion. Vi vil nu bruge ER-modellen til at generere de SQL-scripts, der opretter vores database.
Oprettelse af MyFlix-databasen fra MyFlix ER-modellen
Trin 1) Åbn ER-modellen af MyFlix-databasen som du har oprettet tidligere.
Trin 2) Vælg forward engineer
Klik på menuen Database, og vælg Forward Engineer.
Trin 3) Forbindelsesmuligheder
Det næste vindue giver dig mulighed for at oprette forbindelse til en instans af MySQL server. Klik på rullelisten med gemte forbindelser, og vælg lokal vært. Klik på Udfør.
Trin 4) Vælg de viste muligheder nedenfor
Vælg de viste muligheder nedenfor i den guide, der vises. Klik på Næste.
Trin 5) Behold standardvalgene, og klik på Næste
Den næste skærm viser en oversigt over objekter i vores EER-diagram. Vores MyFlix-database har 5 tabeller. Behold standardindstillingerne, og klik på Næste.
Trin 6) Revse SQL-scriptet
Vinduet nedenfor viser et eksempel på det SQL-script, der opretter vores database. Gem scriptet i en *.sql-fil, eller kopier det til udklipsholderen, og klik derefter på Næste.
Trin 7) Forpligt fremskridt
Vinduet nedenfor vises, når databasen er oprettet på den valgte MySQL serverinstans. Tabellerne fra ER-modellen findes nu fysisk på serveren.
Databasen sammen med dummy-data er vedhæftet. Vi vil bruge denne database i de følgende lektioner. Du skal blot importere den i MySQL Arbejdsbænk til at komme i gang.
Klik her for at downloade MyFlixDB







.png)