Basis SQL syntax: aanmaken en wijzigen van tabellen en databases


  Share  
|


Deze tutorial toont basis syntax en commando's en van de SQL taal.

Maken en Dropping Databases

Laten we eerst eens kijken wat databanken bestaan al in de MySQL-server. We kunnen u deze informatie met behulp van het commando SHOW. Voer de volgende (met uitzondering van de mysql> deel) in de MySQL console cliënt, gevolgd door een terugkeer:

mysql> SHOW DATABASES;

Er zijn twee databases reeds aangemaakt in de MySQL-server. De mysql database administratie bevat informatie voor de MySQL server en mag niet worden gewijzigd. De andere database, te testen, is precies wat het klinkt als: een test voor de MySQL-server. De test database bevat niet niets, en het kan veilig worden verwijderd indien nodig.

Het creëren van een database

Dus hoe kunnen we onze eigen database toe te voegen in de MySQL server? Om dit te doen, gebruiken we de CREATE commando. Laten we zeggen dat we willen een database te maken genaamd mydata, wij zouden de volgende syntaxis gebruiken.

Opmerking De volgende tabel geeft de lengte en het karakter beperkingen die worden opgelegd aan de namen van de databases, tabellen, kolommen en aliassen.
Identifier Max Lengte Geldige tekens
Database 64 Alle geldige mapnaam tekens behalve "." en "/".
Tafel 64 Alle geldige mapnaam tekens behalve "." en "/".
Column 64 Alle geldig zijn.
Alias 15 Alle geldig zijn.
mysql> CREATE DATABASE mydata;

Merk op dat de puntkomma wordt toegevoegd na elke opdracht in de SQL taal. Toen we druk op Return na het invoeren van deze opdracht, de console informeert ons dat de query goed was.

Nu hebben we de database, kunnen we ervoor zorgen dat het op de server door opnieuw met de SHOW opdracht, als volgt:

mysql> SHOW DATABASES;

Toen we druk op Return met deze opdracht, kunnen we zien onze database is toegevoegd aan de lijst (let op dat de lijst in alfabetische volgorde, niet de volgorde waarin de databases werden gemaakt).

Dropping een database

Nu zullen we de database te verwijderen van de server. Merk op dat wanneer we dit doen, alle gegevens (indien aanwezig) zullen verloren gaan. Voor het verwijderen van een database, we "drop" van de server met behulp van de DROP commando. Dus om onze nieuwe mydata database neerzetten, zouden wij u de volgende opdracht:

mysql> DROP DATABASE mydata;

Wanneer we dit commando uit te voeren door op Return, zal de zoekopdracht worden gerapporteerd als goed.

Nu, als we weer een lijst van de databases met behulp van de SHOW commando:

mysql> SHOW DATABASES;

... we kunnen zien dat onze mydata database is niet meer zichtbaar op de lijst.

Kolom (veld) Typen in MySQL

Voordat we bespreken het creëren van tabellen in databases, nu is een goed moment om de verschillende soorten kolom die we kunnen hebben in de tabellen te vermelden.

Elke kolom in een tabel moet worden toegewezen aan een type, dat het type informatie dat veld zal houden vertegenwoordigt. Hier is een complete lijst van beschikbare types die u kunt gebruiken:

