Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: MS SQL Server ::: Dicas & Truques ::: Tipos de Dados

Aprenda a usar o tipo de dados int do SQL Server

Quantidade de visualizações: 11489 vezes
O tipo de dados int do SQL Server deve ser usado quando precisamos armazenar valores inteiros (sem a parte fracionária) na faixa que variará de -2^31 (-2.147.483.648) até 2^31-1 (2.147.483.647). Este tipo de dados requer 4 bytes (32 bits) para armazenar seus valores.

Há, porém, algumas perguntas a serem respondidas e que o ajudarão a se decidir pelo uso deste tipo de dados ou outro que permite uma faixa menor ou maior de valores:

a) O campo vai ser usado como chave primária em uma tabela de clientes? Depende muito do tamanho do seu negócio. Se o sistema vai ser usado em uma pequena locadora podemos deduzir que a quantidade de clientes não deverá ultrapassar 10.000 (o que pode ser armazenado no tipo de dados smallint). Mas, o mesmo pode ser dito em relação a uma rede de supermercados ou sistemas financeiros com abrangência nacional?

b) O campo vai ser usado como chave primária em uma tabela de transações financeiras? Neste caso este campo é uma boa escolha (e já vá pensando em convertê-lo em bigint mais adiante). Não há nenhuma garantia que um sistema que hoje registra 5.000 transações financeiras mensais não estará realizando 100.000 no mês que vem.

c) O campo vai ser usado, em uma tabela de produtos, como chave estrangeira para uma tabela de categorias? Depende muito da quantidade de categorias de produtos que o sistema possuirá. Mas, em geral, a quantidade de categorias não ultrapassa 1.000 (o que pode ser armazenado no tipo de dados smallint, ou quem sabe, um tinyint).

Tendo dito isso, analise bem o uso do campo, afinal, 4 bytes para cada registro em uma tabela contendo milhões de registros fazem uma grande diferença.

Veja no trecho de código Transact-SQL a seguir como podemos declarar uma variável do tipo int, definir um valor para ela e exibí-lo em uma consulta SELECT:

-- vamos declarar uma variavel do tipo int
DECLARE @valor int;

-- vamos definir o valor para a variavel
......


Veja agora um comando SQL DDL para criar uma tabela chamada usuarios que contém dois campos do tipo int:

CREATE TABLE [dbo].[usuarios] (
  [id] int IDENTITY(1, 1) NOT NULL,
  [nome] varchar(150) COLLATE Latin1_General_CI_AS NOT NULL,
  [senha] varchar(20) COLLATE Latin1_General_CI_AS NOT NULL,
......


Aqui os campos do tipo int são: id (chave primária) e quant_acessos, que registrará quantas vezes o usuário acessou a aplicação.

Link para compartilhar na Internet ou com seus amigos:

PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como obter a quantidade de elementos em um vetor (array ou matriz de uma dimensão) em PHP

Quantidade de visualizações: 7706 vezes
Em várias situações de programação em PHP nós precisamos contar, ou seja, obter a quantidade de elementos em um vetor, também chamado de array ou matriz unidimensional (de uma dimensão). Para isso nós podemos usar as funções count() ou sizeof().

Veja um exemplo completo de seu uso:

<html>
<head>
  <title>Estudos PHP</title>
</head>
 
<body>

<?php  
  $pessoas[0] = "Osmar J. Silva";
  $pessoas[1] = "Salvador M. Andrade";
......


Ao executar este código nós teremos o seguinte resultado:

O vetor possui 3 elementos.


C# ::: Dicas & Truques ::: Strings e Caracteres

Como embaralhar as palavras em uma frase ou texto usando C#

Quantidade de visualizações: 11791 vezes
Nesta dica mostrarei como podemos usar a linguagem C# para embaralhar, ou seja, exibir as palavras de uma string em ordem aleatória.

Veja o código C# completo para o exemplo:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto de VB.NET, Java e C#";
      // mostra a frase na ordem original
      Console.WriteLine("Ordem original: " + frase);

      // converte em um vetor de palavras
      string[] frase2 = frase.Split(' ');

      // vamos embaralhar 5 vezes
      Embaralhar(ref frase2, 5);

      // junta as partes da string novamente
      frase = String.Join(" ", frase2);

      // exibe o resultado
      Console.WriteLine("Embaralhada: " + frase);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
......


Ao executar este código C# nós teremos o seguinte resultado:

Ordem original: Gosto de VB.NET, Java e C#
Embaralhada: VB.NET, C# Java de e Gosto


Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata)

Java MySQL - Como obter os tipos de dados suportados pelo MySQL e seus correspondentes JDBC usando o método getTypeInfo() da interface DatabaseMetaData

Quantidade de visualizações: 5805 vezes
Em algumas situações precisamos obter os tipos de dados suportados pelo MySQL e mapeá-los para seus correspondentes JDBC. Esta não é uma tarefa fácil, mas que, com uma pequena ajuda dos recursos de reflexão do Java, pode ser realizada depois de algumas xícaras de café.

O primeiro passo é obter os tipos de dados suportados pelo MySQL com uma chamada ao método getTypeInfo() da interface DatabaseMetaData. Os campos do ResultSet que nos interessam são TYPE_NAME e DATA_TYPE. TYPE_NAME traz o nome do tipo de dados no MySQL enquanto DATA_TYPE traz o tipo JDBC correspondente como um inteiro. Assim, o que temos que fazer é usar reflexão para obter todos os campos da classe java.sql.Types e efetuar um mapeamento entre os tipos.

Veja o código completo para o exemplo:

package estudosbancodados;

