Você está aqui: Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata) |
|
Java MySQL - Como retornar uma lista das funções de data e hora suportadas pelo MySQL usando o método getTimeDateFunctions() da interface DatabaseMetaDataQuantidade de visualizações: 5121 vezes |
|
Em algumas situações gostaríamos de, via código, obter uma lista das funções de data e hora suportadas pelo MySQL. Para isso podemos usar o método getTimeDateFunctions() da interface DatabaseMetaData. É importante observar que, no Sun Microsystem's JDBC Driver for MySQL, a interface DatabaseMetaData é implementada por uma classe do mesmo nome, no pacote com.mysql.jdbc.DatabaseMetaData. E esta classe implementa o método getTimeDateFunctions() de forma a retornar a lista de funções de data e hora separadas por vírgulas. Veja um trecho de código Java no qual listamos todas as funções de data e hora suportados no MySQL 5.0: package estudosbancodados; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.SQLException; public class EstudosBancoDados{ public static void main(String[] args) { // strings de conexão String databaseURL = "jdbc:mysql://localhost/estudos"; String usuario = "root"; String senha = "osmar1234"; String driverName = "com.mysql.jdbc.Driver"; try { Class.forName(driverName).newInstance(); Connection conn = DriverManager.getConnection(databaseURL, usuario, senha); // vamos obter um objeto da classe com.mysql.jdbc.DatabaseMetaData DatabaseMetaData dbmd = conn.getMetaData(); // vamos obter a lista de funções de data e hora disponíveis // nesta versão do MySQL String funcoesDataHora = dbmd.getTimeDateFunctions(); // como a lista de funções está separada por vírgulas, vamos obter // uma matriz de strings String funcoes[] = funcoesDataHora.split(","); // vamos mostrar o resultado for(int i = 0; i < funcoes.length; i++){ System.out.println(funcoes[i]); } } catch (SQLException ex) { System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } catch (Exception e) { System.out.println("Problemas ao tentar conectar com o banco de dados: " + e); } } } Ao executarmos este código teremos o seguinte resultado: DAYOFWEEK WEEKDAY DAYOFMONTH DAYOFYEAR MONTH DAYNAME MONTHNAME QUARTER WEEK YEAR HOUR MINUTE SECOND PERIOD_ADD PERIOD_DIFF TO_DAYS FROM_DAYS DATE_FORMAT TIME_FORMAT CURDATE CURRENT_DATE CURTIME CURRENT_TIME NOW SYSDATE CURRENT_TIMESTAMP UNIX_TIMESTAMP FROM_UNIXTIME SEC_TO_TIME TIME_TO_SEC |
|
Link para compartilhar na Internet ou com seus amigos: | |
MySQL ::: Dicas & Truques ::: Chaves, Índices e Restrições de Integridade Referencial |
Como criar chaves estrangeiras no MySQL - Como criar Foreign Keys em tabelas do MySQLQuantidade de visualizações: 88489 vezes |
O que é chave estrangeira (foreign key)? O papel da chave estrangeira é manter uma referência a um registro presente em outra tabela. Imagine o seguinte cenário. Temos uma tabela livros e uma tabela autores. Neste cenário, um autor pode escrever vários livros e um livro pode ser escrito somente por um determinado autor. Aqui temos uma relação 1:N, ou seja, um para muitos: um autor pode escrever zero, um ou vários livros. Comece analisando a tabela autores: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment nome varchar(45) NO - email varchar(45) NO - CREATE TABLE autores( id int(10) unsigned NOT NULL auto_increment, nome varchar(45) NOT NULL, email varchar(45) NOT NULL, PRIMARY KEY(id) )ENGINE=InnoDB; Analise agora a tabela livros: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment titulo varchar(45) NO - paginas int(10) unsigned NO - id_autor int(10) unsigned NO - CREATE TABLE livros( id INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, titulo VARCHAR(45) NOT NULL, paginas INTEGER UNSIGNED NOT NULL, id_autor INTEGER UNSIGNED NOT NULL, PRIMARY KEY(id) )ENGINE = InnoDB; O campo id é do tipo int, auto-incremento e foi marcado como chave primária. Dessa forma, o campo id identifica unicamente cada livro. O campo id_autor é do tipo int e sua função é guardar o id do autor que escreveu um determinado livro. Ao trazer o valor do campo id da tabela autores para o campo id_autor da tabela livros nós estamos relacionando as duas tabelas. O campo id_autor, neste cenário, é a chave estrangeira, pois seu valor sempre refletirá o valor do campo id da tabela autores (a única exceção é quando queremos deixar, temporariamente, um livro sem autor). Lembre-se, em uma relação 1:N, a chave estrangeira, em geral, ficará no lado N da relação. Integridade Referencial (Restrições de Chave Estrangeira) - Referential Integrity (Foreign Key Constraints) Imagine agora que você inseriu alguns registros na tabela autores e na tabela livros. Todas as vezes que o valor do campo id_autor na tabela livros for igual ao valor do campo id na tabela autores nós estaremos criando um relação autor-livro. É possível, a qualquer momento, listar um livro e saber de imediato o id do seu autor (isso permite fazer um join com a tabela autores para obter os dados do respectivo autor). Mas, o que acontecerá se excluirmos um registro na tabela autores e, mais tarde, descobrirmos que o campo id_autor da tabela livros guardava uma referência para o autor excluído? Teremos a quebra da integridade referencial. Para evitar tais situações, é responsabilidade do programador escrever códigos de verificações para prevenir estas ocorrências. Os bancos de dados, e principalmente o MySQL, possuem mecanismos para reforçar esta proteção: restrições de chave estrangeira. As restrições de chave estrangeira asseguram duas situações possíveis: 1) Não permitir que um autor seja excluído quando qualquer livro possuir uma referência a ele; 2) Se o autor for excluído, todos os livros que o referenciam também o serão. Definindo a chave estrangeira na tabela livros usando o atributo CONSTRAINT FOREIGN KEY REFERENCES Vamos agora reescrever o comando DDL CREATE TABLE para a tabela livros de forma a aplicar as restrições de chaves estrangeiras. Veja a nova versão: CREATE TABLE livros( id INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, titulo VARCHAR(45) NOT NULL, paginas INTEGER UNSIGNED NOT NULL, id_autor INTEGER UNSIGNED NOT NULL, PRIMARY KEY(id), CONSTRAINT livros_autores FOREIGN KEY(id_autor) REFERENCES autores(id) )ENGINE = InnoDB; A estrutura da tabela livros será alterada para aquela mostrada abaixo: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment titulo varchar(45) NO - paginas int(10) unsigned NO - id_autor int(10) unsigned NO MUL - ErrorNr. 1451: Cannot delete or update a parent row: a foreign key constraint fails (`estudos/livros`, CONSTRAINT `livros_autores` FOREIGN KEY (`id_autor`) REFERENCES `autores` (`id`)) Em mais dicas desta seção você aprenderá a usar as cláusulas ON DELETE e ON UPDATE e as ações RESTRICT, SET NULL, CASCADE e NO ACTION. Todas estas cláusulas e ações são usadas para reforçar a integridade referencial de suas bases de dados. |
Python ::: Dicas & Truques ::: Strings e Caracteres |
Como pesquisar substrings em strings usando a função index() da linguagem PythonQuantidade de visualizações: 8223 vezes |
Este exemplo mostra como pesquisar uma substring em uma string usando o método index() do Python. A assinatura desta função é:index(substring[, start[, end]]) onde substring é a substring a ser pesquisada e start e end são argumentos opcionais que definem os índices de início e fim da pesquisa. Se a substring não for encontrada, uma exceção do tipo ValueError é levantada. Se for encontrada, o índice do primeiro caractere é retornado. Veja o código Python completo para a dica: def main(): frase = "Gosto de Python e JavaScript" try: indice = frase.index("Python") except ValueError: print("A palavra não foi encontrada") else: print("A palavra foi encontrada no índice", indice) if __name__== "__main__": main() Ao executarmos este código Python nós teremos o seguinte resultado: A palavra foi encontrada no índice 9. |
Python ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar de uma matriz é uma matriz identidade usando PythonQuantidade de visualizações: 914 vezes |
Seja M uma matriz quadrada de ordem n. A matriz M é chamada de Matriz Identidade de ordem n (indicada por In) quando os elementos da diagonal principal são todos iguais a 1 e os elementos restantes são iguais a zero. Para melhor entendimento, veja a imagem de uma matriz identidade de ordem 3, ou seja, três linhas e três colunas: Veja um código Python completo no qual nós declaramos uma matriz quadrada de ordem 3, pedimos para o usuário informar os valores de seus elementos e no final informamos se a matriz é uma matriz identidade ou não: # método principal def main(): n = 3; # ordem da matriz quadrada matriz = [[0 for x in range(n)] for y in range(n)] # matriz quadrada identidade = True # vamos pedir para o usuário informar os elementos da matriz for i in range(n): for j in range(n): matriz[i][j] = int(input("Elemento na linha {0} e coluna {0}: ".format( (i + 1), (j + 1)))) # agora verificamos se a matriz é uma matriz identidade for linha in range(n): for coluna in range(n): if (matriz[linha][coluna] != 1) and (matriz[coluna][linha] != 0): identidade = False break # agora mostramos a matriz lida print() for i in range(n): for j in range(n): print(matriz[i][j], end=' ') print() if identidade: print("\nA matriz informada é uma matriz identidade.") else: print("\nA matriz informada não é uma matriz identidade.") if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Elemento na linha 1 e coluna 1: 1 Elemento na linha 1 e coluna 2: 0 Elemento na linha 1 e coluna 3: 0 Elemento na linha 2 e coluna 1: 0 Elemento na linha 2 e coluna 2: 1 Elemento na linha 2 e coluna 3: 0 Elemento na linha 3 e coluna 1: 0 Elemento na linha 3 e coluna 2: 0 Elemento na linha 3 e coluna 3: 1 1 0 0 0 1 0 0 0 1 A matriz informada é uma matriz identidade. |
VB.NET ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar o tamanho de uma string em VB.NET usando a propriedade Length da classe StringQuantidade de visualizações: 8660 vezes |
Podemos obter o tamanho de uma string, ou seja, a quantidade de caracteres em uma palavra, frase ou texto em VB.NET usando a propriedade Length da classe String do .NET Framework. Esta propriedade retorna um número inteiro indicando a quantidade de caracteres no objeto String atual. Veja um exemplo de seu uso: Imports System Module Program Sub Main(args As String()) Dim site As String = "Arquivo de Códigos" ' obtém o tamanho da string Dim tam As Integer = site.Length Console.WriteLine("A string contém " & tam & " caracteres") Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executar este código VB.NET nós teremos o seguinte resultado: A string contém 18 caracteres |
C ::: C para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como somar os elementos da diagonal principal de uma matriz em CQuantidade de visualizações: 4242 vezes |
A Matriz quadrada é um tipo especial de matriz que possui o mesmo número de linhas e o mesmo número de colunas, ou seja, dada uma matriz Anxm, ela será uma matriz quadrada se, e somente se, n = m, onde n é o número de linhas e m é o número de colunas. Em geral as matrizes quadradas são chamadas de Matrizes de Ordem n, onde n é o número de linhas e colunas. Dessa forma, uma matriz de ordem 4 é uma matriz que possui 4 linhas e quatro colunas. Toda matriz quadrada possui duas diagonais, e elas são muito exploradas tanto na matemática quanto na construção de algorítmos. Essas duas diagonais são chamadas de Diagonal Principal e Diagonal Secundária. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito. Veja: Nesta dica veremos como calcular a soma dos valores dos elementos da diagonal principal de uma matriz usando C. Para isso, só precisamos manter em mente que a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. Assim, tudo que temos a fazer é converter essa regra para código C. Veja um trecho de código C completo no qual pedimos para o usuário informar os elementos da matriz e em seguida mostramos a soma dos elementos da diagonal superior: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ // vamos declarar e construir uma matriz de três linhas // e três colunas int linhas = 3, colunas = 3; int matriz[linhas][colunas]; // guarda a soma dos elementos na diagonal principal int soma_diagonal = 0; int i, j; // vamos ler os valores para os elementos da matriz for(i = 0; i < linhas; i++){ // linhas for(j = 0; j < colunas; j++){ // colunas printf("Informe o valor para a linha %d e coluna %d: " , i, j); scanf("%d", &matriz[i][j]); } } // vamos mostrar a matriz da forma que ela // foi informada printf("\n"); // percorre as linhas for(i = 0; i < linhas; i++){ // percorre as colunas for(j = 0; j < colunas; j++){ printf("%d ", matriz[i][j]); } // passa para a próxima linha da matriz printf("\n"); } // vamos calcular a soma dos elementos da diagonal // principal for(i = 0; i < linhas; i++){ for(j = 0; j < colunas; j++){ if(i == j){ soma_diagonal = soma_diagonal + matriz[i][j]; } } } // finalmente mostramos a soma da diagonal principal printf("\nA soma dos elementos da diagonal principal é: %d" , soma_diagonal); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Informe o valor para a linha 0 e coluna 0: 3 Informe o valor para a linha 0 e coluna 1: 7 Informe o valor para a linha 0 e coluna 2: 9 Informe o valor para a linha 1 e coluna 0: 2 Informe o valor para a linha 1 e coluna 1: 4 Informe o valor para a linha 1 e coluna 2: 1 Informe o valor para a linha 2 e coluna 0: 5 Informe o valor para a linha 2 e coluna 1: 6 Informe o valor para a linha 2 e coluna 2: 8 3 7 9 2 4 1 5 6 8 A soma dos elementos da diagonal principal é: 15 |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |