Introdução à tabela em SQL
Em um sistema de gerenciamento de banco de dados relacional, uma tabela é usada para armazenar dados de maneira eficaz e eficiente, para que, quando necessário, possa ser recuperado facilmente. Uma tabela é uma coleção de dados relacionados e os dados são organizados em linhas e colunas. Uma tupla ou registro em uma tabela é uma entrada única em que a tupla representa um conjunto de dados relacionados. Em uma tabela no SQL, a chave primária é usada para identificar os registros exclusivamente, enquanto a chave estrangeira é usada para referenciar dados de outra tabela.
Como criar uma tabela no SQL?
A sintaxe para criar uma tabela é a seguinte:
CREATE TABLE table_name (
COLUMN1 datatype PRIMARY KEY,
COLUMN2 datatype,
COLUMN3 datatype,
……
);
Vamos criar a tabela 'ALUNOS' como abaixo:
CREATE TABLE STUDENTS (
ROLL INT PRIMARY KEY,
NAME VARCHAR (50),
AGE INT,
SUBJECT VARCHAR (50)
);
Podemos inserir valores na tabela 'ESTUDANTES', conforme abaixo:
INSERT INTO STUDENTS VALUES (8, 'Ram', 12, 'ENG');
INSERT INTO STUDENTS VALUES (11, 'Priya', 11, 'MATH');
INSERT INTO STUDENTS VALUES (9, 'Rahul', 10, 'SCIENCE');
Após inserir os dados, podemos ver os dados inseridos na tabela como abaixo:
SELECT * FROM STUDENTS;
LISTA | NOME | ERA | SUJEITO |
8 | RAM | 12 | INGLÊS |
11 | Priya | 11 | MATEMÁTICA |
9 | Rahul | 10 | CIÊNCIA |
Como soltar tabela no SQL?
A sintaxe para descartar uma tabela é a seguinte:
DROP TABLE table_name;
DROP TABLE STUDENTS;
A consulta acima eliminará a tabela 'ALUNOS', ou seja, os dados e a definição da tabela serão removidos. Portanto, precisamos ter cuidado antes de executar uma instrução drop, pois todas as informações relacionadas à tabela serão removidas do banco de dados.
Como excluir a tabela no SQL?
Quando usamos a instrução DELETE sem a cláusula WHERE, todas as linhas de uma tabela devem ser excluídas, mas a estrutura da tabela permanecerá a mesma. A sintaxe para o mesmo é a seguinte:
DELETE FROM table_name;
A instrução delete é usada no SQL para excluir os registros existentes na tabela atualmente. Sempre que o requisito surge e não queremos determinados registros, a instrução delete é usada junto com a cláusula Where para remover esses registros. A sintaxe para o mesmo é a seguinte:
DELETE FROM table_name WHERE (condition);
DELETE FROM STUDENTS WHERE SUBJECT= 'MATH';
A consulta acima fornecerá o resultado abaixo:
LISTA | NOME | ERA | SUJEITO |
8 | RAM | 12 | INGLÊS |
9 | Rahul | 10 | CIÊNCIA |
Como renomear tabela em SQL?
Acontece que, algum tempo depois de termos criado a tabela, queremos renomeá-la. A instrução ALTER TABLE é usada para renomear a tabela.
ALTER TABLE table_name RENAME TO table_name_new;
Se quisermos alterar o nome da tabela 'STUDENTS', isso pode ser feito conforme abaixo.
ALTER TABLE STUDENTS RENAME TO STUDENT_NEW;
Como truncar a tabela no SQL?
Quando surgir a necessidade de excluir os dados dentro da tabela e a estrutura da tabela, como colunas, etc, permanecer como está, podemos usar a instrução TRUNCATE que exclui apenas os dados da tabela, mas não a tabela.
A sintaxe para usar a instrução TRUNCATE é a seguinte:
TRUNCATE TABLE table_name;
TRUNCATE TABLE STUDENTS;
A consulta acima excluirá os dados da tabela 'ESTUDANTES'. A tabela teria a seguinte aparência após a operação TRUNCATE:
SELECT * FROM STUDENTS;
LISTA | NOME | ERA | SUJEITO |
Além disso, em outras palavras, podemos dizer que a instrução TRUNCATE executa a mesma operação que pode ser feita usando a instrução DELETE, mas sem o uso da cláusula WHERE.
A vantagem de usar a instrução TRUNCATE é que não precisamos descartar a tabela e recriá-la. Além disso, é uma maneira eficiente de limpar os registros da tabela nos casos em que não precisamos nos preocupar com a reversão.
Como alterar a tabela no SQL?
Usamos a instrução da tabela ALTER para modificar as colunas existentes nas tabelas atualmente. Também com essa mesma declaração, podemos eliminar ou adicionar restrições diferentes na tabela.
Abaixo está a sintaxe para adicionar uma nova coluna à tabela existente:
ALTER TABLE table_name ADD (column_name1 datatype, column_name2 datatype… column datatype);
Vamos adicionar outra coluna 'ADDRESS' à tabela existente 'STUDENTS'.
ALTER TABLE STUDENTS ADD ADDRESS VARCHAR (50);
SELECT * FROM STUDENTS;
LISTA | NOME | ERA | SUJEITO | ENDEREÇO |
8 | RAM | 12 | INGLÊS | |
11 | Priya | 11 | MATEMÁTICA | |
9 | Rahul | 10 | CIÊNCIA |
Na consulta acima, a coluna ADDRESS é adicionada à tabela.
Se queremos soltar uma coluna, isso pode ser feito pela sintaxe abaixo:
ALTER TABLE table_name DROP COLUMN column_name;
Vamos ver o exemplo abaixo, soltando a coluna ADDRESS.
ALTER TABLE table_name DROP COLUMN ADDRESS;
A consulta acima fornecerá o resultado abaixo.
LISTA | NOME | ERA | SUJEITO |
8 | RAM | 12 | INGLÊS |
11 | Priya | 11 | MATEMÁTICA |
9 | Rahul | 10 | CIÊNCIA |
Aqui podemos ver que a tabela é modificada quando a coluna ADDRESS agora é removida da tabela 'STUDENTS'.
Com a ajuda da instrução ALTER, podemos modificar uma ou mais colunas ao mesmo tempo.
A sintaxe para modificar a coluna é a seguinte.
ALTER TABLE STUDENTS MODIFY column_name datatype;
ALTER TABLE STUDENTS MODIFY SUBJECT VARCHAR (30);
Como buscar dados da tabela no SQL?
No SQL, a instrução SELECT é usada como um dos mecanismos flexíveis para recuperar dados das tabelas nos bancos de dados. A sintaxe de uma consulta com SELECT é a seguinte:
SELECT column1, column2… FROM table_name;
Na consulta acima, precisamos colocar as colunas para as quais queremos recuperar dados da tabela. Caso desejemos buscar os dados para todas as colunas ou os dados de toda a tabela, podemos fazer isso usando a sintaxe abaixo:
SELECT * FROM table_name;
SELECT * FROM STUDENTS;
LISTA | NOME | ERA | SUJEITO |
8 | RAM | 12 | INGLÊS |
11 | Priya | 11 | MATEMÁTICA |
9 | Rahul | 10 | CIÊNCIA |
Com isso, o uso de um curinga - '*' recuperará todas as linhas e colunas da tabela 'STUDENTS'. Essa é a forma mais simples da instrução SELECT. No entanto, se surgir o requisito em que precisamos restringir a busca de dados de acordo com algumas condições específicas, precisamos usar a cláusula WHERE. A sintaxe para isso é a seguinte:
SELECT column1, column2…
FROM table_name
WHERE (condition);
Vamos ver como buscar os dados com a condição especificada usando a consulta acima. Suponha que desejemos selecionar o ROLO e o ASSUNTO do aluno com idade superior a 10 anos na tabela 'ALUNOS'.
SELECT ROLL, SUBJECT FROM STUDENTS WHERE AGE > 10;
A consulta acima restringirá os resultados apenas aos alunos com idade superior a 10 anos. Aqui, a cláusula 'WHERE' limitará o resultado da consulta à condição especificada.
LISTA | NOME | ERA | SUJEITO |
8 | RAM | 12 | INGLÊS |
11 | Priya | 11 | MATEMÁTICA |
Como copiar tabela em SQL?
Podemos copiar os dados de uma tabela para outra usando as instruções SELECT INTO ou INSERT INTO. Ao usar uma instrução SELECT INTO, o banco de dados não precisa ter a tabela de destino na qual os dados serão copiados para estar lá. Mas, no caso de usar a instrução INSERT INTO, a tabela de destino na qual os dados serão copiados deve existir no banco de dados.
SELECT * INTO table_new FROM table_old;
A consulta acima copiará todas as colunas de table_old para table_new.
Além disso, se queremos copiar apenas algumas colunas de uma para a outra tabela, podemos usar a sintaxe abaixo:
SELECT column1, column2… INTO table_new FROM table_old;
Vamos dar um exemplo em que queremos copiar os dados da tabela para outra tabela 'STUDENT_DETAILS' e ela pode ser executada da seguinte forma:
SELECT * INTO STUDENT_DETAILS FROM STUDENTS;
Outra tabela 'STUDENT_DETAILS' deve ser criada como abaixo:
LISTA | NOME | ERA | SUJEITO |
8 | RAM | 12 | INGLÊS |
11 | Priya | 11 | MATEMÁTICA |
9 | Rahul | 10 | CIÊNCIA |
A sintaxe para copiar dados usando a instrução INSERT INTO é a seguinte:
INSERT INTO table_new(column1, column2… )
SELECT column1, column2… FROM table_old WHERE (condition);
Como discutido acima, a instrução INSERT INTO exigirá a presença da tabela de destino, primeiro precisamos criar a estrutura da tabela de destino no banco de dados. Depois de criar a estrutura da tabela STUDENT_DETAILS, iremos para a consulta abaixo.
INSERT INTO STUDENT_DETAILS (ROLL, NAME, AGE)
SELECT ROLL, NAME, AGE FROM STUDENTS
WHERE SUBJECT = 'SCIENCE';
A consulta acima fornecerá o resultado abaixo:
LISTA | NOME | ERA | SUJEITO |
9 | Rahul | 10 | CIÊNCIA |
Devemos manter o aviso de que, ao usar a instrução INSERT INTO, os tipos de dados das colunas nas tabelas de origem e destino devem corresponder um ao outro.
Conclusão
No RDBMS, as tabelas fazem o armazenamento, recuperação, manutenção e manipulação de dados da maneira mais eficaz. Com o uso de diferentes comandos, podemos organizar e manipular os dados de acordo com os requisitos de negócios. Cabe ao designer / desenvolvedor ver as flexibilidades dos diferentes comandos e operações para escolher melhor para seus projetos e implementações.
Artigos recomendados
Este é um guia para Tabela em SQL. Aqui discutimos a tabela Introdução e Como criar, descartar, excluir, renomear, truncar, alterar, buscar dados e copiar tabela no SQL. Você também pode consultar os seguintes artigos para saber mais:
- Chave estrangeira no SQL
- Transações em SQL
- Exibições SQL
- Banco de dados em SQL
- Exemplos de INSERT no Oracle