Ir para conteúdo
Fórum Script Brasil

Denis Courcy

Moderadores
  • Total de itens

    3.089
  • Registro em

  • Última visita

Tudo que Denis Courcy postou

  1. Que outras informações você precisa? Pelo que você postou já te passei instruções suficientes para que você faça todo o exercício.
  2. Farei um e você tenta fazer o resto. Postando aqui suas DÚVIDAS. INSERT INTO editora(edi_codigo, edi_nome) VALUES (1, "mirandela"), (2, "editora via norte"), (3, "editora ilhas tijuca"), (4, "maria jose");
  3. Vai depender do problema. Cada problema tem uma forma de solucionar. Não há padrão. Estude sobre álgebra relacional (isto que fizemos). Intercessão de conjuntos (uso de inner join ou left join). Conjunto união (uso de union). etc.
  4. Boa noite. Lembra o que falei na segunda linha de minha resposta? Agora você está mencionando um campo de outra tabela vamos a uma nova opção: SELECT t.id_evento,t.evento, t.data_last_inser, g.ref FROM tbl_evento t INNER JOIN (SELECT DISTINCT tbl_galeria.evento_id, tbl_galeria.ref FROM tbl_galeria) g ON g.id_evento = t.id_evento;
  5. Bom Dia. Se os campos que você quer estão somente na tabela tbl_evento, então você pode fazer a consulta assim: SELECT tbl_evento.id_evento,tbl_evento.evento, tbl_evento.data_last_inser FROM tbl_evento WHERE tbl_evento.id_evento IN (SELECT DISTINCT tbl_galeria.evento_id FROM tbl_galeria);
  6. Denis Courcy

    #1064

    Modifique sua procedure para que trabalhe assim: DELIMITER $$ CREATE PROCEDURE uspPacienteInserir( IN v_nome VARCHAR(80), IN v_cpf VARCHAR(14), IN v_rg VARCHAR(14), IN v_estadocivil ENUM('solteiro','casado', 'divorciado','viuvo'), IN v_sexo ENUM('Masculino', 'Feminino'), IN v_etinia ENUM('africano', 'asiatico', 'caucasiano', 'latino'), IN v_profissao VARCHAR(20), IN v_naturalidade VARCHAR(20), IN v_nacionalidade VARCHAR(20), IN v_nascimento DATE, IN v_falecido ENUM('Sim', 'Não'), IN v_hobby VARCHAR(50), IN v_indicadopor VARCHAR(20), IN v_nomemae VARCHAR(80), IN v_nascimentomae DATE, IN v_profissaomae VARCHAR(20), IN v_nomepai VARCHAR(80), IN v_nascimentopai DATE, IN v_profissaopai VARCHAR(20), IN v_foto BLOB ) BEGIN DECLARE ultimoIdInserido INTEGER; DECLARE msg VARCHAR(1000) DEFAULT "sem mensagem"; DECLARE excecao SMALLINT DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1; START TRANSACTION; INSERT INTO paciente (nome, cpf, rg, estadocivil, sexo, etnia, profissao, naturalidade, nacionalidade, nascimento, falecido, hobby, indicadopor, nomemae, nascimentomae, profissaomae, nomepai, nascimentopai, profissaopai, foto); VALUES (v_nome, v_cpf, v_rg, v_estadocivil, v_sexo, v_etnia, v_profissao, v_naturalidade, v_nacionalidade, v_nascimento, v_falecido, v_hobby, v_indicadopor, v_nomemae, v_nascimentomae, v_profissaomae, v_nomepai, v_nascimentopai, v_profissaopai, v_foto); IF excecao = 1 THEN SET msg = 'Erro na inclusao do paciente'; ROLLBACK; ELSE SELECT LAST_INSERT_ID() INTO ultimoIdInserido FROM paciente; SET msg = CONCAT('Paciente ', ultimoIdInserido, ' incluido com sucesso'); COMMIT; END IF; SELECT msg AS msg; END $$ DELIMITER;
  7. Denis Courcy

    #1064

    Se id_paciente é auto_increment então:Remova a linha OUT ultimoIdInserido INTO; Altere a linha SELECT id_paciente INT ultimoIdInserido FROM paciente ORDER BY id_paciente DESC LIMIT 1; para SELECT LAST_INSERT_ID() as ultimoIdInserido FROM paciente;
  8. Oi Sahh, Vamos ao básico. Um banco de dados é uma coleção de tabelas(que são conjuntos, ou entidades, como queira tratar). Cada tabela possui atributos(campos) que qualificará cada registro da tabela(linha). O atributo que relaciona uma tabela com outra é chamado de identificador. Este atributo deverá ser único e sua chave deverá ser a primária. As tabelas se relacionam com outras tabelas através de ações. Uma ação é, normalmente, uma regra de negócio que é aplicada para que seu sistema funcione. Existem três tipos de relacionamentos que podem ocorrer em um BD. Relacionamento “um para um”: Quando um registro(linha) de uma tabela se relaciona com apenas um registro de outra tabela. Relacionamento “um para muitos”: Quando um registro de uma tabela se relaciona com um ou muitos registros de outra tabela. Relacionamento “muitos para muitos”: Quando um registro de uma tabela A se relaciona com muitos registros de uma tabela B e quando um registro da tabela B se relaciona com muitos registros da tabela A. Exemplos: Relacionamento “um para muitos”. Imagine as tabelas Funcionários(chave primária idFuncionario) e Departamentos(chave primária idDepartamento). A ação ou regra de negócio deste caso, diz que “um funcionário pertence a um departamento e que em um departamento pode ter vários funcionários”. A representação (relacionamento) será colocar um campo de idDepartamento na tabela Funcionários, que informará que aquele funcionário pertence a um Departamento. idDepartamento é a chave primária na tabela Departamentos e chave estrangeira (FK) na tabela Funcionários. É o elemento responsável por ligar um funcionário a um departamento. Relacionamento “muitos para muitos”. Para exemplificá-lo vamos usar as tabelas Produtos( chave primária idProduto) e Fornecedores(chave primária idFornecedor). Nossa regra de negócio diz que “um produto pode ser fornecido por mais de um fornecedor e um fornecedor pode fornecer mais de um produto”. A representação deste caso usa uma tabela auxiliar, que chamaremos ProdutosxFornecedores. Esta tabela conterá os campos idProduto e idFornecedor. O par ordenado (idProduto, idFornecedor) será a chave primária desta nova tabela. idProduto e idFornecedor serão chaves estrangeiras de produtos e fornecedores, respectivamente. Em seu caso, Clientes, Parceiros e Fornecedores são entidades independentes. No decorrer do desenvolvimento de seu sistema, as ações deverá ser criadas conforme o destino que você deseja dar ao sistema. Abaixo listei algumas ações possíveis. Pedidos de Material; Abertura de ordem de serviço, etc.
  9. Você poderia explicar melhor, por favor? O que você pretende entre estas três tabelas? Cliente é uma empresa? E fornecedor e parceiro são outras empresas distintas? Melhor dizendo, quem são cliente, fornecedor e parceiro? Responda e prosseguiremos daqui.
  10. Sim é possível criar um bat para fazer backup do banco. Use o utilitário do mysql, chamado de mysqldump, que trabalha na linha de comando (tela preta) é o melhor meio de fazer backup. Leia o manual do mysql de sua versão para obter o melhor modo de realizar seu backup.
  11. Quebra de linha não é uma operação de sql. É uma operação de sua linguagem de programação.
  12. Ruy, sua forma está correta, mas pode causar confusão se houver mais elementos para o filtro. Sendo assim é preferível utilizar a forma recomendada no manual do MySQL que segue o padrão SQL ANSI.Leia o artigo: http://stackoverflow.com/questions/1018822/inner-join-on-vs-where-clause Desta forma recomendo o uso da sintaxe abaixo: SELECT pa.nome_paciente, pr.procedimento, pg.valor, pr.medico FROM paciente pa INNER JOIN pagameto pg ON pa.id_paciente = pg.id_paciente INNER JOIN procedimento pr ON pa.id_paciente = pr.id_paciente
  13. Sabendo que o horário entre 10 e 15 está reservado, temos o select abaixo que retorna todos os horários reservados no intervalo: select cod from horarios where horario between 10:00 and 15:00; Se você deseja saber todos os horários que não estão no range acima então o select deverá ser o seguinte: select * from horarios where NOT cod IN (select cod from horarios where horario between 10:00 and 15:00);
  14. O que eu quis dizer foi que a cada iteração do laço loop ele emite um resultset (set de informação) como resposta através do select SELECT p_nomFornecedor, p_desApelidoFantasia; Criei o seguinte teste em minha base de teste CREATE TABLE fornecedor( nomFornecedor VARCHAR(50), desApelidoFantasia VARCHAR(50) )ENGINE=INNODB; INSERT INTO fornecedor VALUES ("teste a", "teste aa"), ("teste b", "teste bb"), ("teste c", "teste cc"); Criei a procedure DELIMITER $$ -- drop procedure if exists teste; CREATE PROCEDURE teste() BEGIN SELECT nomFornecedor, desApelidoFantasia FROM fornecedor; END; $$ Executei o teste CALL teste; Obtive o resultado:
  15. Boa tarde! Na linha SELECT p_nomFornecedor, p_desApelidoFantasia; você está retornando um set de informação para cada iteração do cursor. Qual o objetivo desta procedure? Bastaria retornar um select da tabela com os campos que você quer, sem a necessidade do uso do cursor.
  16. Denis Courcy

    Query com case

    Com relação ao tópico 2, o assunto não é MySQL. Movendo do forum de MySQL para PHP.
  17. O username sim. Mantenha o root e crie outro para usar em sua aplicação. O hostname, não.
  18. Procure no google sobre diagramas de entidade relacionamento clinica. Você encontrará vários exemplos.
  19. Não. Dê um grant para cada domínio. Ou use um grant para ser usado em qualquer dominio GRANT SELECT ON base.tabela TO 'usuario'@'%' IDENTIFIED BY 'senha';
  20. Denis Courcy

    grant select where

    Não. Grant é dado somente a bancos, tabelas, views e procedures. Você pode criar uma view com as características que colocou acima e dar permissão a view. Vai atender ao que desejas.
  21. O MySQL está e sua máquina? Não conheço python, mas presumo que haja uma string de conexão. Como Você se conectou ao servidor remoto com esta linguagem?
  22. Denis Courcy

    MYSQL- Erro: #1064

    Feche o parenteses do Create Table: Create table hospedes ( cpf numeric (11) not null, nome varchar (50) not null, end varchar (250) not null, rg numeric (20) not null, tel numeric (12) not null, primary key (cpf) )ENGINE= <informe a engine utilizada>; Substitua o termo <informe a engine utilizada> por MyISAM, InnoDB ou outra engine que você esteja usando.
  23. Tente assim: DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ PROCEDURE `SP_AUDITORIA_MNT`(IN `ORIGEM` INT, IN `DATA` DATE, IN `MPONTO_HORA` VARCHAR(10), IN `CODFUNCIONARIO` INT, IN `MPONTO_DESC` VARCHAR(60), IN `USER_NOME` VARCHAR(20), IN `NUPONTO` INT) /*LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string'*/ BEGIN INSERT INTO TB_AUDITORIA( ORIGEM, DATA, MPONTO_HORA, CODFUNCIONARIO, MPONTO_DESC, USER_NOME, NUPONTO) VALUES ( ORIGEM, DATA, MPONTO_HORA, CODFUNCIONARIO, MPONTO_DESC, USER_NOME, NUPONTO); END$$ DELIMITER ;
×
×
  • Criar Novo...