-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
relação com mais de duas tabelas
pergunta respondeu ao Diogo Henrique Fragoso de Denis Courcy em MySQL
Continua com outro inner join ou left join, para cada tabela, entre a linha após o primeiro inner join de sua instrução, e a cláusula where. -
(Resolvido) Dois autores para um mesmo livro
pergunta respondeu ao marcelo2605 de Denis Courcy em MySQL
Oi 'marcelo2605', Faça assim:SELECT l.titulo, GROUP_CONCAT(a.autor SEPARATOR ", ") AS Autores, FROM livros l INNER JOIN aux ax ON ax.livros_id = l.id INNER JOIN autores a ON ax.autores_id = a.id GROUP BY l.titulo -
Ajuda! Duvida sobre relacionamento M para M no mysql
pergunta respondeu ao Elaine Mendes de Denis Courcy em MySQL
Oi 'Elaine Mendes', Creio que existem tabelas de mais. Você precisaria somante de quatro tabelas físicar para suportar seu modelo. Tabela Alunos, Tabela Pais (com um atributo indicador de pai ou mae), Tabela Empresas e Tabela Relacionamento_Empresas_Pais. A tabela pais seria o lado muitos de um relacionamento um para muitos entre aluno e pais O relacionamento entre Pais e Empresas é M:N (muitos para muitos) e, por isto, existe a tabela Relacionamento_Empresas_Pais A insersão de dados na tabela de relacionamento deve ser feita na mesma transação em que você está inserindo dados em Pais e Empresas antes do COMMIT para fechar toda a transação. Não é um processo automático. Você deverá escrever um código para isto. -
Oi 'Bentos2', Eu uso o MySQL com MyODBC e BDE para integrar o MySQL com Delphi. Para gerenciar o banco você poderá usar as ferramentas MySQL Workbench ou SQLlYog Baixe, também os manuais do MySQL em pdf. Sáo ótimos para tirar dúvidas. Todo este material você encontra os links aqui:http://scriptbrasil.com.br/forum/index.php?showtopic=30731
-
Faça assim: SELECT cod_aluno AS Codigo, nota_aluno AS Nota, IF(nota_aluno > 7.0, 'APROVADO', 'REPROVADO') AS Situacao FROM Notas
-
Recuperação de dados apagados/sobrescritos por importação de dados
pergunta respondeu ao Ronaldo Lopes de Denis Courcy em MySQL
Sem backup, só resta sentar e chorar. -
Como você não mostrou se o erro é em PHP ou MySQL vou transferir este tópico para a área de PHP que é o ponto mais lógico de estar havendo erro. Movendo MySQL-->>PHP
-
Oi 'Atriff', Entre outra inumeras coisas que podem ocorrer para derrubar a performance de um banco, o mais comum é a falta de índices em consultas e o excesso de campos trazidos em cada consulta. Muitas vezes vejo consultas trazendo * em vez da lista de campos, em outras vezes o uso do condicional LIKE na cláusula where gera table scan(que é aleitura completa da tabela). Outro erro comum é a falta de índices quando do uso de joins o que faz "sentar" o banco por causar table scan cascateado em cada tabela envolvida. Informe seu problema com maior precisão para que possamos ajudá-lo mais.
-
(Resolvido) Trigger para armazenar data e hora.
pergunta respondeu ao Edbatch de Denis Courcy em MySQL
Oi 'Edbatch', Era só você usar o tipo Timestamp em vez de usar Date. Mas já que você encontrou outra solução... -
(Resolvido) Valor duplicado com PRIMARY KEY
pergunta respondeu ao RodrigoGomes de Denis Courcy em MySQL
Desta forma você terá um único usuário e um único email dentro do sistema. Ou seja um segundo usuário não poderá usar um email já existente assim como não poderão haver dois usuários iguais. se é isto que você quer então esta é o código correto. (Uma dica: Sempre que trabalhar com bancos de dados lembre-se das aulas de teoria de conjuntos que você aprendeu no 1º e 2º graus. "par ordenado" são os indices compostos; "interseção, união, diferença de conjuntos" são os relacionamentos de join, left join, union, etc.) -
(Resolvido) Valor duplicado com PRIMARY KEY
pergunta respondeu ao RodrigoGomes de Denis Courcy em MySQL
Se a chave única do login ficar do jeito que está entãovocêpoderáter registros assim: (login1,email1) será uma chave única e (login1,email2) também será uma chave única ou (login1,email1) será uma chave única e (login2,email1) também será uma chave única. Se seu objetivo é que exista somente um login para cada usuário, o script alterado abaixo é mais indicado CREATE TABLE `usuarios` ( `id` int(20) NOT NULL AUTO_INCREMENT, `login` varchar(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `senha` varchar(100) COLLATE utf8_bin NOT NULL, `registro` tinyint(1) NOT NULL, `confirmacao` bigint(30) NOT NULL, `data` date NOT NULL, `ip` varchar(100) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `unique` (`login`) ) ENGINE=MyISAM AUTO_INCREMENT=20916 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; -
(Resolvido) Valor duplicado com PRIMARY KEY
pergunta respondeu ao RodrigoGomes de Denis Courcy em MySQL
Claro que sim. O conjunto (`id`,`login`,`email`) é a chave primária. Então (1, a, a) é uma chave valida sem repetição e (2,a,a) também é uma chave válida sem repetição. Sua chave primária deveria ser (`id`) e você deveria te uma chave UNIQUE para (`login`). Com este indice único você garantirá que haverá somente um login para cada registro na tabela. Entenda chave primária exclusivamente como a chave que liga uma tabela a outra tabela -
Se você vai utilizar sempre este tipo de atualização para a mesma tabela, o melhor mecanismo é colocar as orientações abaixo como instruções de uma storage procedure. Crie uma tabela temporária para receber os dados texto Carrege os dados nela com LOAD DATA LOCAL INFILE da mesma forma como voê já faz atualmente. Faça a atualização da tabela permanente com os dados da tabela temporária (dependendo do que fizer na linha acima você deverá trabalhar com FETCH e CURSOR) Drope a tabela temporária.
-
Por padrão este tipo de campo não é reorganizado pois dá muito trabalho e corre o risco de perder a integridade entre as tabelas, já que ele serve apenas para fazer o relacionamento com outras tabelas.
-
Ao usar views você estará desprezando o uso de indices. Ou seja suas consultas em views sempre serão em table scan. (ver manual MySQL seção Restrictions on Views. Talvez sua solução seja descartar as views e alimentar, por trigger, uma pequena tabela com nome, quantas vezes moreu, quantas vezes matou e diferença entre os dois. Por que por trigger? Para que você não tenha perda de tempo de I/O entre seu programa e o banco. Você garantirá agilidade no processamento e tempo de resposta. É necessário lapidar mais esta idéia. aqui é só um esboço..
-
Oi 'Atena' Você postou no forum errado. Movendo MySQL -->> PHP
-
Oi, 'roditalia' Desculpe, mas não resolveremos exercícios para você. Apenas tiraremos dúvidas. Como este exercício não está ligado a nenhuma linguagem e/ou banco, vou transferir o tópico para o forum de Lógica de Programação.
-
Oi 'Cleber Tavares Jr.' Faça assim: select distinct campo1, max(campo2) as campo2 from tabela group by campo1
-
update subcategoria set s.situacao=0 WHERE s.idsubcategoria NOT IN (SELECT DISTICT fk_id_subcategoria FROM produto GROUP BY fk_id_subcategoria)
-
Melhorando um pouco esta resposta. Crie o campo assim: alter table nomedaminhatabela ADD COLUMN dtm_lcto timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP Você não precisará alimentá-lo com NOW. A cada alteração do registro ele alterará automáticamente.
-
Duvida com Tabelas e FK e select com 2 tabelas e soma de campos
pergunta respondeu ao Davidson_N de Denis Courcy em MySQL
Otimizando o tempo de consulta. Coloca o saldo de quantidade e o saldo de valor na tabela de produto. Assim, Já que você tem que usar o registro de produto de qualquer maneira, seja para compra, seja para a venda, economizará tempo de busca não tendo que ir a tabela de estoque para pegar o último.. -
Que linguagem você usa para que eu possa transferir este tópico para o local correto?
-
(Resolvido) Criptografia de contéudo de banco de dados
pergunta respondeu ao Dayana Boni de Denis Courcy em MySQL
Oi Dyana, Vamos as respostas a seus questionamentos: Em segurança da informação o custo para o termo TUDO é caro demais. Você deverá decidir que tabelas são mais críticas que outras e, nestas tabelas, quais os dados(atributos) são os mais críticos.A princípio todos os dados do tipo CHAR ou VARCHAR ou TEXT ou semelhantes devem ser protegidos. o preço é que suas consultas a estes atributos deverão ser criptografadas. Você não poderá usar pesquisas com LIKE no atributo pois geraria table scan. Quando se fala em criptografia deve-se pensar em alta perda de performance caso não seja feito corretamente. Abaixo dois exemplos sobre o que comentei acima: Consulta a termo criptografado (Bom exemplo): select * from tabela where atributo criptografa(termo) Consulta com LIKE (Mau exemplo)select * from tabela where descriptografa(atributo) LIKE 'termo%' Sim, quando usado com equilíbrio. (Eu uso para guardar dados de prontuários médicos de pacientes de um cliente meu. Como outro exemplo, na tabela de pacientes, o nome não é criptografado, mas o endereço é.) Jamais use criptografia que você não possa desfazer. É melhor você desenvolver o seu algorítimo de criptografia e descriptografia.Bom, por enquanto é isso. Se houver mais dúvidas poste novamente. Senão, informe para que possamos fechar o tópico. -
Oi 'alm_renato' Faça assim: create database cli; use cli; create table cidades( cid_id smallint unsigned not null auto_increment, cid_nome varchar (40), primary key (cid_id) )engine = InnoDB default charset = latin1; create table clientes ( cli_id smallint unsigned not null auto_increment, cli_nome varchar(60), cli_idade integer, cli_sexo char(1), cli_telefone numeric(8,4), cli_cidade smallint UNSIGNED NOT NULL DEFAULT 0, cli_estado varchar (2), cli_salario double(6,2), primary key (cli_id), constraint fk_cli_cid foreign key(cli_cidade) references cidades(cid_id) on delete restrict on update cascade )engine = InnoDB default charset = latin1;
-
Você postou no forum errado. Movendo MySQL -->PHP