A maior rede de estudos do Brasil

Grátis
475 pág.
LIVRO Aplicativos em PHP

Pré-visualização | Página 28 de 50

cliente ORDER BY codigo LIMIT 2 OFFSET 2;
Irá retornar os registros do 3 e 4 (Se existirem).
Ou seja, o primeiro parâmetro do é a quantidade e o segundo o inicial (começando do 0).
Sintaxe no MySQL:
LIMIT [início,] linhas
Retorna o número de linhas especificado. Se o valor início for fornecido, aquelas linhas são puladas 
antes do dado ser retornado. A primeira linha é 0.
Exemplo:
SELECT * FROM cliente ORDER BY codigo LIMIT 3,2;
O comando acima pede apenas os registros de código 4 e 5, os dois após o 3.
SELECT * FROM cliente ORDER BY codigo LIMIT 3,1;
Aqui retornará 1 registro, de código 4, que é o próximo após o 3.
SELECT * FROM cliente ORDER BY codigo LIMIT 2 , 4;
 Aqui retornará os registros de código 3,4,5 e 6.
No MySQL o início é o primeiro parâmetro e a quantidade é o segundo.
Experimente os exemplos acima num gerenciador dos SGBDs para consolidar o conhecimento 
(phpmyadmin e phppgadmin).
Referências
- Manual Online do MySQL 4.1 em Português - com opção de busca pelo conteúdo.
http://dev.mysql.com/doc/refman/4.1/pt/index.html
- Manual do MySQL em vários idiomas e em vários formatos para download - http://mysql.org/doc/
- Removendo Duplicidades em MySQL - http://www.dicas-l.com.br/print/20060930.html
Replicação no MySQL
An introduction to replication1
http://pt.wikibooks.org/wiki/Aplicativos_em_PHP
Aplicativos em PHP (WikiBooks - democratizando o conhecimento) - Página 167/475
How to start replicating - the slave server
http://pt.wikibooks.org/wiki/Aplicativos_em_PHP
Aplicativos em PHP (WikiBooks - democratizando o conhecimento) - Página 168/475
Aplicativos em PHP/Administração dos 
SGBDs/PostgreSQL
De Wikibooks
< Aplicativos em PHP | Administração dos SGBDs
Aqui apenas passo o link para o livro
http://pt.wikibooks.org/wiki/Aplicativos_em_PHP
Aplicativos em PHP (WikiBooks - democratizando o conhecimento) - Página 169/475
Conteúdo
• 1 PostgreSQL Prático 
• 2 Tutorial sobre o phpPgAdmin 
• 3 Criando Chave Estrangeira Composta no phpPgAdmin e no PGAdmin 
• 3.1 phpPgAdmin 
• 3.2 PGAdmin 
• 4 PlPgSQL Tutorial 
• 4.1 Delimitadores 
• 4.2 Declaração de Variáveis 
• 4.3 Declarado Funções 
• 4.4 Alias para Parâmetros de Funções 
• 4.5 Executando Funções 
• 4.6 Tipos Polimórficos 
• 4.7 Copiando Tipos 
• 4.8 Tipos row 
• 4.9 Tipo registro (record) 
• 4.10 Renomeando Variáveis 
• 4.11 Atribuições 
• 4.12 Execução de Expressão ou Consulta sem Resultado 
• 4.13 Execução de Comandos Dinâmicos 
• 4.14 Estruturas de Controle 
• 4.15 Condicionais 
• 4.16 Laços através do resultado de consultas 
• 4.17 Capturar Erros 
• 4.18 Declaração de Variáveis do tipo Cursor 
• 4.19 Erros e Mensagens 
• 4.20 Procedimentos de Gatilho (Trigger) 
• 4.21 NEW 
• 4.22 OLD 
• 4.23 TG_NAME 
• 4.24 TG_WHEN 
• 4.25 TG_LEVEL 
• 4.26 TG_OP 
• 4.27 TG_RELID 
• 4.28 TG_RELNAME 
• 4.29 TG_NARGS 
• 4.30 TG_ARGV[] 
• 4.31 Gatilho para registrar inserções e atualizações 
• 4.32 Gatilho para auditoria 
• 4.33 Autoditoria ao nível de campos 
• 4.34 Gatilho para manter uma tabela sumário 
PostgreSQL Prático
http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico
http://pt.wikibooks.org/wiki/Aplicativos_em_PHP
Aplicativos em PHP (WikiBooks - democratizando o conhecimento) - Página 170/475
Com isso evitando repetições ou a reinvenção da roda.
Tutorial sobre o phpPgAdmin
- Baixar de - http://phppgadmin.sourceforge.net/
- Copiar para o diretório web e descompactar no diretório "phppgadmin"
- Editar o arquivo conf/config.inc.php e alterar para dois servidores (um local e outro remoto) caso 
assim queira:
 //...
 // Servidor Local
 // Display name for the server on the login screen
 $conf['servers'][0]['desc'] = 'Local';
 // Hostname or IP address for server. Use '' for UNIX domain socket.
 // use 'localhost' for TCP/IP connection on this computer
 $conf['servers'][0]['host'] = '127.0.0.1';
 $conf['servers'][0]['defaultdb'] = 'nomebancodefault';
 //...
 // Servidor Remoto
 // Example for a second server
 $conf['servers'][1]['desc'] = 'Remoto';
 $conf['servers'][1]['host'] = '10.99.00.11';
 $conf['servers'][1]['port'] = 5432;
 $conf['servers'][1]['defaultdb'] = 'nomebancodefault';
 //...
 // If extra login security is true, then logins via phpPgAdmin with no
 // password or certain usernames (pgsql, postgres, root, administrator)
 // will be denied. Only set this false once you have read the FAQ and
 // understand how to change PostgreSQL's pg_hba.conf to enable
 // passworded local connections.
 $conf['extra_login_security'] = false;
 // Importantes para Importar/Exportar
 $conf['servers'][0]['pg_dump_path'] = '/usr/local/pgsql/bin/pg_dump';
 $conf['servers'][0]['pg_dumpall_path'] = 