Type Beschrijving
TINYINT Een zeer kleine integer. Getekend bereik -128 tot 127. Unsigned bereik is 0 tot 255.
SMALLINT Een kleine integer. Getekend bereik is -32.768 tot 32.767. Unsigned bereik is 0 tot 65535.
MEDIUMINT Een middelgrote integer. Getekend bereik is -8388608-8388607. Unsigned bereik is 0 tot 16777215.
INT Een normale grootte integer. Getekend bereik is -2147483648 tot 2147483647. Unsigned bereik is 0 tot 4294967295.
BIGINT Een groot formaat integer. Getekend bereik is -9223372036854775808-9223372036854775807. Unsigned bereik is 0 tot 18446744073709551615.
FLOAT Een kleine, single-precision floating-point getal dat niet kan worden ondertekend. Getekend bereik is 3.402823466E +38-to-1.755494351E-38, 0, en 1.755494351E-38 tot 3.402823466E +38.
DOUBLE Een double-precision floating-point getal dat niet kan worden ondertekend. Getekend bereik is-1.7976931348632157E +308 tot-2.2250738585072014E-308, 0, en 2.2250738585072014E-308 tot 1.7976931348632157E +308.
DECIMAL Een uitgepakte floating-point getal dat niet kan worden ondertekend. Werkt als een 'char' kolom in dat het nummer wordt opgeslagen als een string (dat wil zeggen, elk nummer maakt gebruik van een karakter in de string).
DATUM Een datum. Bereik is 1000-01-01 tot 9999-12-31 en is in het formaat JJJJ-MM-DD.
TIMNE Een tijd. Bereik is -838:59:59 te 838:59:59 en is in het formaat UU: MM: SS.
DATETIME Een combinatie van datum en tijd. Bereik is 1000-01-01 00:00:00 om 9999-12-31 21:59:59 en is in het formaat JJJJ-MM-DD HH: MM: SS.
JAAR [(2 | 4)] Een jaar in 2 - of 4-cijferige formaat (standaard is 4). Bereik is 1901 tot 2155 en ook 0000.
TIMESTAMP Een tijdstempel. Bereik is 1970-01-01 00:00:00 om ergens in het jaar 2037 in het formaat YYYYmmDDhhMMss.
CHAR (lengte) Een vaste lengte string die altijd is rechts opgevuld met spaties tot de opgegeven lengte wanneer opgeslagen. Het bereik is 1 tot 255 tekens, afhankelijk van de "lengte" bedoeld.
VARCHAR Een variabele lengte string.
TINYBLOB / TINYTEXT Een klein binaire object. Maximale lengte van 255 tekens. * Zie OPMERKING onderstaande tabel.
BLOB / TEXT Een binaire object. Maximale lengte van 65535 tekens. * Zie OPMERKING onderstaande tabel.
MEDIUMBLOB / MEDIUMTEXT Een medium binaire object. Maximale lengte van 16777215 tekens. * Zie OPMERKING onderstaande tabel.
LONGBLOB / LONGTEXT Een groot binair object. Maximale lengte van 4294967295 tekens. * Zie OPMERKING onderstaande tabel.
ENUM ( 'VAL1', 'val2'...) Een opsomming. Een lijst van tekenreekswaarden waarvan slechts een kan worden geselecteerd. Maximaal 65.535 verschillende waarden.
SET ( 'VAL1', 'val2'...) Een set. Een string object dat kan hebben nul of meer waarden, die elk moeten worden gekozen uit de lijst (dat wil zeggen, 'VAL1', 'waarde2', enz.). Maximaal 64 tekens.
Opmerking Het enige verschil tussen de BLOB en TEXT typen is dat voor het sorteren en vergelijkingen, een BLOB is hoofdlettergevoelig, terwijl de tekst type is niet hoofdlettergevoelig.

Maken, wijzigen en Dropping Tafels

Het creëren van tabellen

Nu we de mogelijke typen voor de kolommen in onze tabellen weten, laten we eens kijken hoe we eigenlijk gaan over het creëren van een tabel.

Laten we zeggen dat we willen een tafel om de gebruiker een aantal details te plegen in een database te maken.

We willen slaan titel van de gebruiker, voornaam, achternaam, leeftijd, e-mail adres en de datum waarop de gebruiker is toegevoegd aan de database. Dus we zullen eisen dat de volgende kolommen in onze tabel:

Titel Voornaam Achternaam Leeftijd Emailadres DateAdded

Voordat we naar hoe om daadwerkelijk toe te voegen, laten eerst denken hoe we de informatie op te slaan of meer to the point, welke soorten we nodig hebben voor elk van de kolommen.

