>_ Hello, world!
Banco de Dados
Bem vindo à mais um ano, jovem Fuzzier.
Banco de Dados
Bem vindo à mais um ano, jovem Fuzzier.
Um banco de dados é um sistema organizado para armazenar, gerenciar e recuperar informações de forma eficiente e estruturada, sendo fundamental para praticamente todas as aplicações modernas. Ele é gerenciado por um SGBD (Sistema Gerenciador de Banco de Dados), como MySQL, que oferecem recursos como controle de acesso, integridade dos dados, backup, recuperação e execução de consultas por meio da linguagem SQL (Structured Query Language), ou APIs equivalentes nos bancos NoSQL. Os bancos de dados se dividem principalmente em relacionais (organizados em tabelas com relacionamentos entre si) e não relacionais/NoSQL (como documentos, grafos ou chave-valor), cada um adequado a diferentes cenários de uso e volume de dados.
Principais Aplicações:
O banco de dados é utilizado pelas empresas para praticamente todas as operações que envolvem informação: cadastro de clientes, controle de estoque, histórico de pedidos, registros financeiros, autenticação de usuários e muito mais.
1 - Primeiro contato com Banco de Dados
Introdução ao Banco de Dados: informações básicas sobre a análise e manipulação de dados, estrutura de um banco, utilização e níveis de abstração.
Adaptando-se ao MySQL Workbench e XAMPP, e suas funcionalidades.
Criando nossa "área de trabalho"; pastas prontas que irão conter nossos projetos.
2 - Criando nosso Banco de Dados
Crie um Banco de Dados no MySQL Workbench e tente se familiarizar com o software.
3 - "INSERT"
Utilizando um arquivo .sql pronto, insira o script em seu BD e utilize "INSERT" para inserir uma informação nova na tabela que deseja.
4 - "SELECT"
No mesmo arquivo, utilize "SELECT" para selecionar a nova informação adicionada na determinada tabela.
5 - "UPDATE"
Dentro da tabela modificada, utilize "UPDATE" para atualizar/editar uma informação preexistente.
6 - "DELETE"
Por fim, finalize utilizando "DELETE", excluindo um dado de sua escolha.
7 - "WHERE" e filtros de pesquisa
Em nosso BD, utilize "WHERE" para localizar um ou mais dados específicos de uma coluna, dentro de uma tabela de sua escolha.
Você irá notar que, naturalmente, conforme o script, você terá retorno dos dados, entretanto, desorganizados ou não corretamente filtrados.
A maior utilidade um banco de dados, é sua ampla capacidade de aplicação de filtros que buscam os devidos dados, conforme especificado;
Para isso, dentro do nosso script utilizado, vamos nos aprofundar em cada um deles.
8 - "LIKE" e Wildcards? (Coringas)
A filtragem de dados pode ser múltipla, ou de caractere único. Utilizando "%" ou "_", procure alguns dados específicos conforme pedido.
9 - "IN" ou "OR"
Utilizando "IN" ou "OR" para pesquisar dado contido em uma tabela, OU outro dado.
10 - "BETWEEN"
Por fim, o filtro "BETWEEN" procura entre dois valores especificados. Utilize ele para encontrar valores na medida escolhida.
11 - Formulários
Entendendo um pouco como funciona exatemente os formulários em HTML.
12 - Enfeitando o formulário
Utilizando CSS para melhorar a interface visual do formulário.
13 - Banco de Dados?
Associe os dados enviados para um banco de dados, permitindo alteração.
14 - Banco de Dados
Entendendo um pouco como funciona exatemente um Banco de Dados, através da plataforma MySQL Workbench, e sua comunicação com o banco.
Estabelecendo conexão e entendendo como a plataforma interage com o HTML.
15 - Imagens
Adicionando imagens no banco de dados através do formulário.
O que são elementos, tags e atributos? Exemplifique.
O que são <head>, <body> e <meta>, num arquivo html?
Qual a diferença entre "id" e "class", em um HTML?
Quais as principais funcionalidades do <form> em um site? Por que usar?
Resposta:
Tags: São os "marcadores" da linguagem, escritos entre sinais < >. Geralmente vêm em pares: uma tag de abertura e uma de fechamento.
Elementos: É o conjunto completo: tag de abertura + conteúdo + tag de fechamento. Alguns elementos são auto-fechados (não têm conteúdo nem tag de fechamento), como <br>.
Atributos: São informações extras adicionadas dentro da tag de abertura, no formato nome="valor". Eles configuram ou descrevem o elemento.
Resposta:
id: Identifica um elemento único na página. Cada deve aparecer uma só vez no documento.
class: Identifica um grupo de elementos. A mesma classe pode ser usada em vários elementos, e um elemento pode ter várias classes.
Resposta:
<head>: Contém informações sobre a página, que não aparecem visualmente para o usuário (metadados, título da aba, links para CSS, scripts, etc.).
<body>: Contém tudo que é visível na tela: textos, imagens, botões, links, tabelas, etc.
<meta>: Elemento dentro do <head> que fornece metadados. É auto-fechado e usa atributos para definir seu propósito.
Resposta:
<form>: Principal mecanismo de coleta de dados do usuário em uma página web. Ele agrupa campos de entrada e os envia para um servidor ou script. Ele serve para, comumente, Coletar dados do usuário, oferecer escolhas, enviar arquivos, etc.
\n : Colocado dentro de um print entre aspas para quebrar a linha. Exemplo:
print("Linha 1 \nLinha2")
end=" " : Força com que o próximo print seja na mesma linha. Exemplo:
for i in range (0, 11):
print(i, end = " ")
Para limpar o console usa-se o comando clear_output(wait=True).
No entando pe necessário importar um módulo de uma lib. Descubra qual.
Resposta:
from IPython.display import clear_output
import time
for i in range (0,10):
print(i)
clear_output(wait=True)
time.sleep(1)
15 - Relógio Digital Simples.
Utilize o clear_output e o módulo time para criar um cronômetro que mostre apenas os segundos (de 0 a 59).
A ideia é que o console seja limpo a cada segundo, dando a impressão de que o número está se transformando, em vez de criar uma lista vertical de números.
15.1 - Relógio Digital Ajustável.
Modifique o programa acima peedindo que o usuário informe hora, minuto e segundo, e comece a contar o tempo até que chegue em 23:59:59.
DIV = Resulta no quociente inteiro da operação
MOD = resulta no resto inteiro da equação
16 - Par ou ímpar?
Crie um programa que peça 2 números inteiros, e informe quais deles são ímpares ou pares.
17 - Multiplo de 3?
Faça um código que receba um inteiro, verifique se ele é múltiplo de 3 ou não e informe.
17.1 - Multiplo do que?
Ajuste o código para que pergunte um inteiro, pergunte para qual múltiplo quer testar (se é múltiplo de 3, 5 ou 7 por exemplo) e tenha uma única linha de saída tipo:
O número 12 é múltiplo de 3.
O número 9 não é múltiplo de 4.
18 - É mais 67!
Faça um programa que printe todos os números múltiplos de 67 entre 1 e 1000, na mesma linha, separados por vírgula.
19 - Quantos múltiplos de N temos?
Faça um programa que peça um número N de 1 a 10 (use validação na input) e informe todos os X números entre 1 e 100 que são múltiplos de N.
Ao final, formate uma mensagem assim:
Encontrei X números multiplos de N.
20 - Ano bissexto:
Peça um ano e determine se ele é bissexto usando regras com %:
Para ser bissexto o ano precisa ser divisível por 4 e não divisível por 100, exceto se for divisível por 400.
Como funciona:
ano % 4 == 0 → verifica se é divisível por 4
ano % 100 != 0 → exclui os anos múltiplos de 100
ano % 400 == 0 → re-inclui os múltiplos de 400
Resposta
ano = int(input("Digite um ano: "))
if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0):
print(f"{ano} é um ano bissexto.")
else:
print(f"{ano} não é um ano bissexto.")
21 - Relógio 24h.
Dado um número de horas maior que 24 (ex: 27), converta para horário válido usando %.
Resposta
horas = int(input("Digite a quantidade de horas: "))
horario = horas % 24
print(f"Horário equivalente: {horario}:00")
22 - Ângulo do motor do robô.
Um motor de robô gira continuamente. Cada volta completa corresponde a 360 graus.
Após andar até o final da sala, o robô gravou o ângulo final lido. Por exemplo, 1080°, 725°, etc.
Informe o número em graus que o robô andou e mostre o ângulo final equivalente (congruente) entre 0° e 359°, usando o operador %.
23 - Retornando resultados
Crie uma função que receba dois números e retorne a soma.
Resposta
def soma(a, b):
return a + b
print(soma(5, 3))
24 - Soma e Diferença
Crie um programa com funções de soma e diferença entre 2 números. Peça os 2 números e mostre o resultado das duas funções em uma única linha de saída.
25 - Tamanho do nome:
Crie um programa que peça o nome completo do usuário, e calcule quantos bits e bytes ele ocupa na memória.
Para isso crie uma função chamada 'contar' que recebe o nome completo e calcule usando o "len(nome)"
26 - Positivo, negativo ou zero?
Crie uma função que classifique um número indicado pelo usuário.
Listas são estruturas que permitem armazenar vários valores em uma única variável.
Importante: Listas são mutáveis, podem ser alteradas após criadas.
Para criar uma lista usamos colchetes:
frutas = ["maçã", "banana", "laranja"]
numeros = [1, 2, 3, 4, 5]
Cada item possui um índice (posição), começando em 0:
print(frutas[0]) # primeiro item
print(frutas[-1]) # último item
Podemos modificar um item diretamente:
frutas[1] = "uva"
Adicionar no final da lista:
frutas.append("abacaxi")
Inserir em posição específica:
frutas.insert(1, "morango")
Crie um app que permita guardar numa lista todos os sensores que você possue numa caixa. O programa deve perguntar no início quantos itens você possui, e ao final printar todos eles juntos.
Remover pelo valor:
frutas.remove("banana")
Remover o último:
frutas.pop()
Remover por índice:
frutas.pop(0)
print(len(frutas))
numeros.sort() # ordem crescente
numeros.sort(reverse=True) # ordem decrescente
for fruta in frutas:
print(fruta)
Ou usando índice:
for i in range(len(frutas)):
print(frutas[i])
Muito útil quando vamos preencher com append().
if "maçã" in frutas:
print("Está na lista!")
36 - Lista vazia
lista = []
frutas = []
frutas.append("maçã")
frutas.append("banana")
frutas.append("laranja")
for fruta in frutas:
print(fruta)
print("Total:", len(frutas))
Símbolo Descrição Exemplo
% Representa 0 ou mais caracteres. SELECT * FROM usuario WHERE nomeusuario LIKE 'a%';
_ Representa um único caractere. f"{42:0>5}" → '00042'
Aproveite para consolidar seus novos conhecimentos elaborando algumas quests sobre o que você aprendeu. Após uma revisão manual, elas poderão integrar a base de dados do DuzzyBot no discord.