'/usr/local/pgsql/bin/pg_dumpall';
- Pronto, basta abrir http://localhost/phppgadmin
Criando Chave Estrangeira Composta no phpPgAdmin e no 
PGAdmin
O exemplo é para uma chave com 4 campos, mas o procedimento é válido para qualquer chave 
composta.
Relacionar composicoes com precos.
http://pt.wikibooks.org/wiki/Aplicativos_em_PHP
Aplicativos em PHP (WikiBooks - democratizando o conhecimento) - Página 171/475
Quero que ao digitar um preço em composições o SGBD verifique a integridade do mesmo em 
precos.
Temos uma tabela cuja chave primária é composta por 4 campos:
tabela, insumo_grupo, insumo, fornecedor e queremos relacionar com outra tabela que também 
contém os mesmos campos com os mesmos tipos de dados.
Como isso pode ter algum engano, seguem os passos.
Esquema das tabelas:
CREATE TABLE "composicoes" (
 "servico" character varying(10) NOT NULL,
 "insumo_grupo" character varying(6) NOT NULL,
 "insumo" character varying(10) NOT NULL,
 "quantidade" real NOT NULL DEFAULT 0,
 "coeficiente" real NOT NULL DEFAULT 0,
 "data_inclusao" timestamp without time zone,
 "data_alteracao" timestamp without time zone,
 "data_cancelamento" timestamp without time zone,
 "uid_inclusao" character varying(10),
 "uid_alteracao" character varying(10),
 "uid_cancelamento" character varying(10),
 "tabela" smallint NOT NULL DEFAULT 2006,
 "fornecedor" smallint NOT NULL DEFAULT 1,
 CONSTRAINT "composicoes_fk_insumo" FOREIGN KEY (insumo_grupo, insumo) 
REFERENCES insumos(grupo, insumo),
 CONSTRAINT "composicoes_fk_servicos" FOREIGN KEY (servico) REFERENCES 
servicos(servico),
 CONSTRAINT "composicoes_pkey" PRIMARY KEY (servico, insumo_grupo, insumo)
) WITH OIDS;
CREATE TABLE "precos" (
 "tabela" smallint NOT NULL,
 "insumo_grupo" character varying(6) NOT NULL,
 "insumo" character varying(10) NOT NULL,
 "fornecedor" smallint NOT NULL,
 "custo_produtivo" real,
 "custo_improdutivo" real,
 "data_coleta" timestamp without time zone,
 "data_inclusao" timestamp without time zone,
 "data_alteracao" timestamp without time zone,
 "data_cancelamento" timestamp without time zone,
 "uid_inclusao" character varying(10),
 "uid_alteracao" character varying(10),
 "uid_cancelamento" character varying(10),
 CONSTRAINT "precos_fornecedor_fk" FOREIGN KEY (fornecedor) REFERENCES 
cadastro.fornecedor(codigo_fornecedor) ON UPDATE RESTRICT ON DELETE RESTRICT,
 CONSTRAINT "precos_insumos_fk" FOREIGN KEY (insumo_grupo, insumo) REFERENCES 
insumos(grupo, insumo),
 CONSTRAINT "precos_pk" PRIMARY KEY (tabela, insumo_grupo, insumo, 
fornecedor)
) WITH OIDS;
http://pt.wikibooks.org/wiki/Aplicativos_em_PHP
Aplicativos em PHP (WikiBooks - democratizando o conhecimento) - Página 172/475
phpPgAdmin
Observe que na tabela de destino (precos), de onde queremos trazer uma informação, a ordem da 
chave é "tabela, insumo_grupo, insumo e fornecedor". Já em coposicoes, estes campos estão em 
ordem diferente. Mas no momento de criar a chave estrangeira devemos adicionar na mesma ordem 
da precos. Veja abaixo.
- Abrir a tabela (composicoes) para a qual queremos inserir uma chave estrangeira