PostgreSQL bevat een handige opdrachtregeltool genaamd psql. Dit programma opent een interactieve tekstinterface die toegang geeft tot uw databases. U kunt het gebruiken om verschillende informatie over uw databasestructuren en metadata te achterhalen.
U kunt psql ook gebruiken om SQL-opdrachten uit te voeren om tabellen te maken, rijen in te voegen en bestaande gegevens op te vragen.
Het psql-programma gebruiken
Het psql-programma werkt als een interactieve terminal waarmee u opdrachten naar een PostgreSQL-database kunt sturen. Als je PostgreSQL hebt geïnstalleerd, zou je het op de opdrachtregel moeten kunnen uitvoeren door te typen:
psql
Als je een psql: opdracht niet gevonden fout, dan is PostgreSQL niet geïnstalleerd of niet op uw pad. Zorg er in het laatste geval voor dat u stel uw PATH-omgevingsvariabele in op gepaste wijze.
U kunt verbinding maken met een specifieke database door deze een naam te geven achter de psql opdracht:
psql-bestellingen
Standaard draait uw PostgreSQL-server waarschijnlijk op poort 5432. Als dit niet het geval is, kunt u de poort specificeren waarmee verbinding moet worden gemaakt met behulp van de
-p keuze:psql -p 1234
Lijsten maken met en verbinding maken met databases
Als je eenmaal in de interactieve shell bent, kun je verschillende psql-opdrachten uitvoeren. Deze omvatten opdrachten om beschikbare databases weer te geven, de uitvoerstijl te wijzigen, enz. Bovendien kunt u alle standaard SQL-opdrachten die PostgreSQL ondersteunt.
De interactieve shell-prompt bevat de naam van de database waarmee u bent verbonden. Uw psql-opdrachtregel zou er als volgt uit moeten zien:
postgres=#
Een goede eerste opdracht om te testen en je te oriënteren is: \l. Dit geeft een overzicht van de databases die beschikbaar zijn op de PostgreSQL-server waarmee u bent verbonden:
\l
De opdracht produceert uitvoer in tabelvorm, met de naam van elke database samen met de eigenaar en andere attributen.
U kunt verbinding maken met een andere database met behulp van de \c commando, gevolgd door de naam van uw doeldatabase:
\c postgres
Typ alleen \c om een bericht af te drukken waarin staat met welke database u momenteel bent verbonden.
Zonder enige volgende argumenten, de \d opdracht geeft tabellen, weergaven en reeksen weer:
\d
U kunt ook \d gebruiken om een specifieke tabel te beschrijven. Voeg eenvoudig de naam van de tabel toe na de \d:
\d medewerkers
Deze commando's produceren verschillende uitvoer, maar beide gebruiken een consistent tabelformaat.
U kunt alle beschikbare tabellen in de huidige database weergeven met de \dt opdracht:
\dt
De uitvoer presenteert elke tabel op een enkele rij, met minimale informatie.
Er zijn verschillende andere, vergelijkbare opdrachten om verschillende soorten tabelinformatie te bekijken. Als u bijvoorbeeld beschikbare weergaven wilt weergeven, gebruikt u \dv:
\dv
Net als het \dt-commando, toont \dv het schema, de naam, het type en de eigenaar van elke weergave.
Diverse opdrachten
Er zijn heel veel psql-commando's beschikbaar, veel te veel om in een kort artikel te behandelen. Misschien wel het handigste commando om te onthouden is het commando dat je over al deze commando's vertelt. Gebruiken \? en je ziet een lijst van elk commando met een samenvatting van hoe het te gebruiken en een uitleg van wat het doet.
\s toont u een geschiedenis van wat u eerder hebt getypt, inclusief SQL-instructies en psql-opdrachten.
De \e commando is erg handig, vooral als je aan het experimenteren bent met lange SQL-instructies. Deze opdracht opent uw standaard teksteditor voor de opdrachtregel met de laatste SQL-opdracht. U kunt dan dat commando bewerken, uw editor opslaan en afsluiten, en psql zal het opnieuw uitvoeren met uw wijzigingen.
psql-opdrachten zijn geweldig voor database-inspectie
De psql interactieve shell is een veelzijdig programma. Hiermee kunt u standaard SQL-commando's en speciale psql-commando's uitvoeren. De laatste geven je toegang tot allerlei soorten informatie, wat vooral handig is als je prestaties aan het tweaken bent of een complexe database ontwerpt.
Vergeet niet om de \? commando om de enorme lijst met beschikbare commando's te doorzoeken.