Original post: http://anothermysqldba.blogspot.com/2013/12/a-mysql-dba-looks-at-postgresql.html
Portanto, esta é uma jornada do / a MySQL DBA olhando para PostgreSQL . Ele não é um ataque apenas observações e exemplos.
Usando CentOS 6.5 64 bits:
rpm-ivh http://yum.postgresql.org/9.3/redhat/rhel-6.5-x86_64/pgdg-centos93-9.3-1.noarch.rpm
yum groupinstall "banco de dados PostgreSQL 9.3 Servidor PGDG"
---> Pacote postgresql93.x86_64 0:9.3.2-1PGDG. RHEL6 será instalado
---> Postgresql93-contrib.x86_64 Package 0:9.3.2-1PGDG. RHEL6 será instalado
---> Postgresql93-libs.x86_64 Package 0:9.3.2-1PGDG. RHEL6 será instalado
---> Pacote postgresql93-server.x86_64 0:9.3.2-1PGDG. RHEL6 será instalado
yum install postgresql93-servidor
serviço postgresql-9.3 initdb
Banco de dados de Inicialização: [OK]
postgresql-9.3 serviço de início
Começando postgresql-9.3 serviço: [OK]
chkconfig postgresql-9.3 em
Todos os exemplos que se seguem são baseados no PostgreSQL Wiki
# Su - postgres
-Bash-4.1 $ psql
psql (9.3.2)
postgres = # CREATE USER testuser SENHA '1234 ';
CREATE ROLE
postgres = # GRANT ALL ON SCHEMA teste para Testuser;
GRANT
postgres = # GRANT ALL ON Todas as tabelas de teste de esquema para Testuser;
GRANT
$ Pwd
/ Home / testuser
$ psql-d postgres
psql (9.3.2)
Digite "help" para obter ajuda.
Eu notei que estas declarações de concessão funcionou bem com 9.3, mas a distro originalmente instalado uma versão 8. * E alguns dos comandos falhou.
Btw ... Você, naturalmente, ainda têm características que você esperaria de um sistema RDBM estável. Concedido estes são exemplos simples.
postgres => EXPLAIN SELECT * from Test.Test;
Plano de consulta
-------------------------------------------------- ------
Seq Scan no teste (cost = 0.00 .. 19.20 rows = 920 width = 58)
Mostrar bases de dados == \ l
postgres-> \ l
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | = c / postgres +
| | | | | Postgres = CTC / postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | = c / postgres +
| | | | | Postgres = CTC / postgres
USE é padrão SQL:
postgres-> postgres uso
Listar todos os esquemas:
postgres-> \ dn
públicas | postgres
teste | postgres
postgres => SELECT * FROM sometable ONDE SomeField = 'fubar'; SomeField | anotherfield | datefield ----------- + -------------- + ---- -------- fubar | rabuf | 2013-12-30 fubar | rabuf | 2013-12-30 (2 linhas)
Para ajudar mais você pode instalar pgadmin
yum install pgadmin3_93
Conseguir que a trabalhar e como ele funciona pode ser todo um outro post do blog.
Até agora .... Eu vou ficar com MySQL, mas este é apenas um exemplo simples de usar PostgreSQL. Isso pode fazer com que você começou a se você pode avaliar por si mesmo.
Links úteis abaixo. Por favor, referir-se a estes como eles têm mais experiência com PostgreSQL do que eu.
Portanto, esta é uma jornada do / a MySQL DBA olhando para PostgreSQL . Ele não é um ataque apenas observações e exemplos.
Usando CentOS 6.5 64 bits:
rpm-ivh http://yum.postgresql.org/9.3/redhat/rhel-6.5-x86_64/pgdg-centos93-9.3-1.noarch.rpm
yum groupinstall "banco de dados PostgreSQL 9.3 Servidor PGDG"
---> Pacote postgresql93.x86_64 0:9.3.2-1PGDG. RHEL6 será instalado
---> Postgresql93-contrib.x86_64 Package 0:9.3.2-1PGDG. RHEL6 será instalado
---> Postgresql93-libs.x86_64 Package 0:9.3.2-1PGDG. RHEL6 será instalado
---> Pacote postgresql93-server.x86_64 0:9.3.2-1PGDG. RHEL6 será instalado
serviço postgresql-9.3 initdb
Banco de dados de Inicialização: [OK]
postgresql-9.3 serviço de início
Começando postgresql-9.3 serviço: [OK]
chkconfig postgresql-9.3 em
Todos os exemplos que se seguem são baseados no PostgreSQL Wiki
# Su - postgres
-Bash-4.1 $ psql
psql (9.3.2)
postgres = # CREATE USER testuser SENHA '1234 ';
CREATE ROLE
postgres = # GRANT ALL ON SCHEMA teste para Testuser;
GRANT
postgres = # GRANT ALL ON Todas as tabelas de teste de esquema para Testuser;
GRANT
postgres = # \ q
-Bash-4.1 $ exit
Sair
# Su testuser
$ Pwd
/ Home / testuser
$ psql-d postgres
psql (9.3.2)
Digite "help" para obter ajuda.
postgres => CRIAR Test.Test TABLE (varchar COLTEST (20));
CREATE TABLE
postgres => inserir valores (COLTEST) ('que funciona! ") Test.Test;
INSERIR 0 1
postgres => SELECT * FROM Test.Test;
COLTEST
-----------
Ele funciona!
(1 linha)
postgres => DROP TABLE Test.Test;
DROP TABLE
postgres =>
Btw ... Você, naturalmente, ainda têm características que você esperaria de um sistema RDBM estável. Concedido estes são exemplos simples.
postgres => EXPLAIN SELECT * from Test.Test;
Plano de consulta
-------------------------------------------------- ------
Seq Scan no teste (cost = 0.00 .. 19.20 rows = 920 width = 58)
Mostrar bases de dados == \ l
postgres-> \ l
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | = c / postgres +
| | | | | Postgres = CTC / postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | = c / postgres +
| | | | | Postgres = CTC / postgres
USE é padrão SQL:
postgres-> postgres uso
Listar todos os esquemas:
postgres-> \ dn
públicas | postgres
teste | postgres
SHOW CREATE TABLE e etc são um pouco mais de trabalho. Concedido um DBA MySQL vai vê-lo como mais trabalho por causa do que estamos acostumados a fazer. O PostgreSQL utiliza tablespaces mais de usuários do MySQL estão acostumados a fazer.
postgres => CRIAR sometable TABLE (varchar SomeField (255), varchar anotherfield (150), data datefield); CREATE TABLE postgres => INSERT INTO (SomeField, anotherfield, DateField) VALUES (SomeTable 'fubar', 'rabuf', '2013-12-30 '); INSERIR 0 1 postgres => INSERT INTO (SomeField, anotherfield, DateField) VALUES (SomeTable 'fubar', 'rabuf', NOW ()); INSERIR 0 1 postgres => INSERT INTO (SomeField, anotherfield, DateField) VALUES (SomeTable 'fubar2', 'rabuf2', NOW ()); INSERIR 0 1 postgres => SELECT * FROM sometable; SomeField | anotherfield | datefield ----------- + -------------- + ------------ fubar | rabuf | 2013-12-30 fubar | rabuf | 2013-12-30 fubar2 | rabuf2 | 2013-12-30 (3 linhas)
postgres => SELECT * FROM sometable ONDE SomeField = 'fubar'; SomeField | anotherfield | datefield ----------- + -------------- + ---- -------- fubar | rabuf | 2013-12-30 fubar | rabuf | 2013-12-30 (2 linhas)
postgres => \? <- A ajuda irá mostrar-lhe como navegar ao redor.
Mostrar tabelas == \ dt
postgres => \ dt
Lista de relações
Esquema | Nome | Tipo | Dono
-------- + ----------- + ------- + ----------
pública | sometable | mesa | testuser
postgres => ALTER TABLE ADD COLUMN sometable intfield int [11]; ALTER TABLE
postgres => SELECT * FROM sometable; SomeField | anotherfield | datefield | intfield ----------- + -------------- + -------- ---- + ---------- fubar | rabuf | 2013-12-30 | fubar | rabuf | 2013-12-30 | fubar2 | rabuf2 | 2013-12-30 | (3 linhas)
SHOW CREATE TABLE == \ d + nometabela
postgres => \ d + sometable
Tabela "public.sometable"
Coluna | Tipo | Modificadores | Armazenamento | Estatísticas alvo | Descrição
-------------- + ------------------------ + ---------- - + ---------- + -------------- + -------------
SomeField | character varying (255) | | estendido | |
anotherfield | character varying (150) | | estendido | |
datefield | data | | simples | |
intfield | integer [] | | estendido | |
Tem OIDs: não
Para ajudar mais você pode instalar pgadmin
yum install pgadmin3_93
Conseguir que a trabalhar e como ele funciona pode ser todo um outro post do blog.
Até agora .... Eu vou ficar com MySQL, mas este é apenas um exemplo simples de usar PostgreSQL. Isso pode fazer com que você começou a se você pode avaliar por si mesmo.
Links úteis abaixo. Por favor, referir-se a estes como eles têm mais experiência com PostgreSQL do que eu.
- Modificado por 9,3 abaixo)
- http://yum.postgresql.org/9.3/redhat/rhel-6.5-x86_64/
- http://www.postgresql.org/docs/9.3/static/app-initdb.html
- https://wiki.postgresql.org/wiki/Detailed_installation_guides
- http://wiki.postgresql.org/wiki/First_steps
- http://www.postgresql.org/docs/9.3/static/sql-grant.html
- http://wiki.postgresql.org/wiki/How_to_make_a_proper_migration_from_MySQL_to_PostgreSQL
- http://blog.endpoint.com/2009/12/mysql-and-postgres-command-equivalents.html
- http://www.openlogic.com/wazi/bid/188016/PostgreSQL-Administration-for-MySQL-Admins
- http://www.postgresql.org/docs/9.3/static/sql-altertable.html
- http://en.wikibooks.org/wiki/Converting_MySQL_to_PostgreSQL