import java.lang.reflect.Field;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;

public class EstudosBancoDados{
  static Map mapa; // usado para mapear os tipos JDBC
  
  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 os tipos de dados suportados por esta versão do MySQL
      // e seus correspondentes JDBC
      ResultSet tiposDados = dbmd.getTypeInfo();
      while(tiposDados.next()){
        System.out.println("MySQL: " + tiposDados.getString("TYPE_NAME") + " - JDBC: " 
          + getJdbcTypeName(Integer.parseInt(tiposDados.getString("DATA_TYPE"))));
      }
      
      // vamos fechar o ResultSet
      tiposDados.close();
    }
    catch (SQLException ex) {
      System.out.println("SQLException: " + ex.getMessage());
......


O resultado da execução deste código foi:

MySQL: BIT - JDBC: BIT
MySQL: BOOL - JDBC: BIT
MySQL: TINYINT - JDBC: TINYINT
MySQL: TINYINT UNSIGNED - JDBC: TINYINT
MySQL: BIGINT - JDBC: BIGINT
MySQL: BIGINT UNSIGNED - JDBC: BIGINT
MySQL: LONG VARBINARY - JDBC: LONGVARBINARY
MySQL: MEDIUMBLOB - JDBC: LONGVARBINARY
MySQL: LONGBLOB - JDBC: LONGVARBINARY
MySQL: BLOB - JDBC: LONGVARBINARY
MySQL: TINYBLOB - JDBC: LONGVARBINARY
MySQL: VARBINARY - JDBC: VARBINARY
MySQL: BINARY - JDBC: BINARY
MySQL: LONG VARCHAR - JDBC: LONGVARCHAR
MySQL: MEDIUMTEXT - JDBC: LONGVARCHAR
MySQL: LONGTEXT - JDBC: LONGVARCHAR
MySQL: TEXT - JDBC: LONGVARCHAR
MySQL: TINYTEXT - JDBC: LONGVARCHAR
MySQL: CHAR - JDBC: CHAR
MySQL: NUMERIC - JDBC: NUMERIC
MySQL: DECIMAL - JDBC: DECIMAL
MySQL: INTEGER - JDBC: INTEGER
MySQL: INTEGER UNSIGNED - JDBC: INTEGER
MySQL: INT - JDBC: INTEGER
MySQL: INT UNSIGNED - JDBC: INTEGER
MySQL: MEDIUMINT - JDBC: INTEGER
MySQL: MEDIUMINT UNSIGNED - JDBC: INTEGER
MySQL: SMALLINT - JDBC: SMALLINT
MySQL: SMALLINT UNSIGNED - JDBC: SMALLINT
MySQL: FLOAT - JDBC: REAL
MySQL: DOUBLE - JDBC: DOUBLE
MySQL: DOUBLE PRECISION - JDBC: DOUBLE
MySQL: REAL - JDBC: DOUBLE
MySQL: VARCHAR - JDBC: VARCHAR
MySQL: ENUM - JDBC: VARCHAR
MySQL: SET - JDBC: VARCHAR
MySQL: DATE - JDBC: DATE
MySQL: TIME - JDBC: TIME
MySQL: DATETIME - JDBC: TIMESTAMP
MySQL: TIMESTAMP - JDBC: TIMESTAMP


R ::: Dicas de Estudo e Anotações ::: Variáveis e Constantes

Regras para a escolha de nomes de variáveis na linguagem R

Quantidade de visualizações: 1345 vezes
A linguagem R, assim como quase todas as linguagens de programação, impõe algumas regras sobre os nomes que podemos escolher para nossos identificadores (variáveis, funções, nomes de classes, etc).

Em R, nomes de variáveis devem seguir as seguintes regras:

1) Variáveis podem ter nomes curtos, tais como x, y, z, ou nomes mais descritivos, tais idade, valor_boleto, velocidade_total, etc.

2) Nomes de variáveis em R devem sempre começar com uma letra (ou o ponto) e pode ser uma combinação de letras, números, ponto (.) e underline (_). Se o nome da variável começar com um ponto (.), ele não poderá ser seguido por um número.

3) O nome de uma variável não pode começar com um número ou o caractere de underline (_).

4) Nomes de variáveis em R são case-sensitive, ou seja, há diferenciação de maiúsculas e minúsculas. Dessa forma, nome, Nome e NOME são três variáveis diferentes.

5) As palavras reservadas da linguagem (if, NULL, TRUE, FALSE, etc) não podem ser usados como nomes de variáveis, funções, nomes de classes e objetos.

Veja a seguir exemplos de declaração e uso de variáveis em R:

> x <- 10 [ENTER]
> nome <- "Osmar" [ENTER]
> pago <- TRUE [ENTER]
> y <- x + 15 [ENTER]
> x [ENTER]
......



Ruby ::: Dicas & Truques ::: Matemática e Estatística

Como gerar um número inteiro aleatório em Ruby usando a função rand() do módulo Kernel

Quantidade de visualizações: 7369 vezes
Nesta dica mostrarei como podemos usar o método rand() do módulo Kernel da linguagem Ruby para gerar um número randômico dentro de uma determinada faixa. No exemplo nós vamos gerar um número aleatório entre 0 e 6 (não incluído).

Veja o código completo para o exemplo:

# gera um número aleatório entre 0 e 5
numero = rand(6)
......


Ao executar este código Ruby nós teremos o seguinte resultado:

O numero aleatório é: 5


Desafios, Exercícios e Algoritmos Resolvidos de Ruby

Veja mais Dicas e truques de Ruby

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 18 usuários muito felizes estudando em nosso site.