Question:
Eu nunca tinha usado o MySQL Workbench e ele ao invés de database, me dá a opção de SCHEMA. Qual a diferença dos dois? Dá no mesmo um ou outro?
Answer:
Segundo a documentação do MySQL:
schema Conceptually, a schema is a set of interrelated database objects, such as tables, table columns, data types of the columns,
indexes, foreign keys, and so on. These objects are connected through
SQL syntax, because the columns make up the tables, the foreign keys
refer to tables and columns, and so on. Ideally, they are also
connected logically, working together as part of a unified application
or flexible framework. For example, the INFORMATION_SCHEMA and
performance_schema databases use “schema” in their names to emphasize
the close relationships between the tables and columns they contain.In MySQL, physically, a schema is synonymous with a database. You can
substitute the keyword SCHEMA instead of DATABASE in MySQL SQL syntax,
for example using CREATE SCHEMA instead of CREATE DATABASE.
Em tradução livre:
Conceitualmente, um schema é um conjunto de objetos de banco de dados
inter-relacionados, como tabelas, colunas, tipos de dados, índices,
chaves estrangeiras e assim por diante. Esses objetos estão conectados
através de sintaxe SQL, porque as colunas compõe as tabelas, chaves
estrangeiras referenciam essas columas, e assim por diante. Idealmente
eles também estão conectados logicamente, trabalhando juntos como
parte de um aplicativo unificado ou estrutura flexível. Por exemplo,
os bancos de dados INFORMATION_SCHEMA e performance_schema usam
“schema” em seus nomes para enfatizar os relacionamentos próximos
entre as tabelas e colunas que eles contêm.No MySQL, fisicamente, um esquema é sinônimo de um banco de dados.
Você pode substituir a palavra-chave SCHEMA por DATABASE na sintaxe
SQL do MySQL, por exemplo, utilizando CREATE SCHEMA no lugar de CREATE
DATABASE.
Ou seja, podemos entender que um schema é um banco de dados.
Apenas para referências, em outros bancos de dados o conceito de schema pode ser ligeiramente diferente (em Oracle por exemplo um schema é um conjunto de tabelas e outros objetos, enquanto um banco de dados é mais amplo, possuindo um conjunto de schemas).