-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
(Resolvido) Acessar mysql atraves do comando "cmd"
pergunta respondeu ao nsouza de Denis Courcy em MySQL
Oi, 'nsouza' Clique em Iniciar/Executar, no combobox escreva cmd clique em ok. Quando a janela do DOS aparecer digite mysql -u <coloque seu usuário ou root> -p O Mysql vai pedir a senha. Aparecerá o prompt mysql> daí em diante você estará na linha de comando do MySQL. Veja abaixo: Microsoft Windows 2000 [Versão 5.00.2195] (C) Copyright 1985-2000 Microsoft Corp. C:\>mysql -u root Welcome to the MySQL monitor. Commands end with; or \g. Your MySQL connection id is 2 Server version: 5.0.37-community-nt MySQL Community Edition (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> -
Oi, 'fjuniorwin'! Não sei nada de PHP. Sua dúvida é em MySQl? Se sim, existe algum atributo (campo) data na tabela que você possui para que a pesquisa possa ser realizada? (Mostre a estrutura da tabela) Se não, Você quer que eu transfira este tópico para a área de PHP?
-
oi, 'shelter' ! Use a cláusula SQL_CALC_FOUND_ROWS junto de seu sql. Esta cláusula retorna normalmente os dados que você quer e para saber a quantidade de registros retornados pelo SELECT use um segundo select com a função FOUND_ROWS(). Veja o exemplo abaixo (Estou usando dados de minha base de testes): select SQL_CALC_FOUND_ROWS nome from cliente where nome like "DENIS%"; select found_rows();O primeiro select retorna normalmente todos os registros cujo campo nome comece pela string "DENIS" e o segundo select retorna a quantidade de linhas gerados pelo primeiro select.
-
Dúvidas Gerais de Relacionamentos e Estrutura
pergunta respondeu ao Ronaldo A. Bueno Filho de Denis Courcy em MySQL
Oi, Ronaldo! Vamos responder por partes. Em minha visão um empregado pode ter vários telefones e um telefone pode pertencer a vários empregados (Se moram na mesma residência, por exemplo.). O mesmo acontece no relacionamento ente telefones e times e entre telefones e localidades. Sendo assim, sugiro a criação de tabelas intermediárias que farão a função do relacionamento M:N destas ligações. Veja o pdf em anexo. Não. O banco resolve automaricamente a inclusão e a numeração de cada atributo do tipo auto_increment. a) Não. Você pode usar o InnoDB mas vai ter que configurar direitinho o servidor para não dar problema.B) Você pode usar MyISAM mas terá que controlar com triggers, storage procedures, etc. Pois o grande problema do MyISAM é que ele não é transacional. Uma vez que um registro de uma tabela foi gravado não há rollback. Você deverá desenvolver rotinas que verifiquem se tabelas pai e filho foram gravados corretamente. Existe, nativo no MySQL, um log binário que guarda todas as transações realizadas entre um backup e outro ou entre cada restart do servidor de banco. Nele ficam registradas o uduário que executou a transação e o que foi feito.Mas para efeito do negócio da empresa, é melhor que você crie uma ou algumas tabelas de log (de preferência um banco de log) que guardará as transações realizadas pelos usuários da aplicação. Não há o que desculpar. Ninguém nasce sabendo tudo. É necessário perguntar para aprender.modelo.pdf -
Oi, 'mestre fyoda', Faça asim: SELECT c.nome, v.nome FROM Agenda_Tecnica a INNER JOIN funcionario c ON c.cod_funcionario = a.cod_funcionario_cadastro INNER JOIN funcionario V ON c.cod_funcionario = a.cod_funcionario_visita
-
Esqueci a senha do root. E agora? (Resolvido) Descobrir senha de banco mysql, Descobrir senha de banco mysql
-
Ok. 'Maicon Andrade' Agora entendi. Basta ler este artigo e você cadastrará uma nova senha para o root: (Resolvido) Descobrir senha de banco mysql, Descobrir senha de banco mysql
-
Inserir dados retirando os duplicados por condição, preciso de ajuda..
pergunta respondeu ao Tchello de Denis Courcy em MySQL
'Tchello' A forma mais correta seria um relacionamento 1:N entre OS e visitas. Você terá duas tabelas. Uma para OS e outra para visitas A tabela de visitas guardará o histórico das visitas daquela OS. Na tabela visitas a chave primária seria OS + data da visita O campo data da visita poderá ser timestamp para que você possa cadastrar mais de uma visita no mesmo dia para aquela OS -
Oi, 'galrao' Você quer que o sistema te mostre somente os usuários que NÃO receberam email e que estão fazendo aniversário HOJE? Se é isto, basta ajustar seu SELECT assim: SELECT idUsu, mesNascimento, diaNascimento FROM Usuarios WHERE mesNascimento = '$mesHoje' AND diaNascimento = '$diaHoje' AND idUsu NOT IN (SELECT fkUsu FROM enviados WHERE ano = '$anoHoje');
-
(Resolvido) Erro com CURDATE(), preciso de ajuda
pergunta respondeu ao Tchello de Denis Courcy em MySQL
Oi, 'Tchello' Faça assim: SELECT * FROM agenda_pme WHERE data = CURDATE() SELECT * FROM agenda_pme WHERE data = DATE_ADD(CURDATE(),INTERVAL 1 DAY) SELECT * FROM agenda_pme WHERE data = DATE_ADD(CURDATE(),INTERVAL 2 DAY) SELECT * FROM agenda_pme WHERE data = DATE_ADD(CURDATE(),INTERVAL 3 DAY) SELECT * FROM agenda_pme WHERE data = DATE_ADD(CURDATE(),INTERVAL 4 DAY) -
'urbanos' movendo MySQL -->PHP
-
'Maicon Andrade' Então o seu problema é determinar em que máquina está o banco ou saber qual a senha do root ou outra opção que não consegui perceber?
-
Maicon, Use o comando SHOW DATABASES
-
Oi, 'pandaman'! Respondendo sua pergunta: Sim, precisa. Veja no manual do mysql de sua versão, a sintaxe do comando LIKE em um select.
-
Oi, Felipe Eu errei ao não conferir o texto transmitido. Coloque um espaço entre o DELIMITER e o ;$$. Assim: DELIMITER ;$$
-
Oi, 'Felipe ( Primow.com.br )'! Você não está conseguindo criar a procedure porque você está errando na sintaxe. Vamos as regras: 1 - todo comando no mysql é terminado pelo caracter ponto-e-virgula; 2 - Como você vai necessitar usar este caracter para informar o término de cada linha de comando dentro da procedure, você terá que usar outro caracter para informar que o comando CREATE PROCEDURE iniciou e finalizou; 3 - Ao final da criação da procedure você deverá informar que o caracter sinalizador de final de linha de comando voltou a ser o ponto-e-virgula. Vejamos seu exemplo corrigido e comantado. (os comentários estarão entre os caracteres /* e */ DELIMITER $$; /* modifica o caracter sinalizador de final de linha de comando para $$ */ CREATE PROCEDURE `minhabase`.`sp_teste` () BEGIN SELECT * FROM `minhabase`.`t_teste`; /* o caracter que informa o final de linha de comando dentro do comando procedure continua sendo o ponto-e-virgula */ END$$ /* o caracter que informa o final de linha de comando fora do comando procedure é o $$ */ DELIMITER;$$ /* modifica o caracter sinalizador de final de linha de comando de volta para o; */
-
Como faço uma consulta pela última atualização da tabela?
pergunta respondeu ao Tchello de Denis Courcy em MySQL
Use a função MAX. Assim: SELECT MAX(atualizacao) FROM tabela; -
(Resolvido) Tem como voltar os dados antes de ter sido executado o bac
pergunta respondeu ao Tchello de Denis Courcy em MySQL
O comando que você usou apaga os dados que estavam peviamente gravados. Refaça o comando usando o backup mais recente. Se você mantém o log binário ativado, então você poderá usá-lo para recuperar os dados do momento do último backup até o momento em que aconteceu o problema que te forçou a recuperar o backup. -
(Resolvido) Tem como voltar os dados antes de ter sido executado o bac
pergunta respondeu ao Tchello de Denis Courcy em MySQL
Que ferramenta você usou para fazer o backup? -
Criando Function para retornar várias linhas
pergunta respondeu ao Jedi_FeniX de Denis Courcy em MySQL
Não. Mas você pode criar uma Storage procedure que armazene os valores restantes em uma tabela temporária em memória. -
Oi, 'unisov' ! 4,6,15 são valores para ibf_members.id ?
-
Sua resposta: SELECT * FROM emails WHERE pkemail NOT IN (SELECT fkemails FROM enviados WHERE fkmensagem = 1); Vai retornar a lista dos elementos que não estão em enviados.
-
Oi, 'sounobre' ! Para ajudá-lo no entendimento deste problema, em anexo apresento os diagramas de entidade relacionamento (DER) do modelo simplificado que já conversamos em outro tópico (modelos lógico e físico) e abaixo o descritivo da implementação do modelo no MySQL. CREATE TABLE usuarios ( idusuario integer unsigned NOT NULL auto_increment, nmusuario varchar(20) NOT NULL, PRIMARY KEY (idusuario) )ENGINE=INNODB; CREATE TABLE topicos ( idtopico integer unsigned NOT NULL auto_increment, dstitulotopico varchar(20) NULL , idusuario integer unsigned NOT NULL default 0, ts_inclusao_informacao timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, PRIMARY KEY (idtopico), CONSTRAINT FK_topicos_001 FOREIGN KEY (idusuario) REFERENCES usuarios(idusuario) ON DELETE NO ACTION ON UPDATE NO ACTION )ENGINE=INNODB; CREATE TABLE posts ( idtopico integer unsigned NOT NULL default 0, idpost integer NOT NULL default 0, ts_inclusao_informacao datetime NULL , idusuario integer unsigned NOT NULL default 0, txt_post varchar(20) NULL, PRIMARY KEY (idtopico, idpost) CONSTRAINT FK_posts_001 FOREIGN KEY (idtopico) REFERENCES topicos(idtopico) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FK_posts_002 FOREIGN KEY (idusuario) REFERENCES usuarios(idusuario) ON DELETE NO ACTION ON UPDATE NO ACTION )ENGINE=INNODB; modelo_fisico.pdf modelo_logico.pdf
-
Oi, 't0th'! Explicação do problema: Quando você usa o LIKE com o simbolo de % no início e no final, tal como você está fazendo em toda sua pesquisa, ('%processador%', por exemplo) você está obrigando o gerenciador de banco de dados (qualquer um, seja SQL Server, MySQL, ORACLE, etc) a operar por TABLE SCAN, que é uma varredura de registro a registro do início ao fim da tabela. Mesmo se você tivesse íncdice por este campo o TABLE SCAN continuaria a ser executado. Solução: Se o que você quer achar está nas primeiras letras do nome você pode criar um íncdice pelo atributo "nome" CREATE INDEX produtos_AK_001 ON produtos (nome); e alterar a cláusula WHERE para que fique assim:WHERE (produtos.nome LIKE '%proc' or produtos.nome LIKE '%cpu%' or produtos.nome LIKE '%PROC') Se o que você quer achar está em qualquer lugar do campo "nome", ou seja, tal como está a sua consulta, então crie um indice FULLTEXT pelo campo nome, que faz a busca como o google faz,CREATE FULLTEXT INDEX produtos_FT_001 ON produtos (nome); e alterar a cláusula WHERE para que fique assim:WHERE MATCH (nome) AGAINST ('PROC PROCESSADOR CPU');
-
Oi, 'Kllaos' Substitua INNER por LEFT e acrescente a cláusula STRAIGHT_JOIN, para que a consulta seja ainda mais otimizada. Em suma, sua consulta ficará assim: SELECT STRAIGHT_JOIN e.id, e.nome, c.nome as contato FROM empresa e LEFT JOIN empresa_contato c ON e.id = c.empresa_id ORDER BY e.nome