Voor de titel, voornaam en achternaam, kunnen we gebruik maken van de TEKST type, omdat het veel tekens bevat mogelijk te maken voor alle mogelijkheden.

Opmerking VARCHAR kan sneller werken en is misschien een betere keuze als de string lengte kan worden beperkt tot minder dan 255 tekens.

Voor leeftijd zou een niet-ondertekende TINYINT een voor de hand liggende keuze, zoals leeftijden numerieke zijn en niemand heeft ooit bekend te leven verleden 255. Voor e-mail adres, kunnen we weer gebruik maken van een teksttype, aangezien het zal ons aanzienlijke opslagruimte voor het adres. Tot slot, voor de datum dat de gebruiker is toegevoegd aan de tabel, kunnen we gebruik maken van een tijdstempel.

Opmerking Met Java, is het mogelijk om een INT datatype en op te slaan gebruik System.currentTimeMillis () / 1000 als de waarde. Deze waarde kan later worden opgehaald uit de database. Dan vermenigvuldigen met 1000 en te converteren naar de DATE type (dat wil zeggen, datum = new Date (waarde);). Dit is handig bij het doen van lokalisatie en / of conversie tussen verschillende databases

Het tijdstempel heeft ook een groot goed in dat de tijd en datum automatisch kunnen worden opgehaald in de database.

Nu we welke soorten we willen voor onze kolommen weten, moeten we een database aan de tabel toe te voegen in. Laten we een database genaamd myinfo met het volgende commando:

mysql> CREATE DATABASE myinfo;

Als we deze opdracht uitvoeren, de console moet melden dat de query was okay. We kunnen nu controleren dat onze database is gemaakt met het volgende commando:

mysql> SHOW DATABASES;

Nu moeten we MySQL vertellen dat wij willen acties op de myinfo database uit te voeren. Dit wordt bereikt door gebruik van de USE commando:

mysql> USE myinfo; 
Opmerking Zonder gebruik te maken moeten alle tabellen in de database myinfo worden verwezen als myinfo.mytable, dat is natuurlijk heel lastig.

Na het uitvoeren van deze opdracht, alle DDL (Data Definition Language) en DML (Data Manipulation Language) verklaringen die worden uitgevoerd, zal de database van invloed zijn in gebruik, die in dit geval is onze myinfo database.

Nu we onze database opzetten en klaar is om de opdrachten hebben, kunnen we creëren onze tafel (die we zullen userinfo naam) met de volgende verklaring:

mysql> CREATE TABLE userinfo (-> id INT auto_increment, -> titel TEKST, -> firstname TEKST, -> achternaam TEKST, -> leeftijd TINYINT, -> e-mail TEKST, -> dateadded TIMESTAMP, -> PRIMARY KEY (id)) ;
Opmerking auto_increment is niet een standaard SQL-optie. MSSQL (Microsoft SQL) heeft een soortgelijke optie en dat doet postgres, maar Oracle heeft nog een manier om dit te doen als een create table optie. Het moet worden gedaan met sequenties en triggers.

Laten we deze pauze een beetje, zodat we kunnen zien wat er gebeurt. Eerst hebben we verklaren dat we willen een tabel te maken door het invoeren van CREATE TABLE. Vervolgens hebben we de naam die wij willen noemen de tabel, in dit geval, de naam userinfo is. Dan gebruiken we haakjes bevatten alle van de kolommen die we nodig hebben in onze tabel en eenvoudig een lijst van alle namen van de kolom en de soorten die we nodig hebben. Merk op hoe we hebben een extra veld toegevoegd genaamd id. Tot slot, let op de toevoeging van de primaire sleutel als het laatste parameter. Dit wordt gebruikt om te bepalen hoe de tafel is geoptimaliseerd binnen de database.

We kunnen nu controleren dat onze tafel met succes werd gemaakt door het uitvoeren van de volgende opdracht:

mysql> SHOW TABLES;

