-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Oi, axavier34 Favor consultar Manual do MySQL. Ele já possui funções prontas.
-
fazer diferença de horas que estão no mysql, mas...
pergunta respondeu ao Wallace Locus de Denis Courcy em PHP
Caramba, 'Wallace Locus'! Parece que você gosta de fazer Rio x São Paulo via Bankcoc. Use a função TIMEDIFF do MySQL e resolva já este caso. exemplo: select timediff("23:59:59", "16:24:40"); /*--> Resp.: 07:35:19*/ select timediff("16:24:40","23:59:59"); /*--> Resp.: -07:35:19*/ Para maiores detalhes, leia o Manual do MySQL versão 4.1 (traduzido para o português) - Seção 6.3.4. Funções de Data e Hora. -
Oi, 'Carlos Rocha' Um de seus erros está nesta linha: inner join pedidos p on p.pedidoID = p.pedidoID . Você está comparando o pedido com ele mesmo. Não vai dar erro, mas, também, não vai retornar nada. Corrija a linha para inner join pedidos p on p.pedidoID = d.pedidoID. O segundo erro está aqui: select Count(*) from detalhespedidos d . Quando você disse: Corrija a linha para select p.pedidoID, Count(*) from detalhespedidos d Substitua a linha order by p.pedidoID por GROUP BY p.pedidoID Mais uma coisa. como você vai fazer um filtro por nome de cliente na tabela cliente, sugiro que você crie um índice por nome para que não fique lenta a sua pesquisa. ALTER TABLE CLIENTTE ADD INDEX (nome); E, coo você está usando inner join, não esqueça de verificar se há indices pelos seguintes atributos nas respectivas tabelas: pedidoID ->> pedidos pedidoID ->> detalhespedidos clienteID ->> cliente
-
'samirbh' Neste caso você não conseguirá criar procedure e triggers, também. Entre em contato com a inside e veja se eles podem te ajudar no tocante a alteração de seus privilégios de usuário. Creio que esta seja a sua única opção.
-
Melhor maneira de fazer consulta a cada 1 segundo
pergunta respondeu ao pocci de Denis Courcy em MySQL
Oi, Fabricio! Se você está usando o MySQL 5.1 ou superior, você pode usar o Event Scheduler e deixar esta tarefa a cargo do servidor de banco. Para maiores detalhes leia o Chapter 20. Event Scheduler do Manual do MySQL versão 5.1 -
Oi, 'samirbh' Pelo que percebo você ainda não conseguiu resolver o problema de senha do root que você postou no tópico senha do schema, descobrir O servidor de banco está local? Se sim, logue-se nele e proceda as mudanças indicadas naquele tópico. Após as mudanças você terá pleno acesso ao servidor de banco com qualquer front-end para este SGBD.
-
Oi, 'alemaodp' Veja se assim te ajuda: Seu SQL atual SELECT escola_disciplinas.descricao as descricao, escola_avaliacao.nota as nota, date_format(escola_avaliacao.data_avaliacao, '%d/%m/%Y') as data, escola_alunos.nome as nome, escola_avaliacao.observacao as obs FROM escola_alunos INNER JOIN (escola_disciplinas INNER JOIN escola_avaliacao ON escola_disciplinas.codigo = escola_avaliacao.cod_disciplina) ON escola_avaliacao.cod_aluno = escola_alunos.matricula WHERE escola_alunos.cod_turma = 5 order by descricao Novo SQL SELECT escola_disciplinas.descricao as descricao, escola_avaliacao.nota as nota, date_format(escola_avaliacao.data_avaliacao, '%d/%m/%Y') as data, escola_alunos.nome as nome, escola_avaliacao.observacao as obs FROM escola_alunos INNER JOIN escola_avaliacao ON escola_avaliacao.cod_aluno = escola_alunos.matricula INNER JOIN escola_disciplinas ON escola_disciplinas.codigo = escola_avaliacao.cod_disciplina INNER JOIN escola_faltas ON escola_faltas.cod_aluno = escola_alunos.matricula Uma dica: Trate um SQL como se fosse uma linguagem de programação. Ou seja, mantenha o código SQL estruturado para que você possa entendê-lo mais tarde.
-
Movendo MySQL ---> PHP
-
Movendo MySQl --> PHP
-
Oi, Fernando! Pelo que você está informando há a necessidade de fazer tunning no seu servidor de banco. Para tal você deverá fornecer diversas informações que, sem elas, não é possível te ajudar: Dados do seu servidor, tais como memória, processador, tamanho do HD e quanto ainda está livre, que serviços, além do mysql, estão rodando; Quantos terminais estão acessando este servidor; Lista de variáveis do MySQL --> obtida com o comando show variables; Lista de status do MySQL --> obtida com o comando show status;
-
Ricardo Passe o modelo de dados que eu verifico e te ensino.
-
Oi, Guido! Neste caso você vai incluir uma tabela de domínio, tal como a tabela patologia. Chamaremos esta nova tabela de analise_postural e terá esta estrutura: CREATE TABLE analise_postura ( idAnalise int unsigned not null auto_increment, ndTipoAnalise char(2) not null default 'VA', /* VA = Vista Anterior, VP = Vista Posterior, VL = Vista Lateral*/ nmAnalise varchar(40) not null, /*Gno Varo, Geno Flexo, etc*/ PRIMARY KEY(idAnalise) ); E outra tabela de relacionamento muitos para mitos entre aluno e analise_postura que chamaremos rl_aluno_postura que terá esta estrutura:CREATE TABLE rl_aluno_postura ( idAluno int unsigned not null, idAnalise int unsigned not null, dtavaliacao date not null, dsObservacao varchar(255), PRIMARY KEY (idAluno, idAnalise, dtAvaliacao), CONSTRAINT fk_rlAnalisePosturalAluno_001 FOREIGN KEY (idAluno) REFERENCES aluno(idAluno) ON DELETE NO ACTION, ON UPDATE NOT ACTION, CONSTRAINT fk_rlAnalisePosturalAluno_002 FOREIGN KEY (idAnalise) REFERENCES analise_postura(idAnalise) ON DELETE NO ACTION, ON UPDATE NOT ACTION ); As lacunas tracejadas em sua pesquisa serão preenchidas no campo observação, quando apropriado.
-
Movendo MySQL -->> PHP
-
Quando você tem uma consulta que é muito utilizada e é padronizada Uma das razões é a facilidade de manutenção.
-
Sim. Tem que ser do tipo string. Como campo de telefone é um tamanho fixo eu usaria char em vez de varchar. O motivo é que se a base de dados crescer vou economizar 1 byte por campo.
-
Se você vai salvar com o traço "-" separatório , então deverá ser char ou varchar. Se você salvar sem o traço então você pode usar o tipo bitgint.
-
Oi, 'rickzale' Você perguntou: Resposta: Quase tudo. Algumas coisas você terá que fazer via programação outras via bancos de dados através de storages procedures, UDFs (funções definidas pelo usuário) e triggers.O mais importante é a modelagem de dados. Ela é que vai direcionar seu pensamento e trabalho.
-
Oi, 'Guido Gabriel' Lembra do post #4 do seu tópico (Resolvido) [Duvida] modelagem de dados? Na tabela rl_patologia_aluno eu coloquei um atributo chamado dsobservacao, pois já tinha identificado este tipo de problema. Como você está colocando mais atributos e estes novos atributos são fixos, então eles devem estar na tabela rl_patologia_aluno, também. Pois são atributos que não pertencem ao aluno nem a patologia, mas pertencem a um relacionamento entre patologia e aluno. As perguntas como Foi submetido a algum tipo de cirurgia? ou Já sofreu alguma fratura? podem ser atributos char(1) (do tipo indicador que receberão S ou N para sim ou não). As outras como Há quanto tempo?___________________________________________ ou Onde? Há quanto tempo?_________________________________________________ podem ser varchar(255) (do tipo descrição). Por enquanto é só. Vai postando suas dúvidas que iremos refinanando esta tabela
-
Respondendo 1 = sim 2 = é uma abrevi~ção para evitar escrever o nome todo da tabela. 3 = Não sei. Não entendo de PHP. Apenas sei que o nome do ganhador será informado através do atributo pc.nome. O email virá través do atributo pc.email e o nome da promoção través dio atributo p.nome.
-
Oi, cassianooliver! O mais correto será usar o INNER JOIN em vez do LEFT JOIN informado pelo ESerra. Se você usar o LEFT JOIN, e houver inconsistência em seu arquivo ele trará os registros inconsistentes. Com INNER JOIN somente os registros consistentes virão. Um outro ponto a analisar é a performance da consulta apresentada através da ordem em que as tabelas foram selecionadas. Pode parecer inexpressivo o tempo de retorno desta consulta se a quantidade de registros em promocoes_ganhadores for pequena. Mas, se for grande, então você deve modificar sua consulta para que pegue primeiro a tabela promocoes, depois a tabela promocoes_ganhadores e, por último, a tabela promocoes_cadastro. Você deve informar ao MySQL que a consulta se dará da esquerda para a direita, usando a cláusula STRAIGHT_JOIN. Então, sua consulta ficaria assim:SELECT STRAIGHT_JOIN pc.nome, pc.email, p.nome FROM promocoes p INNER JOIN promocoes_ganhadores pg ON pg.pid = p.id INNER JOIN promocoes_cadastro pc ON pc.id = pg.cid WHERE pg.pid = 'ID DA PROMOÇÃO'
-
(Resolvido) [Duvida] modelagem de dados
pergunta respondeu ao Guido Gabriel de Denis Courcy em MySQL
Oi,'Guido Gabriel' Você disse: A tabela rl_patologia_aluno ficará assim: IdAluno idPatologia 1 2 1 4 1 5 A consulta a estes dados, deste aluno, ficará assim:SELECT cod_aluno, nome_Aluno, nome_patologia FROM aluno a INNER JOIN rl_patologia_aluno rl ON rl.cod_aluno = a.cod_aluno INNER JOIN patologia p ON p.cad_patologia = rl.cad_patologia WHERE a.cod_aluno = 1 Na tabela rl_patologia_aluno esqueci de colocar a chave primária. Segue abaixo a tabela corrigida:CREATE TABLE rl_patologia_aluno ( idAluno integer unsigned not null, /* supondo que este seja o nome e o tipo que você deu a este atributo na tabela aluno*/ idPatologia integer unsigned not null, CONSTRAINT fk_rlPatologiaAluno_001 FOREIGN KEY (idAluno) REFERENCES aluno(idAluno) ON DELETE NO ACTION, ON UPDATE NOT ACTION, CONSTRAINT fk_rlPatologiaAluno_002 FOREIGN KEY (idPatologia) REFERENCES patologia(idpatologia) ON DELETE NO ACTION, ON UPDATE NOT ACTION. primary key (idAluno, idPatologia) );Esta chave primária vai assegurar que para cada para ordenado aluno x patologia, só exista um registro. Mudando de assunto, Como boa prática eu uso um padrão para a codficação do nome de um atributo (campo). As primeiras duas letras indicam o que aquele atributo representa em minha tabela. Por exemplo: id = Identificador (o que será usado como chave primária) nm = nome de algo ou alguém ds = descrição de algo nd = indicador (normalmente booleano para informar sim, não, entrada, saida, credito, debito, etc) dd = dia mm = mes aa = ano hh = hora dt = data rl = relação ou relacionamento etc. -
(Resolvido) Consulta data inicial e data final
pergunta respondeu ao tspenido de Denis Courcy em MySQL
Complementando o post anterior, para saber a maior data use SELECT MAX(STR_TO_DATE(campo, "%d/%m/%Y %H:%i:%s")) FROM tabela Para saber a menor data troque a função MAX por MIN -
(Resolvido) Consulta data inicial e data final
pergunta respondeu ao tspenido de Denis Courcy em MySQL
Oi, 'tspenido' ! Por padrão o campo date no MySQL é tratado como uma string 'aaaa-mm-dd', onde aaaa é o ano, mm é o mes e dd é o dia. Há diversas funções descritas no manual do mysql para formatar e tratar datas. Se você quizer tratar uma data em forma ordenada, ascendente ou descendente, o padrão do MySQl é o melhor. Para transformar sua data em uma data do mysql você pode usar a função STR_TO_DATE que consta escrita no manual do MySQL versão 4.1 tradução em português, seção 6.3.4. Funções de Data e Hora SELECT STR_TO_DATE("16/8/2006 00:00:00", "%d/%m/%Y %H:%i:%s") -
(Resolvido) [Duvida] modelagem de dados
pergunta respondeu ao Guido Gabriel de Denis Courcy em MySQL
Oi, 'Guido Gabriel'! Você disse: Creio que você não entendeu o que falei no post anterior. Quando descrevi a tabela patologia eu já fiz pensando em futuros acréscimos. O conteúdo da tabela ficaria assim: IdPatologia NmPatologia 1 Tabagismo 2 Diabetes 3 Hipertensão 4 Cardiopatia 5 Infarto 6 Ponte de Safena 7 Prolapso de Válvula Mitral 8 Cateterismo 9 Hipercolesterolemia e outros... Observando melhor seu primeiro post, em virtude de elementos como ( )Osteoartrose ___________________________ você pode acrescentar, na tabela rl_patologia_aluno, um atrubuto descritivo, do tipo varchar para possibilitar o preenchimento da lacuna. Então a tabela rl_patologia_aluno ficaria assim:CREATE TABLE rl_patologia_aluno ( idAluno integer unsigned not null, idPatologia integer unsigned not null, dsobservacao varchar(255), CONSTRAINT fk_rlPatologiaAluno_001 FOREIGN KEY (idAluno) REFERENCES aluno(idAluno) ON DELETE NO ACTION, ON UPDATE NOT ACTION, CONSTRAINT fk_rlPatologiaAluno_002 FOREIGN KEY (idPatologia) REFERENCES patologia(idpatologia) ON DELETE NO ACTION, ON UPDATE NOT ACTION ); -
(Resolvido) [Duvida] modelagem de dados
pergunta respondeu ao Guido Gabriel de Denis Courcy em MySQL
Oi, 'Guido Gabriel' Este é um caso típico de relacionamento muitos para muitos. Além da tabela aluno, você deverá ter uma tabela de domínio que vou chamar aqui de patologia. Esta tabela será da seguinte forma: CREATE TABLE patologia ( idPatologia integer unsigned not null auto_increment, /*que será o identificador de chave primária desta tabela */ nmPatologia varchar(30) not null, /* que conterá o nome da patologia, ou seja, o descritivo que você usou*/ primary key(idPatologia), unique key (nmPatologia) /* que garantirá que exista apenas um nome para uma ppatologis e permitirá uma busca rápida por este atributo */ ); E uma terceira tabela, que chamarei aqui de rl_patologia_aluno, deverá ser criada. Ela será a tabela de relacionamento que permitirá a ligação da patologia com o aluno. Ela deverá ser criada assim:CREATE TABLE rl_patologia_aluno ( idAluno integer unsigned not null, /* supondo que este seja o nome e o tipo que você deu a este atributo na tabela aluno*/ idPatologia integer unsigned not null, CONSTRAINT fk_rlPatologiaAluno_001 FOREIGN KEY (idAluno) REFERENCES aluno(idAluno) ON DELETE NO ACTION, ON UPDATE NOT ACTION, CONSTRAINT fk_rlPatologiaAluno_002 FOREIGN KEY (idPatologia) REFERENCES patologia(idpatologia) ON DELETE NO ACTION, ON UPDATE NOT ACTION ); Nota: As cláusulas CONSTRAINTS só surtirão efeito se você usar o ENGINE InnoDB em suas tabelas. Para Maiores informações sobre as construções de tabelas e o uso de suas cláusulas, leia o manual do MySQl versão 4.1 (tradução em portugûes) seção 6.5.3. Sintaxe CREATE TABLE