SQL is een domeinspecifieke taal die ingenieurs gebruiken om gegevens te verwerken die zijn opgeslagen in relationele databanken of voor stroomverwerking in relationele gegevensstroombeheersystemen. U kunt gegevens in een relationele database opslaan door middel van tabellen. Het eerste wat je in dit proces moet doen is de database aanmaken waarop je wilt werken. Vervolgens worden tabellen aangemaakt waarin de eigenlijke gegevens worden opgeslagen. Een tabel in een dergelijke database zal zowel rijen als kolommen hebben.
Aan elke kolom wordt een bepaald datatype gekoppeld dat bepaalt welk soort gegevens erin kan worden opgeslagen. Bij het aanmaken van de tabel moeten we de naam en het datatype van elke kolom opgeven. Je kunt een tabel maken met het SQL CREATE TABLE commando in zowel MySQL als PostgreSQL databases.
Laten we de SQL CREATE TABLE verklaring eens nader bekijken.
Hoe maak ik een tabel aan met SQL?
U kunt in MySQL een tabel maken met de volgende syntaxis:
CREATE TABLE table_name(
column_1 data_type default waarde column_constraint,
column_2 data_type standaardwaarde column_constraint,
...,
...,
tabel_beperking
);
De basisdingen die je moet hebben bij het maken van een tabel zijn de naam en ten minste één kolomnaam. Er mag maar één database tabel zijn met een bepaalde tabel naam. De database zal een foutmelding geven als je twee tabellen met dezelfde naam probeert te maken.
Binnen de haakjes specificeren we de namen van de kolommen die we in de tabel willen maken, samen met het gegevenstype van de gegevens die erin zullen worden ingevoerd. Komma's scheiden de namen van deze kolommen. De naam, het gegevenstype, de standaardwaarde van de kolom en één of meer kolomrestricties vormen elke kolom.
De kolombeperkingen bepalen de feitelijke gegevenswaarde die in de kolom kan worden opgeslagen. De NOT NULL beperking garandeert bijvoorbeeld dat er geen NULL waarden bestaan in die bepaalde kolom. U kunt meer dan één beperking hebben voor een enkele kolom. Een kolom kan bijvoorbeeld zowel de NOT NULL als de UNIQUE restricties bevatten.
Als u beperkingen wilt toepassen op alle kolommen in de tabel, kunt u de tabelbeperkingen gebruiken. Enkele voorbeelden daarvan zijn FOREIGN KEY, CHECK en UNIQUE. Elke tabel kan een primaire sleutel hebben die bestaat uit één of meer kolommen. Deze primaire sleutel wordt gebruikt om elke record van een tabel uniek te identificeren. Normaal gesproken geeft u eerst de primaire-sleutelkolom op en dan de andere. U moet de PRIMARY KEY constraint declareren als een tabelconstraint als hij bestaat uit twee of meer kolommen.
Laten we een voorbeeld bekijken:
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAAM VARCHAR (20) NIET NULL,
LEEFTIJD INT NIET NULL,
SALARIS DECIMAAL (18, 2),
PRIMAIRE SLEUTEL (ID)
);
Hier is de naam van de tabel "KLANTEN", en de primaire sleutel is ID. De kolommen ID, NAAM en LEEFTIJD hebben de beperking NOT NULL. De lengte van de naam moet minder dan 20 tekens zijn. Nu hebben we een tabel gemaakt met het commando SQL CREATE TABLE en kunnen we de relevante gegevens daarin en in de database invoegen.
Kan een tabel in een tabel in MySQL/PostgreSQL?
Een tabel binnen een tabel wordt het nesten van tabellen genoemd. Hiervoor moeten we een tabel binnen een andere tabel maken met het SQL CREATE TABLE commando. Dit concept bestaat niet in MySQL. We kunnen echter hetzelfde resultaat bereiken als met geneste tabellen door een primaire sleutel en een vreemde sleutel te gebruiken. Dit creëert een ouder-kind relatie tussen de twee tabellen.
Een veld of een groep velden in een tabel dat verwijst naar de primaire sleutel van een andere tabel wordt een FOREIGN KEY genoemd. De tabel met de belangrijkste primaire sleutel wordt de oudertabel genoemd, terwijl de tabel met de vreemde sleutel de kindtabel wordt genoemd.
Stel bijvoorbeeld dat we een oudertabel Voertuig hebben, waarvan de primaire sleutel VehId is. We hebben nog twee tabellen, Car, met primaire sleutel CarId, respectievelijk Truck, met primaire sleutel TruckId. Als we VehId als foreign key in zowel Car als Truck zetten, dan wordt Vehicle de parent table, waardoor een ouder-kind relatie ontstaat.
Ouder tabel Voertuig {VehId}
Kind-tabellen
1. Auto {VehId,CarId}
2. Truck {VehId,TruckId}
Is het mogelijk om in een SQL-tabel te selecteren zonder deze eerst aan te maken?
Om gegevens uit een database te kiezen, gebruiken we het SELECT statement. De gegevens hiervan worden bewaard in een resultatentabel, de resultatenset genaamd. Deze wordt gebruikt om een deel van een tabel of de hele tabel te selecteren. Wanneer je aan het coderen bent en een tabel hebt gemaakt met het SQL CREATE TABLE commando, kun je het SELECT commando gebruiken om de tabellen die je hebt gemaakt te bekijken.
De syntaxis is als volgt:
SELECT kolom_1, kolom_2, ...
FROM table_name;
Het volgende commando selecteert bijvoorbeeld de hele tabel.
SELECT * FROM table_name;
SELECT INTO
Met het SELECT INTO statement worden gegevens uit de ene tabel overgebracht naar een andere tabel. Hiermee kunnen alle kolommen van de ene tabel naar de andere worden gekopieerd. Dit wordt meestal gebruikt wanneer de tabel waarnaar de gegevens worden gekopieerd al bestaat.
Om alle kolommen van een tabel te selecteren:
SELECT *
INTO new_table [IN externaldb]
FROM oude_tabel
WHERE voorwaarde;
Om slechts enkele kolommen in de nieuwe tabel te selecteren:
SELECT kolom_1, kolom_2, kolom_3, ...
INTO new_table [IN externaldb]
FROM oude_tabel
WHERE voorwaarde;
Kunnen we dus selecteren in een tabel als we die nog niet hebben aangemaakt met SQL CREATE TABLE?
Logischerwijs zou het antwoord nee moeten zijn. Maar dat is niet het geval, en we kunnen in een tabel selecteren, zelfs als we die nog niet hebben aangemaakt. Wanneer een tabel moet worden gevormd, en gegevens uit een tabel moeten worden overgebracht naar de nieuw gegenereerde tabel, wordt deze aanpak gebruikt. Dezelfde gegevenstypen als de gekozen kolommen worden gebruikt om de nieuwe tabel te genereren.
Hoe maakt u een producttabel in SQL?
Een producttabel in SQL kan op verschillende manieren worden aangemaakt. Het SQL CREATE TABLE statement is één mogelijkheid. De productinformatie wordt opgenomen in een tabel die met deze instructie wordt aangemaakt. Het SELECT-commando kan ook worden gebruikt om de gegevens uit de tabel te bekijken en op te vragen. De syntaxis voor beide is hierboven vermeld.
Het INSERT-commando kan ook worden gebruikt om nieuwe gegevens in de tabel in te voegen. Dankzij het INSERT statement worden de gegevens op de aangegeven plaats in de tabel ingevoegd. De gegevens kunnen ook uit de tabel worden gehaald met de SELECT query en vervolgens aan een andere tabel worden toegevoegd met het INSERT statement.
INSERT INTO
Het INSERT INTO statement wordt gebruikt om nieuwe records aan een tabel toe te voegen. De syntaxis van het INSERT statement is:
INSERT INTO tabel_naam (kolom_1, kolom_2, ...)
VALUES (waarde_1, waarde_2, ...);
Wat een producttabel anders maakt, is alleen het ontwerpaspect ervan. De naam van het product, het model, de klasse, het modeljaar en de catalogusprijs worden allemaal opgeslagen in de productendatabase. Elk artikel is een onderdeel van het merk dat wordt geïdentificeerd door de kolom merk-id. Bijgevolg kan een merk één product hebben of vele. Elk product is lid van een categorie die wordt geïdentificeerd door zijn categorie-id in de tabel.
Welke soorten gegevens zijn geschikt voor SQL-databases?
Bij het gebruik van het SQL CREATE TABLE commando moeten we de gegevenstypen van de kolommen vermelden. Welke gegevens een kolom kan bevatten, hangt af van dit gegevenstype. Voorbeelden zijn integer, karakter, binair, datum en tijd, en meer. Een databasetabel moet voor elke kolom zowel een naam als een gegevenstype hebben.
Bij het opbouwen van een tabel moet een SQL-programmeur bepalen wat voor soort gegevens elke kolom zal bevatten. Het gegevenstype bepaalt hoe SQL omgaat met de opgeslagen gegevens. Het helpt bij het bepalen van het soort gegevens dat in elke kolom wordt verwacht. De drie primaire datatypes in MySQL 8.0 zijn string, numeriek en datum en tijd.
String-gegevenstypen
String-datatypes zijn over het algemeen een verzameling tekens die tot het Engelse alfabet behoren. De belangrijkste string-datatypes zijn:
- CHAR(grootte)
- VARCHAR(grootte)
- BINARY(grootte)
- VARBINARY(grootte)
- TINYBLOB
- TINYTEXT
- TEKST(grootte)
- BLOB(grootte)
- MEDIUMTEXT
- MEDIUMBLOB
- LONGTEXT
- LONGBLOB
- ENUM(val_1, val_2, val_3, ...)
- SET(val_1, val_2, val_3, ...)
De SIZE staat hier voor de maximale grootte die de opgeslagen gegevens kunnen hebben. Een CHAR is een string van vaste lengte, terwijl een VARCHAR een string van variabele lengte is. Dit zijn de meest gebruikte string-datatypes. Een BLOB is een Binair Groot Object.
Numerieke gegevenstypen
Variabelen van het type numerieke gegevens worden gebruikt om numerieke gegevens te bevatten. Ze worden verder onderverdeeld in twee soorten gegevenstypen - Exact en Bij benadering. Exacte gegevenstypen worden gebruikt om de gegevenswaarde in letterlijke vorm vast te houden. Hoewel reële getallen in approximatieve gegevenstypen zitten, wordt de informatie niet letterlijk opgeslagen als een kopie van de werkelijke waarden. De belangrijkste numerieke gegevenstypen zijn:
- BIT(grootte)
- TINYINT(grootte)
- BOOL
- BOOLEAN
- SMALLINT(size)
- MEDIUMINT(size)
- INT(grootte)
- INTEGER(grootte)
- BIGINT(size)
- FLOAT(size, d)
- FLOAT(p)
- DUBBEL(grootte, d)
- DUBBELE PRECISIE(grootte, d)
- DECIMAL(grootte, d)
- DEC(grootte, d)
Het meest gebruikte numerieke gegevenstype is INT. Deze wordt gebruikt voor niet-decimale getallen, terwijl variabelen met het gegevenstype FLOAT worden gebruikt voor decimale getallen. In het gegevenstype BOOL wordt nul beschouwd als FALSE, en niet-nulwaarden als TRUE.
Datum en tijd
De datum- en tijddatatypes worden gebruikt om datumgegevens vast te leggen. De belangrijkste datum- en tijddatatypes zijn:
- DATUM
- DATETIME(fsp)
- TIMESTAMP(fsp)
- TIJD(fsp)
- JAAR
De gegevenstypen van de SQL-server zijn vergelijkbaar met de bovengenoemde gegevenstypen, maar met kleine syntactische verschillen.
Wat zijn de soorten variabelen in de SQL-server?
Er bestaan twee categorieën variabelen in de MS SQL-server:
Lokale variabele
Een gebruiker declareert een lokale variabele. Deze begint altijd met @. Het bereik van elke lokale variabele is beperkt tot de batch of het proces dat nu binnen een bepaalde sessie wordt uitgevoerd. Een Transact-SQL lokale variabele is een soort object dat slechts één bepaald soort gegevenswaarde kan opslaan. Scripts en batches gebruiken vaak variabelen:
- als teller, om de herhalingsfrequentie van de lus te beheren of om bij te houden hoe vaak de lus wordt uitgevoerd.
- om een gegevenswaarde op te slaan die door een control-of-flow controle wordt gehaald.
- om een gegevenswaarde op te slaan die een functie zal retourneren.
Globale variabele
Het systeem houdt de globale variabele bij. Gebruikers kunnen ze niet openbaar maken. @@ is waar de globale variabele begint. Het bewaart gegevens over sessies.
Een variabele declareren
Het zou helpen als je een variabele definieert voordat je hem gebruikt in een batch of proces. De geheugenplaats vervangende variabele wordt gedeclareerd met de opdracht DECLARE. Een variabele kan pas worden gebruikt nadat deze in de volgende batch- of procedurestap is gedeclareerd.
De TSQL-syntaxis om een variabele te declareren ziet er als volgt uit:
DECLARE { @LOCAL_VARIABLE[AS] data_type [ = waarde ] } }.
De programmeur kan de waarde van een gedefinieerde variabele ook bepalen door :
- Tijdens het declareren van een variabele met het DECLARE sleutelwoord
- Met behulp van SET
- Met SELECT
Waarom zijn gegevenstypes belangrijk in SQL?
Het gegevenstype is een van de essentiële onderdelen van elke codeertaal, of het nu gaat om een programmeertaal als C of een gegevensmanipulatietaal als SQL. In feite ondersteunt SQL meer dan 30 gegevenstypen die verschillende vormen van gegevens kunnen opslaan. Het zou het beste zijn als u een goed begrip had van de verschillende SQL-gegevenstypen voordat u kunt beginnen met het omgaan met gegevens.
De soorten informatie die kunnen worden opgeslagen in database objecten zoals tabellen worden gespecificeerd door SQL datatypes. Elke kolom in een tabel heeft een naam en een gegevenstype, en elke tabel heeft kolommen. Ze vormen de ruggengraat van elke taal, omdat u geen gegevens kunt manipuleren zonder ze te gebruiken.
U moet weten dat niet alle gegevenstypen door databasesystemen worden ondersteund. Daarom moet u controleren voordat u een bepaald gegevenstype gebruikt. U kunt bijvoorbeeld geen DateTime gebruiken in Oracle, omdat het dit gegevenstype niet toestaat.
Ook MySQL gebruikt Unicode niet als gegevenstype. U kunt extra gegevenstypen gebruiken die bepaalde databases hebben. Bijvoorbeeld, "money" en "smallmoney" in Microsoft SQL Server kunnen worden vervangen door "float" en "real", maar deze termen zijn databasespecifiek en komen niet voor in andere databasesystemen. Soms wordt naar specifieke gegevenstypen verwezen met verschillende namen in sommige databases. Oracle, bijvoorbeeld, verwijst naar "decimaal" als "getal" en "blob" als "ruw".
Kunnen meerdere tabellen dezelfde primaire sleutel hebben?
Ja. In meerdere tabellen kan de primaire sleutel dezelfde kolomnaam hebben. Binnen een tabel moeten kolomnamen gescheiden zijn. Omdat het de integriteit van de entiteiten bepaalt, kan een tabel slechts één primaire sleutel bevatten. Elke tabel kan een primaire sleutel bevatten, maar dat is niet verplicht. Geen twee rijen mogen dezelfde primaire sleutel delen, dankzij de kolom of kolommen die als primaire sleutel zijn aangewezen. De primaire sleutel van een tabel kan worden gebruikt om de records van een andere tabel te identificeren en deel uitmaken van de primaire sleutel van de tweede.
Hoe gebruik ik "order by" op een primaire sleutel?
De opdracht ORDER BY kan worden gebruikt om de resultatenreeks te sorteren. Dit kan in oplopende of aflopende volgorde. Records worden meestal gesorteerd met het ORDER BY sleutelwoord in oplopende volgorde. U kunt het sleutelwoord DESC gebruiken om de records in aflopende volgorde te rangschikken.
De syntaxis van volgorde ziet er als volgt uit:
SELECT kolom_1, kolom_2, ...
VAN tabel_naam
ORDER BY column_1, column_2, ... ASC|DESC;
Stel bijvoorbeeld dat er een tabel is met de naam Users; u kunt deze oplopend of aflopend sorteren op basis van de stad van de gebruikers.
SELECT * FROM Users
ORDER BY City;
Om hetzelfde in aflopende volgorde te sorteren:
SELECT * FROM Users
ORDER BY City DESC;
ORDER BY op primaire sleutel
Gebruik gewoon ORDER BY zoals gebruikelijk op de naam van de primaire sleutel, zoals "RollID":
SELECT * FROM my_table WHERE col_1 < 5 ORDER BY RollID;
De query-optimalisator kan al dan niet besluiten de indexstructuur van de primaire sleutel te gebruiken om de sortering te analyseren in plaats van een actieve sortering uit te voeren op de query-resultatenreeks om de ORDER BY aan te pakken, afhankelijk van hoe hij besluit de query te beoordelen.
De meeste query's naar één tabel zonder ORDER BY clausule zullen resultaten opleveren in de volgorde van de primaire sleutel, aangezien MySQL InnoDB tabellen opslaat in wat de volgorde van de primaire sleutel benadert. U kunt echter nog steeds een ORDER BY gebruiken als uw toepassing echt Primaire Sleutel volgorde vereist.
Geen code ontwikkeling
De no-code ontwikkelingsmethode is een van de belangrijkste factoren die de democratisering van het coderen bevorderen. Tegenwoordig hebben meer mensen toegang tot computers in principe zonder enige kennis van codering. Het vergemakkelijkt het bouwen van responsieve websites en mobiele toepassingen.
AppMaster kan u helpen automatisch broncode te genereren. De code is altijd beschikbaar voor u om te bekijken en te onderzoeken. Je hebt de keuze om met AppMaster projectdetails aan te passen met behulp van een programmeertaal. We geven gebruikers ook de mogelijkheid om de code te exporteren. Dit is een belofte dat de software die u met AppMaster ontwikkelt volledig onder uw controle en eigendom valt.
Conclusie
SQL heeft verschillende toepassingen die het zeer aantrekkelijk maken. Het maken van data-integratiescripts, het ontwerpen en uitvoeren van analytische queries en het benaderen van subsets van gegevens uit een database voor inzichten en transactieverwerking zijn enkele van de meest prominente doeleinden. Het kan ook worden gebruikt voor het invoegen, wijzigen en verwijderen van rijen en kolommen gegevens in een database.
Voordat we dieper op SQL ingaan, moeten we ons vertrouwd maken met de basiscommando's en syntaxis ervan. Door het bovenstaande artikel door te nemen, kunnen we meer te weten komen over de basisopdrachten die in SQL worden gebruikt, zoals CREATE TABLE, INSERT INTO, SELECT, en meer.