Opmerking U kunt ook de kolommen bekijken in een tabel met de volgende opdracht:

mysql> DESCRIBE userinfo;

Wanneer je dit commando uit te voeren, de console geeft alle details voor elk van de kolommen in de userinfo tabel.

Deze informatie kan nuttig zijn voor zowel het waarborgen van de tafel is gemaakt als u voor ogen en de kolommen een tabel bevat op een later tijdstip herhaling.

Tabellen wijzigen

Dus nu we weten hoe we een tabel te maken, laten we eens kijken hoe we verder over het bewerken van het. Een tabel kan variëren van eenvoudig veranderen van het type van een van de kolommen aan het toevoegen van een geheel nieuwe kolom (of het verwijderen van een bestaande kolom).

Laten we eerst kijken hoe we de naam van een bestaande kolom. In onze userinfo tafel, hebben we een kolom genaamd voornaam, maar laten we nu verandering in te lezen voornaam, een synoniem voor de eerste naam van een persoon.

Om dit te veranderen, moeten we gebruik maken van de volgende syntaxis:

mysql> ALTER TABLE userinfo CHANGE voornaam voornaam TEXT;
Tip Het is altijd sterk aanbevolen om de database te ontwerpen voor het creëren omdat er mogelijk problemen wijzigen / veranderen database tabellen of structuur nadat er gegevens opgenomen in de tabellen.

Opmerking moeten we ook het gegevenstype voor de kolom levering alsmede de oude en nieuwe namen.

Als beschrijven we de userinfo tabel met de volgende opdracht:

mysql> DESCRIBE userinfo;

... kunnen we zien dat de kolom voornaam is hernoemd naar voornaam.

We kunnen ook de gegevenstypen van de kolommen in tabellen. Laten we zeggen dat we willen de leeftijd kolom te veranderen van een TINYINT naar een INT. We gebruiken de volgende opdracht:

mysql> ALTER TABLE userinfo AANPASSEN leeftijd INT;

Na het uitvoeren van deze opdracht, als we de tabel te beschrijven, kunnen we zien het type is veranderd in INT.

Ten slotte is het goed om te weten hoe de velden verwijderen uit een tabel (bijvoorbeeld als ze niet meer nodig). Laten we nu zeggen dat we niet langer de e-mail veld nodig userinfo in onze tabel. Wat wij willen doen is "drop" op het gebied van onze tafel. Hier is de syntax voor het verwijderen van de e-mail veld.

mysql> ALTER TABLE DROP userinfo e-mail;

Zodra deze opdracht wordt uitgevoerd, beschrijven we de tabel met de volgende opdracht:

mysql> DESCRIBE userinfo;

Dropping (verwijderen) Tabellen

Het verwijderen van tabellen uit een database is zeer eenvoudig, maar zonder zorgvuldig gebruik kan rampzalige gevolgen hebben. Het belangrijkste om op te merken is dat wanneer een tafel laten vallen, verliest u ook alle gegevens in de tabel. Daarom is het altijd verstandig om een back-up van een database voor het uitvoeren van een DROP opdrachten.

Laten we nu kijken hoe we de daling userinfo tabel myinfo uit onze database. Om dit te doen, moeten we het volgende commando uit te voeren in de MySQL console client.

Opmerking U kunt geen druppel de tabel als er feitelijke relaties met andere tabellen die kunnen breken de integriteit van de database. Als betrekkingen zijn geen "echte," kan tabellen worden verwijderd zonder fouten, maar de integriteit is dan aangetast. Als de beheerder niet voorzichtig is, kan de database permanent worden beschadigd.
mysql> DROP TABLE userinfo;

Zodra deze opdracht wordt uitgevoerd, kunnen we controleren dat de tabel is verwijderd door een opsomming van wat tafels zijn op dit moment in onze database myinfo door het uitvoeren van het volgende commando:

mysql> SHOW TABLES;

De tabel bestaat niet meer in de database.

een artikel afkomstig van George Ionescu


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions