Pergunta
Tarefas Inserir registros ficticios para simular a operação dos eventos. "Realizar consultas para: -Listar todos os eventos e suas sessoes. Verificar as inscrições em uma sessão especifica. Mostrar os palestrantes e suas sessōes. Atualizar informações de um evento. - Listar os participantes que se inscreveram em mais de uma sessão.
Solução
Verification of experts
3.7262 Voting
EmersonProfissional · Tutor por 6 anos
Responder
Para realizar as tarefas solicitadas, você pode utilizar uma linguagem de programação como Python e uma biblioteca de gerenciamento de banco de dados como o SQLAlchemy. Abaixo estão exemplos de como você pode implementar cada uma das tarefas:<br /><br />1. Inserir registros fictícios para simular a operação dos eventos:<br /><br />```python<br />from datetime import datetime, timedelta<br />from sqlalchemy import create_engine, Table, MetaData<br /><br /># Criar um motor SQLAlchemy e definir o esquema<br />engine = create_engine('postgresql://usuario:senha@host:porta/banco_de_dados')<br />metadata = MetaData()<br />metadata.reflect(bind=engine)<br /><br /># Inserir registros fictícios<br />insere_evento = Table('evento', metadata, autoload_with=engine)<br />insere_sessao = Table('sessao', metadata, autoload_with=engine)<br />insere_inscricao = Table('inscricao', metadata, autoload_with=engine)<br /><br />data_atual = datetime.now()<br />data_há_3_dias = data_atual - timedelta(days=3)<br />data_há_7_dias = data_atual - timedelta(days=7)<br /><br /># Inserir eventos<br />evento1 = {<br /> 'titulo': 'Evento 1',<br /> 'data_inicio': data_há_3_dias,<br /> 'data_fim': data_há_3_dias + timedelta(days=1),<br /> 'localizacao': 'Localização 1'<br />}<br />insere_evento.insert().values(evento1)<br /><br />evento2 = {<br /> 'titulo': 'Evento 2',<br /> 'data_inicio': data_há_7_dias,<br /> 'data_fim': data_há_7_dias + timedelta(days=5),<br /> 'localizacao': 'Localização 2'<br />}<br />insere_evento.insert().values(evento2)<br /><br /># Inserir sessões<br />sessao1 = {<br /> 'titulo': 'Sessão 1',<br /> 'data_inicio': data_há_3_dias,<br /> 'data_fim': data_há_3_dias + timedelta(hours=2),<br /> 'evento_id': insere_evento.insert().insert(evento1)['id']<br />}<br />insere_sessao.insert().values(sessao1)<br /><br />sessao2 = {<br /> 'titulo': 'Sessão 2',<br /> 'data_inicio': data_há_7_dias,<br /> 'data_fim': data_há_7_dias + timedelta(hours=3),<br /> 'evento_id': insere_evento.insert().insert(evento2)['id']<br />}<br />insere_sessao.insert().values(sessao2)<br /><br /># Inserir inscrições<br />inscricao1 = {<br /> 'usuario_id': 1,<br /> 'essao_id': insere_sessao.insert().insert(sessao1)['id'],<br /> 'data_inscricao': datetime.now()<br />}<br />insere_inscricao.insert().values(inscricao1)<br /><br />inscricao2 = {<br /> 'usuario_id': 2,<br /> 'essao_id': insere_sessao.insert().insert(sessao2)['id'],<br /> 'data_inscricao': datetime.now()<br />}<br />insere_inscricao.insert().values(inscricao2)<br />```<br /><br />2. Realizar consultas:<br /><br />```python<br /> import create_engine, Table, MetaData<br /><br /># Criar um motor SQLAlchemy e definir o esquema<br />engine = create_engine('postgresql://usuario:senha@host:porta/banco_de_dados')<br />metadata = MetaData()<br />metadata.reflect(bind=engine)<br /><br /># Consulta para listar todos os eventos e suas sessões<br />consulta_eventos = """<br />SELECT e.id, e.titulo, e.data_inicio, e.data_fim, e.localizacao, s.id, s.titulo, s.data_inicio, s.data_fim<br />FROM evento e<br />LEFT JOIN sessao s ON s.evento_id = e.id<br />"""<br /><br />resultado_eventos = engine.connect().execute(consulta_eventos)<br />eventos = []<br />for row in resultado_eventos:<br /> evento = {<br /> 'id': row[0],<br /> 'titulo': row[1],<br /> 'data_inicio': row[2],<br /> 'data_fim': row[3],<br /> 'localizacao': row[4],<br /> 'essao_id': row[5],<br /> 'essao_titulo': row[6],<br /> 'essao_data_inicio': row[7],<br /> 'essao_data_fim': row[8]<br /> }<br /> eventos.append(evento)<br /><br /># Consulta para verificar as inscrições em uma sessão específica<br />consulta_inscricoes = """<br />SELECT i.id, i.usuario_id, i.sessao_id, i.data_inscricao<br />FROM inscricao i<br />WHERE i.sessao_id = :sessao_id<br />"""<br /><br />resultado_inscricoes = engine.connect().execute(consulta_inscricoes, sessao_id=sessao_id)<br />inscritos = []<br />for
Clique para avaliar: