2013-02-17

[psql][mysql] Kilka różnic między MySql'em a PostgreSql'em

Po dłuuugiej przerwie usiadłem przed bazą MySQL'a i próbuję jakoś ją ogarnąć. Ostatnio stykam się głównie z PostgreSQL'em i nabrałem już kilka nawyków, które nie do końca się sprawdzają przy MySQL'u. Jest między tymi bazami kilka różnic w obsłudze i postaram się je w tym wpisie zbierać i przedstawić.
Odwykłem od nakładek typu phpMyAdmin - wszystkie zapytania i modyfikacje wykonuję w postgresie z konsoli i jest mi z tym dobrze. :) Spróbuję tak samo działać w MySQl'u.

Już na starcie niestety uderzył mnie w MySQL'u brak "podpowiadania" poleceń po wciśnięciu Tab - to jakaś masakra (EDIT: okazuje się że podpowiada jak się pisze dużymi literami). Nie podpowiada też ścieżki do pliku, który chciałbym na przykład wczytać...

Oto kilka różnic, które dostrzegłem po kilku chwilach:

Tworzenie nowej bazy danych


W PostgreSQL i w MySQL wygląda to tak samo:
CREATE DATABASE nazwa_bazy;

W postgresie można utowrzyć nową bazę jeszcze nie będąc w psql:
createdb -U nazwa_usera nazwa_bazy

W mysql pewnie też można ale ja tego póki co nie odkryłem... :)

Wejście do bazy danych


psql:
psql -W -U nazwa_usera nazwa_bazy

mysql:
mysql -u nazwa_usera -p -D nazwa_bazy

Wczytanie kodu SQL z pliku


psql:
$ psql -U nazwa_usera nazwa_bazy -f /var/www/projekt/sql/0001.sql

lub
\i /var/www/projekt/sql/0001.sql


mysql:
$ mysql -u nazwa_usera -p nazwa_bazy < /var/www/projekt/sql/0001.sql
lub
\. /var/www/projekt/sql/0001.sql
Wielkich różnic tutaj nie ma - oprócz wyżej wspomnianego braku podpowiadania...

Wyświetlenie baz danych

psql:
select datname from pg_database;
mysql:
show databases;

Wyświetlenie tabel bazy danych

psql:
\dt
mysql:
show tables;

Wyświetlenie szczegółów tabeli

psql:
\d nazwa_tabeli
mysql:
describe nazwa_tabeli;

Modyfikacja kolumny tabeli

psql:
ALTER TABLE t1 ALTER COLUMN test TYPE VARCHAR(255);
mysql:
ALTER TABLE t1 MODIFY test VARCHAR(255);



Jest na pewno jeszcze pół miliona więcej różnic - jak coś zauważę to dodam do listy.

Brak komentarzy:

Prześlij komentarz