Comandos DDL SQL e sua sintaxe
Comandos DDL SQL e sua sintaxe
Neste artigo discuto os comandos SQL do grupo que chamamos de “comandos DDL”, ou Data Definition Language (Linguagem de Definição de Dados), com a sintaxe das principais declarações e exemplos gerais.
O que são comandos DDL – Data Definition Language
Os comandos DDL são um subconjunto dos comandos da linguagem SQL cujo propósito é definir a estrutura de um banco de dados. Assim, esse comandos são empregados para criar, alterar e excluir objetos do banco, como tabelas, colunas e até mesmo o banco de dados em si.
Os comandos DDL que estudaremos são os seguintes:
- CREATE
- ALTER
- DROP
- RENAME
- TRUNCATE
Declaração CREATE
Este comando permite criar um objeto no banco, como uma nova tabela, visão, índice ou outro elemento estrutural.
Vejamos sua sintaxe em diversos SGBDs e alguns exemplos.
1. Para criar um banco de dados no MySQL:
CREATE DATABASE [IF NOT EXISTS] nome_banco;
O uso dos colchetes na sintaxe indica que a cláusula é opcional.
Por exemplo, para criar um banco de dados de nome db_MeusLivros:
CREATE DATABASE IF NOT EXISTS db_MeusLivros;
A sintaxe para outros sistemas de bancos de dados é a seguinte:
Criar banco de dados no SQL Server:
CREATE DATABASE nome_banco;
Criar banco de dados no PostgreSQL:
createdb nome_banco;
2. Para criar uma tabela no MySQL:
CREATE TABLE [IF NOT EXISTS] nome_tabela ( coluna1 tipo_dado restrições, coluna2 tipo_dado restrições, colunaN tipo_dado restrições, [restrições extras] );
Por exemplo, para criar uma tabela de autores em um banco, contendo as colunas id de autor, nome e sobrenome:
CREATE TABLE tbl_autores ( IdAutor SMALLINT AUTO_INCREMENT, NomeAutor VARCHAR(30) NOT NULL, SobrenomeAutor VARCHAR(60) NOT NULL, CONSTRAINT pk_id_autor PRIMARY KEY (IdAutor) );
A sintaxe para outros sistemas de bancos de dados é a seguinte:
Criar tabela no SQL Server:
CREATE TABLE [nome_banco].[nome_esquema].nome_tabela ( coluna1 tipo_dado restrições, coluna2 tipo_dado restrições, colunaN tipo_dado restrições, [restrições extras] ) ON [Filegroup];
Criar tabela no PostgreSQL:
CREATE TABLE [IF NOT EXISTS] nome_tabela ( coluna1 tipo_dado restrições, coluna2 tipo_dado restrições, colunaN tipo_dado restrições, [restrições extras] );
Criar tabela no Oracle Database:
CREATE TABLE nome_esquema.nome_tabela ( coluna1 tipo_dado restrições, coluna2 tipo_dado restrições, colunaN tipo_dado restrições, restrições_da_tabela );
3. Para criar um índice em uma tabela:
CREATE INDEX nome_índice ON tabela(colunas);
Exemplo – criar um índice na tabela de editoras, na coluna NomeEditora:
CREATE INDEX idx_editora ON tbl_Editoras(NomeEditora);
Declaração ALTER
Com a declaração ALTER podemos adicionar, modificar ou excluir colunas em uma tabela. Também é possível alterar outros objetos do banco de dados, como procedimentos armazenados.
Sintaxe e exemplos a seguir.
1. Adicionar uma coluna a uma tabela existente:
ALTER TABLE tabela ADD coluna tipo_dados constraints;
Exemplo – adicionar a coluna ISBN10 a uma tabela de livros, de nome tbl_livro:
ALTER TABLE tbl_livro ADD isbn10 VARCHAR(10) NOT NULL;
2. Excluir uma coluna de uma tabela:
ALTER TABLE nome_tabela DROP COLUMN nome_coluna;
Exemplo – excluir a coluna SobrenomeAutor da tabela de autores:
ALTER TABLE tbl_autores DROP COLUMN SobrenomeAutor;
Neste caso combinamos o uso da declaração ALTER com a declaração DROP, que exclui objetos do banco de dados.
3. Alterar o tipo de dados de uma coluna
Podemos alterar colunas, por exemplo mudando o tipo de dados, com a seguinte sintaxe:
ALTER TABLE nome_tabela MODIFY COLUMN nome_coluna tipo_dado constraints;
Exemplo: Vamos alterar o tipo de dado da coluna IdAutor da tabela de livros para o tipo TINYINT:
ALTER TABLE tbl_livros MODIFY COLUMN IdAutor TINYINT NOT NULL;
Declaração DROP
O comando DROP permite excluir objetos do banco de dados (lida com a estrutura ou esquema, não com os registros).
Sintaxe e exemplos a seguir.
1. Excluir um banco de dados existente:
DROP DATABASE [IF EXISTS] nome_BD;
2. Excluir tabelas:
DROP TABLE [IF EXISTS] nome(s)_tabela(s);
Exemplo: excluir a tabela de editoras:
DROP TABLE IF EXISTS tbl_editoras;
3. Excluir um índice configurado em uma tabela:
DROP INDEX nome_índice ON tabela;
Por exemplo, para excluir o índice idx_editora executamos o comando:
DROP INDEX idx_editora ON tbl_Editoras;
Declaração TRUNCATE
Permite excluir todas as linhas de uma tabela (todos os registros), sem no entanto excluir a tabela em si.
Sintaxe e exemplos a seguir.
TRUNCATE TABLE nome_tabela;
Exemplo: Vamos limpar a tabela de editoras:
TRUNCATE TABLE tbl_editoras;
A sintaxe para outros sistemas de bancos de dados é a seguinte:
Limpar tabela no SQL Server:
TRUNCATE TABLE [nome_banco].[esquema].nome_tabela;
É isso aí! No próximo artigo vamos explorar os comandos DML (Data Manipulation Language) em SQL.
Escreva um comentário