Pular para o conteudo

Resumo TI Banco de Dados: Comando CREATE DATABASE e CREATE SCHEMA

Com os tipos de dados definidos, já é possível montar a estrutura completa de uma coluna. Mas antes de criar qualquer tabela, é preciso ter onde colocá-la: um banco de dados. Este resumo cobre os dois primeiros comandos DDL da trilha — CREATE DATABASE e CREATE SCHEMA — e uma distinção entre eles que muda de SGBD para SGBD.

Neste resumo, você vai aprender a sintaxe básica de CREATE DATABASE, entender o que é um schema no sentido do padrão SQL, e ver por que “database” e “schema” são sinônimos em alguns SGBDs e conceitos bem diferentes em outros.

📲 Canal Oficial do Dicionário do Concurseiro no WhatsApp

Receba resumos, questões comentadas e novidades diretamente no seu celular!

👉 Acessar Canal no WhatsApp

💡 Conteúdo exclusivo para concurseiros. Totalmente gratuito!

🗄️ CREATE DATABASE: criando o banco

A sintaxe básica é CREATE DATABASE nome_do_banco;. O comando cria um banco de dados novo — um contêiner isolado, com seu próprio espaço de armazenamento, onde tabelas, índices e outros objetos serão criados. Opções comuns (a sintaxe exata varia por SGBD): IF NOT EXISTS, para não gerar erro caso o banco já exista; definição de character set/encoding (ex.: UTF8); e definição do owner (usuário dono do banco).

📁 CREATE SCHEMA: o que é um schema no padrão SQL

No padrão SQL (ANSI), schema é um namespace lógico dentro de um banco de dados — um agrupamento de tabelas, views e outros objetos, associado a um usuário/proprietário. A sintaxe básica é CREATE SCHEMA nome_do_schema;. Opcionalmente, é possível especificar o dono com a cláusula AUTHORIZATION nome_do_usuario — quando omitida, o schema é criado com o próprio usuário que executou o comando como proprietário. Um único banco de dados pode conter vários schemas, cada um funcionando como uma pasta lógica — permitindo, inclusive, que duas tabelas de nomes iguais coexistam em schemas diferentes do mesmo banco (ex.: vendas.cliente e rh.cliente).

🔀 Database x Schema: sinônimos em alguns SGBDs, conceitos distintos em outros

No MySQL, CREATE SCHEMA é tratado como sinônimo exato de CREATE DATABASE — os dois comandos são equivalentes — fazem exatamente a mesma coisa. Já no PostgreSQL e no SQL Server, os dois conceitos são diferentes e hierárquicos: primeiro existe o banco de dados (CREATE DATABASE), e dentro dele podem existir vários schemas (CREATE SCHEMA), cada um agrupando um subconjunto de tabelas. Não existe uma resposta única e universal para “o que é um schema” — a resposta certa depende do SGBD citado no enunciado, ou do padrão SQL puro, quando nenhum SGBD específico é mencionado.

🚧 Limitação prática: consultas entre bancos diferentes

Outra diferença de dialeto relevante: o PostgreSQL não permite, de forma direta, uma consulta que junte tabelas de dois bancos de dados diferentes na mesma sessão — é preciso um schema dentro do mesmo banco, ou recursos externos como foreign data wrappers. Já no MySQL, como schema e database são a mesma coisa, é comum ver consultas referenciando banco1.tabela e banco2.tabela na mesma instrução, dentro da mesma conexão.

⚠️ Pegadinhas comuns

  • MySQL trata CREATE SCHEMA = CREATE DATABASE: se o enunciado especificar MySQL, os dois comandos são intercambiáveis sem ressalva;
  • PostgreSQL e SQL Server tratam schema como algo dentro de um database, não como sinônimo: se o enunciado especificar um desses SGBDs (ou não especificar SGBD nenhum, adotando o padrão SQL puro), schema e database não são a mesma coisa;
  • IF NOT EXISTS não é sintaxe universal — verificar se o SGBD citado no enunciado realmente suporta essa cláusula antes de assumir que ela sempre existe;
  • Criar um schema não cria um banco de dados novo (fora do MySQL) — é um erro comum confundir “organizar em schemas” com “criar bancos separados”.

🎯 Dica Final para a Prova

Antes de responder qualquer questão sobre CREATE SCHEMA, primeiro identifique o SGBD citado no enunciado. Se for MySQL, trate como sinônimo de CREATE DATABASE. Se for PostgreSQL, SQL Server ou “padrão SQL” sem especificar produto, trate schema como um namespace lógico dentro de um banco já existente.

✓ Com o banco e o schema criados, o próximo passo natural é criar as tabelas dentro deles. O próximo resumo entra na sintaxe completa do CREATE TABLE, incluindo as restrições (constraints) que garantem a integridade dos dados.


📍Gostou do conteúdo? Deixe um comentário, compartilhe e continue acompanhando o Dicionário do Concurseiro para mais Resumos de TI – Banco de Dados. Aqui você encontra explicações claras, atualizadas e com foco total no que cai em prova!

👉 Leia também no Dicionário do Concurseiro: Resumo TI Banco de Dados: CREATE TABLE com Restrições


📘 Database e schema não são sinônimos universais — no MySQL são a mesma coisa, no PostgreSQL e SQL Server um schema mora dentro de um database. Continue estudando!

Gostou deste conteúdo?

Favoritar

Comentários

Seja o primeiro a comentar.