mysql create table tutorial with examples
In deze tutorial zullen we het gebruik van het MySQL CREATE TABLE-commando onderzoeken met syntaxis en programmeervoorbeelden:
De instructie CREATE TABLE is een onderdeel van DDL (Data Definition Language) van SQL.
We zullen de manieren bespreken waarop u een tabel in een bepaalde database kunt CREËREN, kolomnamen en DB-engine kunt noemen tijdens het maken van de tabel, samen met de regels voor naamgevingsconventies voor SQL-tabellen.
Wat je leert:
- Pre-vereisten
- MySQL CREATE TABLE-opdracht
- Gevolgtrekking
Pre-vereisten
De vereiste voor het uitvoeren van een van de SQL-opdrachten is het downloaden van de MySQL-server. De gratis community-editie kan worden gedownload hier.
We zullen ook de MySQL Workbench SQL Client gebruiken voor alle voorbeelden en discussies in deze tutorial. De gratis community-editie van MySQL Workbench kan worden gedownload hier (u kunt de versie kiezen afhankelijk van het besturingssysteem waaraan u werkt).
Als u MySQL Workbench niet wilt gebruiken, kunt u ook de MySQL-opdrachtregelclient gebruiken die bij de standaardinstallatie van MySQL Server wordt geleverd.
MySQL CREATE TABLE-opdracht
De opdracht CREATE TABLE maakt deel uit van de DDL-reeks opdrachten (Data Definition Language) in MySQL en stelt een gebruiker in staat om een nieuwe tabel voor de opgegeven database te maken.
Notitie: De opdracht CREATE TABLE bestaat voor bijna alle relationele databases - zoals MySQL, Postgres, SQL Server, enz.
MySQL CREATE TABLE Syntaxis
In de eenvoudigste vorm kunt u het CREATE TABLE-commando gebruiken met alleen de basisopties, d.w.z. de tabelnaam en de kolomdefinities.
Laten we de syntaxisargumenten in detail begrijpen:
- tafel naam: Dit moet de naam zijn van de tabel die u probeert te maken. Het moet een volledig gekwalificeerde naam zijn (voor het geval u geen standaarddatabaseset heeft). Bijvoorbeeld, databaseName.tableName
De tabelnaam kan worden opgegeven zonder aanhalingstekens of met een backtick-symbool zoals `tableName` en` databaseName` `tableName` - Kolomdefinitie: Een tabel in SQL moet uit minimaal één kolom bestaan. Alle kolomdefinities moeten zowel uit kolomnaam als uit het kolomgegevenstype bestaan. U kunt optioneel ook de andere kolomeigenschappen opnemen, zoals primaire sleutel, null, niet null, enz.
Laten we een voorbeeld bekijken van het gebruik van de bovenstaande syntaxis om een tabel te maken.
We zullen een tabel maken met de naam EMPLOYEE_DETAILS (in de database - SAMPLE_DB) met kolommen
- naam: varchar (100)
- leeftijd: int
- adres: varchar (100)
Hieronder wordt de output van de tabelcreatie weergegeven:
Notitie:
# 1) Let op het gebruik van (INDIEN NIET BESTAAT) het optionele commando in de bovenstaande syntaxis.
Het wordt over het algemeen aanbevolen om dit commando te gebruiken, omdat het zou voorkomen dat er een fout wordt gegenereerd als de tabel die we proberen te maken al in de database aanwezig is.
Hier is een voorbeeld van gebruik met en zonder INDIEN NIET BESTAAT.
- Zonder IF NOT EXISTS zou een fout worden gegenereerd als de tabel al bestaat.
- Met IF NOT EXISTS wordt geen fout gegenereerd. Er wordt echter een waarschuwing weergegeven dat de tabel al bestaat.
# 2) De ‘tableName’ tijdens het gebruik van het CREATE TABLE-commando moet volledig worden gekwalificeerd met de databasenaam, d.w.z. zoals we het hebben gebruikt SAMPLE_DB.medewerker_details
De andere manieren om de tabelnaam op te geven, zijn door de huidige database in te stellen met de opdracht ‘USE’. Bijv. GEBRUIK SAMPLE_DB; en dan alleen de tabelnaam uitvoeren / gebruiken in plaats van de volledig gekwalificeerde tabelnaam.
MAAK EEN TABEL MET Tabelopties
De tabelopties worden gebruikt om het gedrag van de MySQL-tabellen te optimaliseren. Deze kunnen worden toegepast tijdens het maken van een tabel met het MySQL CREATE TABLE-commando (of later met het ALTER TABLE-commando).
De syntaxis blijft hetzelfde met aanvullende tabelopties die kunnen worden gespecificeerd.
We zullen hieronder de meest gebruikte opties bespreken (een volledige lijst met tabelopties is te vinden hier
# 1) MOTOR
Het wordt gebruikt om de opslag-engine voor de tabel te specificeren, d.w.z. de standaardwaarde is InnoDB. Dit hoeft niet te worden gewijzigd, tenzij er behoefte is aan een specifieke opslagmotor. De andere geldige waarden voor opslagengines zijn MEMORY, CSV, HEAP, etc.
De syntaxis voor het specificeren van ENGINE als onderdeel van MySQL CREATE TABLE wordt hieronder gegeven.
# 2) AUTO_INCREMENT
Deze optie wordt gebruikt om de initiële AUTO_INCREMENT-waarde van de tabel in te stellen, d.w.z. de standaardwaarde is 1, maar u kunt deze overschrijven naar elke andere positieve gehele waarde.
Notitie: AUTO_INCREMENT kan worden opgegeven voor slechts één kolom in de tabel en dit moet de primaire sleutel zijn. Laten we eens kijken naar een voorbeeld van het specificeren van auto-increment als 10 en het invoegen van een record om te valideren of auto-increment correct is ingesteld.
We gebruiken dezelfde tabel employee_details (zorg ervoor dat u de bestaande tabel verwijdert voordat u deze opdracht uitvoert) met een extra id-veld gemarkeerd als de primaire sleutel.
Laten we een rij zonder enige waarde voor ID invoegen en ervoor zorgen dat de waarden worden ingevoegd vanaf de waarde die begint met 10.
# 3) CONTROLESOM
Dit moet worden ingesteld op 1 als u een checksum voor de hele tabel wilt opslaan. Het wordt over het algemeen gebruikt om ervoor te zorgen dat er geen beschadigde tabellen zijn.
CHECKSUM houdt een live checksum bij van de hele tabel tijdens eventuele inserts of updates
MAAK EEN TABEL MET Partitioneringsdetails
We kunnen indien nodig ook de door de gebruiker gedefinieerde partitionering vermelden met behulp van de partitioneringsopties.
Partitioneren als concept wordt algemeen gebruikt om de inhoud van de tabellen over het bestandssysteem te verdelen om snellere toegangstijden en geoptimaliseerde zoekopdrachten te garanderen. Partitioneren splitst een grote tabel in kleinere tabellen, afhankelijk van de gespecificeerde strategieën of partitiesleutels.
Laten we eens kijken hoe we partitioneringsdetails kunnen specificeren met de MySQL CREATE TABLE-opdracht.
We zullen de voorbeeldtabel employee_details gebruiken en een nieuwe integer-kolom toevoegen met de naam department_id die zou worden gebruikt als een partitie-hash-sleutel om een gelijkmatige verdeling van gegevens te hebben.
Ook het specificeren van het aantal partities zou aangeven hoeveel daadwerkelijke partities zouden worden gemaakt (in dit geval 4). Indien niet gespecificeerd, zou er standaard slechts 1 partitie zijn.
Notitie: Over het algemeen zou de sleutel die gebruikt zou worden om partities aan te maken afhangen van de verwachte toegangspatronen die gebruikt zouden worden voor de tabel. Stel dat we in dit geval de tabel meestal op basis van afdelings-ID zouden opvragen, dan is het logisch om department_id als onderdeel van de hash-sleutel te gebruiken.
MySQL-tabel klonen en kopiëren
Soms wilt u misschien een kloon van een bestaande tabel maken of de inhoud van de ene naar de andere tabel kopiëren. MySQL ondersteunt 2 manieren om dit te bereiken, zoals hieronder weergegeven.
- Gebruik LIKE commando
- Gebruik SELECT commando
Tafel klonen met LIKE COMMAND
Met het LIKE-commando kunt u een nieuwe tabel maken met exact dezelfde kolomnamen en eigenschappen als de bestaande tabellen.
Hier is de syntaxis met de LIKE-opdracht.
hoe u een waarde toevoegt aan een array java
Met de bovenstaande opdracht zou een nieuwe tabel, d.w.z. tableName1, worden gemaakt met dezelfde structuur en eigenschappen van tableName2.
Houd er rekening mee dat bij deze benadering alleen de kolomnamen en eigenschappen worden gekloond en niet de feitelijke tabelgegevens.
Laten we proberen een tabel met de naam employee_details te maken en deze tabel gebruiken om een nieuwe tabel te maken met de naam student_details met de LIKE-optie.
Hieronder wordt de uitvoer van het bovenstaande commando gegeven.
Tafel klonen met SELECT COMMAND
Deze benadering gebruikt de SELECT-opdracht om een kopie van de bestaande tabel naar een nieuwe tabel te maken.
Met deze aanpak worden de gegevens uit de tabel ook naar de nieuwe tabel gekopieerd.
Laten we proberen een tabel met de naam employee_details te maken en deze tabel gebruiken om een nieuwe tabel met de naam student_details te maken met behulp van de SELECT-optie.
MySQL-tabelnaamconventies
In de vorige secties hebben we geleerd over het maken van MySQL-tabellen. Laten we nu eens kijken naar enkele regels die in gedachten moeten worden gehouden bij het benoemen van de tabellen, samen met de beperkingen die van toepassing zijn op MySQL.
Deze conventies / regels zijn van toepassing op zowel SQL-tabellen als databases.
# 1) Juridische karakters in namen
naar) Namen zonder aanhalingstekens kunnen bestaan uit willekeurige tekens in de standaardtekenset van SQL Server, met de uitzondering dat niet alle tekens uit cijfers kunnen bestaan. Bijvoorbeeld, ‘23test’ is een geldige tabelnaam, maar niet ‘2345’.
Hieronder vindt u de lijst met tekens die kunnen worden gebruikt voor niet-geciteerde namen:
ASCII: (0-9, a-z, A-Z $ _) (standaard Latijnse letters, cijfers 0-9, dollar, onderstrepingsteken)
Uitgebreid: U + 0080 .. U + FFFF
Lees meer over ASCII-codes hier
b) Tabel- en databasenamen kunnen worden aangehaald met een backtick-teken (`) en kunnen elke letter / elk teken bevatten, behalve het backtick-teken zelf. Met de geciteerde namen kunt u zelfs tabel- / databasenamen hebben met allemaal cijfers.
Houd er rekening mee dat u voor dergelijke tabellen de backticks rond de tabel en / of databasenaam moet gebruiken om toegang te krijgen tot gegevens in dergelijke tabellen.
c) Tabel- en databasenamen mogen geen punt ‘.’ Bevatten, aangezien dat wordt gebruikt als database- en tabelscheidingsteken.
d) De database- en tabelnamen kunnen de - ‘$’ en ‘_’ speciale tekens bevatten.
# 2) Naam Lengte
De maximaal toegestane lengte voor een database- of tabelnaam in MySQL is 64 karakters.
# 3) Geef kwalificaties een naam
Zoals besproken in de vorige secties, is in MySQL een tabel altijd in context met de database waarvan hij deel uitmaakt. Om toegang te krijgen tot een tabel, kunt u dus een volledig gekwalificeerde tabelnaam gebruiken - wat niets anders is dan de combinatie van de databasenaam gescheiden door een punt en vervolgens de kolomnaam.
Bijvoorbeeld, om alle elementen uit de tabel ‘EMPLOYEE_DETAILS’ uit de database SAMPLE_DB te selecteren, kunt u een volledig gekwalificeerde naam gebruiken zoals hieronder.
De DB- en tabelnamen kunnen ook worden gespecificeerd zoals geciteerd met backticks afzonderlijk, zoals hieronder getoond.
De door de industrie aanbevolen conventies en best practices met betrekking tot de naamgevingstabellen en databases worden hieronder gegeven.
- Geef tabellen en databases een naam in kleine letters - Dit versnelt over het algemeen het typen en opvragen van de DB, vooral voor degenen die betrokken zijn bij het dagelijks opvragen van DB.
- Gebruik underscores (‘_’) in plaats van spaties in tabel- en db-namen - Dit maakt de namen beter leesbaar.
- Gebruik voor de hand liggende namen voor de tabellen en databases Bijvoorbeeld, een tabel met details van de medewerker kan op verschillende manieren worden benoemd, zoals medewerker_info, medewerker_gegevens, medewerker, medewerker_details, medewerker_naam_en_adres. Het zou logisch zijn om een naam te kiezen die het meest voor zichzelf spreekt. Bijvoorbeeld, we kunnen de tabelnaam kiezen uit employee_details of employee_info. Hoewel dit een subjectieve discussie is, moet het worden overeengekomen door meerdere leden van het team die deze entiteiten gaan gebruiken en creëren.
- Gebruik geen nummers in database- en tabelnamen - Zoals sample_db_2, test_table_1 etc.
Veelgestelde vragen en antwoorden
V # 1) Hoe maak je een tabel in MySQL met Index?
Antwoord: U kunt een INDEX voor elke kolom (of combinatie van kolommen) toevoegen tijdens het maken van de tabel zelf.
Laten we eens kijken naar een voorbeeld van het toevoegen van een index aan de kolom department_id voor tabel employee_details.
Vraag 2) Hoe maak je een tabel met datum in MySQL?
Antwoord: Datum is een gegevenstype dat bij het maken van een tabel aan elke kolom moet worden gekoppeld.
Raadpleeg het onderstaande voorbeeld CREATE TABLE-commando waarbij de kolom join_date DATETIME als datatype heeft voor een voorbeeldtabel employee_details.
V # 3) Hoe kan ik de structuur van de tabel in MySQL zien?
Antwoord: Als u na het maken van een tabel naar de structuur van de tabel wilt verwijzen, zoals kolommen, indexen, enz., Kunt u het DESCRIBE-commando gebruiken om de details op te halen.
Syntaxis:
Laten we een tabel maken en de uitvoer voor het DESCRIBE-commando bekijken.
Hieronder is de uitvoer van het DESCRIBE-commando weergegeven.
hoe u een uitvoerbaar jar-bestand opent
V # 4) Hoe voeg ik een BUITENLANDSE SLEUTEL toe aan een tabel in MySQL?
Antwoord: Foreign Key wordt gebruikt om 2 tabellen aan elkaar te koppelen in MySQL. Om de Foreign Key-beperking te gebruiken, moet u de tabel waarnaar u verwijst al hebben gemaakt.
>> Meer informatie over MySQL Foreign Key Beperking
Laten we dit proberen te begrijpen met een voorbeeld. Laten we zeggen dat we twee tabellen hebben, namelijk Afdeling (met details over de verschillende afdelingen die het college heeft) en studentgegevens (alle details die betrekking hebben op studenten).
Afdeling heeft kolommen - id (primaire sleutel) en naam.
Details van de student - id (primaire sleutel), leeftijd, adres & afdelings-id (externe sleutel waarnaar wordt verwezen in de afdelingstabel).
Hieronder vindt u de syntaxis voor het CREATE TABLE-commando voor beide tabellen.
Raadpleeg de syntaxis van de FOREIGN KEY-referentie in de student_details-tabel waar we hebben vermeld dat de relatie tussen de kolommen en department_id moet worden verwezen door kolom-id uit de afdelingstabel.
Gevolgtrekking
De opdracht CREATE TABLE in MySQL die behoort tot de opdrachten in de categorie Data Definition Language werd hier in detail uitgelegd.
We leerden over de verschillende tabelopties zoals ENGINE, CHECKSUM, enz. Die samen met het CREATE TABLE-commando zouden kunnen worden genoemd om aanvullende eigenschappen voor de tabel in te stellen.
We hebben de manieren bekeken om een kloon van de bestaande tabel in MySQL te maken. Ten slotte hebben we het gehad over de naamgevingsconventies voor de tabelnamen en de door de industrie aanbevolen best practices.
Veel leesplezier !!
Aanbevolen literatuur
- MySQL Create Bekijk zelfstudie met codevoorbeelden
- MySQL-gegevenstypen | Wat zijn verschillende gegevenstypen in MySQL
- MySQL invoegen in tabel - Verklaring syntaxis en voorbeelden invoegen
- MySQL JOIN-zelfstudie: binnen, buiten, kruis, links, rechts en zelf
- Verschil tussen SQL versus MySQL versus SQL Server (met voorbeelden)
- Hoe PL SQL te gebruiken Insert, Update, Delete en Select Statement
- MongoDB Create Database-zelfstudie
- MongoDB Maak een gebruiker en wijs rollen toe met voorbeelden