prompter: Escreva o código SQL para uma banco de dados de uma agenda pessoal, com tabelas de contatos, tarefas e compromissos.

assistant: Aqui está um exemplo básico de código em SQL para criar uma estrutura básica de banco de dados de uma agenda pessoal com tabelas de contatos, tarefas e compromissos:

```sql

-- Criando a tabela de contatos
CREATE TABLE contatos (
  id INTEGER PRIMARY KEY,
  nome TEXT NOT NULL,
  telefone TEXT,
  email TEXT
);

-- Criando a tabela de tarefas
CREATE TABLE tarefas (
  id INTEGER PRIMARY KEY,
  descricao TEXT NOT NULL,
  data_limite DATE,
  concluida BOOLEAN DEFAULT FALSE
);

-- Criando a tabela de compromissos
CREATE TABLE compromissos (
  id INTEGER PRIMARY KEY,
  descricao TEXT NOT NULL,
  data_hora DATETIME NOT NULL,
  local TEXT,
  convidados TEXT
);
```

Nesse códio, a tabela de contatos armazena o nome, telefone e email de cada contato, enquanto a tabela de tarefas armazena uma descrição, data limite e um indicador booleano que indica se a tarefa foi concluída ou não. A tabela de compromissos armazena uma descrição, data e hora, local e convidados para cada compromisso. Note que os tipos de dados podem variar dependendo do banco de dados utilizado.

assistant: Aqui está um exemplo de código SQL para criar uma banco de dados de uma agenda pessoal, com tabelas de contatos, tarefas e compromissos:

```
CREATE DATABASE agenda;

USE agenda;

CREATE TABLE contatos (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nome VARCHAR(50) NOT NULL,
  telefone VARCHAR(15) NOT NULL,
  email VARCHAR(50) NOT NULL
);

CREATE TABLE tarefas (
  id INT AUTO_INCREMENT PRIMARY KEY,
  descricao VARCHAR(100) NOT NULL,
  data_vencimento DATE NOT NULL,
  status ENUM ('pendente', 'concluída') NOT NULL DEFAULT 'pendente'
);

CREATE TABLE compromissos (
  id INT AUTO_INCREMENT PRIMARY KEY,
  descricao VARCHAR(100) NOT NULL,
  data_hora DATETIME NOT NULL,
  local VARCHAR(50) NOT NULL,
  id_contato INT,
  FOREIGN KEY (id_contato) REFERENCES contatos(id)
);

```

Este exemplo cria três tabelas: contatos, tarefas e compromissos. A tabela contatos armazena informações básicas sobre seus contatos, como nome, telefone e e-mail. A tabela tarefas armazena as tarefas que você precisa realizar, incluindo uma descrição, data de vencimento e status. A tabela compromissos armazena informações sobre compromissos, incluindo descrição, data e hora, local e id do contato relacionado.

Observe que as tabelas compromissos e contatos possuem uma relação de chave estrangeira, permitindo que você associe um compromisso a um contato específico.

assistant: Aqui está o código SQL para criar as tabelas "contatos", "tarefas" e "compromissos" em um banco de dados de uma agenda pessoal:

CREATE TABLE contatos (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nome VARCHAR(255) NOT NULL,
  telefone VARCHAR(20) NOT NULL,
  email VARCHAR(255) NOT NULL
);

CREATE TABLE tarefas (
  id INT AUTO_INCREMENT PRIMARY KEY,
  descricao VARCHAR(255) NOT NULL,
  concluido BOOLEAN NOT NULL DEFAULT FALSE
);

CREATE TABLE compromissos (
  id INT AUTO_INCREMENT PRIMARY KEY,
  titulo VARCHAR(255) NOT NULL,
  descricao VARCHAR(255) NOT NULL,
  data_hora DATETIME NOT NULL,
  local VARCHAR(255) NOT NULL,
  contato_id INT,
  FOREIGN KEY (contato_id) REFERENCES contatos(id)
);