SQL Opret tabelerklæring - med eksempel på syntaks

SQL er et af de mest pålidelige og ligetil forespørgsel sprog. Det giver tydelig syntaks, der læser let uden at fjerne alt for meget af funktionalitetens betydning.

Hvis du gerne vil have historik på sproget såvel som nogle interessante fakta, skal du tjekke introduktionsdelen af ​​min artikel om SQL Update Statement.  

I denne artikel skal vi gennemgå de vigtige dele af oprettelsen af ​​en tabel i SQL. Min foretrukne "smag" af SQL er SQL Server, men oplysningerne om oprettelse af en tabel er temmelig allestedsnærværende på tværs af alle SQL-variationer.  

Hvis du aldrig har brugt SQL eller ikke ved hvad en tabel er, skal du ikke være bange! Kort (og bredt) er en tabel et databaseobjekt, der indeholder eller indeholder alle data inden for den del af databasen. Det gemmer disse data i navngivne kolonner og nummererede rækker, hvilket ikke er ukendt, hvis du nogensinde har brugt et regnearkprogram. Hver række repræsenterer en hel databasepost.

Hvis data var i boksform, ville en tabel være et afsnit af lagerhylderne, hvor vi opbevarer disse kasser.

Jeg forenkler forklaringen meget, og der er meget mere til SQL-tabeller, men det er uden for denne artikels anvendelsesområde. Hvis du kløer efter en mere dybtgående forklaring på tabeller, opfordrer jeg dig til at dykke ned i Microsoft Database Design-dokumentationen.

Før vi lærer at oprette tabellen, er det vigtigt, at vi lærer, hvilke typer data disse kolonner og rækker kan gemme.

Datatyper

SQL-tabeller kan indeholde tekst, tal, en kombination af tekst og tal samt billeder og links.

Når vi opretter vores tabel, udpeger vi den datatype, dens rækker og kolonner skal indeholde. Her er de overordnede klassifikationer af data:

  • Omtrentlige tal
  • Strenge
  • Dato tid
  • Unicode-tegnstrenge
  • Nøjagtige tal
  • Andet

Jeg vil liste nogle af de mere almindeligt anvendte datatyper nedenfor, men hvis du vil have mere om alle datatyper, opfordrer jeg dig til at tjekke denne udtømmende artikel om hver type fra Microsoft.

Her er de mere almindeligt anvendte typer data fra min erfaring uden nogen bestemt rækkefølge:

  • char (størrelse) - streng med fast længde, der kan indeholde bogstaver, tal, specialtegn
  • varchar (størrelse) - streng med variabel længde, der kan indeholde bogstaver, tal og specialtegn
  • boolean - Nul (eller værdier, der svarer til 0) er falsk, ikke-nul er sandt
  • int ( størrelse valgfri ) - et tal op til 10 tegn i længden accepterer negative og positive tal
  • bigint ( størrelse valgfri ) - et tal på op til 19 tegn i længden, accepterer negative og positive tal
  • flyde (størrelse, d) - et tal med den samlede antal størrelse repræsenteret af størrelse og antallet af tegn efter decimalet repræsenteret af d
  • dato - dato i formatet ÅÅÅÅ-MM-DD
  • datetime - dato tid i formatet ÅÅÅ-MM-DD tt: mm: ss
  • tid - tid i formatet tt: mm: ss

Okay, nu hvor vi ved, hvilke typer data rækkerne og kolonnerne kan indeholde, lad os komme ind i de sjove dele!

Oprettelse af en tabel

Før vi starter, er det vigtigt at bemærke, at jeg leverer alle mine eksempler uafhængigt af ethvert program.

Men hvis du gerne vil begynde at skrive forespørgsler, og du ikke er sikker på, hvor du skal starte, skal du kigge på SQL Server Management Studio. Det er et gratis, robust program, der er meget brugt og understøttet i samfundet.

Alternativt er der flere muligheder, herunder DB Fiddle, der giver dig mulighed for at oprette skemaer og skrive forespørgsler direkte i din browser.  

Lad os starte med en simpel erklæring for at oprette en grundlæggende tabel:

CREATE TABLE table_name ( column1_name datatype, column2_name datatype, column3_name datatype, column4_name datatype, column5_name datatype,)

Der er andre parametre, vi kan tilføje efter for datatypeat udvide kolonnerne:

  • NOT NULL- at sende denne parameter vil sikre, at kolonnen ikke kan indeholde en NULLværdi
  • UNIQUE - at overføre denne parameter forhindrer kolonnen i at holde den samme værdi mere end én gang
  • UNIQUE KEY- at overføre denne parameter vil betegne denne kolonne som en unik identifikator. Det er i det væsentlige en kombination af de to foregående parametre.

Nu skal vi oprette en tabel (med navnet doggo_info, der skal overholde identifikationsstandarderne for databaser) for at holde information om beboerne i Woof Woof Retreat, en fiktiv doggy dagpleje, jeg lige har tænkt på :)

CREATE TABLE doggo_info ( ID int UNIQUE KEY, Name varchar(50) NOT NULL, Color varchar(50), Breed varchar(50), Age int, Weight int, Height int, Fav_Food varchar(100), Fav_Toy varchar(100), Dislikes varchar(500), Allergies varchar(500) NOT NULL )

Og her er det helt nye bord, vi lige har oprettet:

Navn Farve Race Alder Vægt Højde Fav_Mad Fav_Toy Kan ikke lide Allergier

Du vil bemærke, at vores tabel er helt tom, og det er fordi vi endnu ikke har tilføjet nogen data til den. At gøre det ligger uden for denne artikels anvendelsesområde, men jeg ville have dig til at være opmærksom på den godbid.

Opret en tabel ud fra en eksisterende tabel

Det er også muligt at oprette en ny tabel baseret på en eksisterende tabel.

Det er ret let og kræver ikke så meget mere syntaks. Vi skal vælge den tabel og kolonner, der skal "kopieres" fra:

CREATE TABLE new_table_name AS SELECT column1, column2, column3, column4 (use * to select all columns to be added to the new_table) FROM current_table_name WHERE conditions_exist

Så hensigtsmæssigt har jeg tilføjet nogle data til vores doggo_infotabel, og det ser nu ud som eksemplet nedenfor:

Navn Farve Race Alder Vægt Højde Fav_Mad Fav_Toy Kan ikke lide Allergier
daisy rød standard gravhund 1 14 6 kibble med laksearoma squeeky bold fugle, der flyver over haven katte, bade, renlighed
chef sort / tan rottweiler 3 41 17 bogstaveligt talt alt reb slæbebåd bliver væk fra sofaen lytte, opføre sig, ikke narre alt
sammie lys skat Golden Retriever 9 46 19 kibble med smag af oksekød hendes seng uhyggelige hvalpe ingen kendt

Nu kan vi oprette en anden tabel baseret på de data, vi har i vores doggo_infotabel ved at køre forespørgslen nedenfor:

CREATE TABLE puppies_only AS SELECT * FROM doggo_info WHERE Age < 4

Vi ønsker at oprette en ny tabel med alle kolonnerne fra doggo_infotabellen, men kun hvor den Ageer mindre end 4. Efter at have kørt denne forespørgsel, vil vores nye tabel se sådan ud:

Navn Farve Race Alder Vægt Højde Fav_Mad Fav_Toy Kan ikke lide Allergier
daisy rød standard gravhund 1 14 6 kibble med laksearoma squeeky bold fugle, der flyver over haven katte, bade, renlighed
chef sort / tan rottweiler 3 41 17 bogstaveligt talt alt reb slæbebåd bliver væk fra sofaen lytte, opføre sig, ikke narre alt

Jeg håber, du kan se, hvor stærk denne erklæring kan være. Med et par linjer i vores forespørgsel har vi i det væsentlige kopieret data fra en tabel til en anden, men kun de rækker, vi ønskede.  

Dette er ikke kun et praktisk værktøj at have i dit udviklerværktøjsbælte - det sparer dig utallige tid, når du skal flytte data rundt i tabeller.

Afslutter

Nu hvor du ved, hvordan du opretter (eller kopierer) en tabel i SQL, uanset hvilken situation du præsenteres for, kan du begynde at udfylde kolonnerne og rækkerne med data, der skal gemmes!

Den CREATE TABLEerklæring er yderst nyttig og kraftfulde. Du er klar til at begynde at bruge det til god brug.

Hvis du fandt denne artikel nyttig, så tjek min blog, hvor jeg ofte skriver artikler om webudvikling, liv og læring.

Mens du er der, hvorfor ikke tilmelde dig mit nyhedsbrev? Du kan gøre det øverst til højre på hovedblogsiden. Jeg kan godt lide at sende interessante artikler (mine og andre), ressourcer og værktøjer til udviklere i ny og næ.

Hvis du har spørgsmål om denne artikel eller bare generelt, lad mig det vide - kom og sig hej på Twitter eller nogen af ​​mine andre sociale mediekonti, som du kan finde under nyhedsbrevet, tilmeld dig på hovedsiden af ​​min blog eller på min profil her på fCC :)

Hav en fantastisk dag! Glad læring og glad kodning, ven!