# Como usar os comandos do EdgeSQL Shell

import DocButton from '~/components/webkit/DocButton.vue';

O EdgeSQL Shell fornece uma interface de linha de comando para gerenciar e interagir com seus bancos de dados SQL Database. Além de executar consultas SQL, ele oferece um conjunto abrangente de comandos para administração e configuração de banco de dados.

Este guia cobre os comandos disponíveis para interagir com o serviço EdgeSQL e gerenciar variáveis de ambiente.

## Comandos do EdgeSQL Shell

### help

Mostra informações sobre os comandos disponíveis ou sobre um comando específico.

```sh
EdgeSQL> help
```

Exemplo:

```sh
EdgeSQL> help .dump
```

### .databases

Lista todos os banco de dados.

```sh
EdgeSQL> .databases
```

### .use

Muda para um banco de dados específico.

```sh
EdgeSQL> .use <database-name>
```

### .tables

Lista todas as tabelas no banco de dados.

```sh
EdgeSQL> .tables
```

### .schema

Descreve o esquema de uma tabela específica.

```sh
EdgeSQL> .schema <table-name>
```

### .dbinfo

Recupera informações sobre o banco de dados atual.

```sh
EdgeSQL> .dbinfo
```

### .read

Carrega e executa consultas SQL a partir de um arquivo.

```sh
EdgeSQL> .read <file_path>
```

### .create

Cria um novo banco de dados.

```sh
EdgeSQL> .create <database-name>
```

### .destroy

Destrói um banco de dados específico.

```sh
EdgeSQL> .destroy <database-name>
```

### .output

Define o destino da saída. Passe `stdout` como parâmetro para enviar a saída para o console ou informe um **file path** para definir um arquivo como o destino da saída.

```sh
EdgeSQL> .output stdout
```

Exemplo usando um arquivo como destino:

```sh
EdgeSQL> .output /file.csv
```

### .dump

Renderiza a estrutura da tabela como SQL. Após executar o comando `output` e definir a saída para um arquivo, o comando `dump` salvará a saída no arquivo selecionado.

```sh
EdgeSQL> .dump <table-name>
```

Você pode passar as opções `--schema-only` ou `--data-only` para renderizar opcionalmente apenas o esquema ou os dados da tabela.

Example:

```sh
EdgeSQL> .dump --schema-only <table-name>
```

### .mode

Define o modo de saída. Você pode escolher uma das seguintes opções:

-  excel
-  tabular
-  csv
-  json
-  html
-  markdown
-  raw

Exemplo:

```sh
EdgeSQL> .mode tabular
```

### .import

Importa dados de uma fonte externa para a tabela. Você pode importar dados de um arquivo ou de um banco de dados MySQL, Postgres, Kaggle ou Turso.

```sh
EdgeSQL> .import <params> <table-name>
```

Executando o comando `help`, você pode obter uma lista dos possíveis parâmetros para importar dados:

```sh
EdgeSQL> help .import
```

Você receberá uma resposta semelhante a esta:

```sh
.import: Import data from file files, Kaggle datasets, or databases into a database table.

    Args:
        arg (str): The import command and its arguments.

    Command Formats:
        .import file <csv|xlsx> <file_path> <table_name>: Import data from a file CSV or Excel file.
        .import kaggle <dataset> <data_name> <table_name>: Import data from a Kaggle dataset.
        .import mysql <database> <source_table> <table_name>: Import data from a MySQL database table.
        .import postgres <database> <source_table> <table_name>: Import data from PostgreSQL database table.
        .import turso <database> <source_table> <table_name>: Import data from Turso database.

    Examples:
        .import file csv /path/to/file.csv my_table
        .import kaggle joonasyoon/google-doodles list.csv list
        .import mysql mydb_name source_table_name my_table
        .import turso <database> <source_table> <table_name>
```

### .dbsize

Obtém o tamanho do banco de dados atual em MB.

```sh
EdgeSQL> .dbsize
```

### .exit

Sai do EdgeSQL Shell.

```sh
EdgeSQL> .exit
```

## Variáveis de ambiente

Ao usar o EdgeSQL Shell para importar dados de fontes externas, você pode enviar as credenciais e tokens como variáveis de ambiente usando o comando `export`. Este comando também é utilizado para enviar seu **personal token** da Azion.

### Personal Token

Você pode enviar seu **personal token** como uma variável de ambiente no EdgeSQL Shell.

```sh
 export AZION_TOKEN="<your_auth_token_here>"
```

### Kaggle credentials

Use os seguintes comandos para definir suas credenciais do Kaggle:

```sh
  export KAGGLE_USERNAME="<username>"
  export KAGGLE_KEY="<kaggle_api_key>"
```

### Credenciais do MySQL

Use os seguintes comandos para definir suas credenciais do MySQL:

```sh
  export MYSQL_USERNAME="<username>"
  export MYSQL_PASSWORD="<password>"
  export MYSQL_HOST="<host_address>"
```

Configurações opcionais para MySQL:

```sh
  export MYSQL_PORT=<port>
  
  # For TLS connection
  export MYSQL_SSL_CA="<ssl_ca>"
  export MYSQL_SSL_CERT="<ssl_cert>"
  export MYSQL_SSL_KEY="<ssl_key>"
  export MYSQL_SSL_VERIFY_CERT=<True|False>
```

### Credenciais do PostgreSQL

Use os seguintes comandos para definir suas credenciais do PostgreSQL:

```sh
  export POSTGRES_USERNAME="<username>"
  export POSTGRES_PASSWORD="<password>"
  export POSTGRES_HOST="<host_address>"
```

Configurações opcionais para PostgreSQL:

```sh
  export POSTGRES_PORT=<port>
  
  # For TLS connection
  export POSTGRES_SSL_CA="<ssl_ca>"
  export POSTGRES_SSL_CERT="<ssl_cert>"
  export POSTGRES_SSL_KEY="<ssl_key>"
  export POSTGRES_SSL_VERIFY_CERT=<True|False>
```

### Credenciais do Turso

Use os seguintes comandos para definir suas credenciais do Turso:

```sh
 export TURSO_DATABASE_URL=<https://<db_name>-<organization>.turso.io
 export TURSO_AUTH_TOKEN=<token>
```

 Configurações opcionais para Turso:
```sh
  export TURSO_ENCRYPTION_KEY=<encryption_key>
```

<DocButton href="/pt-br/documentacao/produtos/store/sql/install-edge-sql-shell" label="Consulte o guia de instalação do EdgeSQL Shell" kind="secondary" size="medium" />