Módulo 15 - Linguagem de Definição de Dados
Linguagem de manipulação de dados DML (Data Manipulation Language) Instruções de programação de consultas e
transacções de manipulação da bd.
Linguagem de definição de dados DDL (Data Definition Language) Instruções de definição do esquema da base
de dados
SQL
Módulo 15 - Linguagem de Definição de Dados
Comandos DDL:
- CREATE
- ALTER
- DROP
- RENAME
- TRUNCATE
Módulo 15 - Linguagem de Definição de Dados
Linguagem de manipulação de dados
Manipular tabelas na base de dados com mais funcionalidades do que ALTER.
Linguagem de manipulação de dados
Módulo 15 - Linguagem de Definição de Dados
Create
Este comando permite criar um objeto, como uma nova BD, tabela, visão, índice ou outro elemento estrutural.
Planificação
USE DATABASE
SHOW DATABASES
A indicação USE db_name diz ao MySQL que use a base de dados db_alunos como padrão (atual) para declarações subsequentes.
Quando acede à consola e não sabe que bases de dados estão criadas, utiliza o "Show databases;"
DROP databse - elimina uma BD.
Módulo 15 - Linguagem de Definição de Dados
CREATE TABLE
Este comando permite criar um objeto, como uma nova BD, tabela, visão, índice ou outro elemento estrutural.
SHOW TABLES
Espaços web para praticar
CREATE TABLE - exemplo
Link
Módulo 15 - Linguagem de Definição de Dados
Quais são então as alterações possíveis:
- Add a column
- Modify a column
- Drop a column
- Rename a column
- Rename a table
Alteração de tabelas
Módulo 15 - Linguagem de Definição de Dados
Exemplo prático - ADD Column
Exemplo prático - MODIFY Column
Exemplo prático:
RENAME TO e ALTER TABLE DROP
Exemplo prático - RENAME Column
Módulo 15 - Linguagem de Definição de Dados
JOIN
SIMPLES
SELECT
FUNÇÕES NO SQL
WHERE
MODIFY - tipo de dados ou posição de um atributo
Sintaxe:
Exemplo:
Comando para mostrar o código SQL completo usado na criação de uma tabela: mysql> SHOW CREATE TABLE nome_bd; mysql> SHOW CREATE TABLE Alunos;
Instruções utilizando o comando ALTER TABLE - atributo à BD com o respetivo tipo
Exemplo::
No final deste módulo os alunos devem ter adquirido conhecimentos, procedimentos e atitudes que lhe permitam:
- Criar, alterar e eliminar tabelas e índices em SQL;
- Criar e eliminar tabelas;
- Alterar tabelas;
- Criar e eliminar índices;
- Conceito de transação;
- Privilégios e controlo de acessos
Os comandos da linguagem de definição de dados (DDL) permite-nos definir e gerir um esquema em SQL. Resumindo, um esquema em SQL é um projeto que define como os dados são organizados numa base de dados e como são geridas as relações entre as diferentes tabelas da BD
Sintaxe:
ALTER TABLE table_name
RENAME TO new_table_name;
ALTER TABLE alunos RENAME TO tbl_alunos;
Exemplo:
Sintaxe:
Exemplo:
Sintaxe:
ALTER TABLE table_name RENAME COLUMN old_name to new_name; ALTER TABLE supplier RENAME COLUMN supplier_name to sname;
Exemplo:
2. Atualização de dados2.1. Inserção de linhas (comando INSERT INTO) 2.2. Alteração de valores nas linhas (comando UPDATE) 2.3. Eliminação de linhas (comando DELETE FROM) 3. Conceito de transação (comandos COMMIT e ROLLBACK) 4. Privilégios e controlo de acessos (comandos GRANT e REVOKE)
1. Criação, alteração e eliminação de tabelas e índices em SQL
1.1. Criação de tabelas (comando CREATE TABLE)
1.2. Alteração de tabelas (comando ALTER TABLE)
1.3. Criação de índices (comando CREATE INDEX)
1.4. Eliminação de tabelas e índices (comandos DROP TABLE e DROP INDEX)
create table aluno (
codAluno char(10) PRIMARY KEY,
nome varchar(60) NOT NULL,
dataNasc date,
localidade varchar(50),
rua varchar(50),
numeroPorta varchar(15)
);
ALTER TABLE aluno MODIFY COLUMN rua varchar(100);
CREATE TABLE:
mysql> CREATE TABLE pet ( nome VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
mysql> CREATE TABLE parent(
id INT NOT NULL,
PRIMARY KEY (id));
mysql> CREATE TABLE child(
id INT,
parent_id INT,
FOREIGN KEY (parent_id) REFERENCES parent(id));
To highlight super relevant data. 90% of the information we absorb comes through sight.
Here you can put a highlighted title
With Genially templates, you can include visual resources to leave your audience speechless. You can also highlight a specific phrase or data that will remain fixed in the memory of your audience, and even embed surprising external content: videos, photos, audios... Whatever you want!
INFO
CREATE TABLE product (category INT NOT NULL, id INT NOT NULL, price DECIMAL, PRIMARY KEY(category, id)) ENGINE=INNODB; CREATE TABLE customer (id INT NOT NULL,PRIMARY KEY (id)) ENGINE=INNODB; CREATE TABLE product_order (no INT NOT NULL AUTO_INCREMENT, product_category INT NOT NULL, product_id INT NOT NULL, customer_id INT NOT NULL, PRIMARY KEY(no), INDEX (product_category, product_id), FOREIGN KEY (product_category, product_id)REFERENCES product(category, id) ON UPDATE CASCADE ON DELETE RESTRICT, INDEX (customer_id), FOREIGN KEY (customer_id)REFERENCES customer(id)) ENGINE=INNODB; InnoDB -> é um mecanismo de armazenamento para o MySQL.
Lista as bases de dados que estão no servidor.
mysql> SHOW DATABASES;
Empty set (0.00 sec)
https://sqlzoo.net/ http://www.techonthenet.com/sql/tables/create_table.php http://www.w3resource.com/mysql-exercises/ http://demo.easyquerybuilder.com/asp-net-mvc/ https://www.sqlteaching.com/
Com o Wampp aceda à prompt ....
An awesome presentation...
- Represent data with graphics.
- Use timelines.
- It is animated and interactive.
- Excites the brain through multimedia elements.
- DO NOT exceed with bullet points 🙃.
- Is clear and structured
- Tells stories hierarchically
- Matches your audience
- Customizes fonts and color to the theme
- Includes images and entertains
create table aluno (
codAluno char(10) PRIMARY KEY,
nome varchar(60) NOT NULL,
dataNasc date,
localidade varchar(50),
rua varchar(50),
numeroPorta varchar(15)
);
ALTER TABLE aluno RENAME COLUMN numeroPorta to porta;
Com o Wampp aceda à prompt ....
create table aluno (
codAluno char(10),
nome varchar(60) NOT NULL,
dataNasc date,
localidade varchar(50),
rua varchar(50),
numeroPorta varchar(15)
);
ALTER TABLE aluno ADD numinterno char(5);
Here you can put a highlighted title
- Generate experiences with your content.
- Measure results and experiment.
- It has a WOW effect. Very WOW.
- Activate and surprise your audience.
- Make your audience remember the message.
- It is orderly, hierarchical, and structured.
We don't like to bore. We don't want to be repetitive. Communicating in the same way is boring and doesn't engage. We do it differently. We sabotage boredom. We create what the brain likes to consume because it stimulates it.
Link
Lista as tabelas que a base de dados escolhida (USE) tem.
Exemplo:mysql> SHOW TABLES; Empty set (0.00 sec)
Surprise your audience with interactive images
To create your interactive image...You can use a photograph or an illustration as a base. The important thing is for it to be very attractive to grab the attentionof your audience. With interactive images. Include additional information and display it with a click.
Visual content is a transcultural and universal language, just like music. We are capable of understanding images from millions of years ago, even from different cultures.
Criação, alteração e eliminação da estrutura
- Instrução CREATE DATABASE
- Instrução CREATE TABLE
- Instrução ALTER TABLE
- Instrução CREATE INDEX
- Instrução DROP TABLE/INDEX
Here you can put a highlighted title
With Genially templates, you can include visual resources to leave your audience speechless. You can also highlight specific phrases or data that will be etched into your audience's memory, and even embed external content that surprises: videos, photos, audios... Whatever you want!
INFO
Visual content is a cross-cutting, universal language, like music. We are able to understand images from millions of years ago, even from other cultures.
Sintaxe
- CREATE DATABASE nome_base_de_dados; OU - CREATE DATABASE [IF NOT EXISTS] nome_bd -> o parêntesis retos na sintaxe indica que a cláusula é opcional. Exemplo:
CREATE DATABASE db_musicas; OU CREATE DATABASE IF NOT EXISTS db_alunos;
Sintaxe
-CREATE TABLE nome_tabela ( campo1 tipo_1 [[NOT]NULL][UNIQUE]
[{, campo_n tipo_n}]
[, PRIMARY KEY (campo1)]
[{, FOREIGN KEY (campo2) REFERENCES nome_tabela2 (campo3)}]
)
Deve-se garantir que a transacção é executada correctamente, ou seja, deve garantir-se a Atomicidade. (Ou executa todos os passos correctamente (COMMIT) ou em caso de falha(ROLLBACK) nalgum passo, não executa a transacção.)
Transações
Definição de ‘Uma transação’ é um conjunto de procedimentos que são executados num sistema de base de dados com sucesso (COMMIT). Para o utilizador, este sistema, é visto como uma única ação, garantindo a integridade e consistência dos dados
Link
Exemplo: mysql> USE db_alunos;
O comando SELECT permite recuperar/filtrar os dados de um objeto de uma base de dados, como uma tabela, view e, em alguns casos, uma stored procedure (algumas bases de dados permitem a criação de procedimentos que devolvem valor). A sintaxe mais básica do comando é:
SELECT simples
O caractere * representa todos os campos. Apesar de prático, este caractere não é muito utilizado, pois, para o SGBD é mais rápido receber o comando com todos os campos explicitados
WHERES
A cláusula Where permite ao comando SQL passar condições de filtragem. Veja o exemplo da Listagem 1
A junção de tabelas no comando SELECT também pode ser feita com o comando JOIN. Este comando deve ser utilizado com a palavra reservada INNER ou com a palavra OUTER: - INNER: Semelhante ao uso do operador “=” na junção de tabelas. Aqui os registos sem correspondências não são incluídos. Esta cláusula é opcional e pode ser omitida no comando JOIN. - OUTER: Os registos que não se relacionam também são mostrados. Neste caso, é possível definir qual a tabela que será incluída na seleção, mesmo não tendo correspondência.
São cinco as funções básicas de agrupamento: - AVG: Retorna a média do campo especificado - SELECT AVG(VALOR) FROM PEDIDOS - MIN/MAX/SUM: Respectivamente retorna o menor valor, o maior e o somatório de um grupo de registos: - SELECT MIN(VALOR) FROM PEDIDOS - SELECT MAX(VALOR) FROM PEDIDOS - SELECT AVG(VALOR) FROM PEDIDOS - COUNT: Retorna a quantidade de itens da seleção
Módulo 15 - Linguagem de Definição de Dados
Ana Almeida
Created on September 15, 2025
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Puzzle Diagram
View
Gear Diagram
View
Square Timeline Diagram
View
Timeline Diagram
View
Timeline Diagram 3
View
Timeline Diagram 4
View
Timeline Diagram 2
Explore all templates
Transcript
Módulo 15 - Linguagem de Definição de Dados
Linguagem de manipulação de dados DML (Data Manipulation Language) Instruções de programação de consultas e transacções de manipulação da bd.
Linguagem de definição de dados DDL (Data Definition Language) Instruções de definição do esquema da base de dados
SQL
Módulo 15 - Linguagem de Definição de Dados
Comandos DDL:
Módulo 15 - Linguagem de Definição de Dados
Linguagem de manipulação de dados
Manipular tabelas na base de dados com mais funcionalidades do que ALTER.
Linguagem de manipulação de dados
Módulo 15 - Linguagem de Definição de Dados
Create
Este comando permite criar um objeto, como uma nova BD, tabela, visão, índice ou outro elemento estrutural.
Planificação
USE DATABASE
SHOW DATABASES
A indicação USE db_name diz ao MySQL que use a base de dados db_alunos como padrão (atual) para declarações subsequentes.
Quando acede à consola e não sabe que bases de dados estão criadas, utiliza o "Show databases;"
DROP databse - elimina uma BD.
Módulo 15 - Linguagem de Definição de Dados
CREATE TABLE
Este comando permite criar um objeto, como uma nova BD, tabela, visão, índice ou outro elemento estrutural.
SHOW TABLES
Espaços web para praticar
CREATE TABLE - exemplo
Link
Módulo 15 - Linguagem de Definição de Dados
Quais são então as alterações possíveis:
Alteração de tabelas
Módulo 15 - Linguagem de Definição de Dados
Exemplo prático - ADD Column
Exemplo prático - MODIFY Column
Exemplo prático:
RENAME TO e ALTER TABLE DROP
Exemplo prático - RENAME Column
Módulo 15 - Linguagem de Definição de Dados
JOIN
SIMPLES
SELECT
FUNÇÕES NO SQL
WHERE
MODIFY - tipo de dados ou posição de um atributo
Sintaxe:
Exemplo:
Comando para mostrar o código SQL completo usado na criação de uma tabela: mysql> SHOW CREATE TABLE nome_bd; mysql> SHOW CREATE TABLE Alunos;
Instruções utilizando o comando ALTER TABLE - atributo à BD com o respetivo tipo
Exemplo::
No final deste módulo os alunos devem ter adquirido conhecimentos, procedimentos e atitudes que lhe permitam:
Os comandos da linguagem de definição de dados (DDL) permite-nos definir e gerir um esquema em SQL. Resumindo, um esquema em SQL é um projeto que define como os dados são organizados numa base de dados e como são geridas as relações entre as diferentes tabelas da BD
Sintaxe:
ALTER TABLE table_name RENAME TO new_table_name; ALTER TABLE alunos RENAME TO tbl_alunos;
Exemplo:
Sintaxe:
Exemplo:
Sintaxe:
ALTER TABLE table_name RENAME COLUMN old_name to new_name; ALTER TABLE supplier RENAME COLUMN supplier_name to sname;
Exemplo:
2. Atualização de dados2.1. Inserção de linhas (comando INSERT INTO) 2.2. Alteração de valores nas linhas (comando UPDATE) 2.3. Eliminação de linhas (comando DELETE FROM) 3. Conceito de transação (comandos COMMIT e ROLLBACK) 4. Privilégios e controlo de acessos (comandos GRANT e REVOKE)
1. Criação, alteração e eliminação de tabelas e índices em SQL 1.1. Criação de tabelas (comando CREATE TABLE) 1.2. Alteração de tabelas (comando ALTER TABLE) 1.3. Criação de índices (comando CREATE INDEX) 1.4. Eliminação de tabelas e índices (comandos DROP TABLE e DROP INDEX)
create table aluno ( codAluno char(10) PRIMARY KEY, nome varchar(60) NOT NULL, dataNasc date, localidade varchar(50), rua varchar(50), numeroPorta varchar(15) ); ALTER TABLE aluno MODIFY COLUMN rua varchar(100);
CREATE TABLE:
mysql> CREATE TABLE pet ( nome VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
mysql> CREATE TABLE parent( id INT NOT NULL, PRIMARY KEY (id)); mysql> CREATE TABLE child( id INT, parent_id INT, FOREIGN KEY (parent_id) REFERENCES parent(id));
To highlight super relevant data. 90% of the information we absorb comes through sight.
Here you can put a highlighted title
With Genially templates, you can include visual resources to leave your audience speechless. You can also highlight a specific phrase or data that will remain fixed in the memory of your audience, and even embed surprising external content: videos, photos, audios... Whatever you want!
INFO
CREATE TABLE product (category INT NOT NULL, id INT NOT NULL, price DECIMAL, PRIMARY KEY(category, id)) ENGINE=INNODB; CREATE TABLE customer (id INT NOT NULL,PRIMARY KEY (id)) ENGINE=INNODB; CREATE TABLE product_order (no INT NOT NULL AUTO_INCREMENT, product_category INT NOT NULL, product_id INT NOT NULL, customer_id INT NOT NULL, PRIMARY KEY(no), INDEX (product_category, product_id), FOREIGN KEY (product_category, product_id)REFERENCES product(category, id) ON UPDATE CASCADE ON DELETE RESTRICT, INDEX (customer_id), FOREIGN KEY (customer_id)REFERENCES customer(id)) ENGINE=INNODB; InnoDB -> é um mecanismo de armazenamento para o MySQL.
Lista as bases de dados que estão no servidor.
mysql> SHOW DATABASES; Empty set (0.00 sec)
https://sqlzoo.net/ http://www.techonthenet.com/sql/tables/create_table.php http://www.w3resource.com/mysql-exercises/ http://demo.easyquerybuilder.com/asp-net-mvc/ https://www.sqlteaching.com/
Com o Wampp aceda à prompt ....
An awesome presentation...
create table aluno ( codAluno char(10) PRIMARY KEY, nome varchar(60) NOT NULL, dataNasc date, localidade varchar(50), rua varchar(50), numeroPorta varchar(15) ); ALTER TABLE aluno RENAME COLUMN numeroPorta to porta;
Com o Wampp aceda à prompt ....
create table aluno ( codAluno char(10), nome varchar(60) NOT NULL, dataNasc date, localidade varchar(50), rua varchar(50), numeroPorta varchar(15) ); ALTER TABLE aluno ADD numinterno char(5);
Here you can put a highlighted title
We don't like to bore. We don't want to be repetitive. Communicating in the same way is boring and doesn't engage. We do it differently. We sabotage boredom. We create what the brain likes to consume because it stimulates it.
Link
Lista as tabelas que a base de dados escolhida (USE) tem.
Exemplo:mysql> SHOW TABLES; Empty set (0.00 sec)
Surprise your audience with interactive images
To create your interactive image...You can use a photograph or an illustration as a base. The important thing is for it to be very attractive to grab the attentionof your audience. With interactive images. Include additional information and display it with a click.
Visual content is a transcultural and universal language, just like music. We are capable of understanding images from millions of years ago, even from different cultures.
Criação, alteração e eliminação da estrutura
- Instrução CREATE DATABASE - Instrução CREATE TABLE - Instrução ALTER TABLE - Instrução CREATE INDEX - Instrução DROP TABLE/INDEX
Here you can put a highlighted title
With Genially templates, you can include visual resources to leave your audience speechless. You can also highlight specific phrases or data that will be etched into your audience's memory, and even embed external content that surprises: videos, photos, audios... Whatever you want!
INFO
Visual content is a cross-cutting, universal language, like music. We are able to understand images from millions of years ago, even from other cultures.
Sintaxe
- CREATE DATABASE nome_base_de_dados; OU - CREATE DATABASE [IF NOT EXISTS] nome_bd -> o parêntesis retos na sintaxe indica que a cláusula é opcional. Exemplo: CREATE DATABASE db_musicas; OU CREATE DATABASE IF NOT EXISTS db_alunos;
Sintaxe
-CREATE TABLE nome_tabela ( campo1 tipo_1 [[NOT]NULL][UNIQUE] [{, campo_n tipo_n}] [, PRIMARY KEY (campo1)] [{, FOREIGN KEY (campo2) REFERENCES nome_tabela2 (campo3)}] )
Deve-se garantir que a transacção é executada correctamente, ou seja, deve garantir-se a Atomicidade. (Ou executa todos os passos correctamente (COMMIT) ou em caso de falha(ROLLBACK) nalgum passo, não executa a transacção.)
Transações
Definição de ‘Uma transação’ é um conjunto de procedimentos que são executados num sistema de base de dados com sucesso (COMMIT). Para o utilizador, este sistema, é visto como uma única ação, garantindo a integridade e consistência dos dados
Link
Exemplo: mysql> USE db_alunos;
O comando SELECT permite recuperar/filtrar os dados de um objeto de uma base de dados, como uma tabela, view e, em alguns casos, uma stored procedure (algumas bases de dados permitem a criação de procedimentos que devolvem valor). A sintaxe mais básica do comando é:
SELECT simples
O caractere * representa todos os campos. Apesar de prático, este caractere não é muito utilizado, pois, para o SGBD é mais rápido receber o comando com todos os campos explicitados
WHERES
A cláusula Where permite ao comando SQL passar condições de filtragem. Veja o exemplo da Listagem 1
A junção de tabelas no comando SELECT também pode ser feita com o comando JOIN. Este comando deve ser utilizado com a palavra reservada INNER ou com a palavra OUTER: - INNER: Semelhante ao uso do operador “=” na junção de tabelas. Aqui os registos sem correspondências não são incluídos. Esta cláusula é opcional e pode ser omitida no comando JOIN. - OUTER: Os registos que não se relacionam também são mostrados. Neste caso, é possível definir qual a tabela que será incluída na seleção, mesmo não tendo correspondência.
São cinco as funções básicas de agrupamento: - AVG: Retorna a média do campo especificado - SELECT AVG(VALOR) FROM PEDIDOS - MIN/MAX/SUM: Respectivamente retorna o menor valor, o maior e o somatório de um grupo de registos: - SELECT MIN(VALOR) FROM PEDIDOS - SELECT MAX(VALOR) FROM PEDIDOS - SELECT AVG(VALOR) FROM PEDIDOS - COUNT: Retorna a quantidade de itens da seleção