O documento discute os conceitos de CHARSET e COLLATION no MySQL, que determinam respectivamente o conjunto de caracteres e as regras de comparação entre caracteres. Explica como verificar quais conjuntos estão instalados e como criar e alterar bancos de dados especificando CHARSET e COLLATION.
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
CHARSET, COLLATION E DDL NO MYSQL
1. PROGRAMAÇÃO EM BANCO DE
DADOS
UNIDADE 1: REPOSITÓRIO DE DADOS
Aula 3: 23/08/2018
Prof.ª M.ª Eng.ª Elaine Cecília Gato
1
2. CHARSET e COLLATION
• Cláusula CHARSET: designa um conjunto de
símbolos e codifcações e como eles são
representados binariamente.
• Cláusula COLLATION: conjunto de regras para
comparação de caracteres em um conjunto de
caracteres
3. CHARSET e COLLATION
●
Comparação dos valores de caracteres A e B.
●
Número associado ao caractere: A = 0; B = 1
●
1.ª regra Collation:
●
Compare as codificações
●
Significa que o número 0 é menor que 1, e podemos dizer que A é
menor que B
4. CHARSET e COLLATION
●
2.ª Regra Collation:
●
Não distinguir diferença entre maiúsculas e minúsculas
●
Significa que o código 0 é equivalente ao código 2, e
consequentemente o código 1 é equivalente ao código 3.
●
Uma busca pela letra “a”, terá como resultados as letras “a” e “A”.
5. CHARSET e COLLATION
• Verifca quais conjuntos de caracteres estão
instalados no MySQL:
– SHOW CHARACTER SET;
• Conjuntos de caracteres latn1 e ut-8
– SHOW CHARACTER SET WHERE charset LIKE
‘latn1’;
– SHOW CHARACTER SET WHERE charset LIKE ‘ut8’;
6. CHARSET e COLLATION
• O UTF-8 representa muitas línguas
• O “latn1” representa uma parte destas línguas.
• Aplicações que apresentam uso com abrangência
internacional deverão utlizar o padrão UTF-8.
• CI (case insensitve): não há distnção entre
maiúsculas e minúsculas.
• CS (case sensitve): há distnção entre maiúsculas
e minúsculas.
7. CHARSET e COLLATION
• No MySQL, toda a cadeia de caracteres (CHARSET) já
apresenta um conjunto de regras associado
(COLLATION)
• Exibe todas as instruções instaladas
– SHOW COLLATION;
• Visualiza o conjunto de regras do UTF-8:
– SHOW COLLATION WHERE collaton LIKE 'ut8_general_ci';
8. DDL: Data Defniton
Language
CREATE {DATABASE | SCHEMA} [IF NOT
EXISTS] db_name [create_specifcaton] ...
create_specifcaton:
[DEFAULT] CHARACTER SET [=] charset_name|
[DEFAULT] COLLATE [=] collaton_name
• Ela cria um banco de dados com o nome
especifcado
9. DDL: Data Defniton
Language
• CREATE SCHEMA: cria um banco de dados
• IF NOT EXISTS: Ocorrerá um erro se o banco de
dados existr e você não especifcar esta clausula
• create_specifcatio: identfca característcas do
banco de dados, seu conjunto de caracteres e o
conjunto de regras de comparação.
• Arquivo db.ipt: armazena as característcas do
banco de dados. Fica no diretório do banco de
dados.
10. DDL: Data Defniton
Language
• Criar m banco de dados chamado “mundo”,
com o CHARSET UTF-8 e COLLATION
“ut8_general_ci”:
• CREATE DATABASE mundo DEFAULT CHARSET
= ut8 DEFAULT COLLATE = ut8_general_ci;
11. DDL: Data Defniton
Language
• Criar m banco de dados chamado “mundo”,
com o CHARSET UTF-8 e COLLATION
“ut8_general_ci” verifcando se ele já existe:
• CREATE DATABASE IF NOT EXISTS
mundoDEFAULT CHARSET = ut8 DEFAULT
COLLATE = ut8_general_ci;
12. DDL: Data Defniton
Language
• Alterar o CHARSET ou COLLATION
• ALTER {DATABASE | SCHEMA} [db_name]
alter_specifcaton … alter_specifcaton:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collaton_name
13. DDL: Data Defniton
Language
• Alterar o CHARSET ou COLLATION
• ALTER {DATABASE | SCHEMA} [db_name]
alter_specifcaton … alter_specifcaton:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collaton_name
14. DDL: Data Defniton
Language
• Alterar o CHARSET do banco de dados mundo para
“latn1”:
– ALTER DATABASE mundo CHARSET = latn1;
• Para apagar o banco
– DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;
• A cláusula IF EXISTS previne que não seja gerado um
erro se a base não existr.
– DROP DATABASE IF EXISTS mundo;
15. DDL: Data Defniton
Language
• SCRIPT SQL:
– Arquivo que contém todas as instruções SQL que
você precisa
– Os comandos devem estar em uma ordem lógica
de execução.
– Mantenha uma documentação atualizada sobre
todas as defnições e alterações do repositório
para a manutenção mais efciente