FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 5º Período Disciplina: Banco de Dados I Prof. Erinaldo Sanches Nascimento Tabelas Banco de Dados I MySQL
Linguagem de Definição de Dados O MySQL tem 11 declarações diferentes que criam esses tipos de objetos: Database Eventos Funções Índices Grupos de arquivos de log Procedures Servers Tabelas Table Spaces Triggers Views
Tabela A tabela é o objeto primário de armazenamento de dados em um banco de dados relacional. As tabelas são o tipo de objeto mais essencial em um banco de dados. Todos os dados em um banco de dados estão fisicamente armazenados em tabelas. Uma tabela consiste em linha(s) e a coluna(s), ambos os quais armazenam dados. A tabela ocupa espaço físico em um banco de dados e pode ser permanente ou temporária.
Colunas As tabelas são definidas como contendo um número de colunas. Cada coluna tem um número de atributos específicos para essa coluna. Nome da coluna Tipo de dado Se permite ou não valores NULL Se é ou não atribuído um valor padrão (DEFAULT)
Um campo (coluna) em uma base de dados relacional, é parte de uma tabela onde é atribuído um tipo de dado específico. O tipo de dado determina que dados é permitido a coluna armazenar. Cada tabela do banco de dados deve ser constituído por pelo menos uma coluna.
Linhas Uma linha é um registro de dados em uma tabela de banco de dados. Uma linha é composta de campos que contêm dados de um registro numa tabela. Uma tabela pode conter tão pouco como uma linha de dados e até quantos milhões de linhas de dados ou registros.
Primary Keys Especificar uma coluna como uma chave primária significa duas coisas: a coluna será indexada a coluna será garantida para conter valores exclusivos. As chaves primárias realizam três vantagens principais para o usuário do banco de dados: permitem identificar uma única linha em uma tabela permitem que você facilmente relacione tabelas por serem indexadas, permitem a recuperação rápida de dados de linhas que envolvem a coluna.
As chaves primárias garantem valores únicos para todas as linhas em uma tabela. A chave primária assegura a identificação de linhas únicas para atualizações ou exclusões. As chaves primárias devem conter valores exclusivos, eles nunca são permitidos para conter valores NULL. As chaves primárias são frequentemente especificada como colunas de incremento automático.
Chave Primária Composta Uma chave primária pode abranger mais de uma coluna, significando que todas as colunas em conjunto irá conter um valor único.
Foreign Keys Uma chave estrangeira é apenas uma referência de uma coluna em uma tabela para uma coluna em uma tabela diferente. Ao configurar uma chave estrangeira, você será solicitado a especificar ambas as colunas: A coluna chave estrangeira que está sendo configurada na tabela é referida como estando na tabela filho. A coluna referenciada na outra tabela é referido como estando na tabela pai.
Quando você configura chaves estrangeiras, você será capaz de definir algumas ações específicas para atualizações e exclusões envolvendo linhas na tabela pai. As três ações mais comuns são: Sem ação Cascata Colocar NULL
No Action Atualizações: Se você definir a coluna ID_CLIENTE na tabela Pedidos significa que é feita uma verificação sempre que uma atualização é tentada na tabela pai (Cliente) na coluna ID_CLIENTE. Se ele tenta fazer uma atualização sobre o Cliente, que resultaria em qualquer linha apontando na tabela filho (Pedido) para um valor que não existe mais, vai evitar que a ação ocorra. Exclusões: Garante que, ao usar a coluna ID_CLIENTE em ambas as tabelas, todas as linhas dos Pedidos apontem corretamente para uma linha existente na tabela Clientes.
Cascade Significa que quando um valor na tabela pai é atualizado, e se esse valor afeta linhas na tabela filho, então ele irá atualizar automaticamente todas as linhas da tabela filho para refletir o novo valor na tabela pai. Se uma linha na tabela pai for deletado, e se isso afeta linhas na tabela filho, ele automaticamente excluirá as linhas afetadas na tabela filho.
Set Null Significa que quando um valor na tabela pai é atualizado ou excluído, e se os valores afetam linhas na tabela filho, ele vai atualizar automaticamente todas as linhas afetadas na tabela filho para conter um valor NULL na chave estrangeira.
Criar Tabelas A instrução CREATE TABLE no SQL é usada para criar uma tabela. Algumas perguntas elementares precisam ser respondidas ao criar uma tabela: Que tipo de dados serão inseridos na tabela? Qual será o nome da tabela? Qual coluna(s) irá compor a chave primária? Que nomes deve ser dados para as colunas (campos)? Que tipo de dados será atribuído a cada coluna? Qual vai ser o comprimento alocado para cada coluna? Quais colunas em uma tabela pode ser deixado como um valor nulo?
A sintaxe para criar uma tabela: CREATE TABLE <TB_table_name> ( campo1 datatype, campo2 datatype, );
Utilidade da instrução DESCRIBE: quando você esquece o nome de uma coluna em uma tabela, precisa saber o tipo de dado ou a largura, descobrir a ordem em que o MySQL armazena as colunas em linhas da tabela.
As declarações a seguir são todos sinônimos: DESCRIBE TB_FUNCIONARIO; DESC TB_FUNCIONARIO; EXPLAIN TB_FUNCIONARIO; SHOW COLUMNS FROM TB_FUNCIONARIO; SHOW FIELDS FROM TB_FUNCIONARIO;
O atributo AUTO_INCREMENT tem o efeito que a cada novo registro o valor apropriado para ID é inserido automaticamente. O atributo NOT NULL assegura que os valores reais devem ser colocados em ambas as colunas. Não é permitido armazenar o registro de dados NULL ou não inserir qualquer valor. Esse atributo impede que registros de dados inválidos sejam armazenados. PRIMARY KEY tem o efeito de que a coluna é usada para identificar os registros de dados.
O parâmetro IF NOT EXISTS pode ser usado para verificar se uma tabela existe antes de você realmente criá-la.
Foreign Key Uma chave estrangeira é uma coluna em uma tabela filho que faz referência a uma chave primária na tabela pai. A restrição de chave estrangeira é o principal mecanismo que impõe a integridade referencial entre tabelas em um banco de dados relacional. Uma coluna definida como chave estrangeira referencia uma coluna definida como chave primária em outra tabela.
Unique Key Um índice exclusivo permite apenas valores exclusivos na coluna. A restrição de coluna única de uma tabela é semelhante a uma chave primária em que o valor em que a coluna para cada linha de dados na tabela deve ter um valor único. Embora uma restrição de chave primária é colocada em uma coluna, você pode colocar uma restrição exclusiva em outra coluna, mesmo que não seja realmente para uso como chave primária.
Comando ALTER TABLE Você pode modificar uma tabela após a tabela ter sido criada usando o comando ALTER TABLE. Você pode: Adicionar coluna(s), Excluir coluna(s), Alterar as definições de coluna, Adicionar e descartar restrições, Modificar valores de armazenamento da tabela.
A sintaxe padrão para o comando ALTER TABLE é a seguinte: ALTER [IGNORE] TABLE table_name specification [,specification]
Especificações podem ser: ADD [COLUMN] column name (column definitions) [FIRST or AFTER column_name] ADD INDEX [index_name] (column_list) ADD PRIMARY KEY (column_list) ADD UNIQUE [index_name] (column_list) ALTER [COLUMN] column_name {SET DEFAULT default_value or DROP DEFAULT} CHANGE [COLUMN] old_col_name create_definition DROP [COLUMN] col_name DROP PRIMARY KEY DROP INDEX index_name MODIFY [COLUMN] create_definition RENAME [AS] new_tbl_name
A palavra-chave IGNORE causa linhas com valores duplicados em chaves únicas a serem excluídos, caso contrário, nada acontece.
Modificar Elementos da Tabela Os atributos de uma coluna se referem às regras e comportamentos de dados em uma coluna. Você pode modificar os atributos de uma coluna com o comando ALTER TABLE. A palavra atributos aqui refere-se ao seguinte: O tipo de dados de uma coluna O comprimento, a precisão, ou escala de uma coluna Se a coluna pode conter valores NULL
Adicionar Colunas Obrigatórias à Tabela Se os dados existem atualmente na tabela a coluna que você está adicionando não pode ser definida como NOT NULL. NÃO NULL significa que uma coluna deve conter algum valor para cada linha de dados na tabela.
Há uma forma de adicionar uma coluna obrigatória a uma tabela: 1. Adicione a coluna e defini-a como NULL. 2. Insira um valor para a nova coluna para cada linha de dados na tabela. 3. Alterar a tabela para alterar o atributo da coluna para NOT NULL.
Adicionar Colunas Auto-incremento à Tabela Às vezes é necessário para criar uma coluna que auto-incrementa-se a dar um número de sequência única para uma linha específica. Você pode fazer isso por muitas razões, tais como: não ter uma chave natural para os dados, querer usar um número de sequência única para classificar os dados. O MySQL fornece o método SERIAL para produzir um valor verdadeiramente único para a tabela.
Tabelas Temporárias As tabelas temporárias são de natureza fugaz durando somente o tempo da sessão de MySQL. A sintaxe para a criação de tabelas temporárias é: CREATE TEMPORARY TABLE <table> ( field definitions );
Usando uma consulta para criar a tabela temporária: CREATE TEMPORARY TABLE <nova_tabela> SELECT * FROM <tabela_antiga>
Excluir Tabela Para excluir uma tabela existente, digite: DROP <tablename>; Seja específico quando excluir uma tabela! certifique-se de especificar o nome do esquema ou do proprietário da tabela se você tem acesso a várias contas de usuário, verifique se está conectado ao banco de dados através da conta de usuário correto antes de excluir as tabelas.
Truncate Table Remove os dados da tabela original. é melhor do que uma declaração DELETE, como ele exclui, então recria a tabela. é mais rápido em tabelas grandes e mais importante, pode ser usado como parte de uma transação. TRUNCATE TABLE <table_name>;
Restrições de Integridade Garantem a precisão e a consistência dos dados em um banco de dados relacional. É feita através do conceito de integridade referencial. Muitos tipos de restrições de integridade desempenham um papel na integridade referencial.
Restrições de chave primária Restrições exclusivas Restrições de chave estrangeira Restrições NOT NULL Verificação de restrições Restrições de exclusão (drop)
Check Constraints Verifica a validade dos dados inseridos em colunas da tabela particular. A restrição de verificação é uma forma de dar uma outra camada de proteção para os dados.