SlideShare uma empresa Scribd logo
1 de 52
Modulo 15
Linguagem de definição de dados
Programação e Sistemas de Informação
http://www.orafaq.com/faq/what_are_the_difference_between_ddl_dml_and_dcl_commands
Objetivos de Aprendizagem
No final deste módulo os alunos devem ter adquirido
conhecimentos, procedimentos e atitudes que lhe permitam:
•Criação, alteração e eliminação de tabelas e índices em SQL;
•Criação e eliminação de tabelas;
•Alteração de tabelas;
•Criação e eliminação de índices;
•Conceito de transação;
•Privilégios e controlo de acessos.
Âmbito dos Conteúdos
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)
2. Atualização de dados
2.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)
Transações no SQL Server
• Definição de ‘Uma transação’ é um conjunto de
procedimentos que são executados num sistema de
base de dados. Para o utilizador, este sistema, é visto
como uma única ação.
• Deve-se garantir que a transacção é executada
correctamente, ou seja, deve garantir-se a
Atomicidade. (Ou executa todos os passos
correctamente ou em caso de falha nalgum passo, não
executa a transacção.)
Consola do MySql
Com o Xampp (sem serviço ativo):
Cmd
Cd 
Cd c:xamppmysqlbin
Mysql -u root
Planificação
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
Fichas de trabalho
SHOW DATABASES
• mysql> SHOW DATABASES;
Empty set (0.00 sec)
Lista as bases de dados que estão no servidor.
Create Database
• Sintaxe:
– CREATE DATABASE nome_base_de_dados;
• Exemplo:
– CREATE DATABASE db_musicas;
CREATE DATABASE
• Criar uma base de dados.
• mysql> CREATE DATABASE [IF NOT EXISTS]
nome_bd
• mysql> CREATE DATABASE [IF NOT EXISTS]
db_alunos;
USE DATABASE
• mysql> USE db_alunos;
A indicação USE db_name diz ao MySQL que
use o a base de dados db_alunos como padrão
(atual) para declarações subsequentes.
SHOW TABLES
• mysql> SHOW TABLES;
Empty set (0.00 sec)
Lista as tabelas que a base de dados escolhida
(USE) tem.
CREATE TABLE
• Cria uma tabela
CREATE TABLE nome_tabela (
campo1 tipo_1 [[NOT]NULL][UNIQUE]
[{, campo_n tipo_n}]
[, PRIMARY KEY (campo1)]
[{, FOREIGN KEY (campo2) REFERENCES nome_tabela2
(campo3)}]
)
CREATE TABLE (Exemplo)
• mysql> CREATE TABLE pet (
nome VARCHAR(20),
owner VARCHAR(20),
species VARCHAR(20),
sex CHAR(1),
birth DATE,
death DATE);
https://www.w3schools.com/sql/sql_datatypes.asp
CREATE TABLE
(Exemplo com Chaves Primárias e Secundárias)
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));
Espaços web para praticar
• 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/
CREATE TABLE (Exercício 1)
• 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.
SHOW CREATE TABLE
• mysql> SHOW CREATE TABLE nome_bd;
• mysql> SHOW CREATE TABLE Alunos;
CREATE TABLE Alunos (
CodAluno int(3) NOT NULL,
Nome text,
Idade int(2) DEFAULT NULL,
PRIMARY KEY (CodAluno)
) ENGINE=INNODB DEFAULT CHARSET=utf8
Listar os Objetos
SHOW DATABASES;
SHOW TABLES;
SHOW CREATE [TABLES/DB];
SHOW [FULL] COLUMNS {FROM | IN} tbl_name
[{FROM | IN} db_name] [LIKE 'pattern' | WHERE
expr]
Exemplo Prático Projeto
• CREATE TABLE tbl_alunos
(
numero int,
apelido varchar(255),
primeironome varchar(255),
turma char(2),
ano int
);
DROP DATABASE
Elimina uma base de dados
•mysql> DROP DATABASE IF EXISTS Nome_BD;
•mysql> DROP DATABASE IF EXISTS Pessoas;
SHOW TABLES
• mysql> SHOW TABLES;
ALTER TABLE
• Add a column
• Modify a column
• Drop a column
• Rename a column
• Rename a table
ALTER TABLE ADD
ALTER TABLE table_name
ADD column_name datatype
ALTER TABLE supplier
ADD supplier_name varchar2(50);
ALTER TABLE table_name
ADD (column_1 column-definition,
column_2 column-definition,
...
column_n column_definition);
Exemplo prático de ADD Column
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);
ALTER TABLE MODIFY
ALTER TABLE table_name
MODIFY COLUMN column_name datatype
ALTER TABLE supplier
MODIFY COLUMN supplier_name varchar2(100)
not null;
Exemplo prático de MODIFY
COLUMN
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);
ALTER TABLE RENAME COLUMN
ALTER TABLE table_name
RENAME COLUMN old_name to new_name;
ALTER TABLE supplier
RENAME COLUMN supplier_name to sname;
Exemplo prático de ALTER TABLE
RENAME COLUMN
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;
ALTER TABLE RENAME TO
ALTER TABLE table_name
RENAME TO new_table_name;
ALTER TABLE alunos
RENAME TO tbl_alunos;
ALTER TABLE DROP
ALTER TABLE table_name
DROP COLUMN column_name
ALTER TABLE alunos
DROP COLUMN porta;
DROP DATABASE
• Sintaxe
– DROP DATABASE nome_base_de_dados
• Exemplo
– DROP DATABASE musicas;
Begin, Commit e RollBack Transaction
• Exemplo do pagamento Multibanco!
• Basicamente as transações no SQL Server são
feitas utilizando três comandos:
– BEGIN TRANSACTION
– COMMIT
– ROLLBACK
Exemplo prático 1
BEGIN TRANSACTION
UPDATE TABELA1 SET CAMPO1 = ‘NOVO VALOR’
WHERE CAMPO2 = 35
IF @@ERROR <> 0
ROLLBACK
ELSE
COMMIT
Exemplo prático 2
BEGIN TRANSACTION TRANS1
UPDATE TABELA1 SET CAMPO1 = ‘NOVO
VALOR’
WHERE CAMPO2 = 35
IF @@ERROR <> 0
ROLLBACK TRANSACTION TRANS1
ELSE
COMMIT TRANSACTION TRANS1
Algumas Regras
Mantenha transacções curtas, ou seja, não coloque muitas instruções SQL
entre o BEGIN TRANSACTION e o COMMIT.
Vamos supor que alguém resolve desligar o computador em que o servido
em que o MySQL está a fazer uma transacção. A transacção foi iniciada
mais ainda não fez o COMMIT. Neste caso, quando o serviço do SQL
Server foi reiniciado, todas as transacções que ainda não executaram o
COMMIT voltarão ao seu estado inicial antes do BEGIN TRANSACTION.
Procure sempre dar nomes as transacções. Isso obriga a utilização do
TRANSACTION no COMMIT e no ROLLBACK.
Encadeamento de transacções são permitidos. Para ver em que nível de
transacção em que está, utilize a variável @@TRANCOUNT
4. Privilégios e controlo de acessos
(comandos GRANT e REVOKE)
Os comandos GRANT e REVOKE permitem aos
administradores do sistema criar utilizadores e conceder
e revogar direitos aos utilizadores do MySQL em quatro
níveis de privilégios.
Criar um utilizador
• CREATE USER ‘teste'@'localhost' IDENTIFIED
BY 'mypass';
SINTAXE
GRANT priv_type [(column_list)] [, tipo_priv [(column_list)] ...]
ON {tbl_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY [PASSWORD] 'password']
[, user_name [IDENTIFIED BY [PASSWORD] 'password'] ...]
[REQUIRE NONE |
[{SSL| X509}]
[CIPHER cipher [AND]]
[ISSUER issuer [AND]]
[SUBJECT subject]]
[WITH [GRANT OPTION | MAX_QUERIES_PER_HOUR # |
MAX_UPDATES_PER_HOUR # |
MAX_CONNECTIONS_PER_HOUR #]]
REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON {tbl_name | * | *.* | db_name.*}
FROM user_name [, user_name ...]
GRANT
SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON bankaccount.*
-> TO custom@localhost
-> IDENTIFIED BY 'obscure';
Nível Global
Privilégios globais aplicam para todos os bancos de dados
em um determinado servidor.
Estes privilégios são armazenados na tabela mysql.user.
GRANT ALL ON *.* e REVOKE ALL ON *.*
concederão e revogarão apenas privilégios globais.
Nível da Base de Dados
Privilégios de bancos de dados aplicam-se a todas as
tabelas em um determinado banco de dados.
Estes privilégios são armazenados nas tabelas mysql.db e
mysql.host.
GRANT ALL ON db.* e REVOKE ALL ON db.* concederão
e revogarão apenas privilégios de banco de dados.
Nível das tabelas
Privilégios de tabelas aplicam-se a todas as colunas em
uma determinada tabela.
Estes privilégios são armazenados na tabela
mysql.tables_priv.
GRANT ALL ON db.table e REVOKE ALL ON db.table
concederão e revogarão apenas privilégios de tabelas.
Nível das colunas
Privilégios de colunas aplicam-se a uma única coluna em
uma determinada tabela.
Estes privilégios são armazenados na tabela
mysql.columns_priv.
ALL [PRIVILEGES] Configura todos os privilégios simples exceto WITH GRANT OPTION
ALTER Permite o uso de ALTER TABLE
CREATE Permite o uso de CREATE TABLE
CREATE TEMPORARY TABLES Permite o uso de CREATE TEMPORARY TABLE
DELETE Permite o uso de DELETE
DROP Permite o uso de DROP TABLE.
EXECUTE Permite que o utilizador execute stored procedures (MySQL 5.0)
FILE Permite o uso de SELECT ... INTO OUTFILE e LOAD DATA INFILE.
INDEX Permite o uso de CREATE INDEX e DROP INDEX
INSERT Permite o uso de INSERT
LOCK TABLES Permite o uso de LOCK TABLES em tabelas nas quais se tem o privilégio SELECT.
PROCESS Permite o uso de SHOW FULL PROCESSLIST
REFERENCES Para o futuro
RELOAD Permite o uso de FLUSH
REPLICATION CLIENT Da o direto ao utilizador de perguntar onde o slave/master está.
REPLICATION SLAVE Necessário para a replicação dos slaves (para ler logs binário do master).
SELECT Permite o uso de SELECT
SHOW DATABASES SHOW DATABASES mostra todos os banco de dados.
SHUTDOWN Permite o uso de mysqladmin shutdown
SUPER
Permite a conexão (uma vez) mesmo se max_connections tiverem sido alcançados e executa o comando
CHANGE MASTER, KILL thread, mysqladmin debug, PURGE MASTER LOGS e SET GLOBAL
UPDATE Permite o uso de UPDATE
USAGE Sinônimo para ``sem privilégios.''
GRANT OPTION Sinônimo para WITH GRANT OPTION
Para as instruções GRANT e REVOKE, tipo_priv pode ser especificado como um dos seguintes:
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
IDENTIFIED BY 'alguma_senha' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@'%'
IDENTIFIED BY 'alguma_senha' WITH GRANT OPTION;
Um superutilizador completo que pode conectar ao servidor de qualquer
lugar, mas deve utilizar uma senha 'alguma_senha' para fazer isto.
Perceba que devemos utilizar instruções GRANT para monty@localhost e
monty@"%".
Retirar privilégios
• REVOKE ALL PRIVILEGES, GRANT OPTION
FROM user [, user] ...
• REVOKE INSERT ON *.* FROM
‘teste'@'localhost';
Mostrar os privilégios
• SHOW GRANTS FOR 'root'@'localhost';
Apagar um Sql “User”
• DROP USER ‘carlos'@'localhost';
Exemplo 1
mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY
'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> WITH GRANT OPTION;
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY
'admin_pass';
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> CREATE USER 'dummy'@'localhost';
Exemplo 2
mysql> CREATE USER 'custom'@'localhost' IDENTIFIED
BY 'obscure';
mysql> GRANT
SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON db_alunos.*
-> TO 'custom'@'localhost';
Conclusão
• Resumo, conclusão, revisões, avaliação e
autoavaliação.

Mais conteúdo relacionado

Mais procurados

Exercícios de mysql
Exercícios de mysqlExercícios de mysql
Exercícios de mysqlLeo Frazão
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Leinylson Fontinele
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoLuis Ferreira
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01thomasdacosta
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 
Introdução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHPIntrodução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHPClayton de Almeida Souza
 
Módulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdfMódulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdfFChico2
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-phpdiogoa21
 
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributosLoiane Groner
 

Mais procurados (20)

Exercícios de mysql
Exercícios de mysqlExercícios de mysql
Exercícios de mysql
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Ciclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemasCiclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemas
 
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informação
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
So-mod-4
So-mod-4So-mod-4
So-mod-4
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Aula sobre Linux.
Aula sobre Linux. Aula sobre Linux.
Aula sobre Linux.
 
Voki - tutorial
Voki - tutorialVoki - tutorial
Voki - tutorial
 
Setup; bios; post.
Setup; bios; post.Setup; bios; post.
Setup; bios; post.
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Introdução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHPIntrodução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHP
 
Módulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdfMódulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdf
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-php
 
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
 
Aula10 sql-ddl
Aula10 sql-ddlAula10 sql-ddl
Aula10 sql-ddl
 

Semelhante a Modulo 15 PSI

Semelhante a Modulo 15 PSI (20)

Aula 05 acessando o mysql
Aula 05   acessando o mysqlAula 05   acessando o mysql
Aula 05 acessando o mysql
 
Bd08
Bd08Bd08
Bd08
 
Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQL
 
Curso de Certificação Linux LPI - Terminal Root
Curso de Certificação Linux LPI - Terminal RootCurso de Certificação Linux LPI - Terminal Root
Curso de Certificação Linux LPI - Terminal Root
 
Basesdedados
BasesdedadosBasesdedados
Basesdedados
 
Agbd aula4 sql_ddl
Agbd aula4 sql_ddlAgbd aula4 sql_ddl
Agbd aula4 sql_ddl
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sql
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
 
Python 04
Python 04Python 04
Python 04
 
Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
Oracle 11g resumo
Oracle 11g resumoOracle 11g resumo
Oracle 11g resumo
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Bd sql (1)
Bd sql (1)Bd sql (1)
Bd sql (1)
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Aulas_SQL.pdf
Aulas_SQL.pdfAulas_SQL.pdf
Aulas_SQL.pdf
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
 
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8
 

Mais de Luis Ferreira

IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)Luis Ferreira
 
Unidade 2 - Processador de texto (Aula 1 e 2)
Unidade 2 - Processador de texto (Aula 1 e 2)Unidade 2 - Processador de texto (Aula 1 e 2)
Unidade 2 - Processador de texto (Aula 1 e 2)Luis Ferreira
 
1º Congresso Nacional de Professores de Informática 2015
1º Congresso Nacional de Professores de Informática 20151º Congresso Nacional de Professores de Informática 2015
1º Congresso Nacional de Professores de Informática 2015Luis Ferreira
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresLuis Ferreira
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Luis Ferreira
 
Projeto de Investigação do Curso de Doutoramento
Projeto de Investigação do Curso de DoutoramentoProjeto de Investigação do Curso de Doutoramento
Projeto de Investigação do Curso de DoutoramentoLuis Ferreira
 
Novos professores nas escolas.
Novos professores nas escolas.Novos professores nas escolas.
Novos professores nas escolas.Luis Ferreira
 
Informação digital na gestão e organização escolar
Informação digital na gestão e organização escolarInformação digital na gestão e organização escolar
Informação digital na gestão e organização escolarLuis Ferreira
 
Plano de Comunicação Digital e Gestão Educacional
Plano de Comunicação Digital e Gestão EducacionalPlano de Comunicação Digital e Gestão Educacional
Plano de Comunicação Digital e Gestão EducacionalLuis Ferreira
 
Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Plano de Comunicação e Gestão Educacional (Pré-Projeto)Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Plano de Comunicação e Gestão Educacional (Pré-Projeto)Luis Ferreira
 
Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Luis Ferreira
 
Configuração de dispositivos de io
Configuração de dispositivos de ioConfiguração de dispositivos de io
Configuração de dispositivos de ioLuis Ferreira
 
Linguagens de programação 12º M12
Linguagens de programação 12º M12Linguagens de programação 12º M12
Linguagens de programação 12º M12Luis Ferreira
 
Linguagens de programação 12º M11
Linguagens de programação 12º M11Linguagens de programação 12º M11
Linguagens de programação 12º M11Luis Ferreira
 
Redes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSIRedes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSILuis Ferreira
 
Redes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSIRedes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSILuis Ferreira
 

Mais de Luis Ferreira (20)

IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
 
Sessão 2 app
Sessão 2 appSessão 2 app
Sessão 2 app
 
Unidade 2 - Processador de texto (Aula 1 e 2)
Unidade 2 - Processador de texto (Aula 1 e 2)Unidade 2 - Processador de texto (Aula 1 e 2)
Unidade 2 - Processador de texto (Aula 1 e 2)
 
ticEduca2016
ticEduca2016ticEduca2016
ticEduca2016
 
1º Congresso Nacional de Professores de Informática 2015
1º Congresso Nacional de Professores de Informática 20151º Congresso Nacional de Professores de Informática 2015
1º Congresso Nacional de Professores de Informática 2015
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4
 
Projeto de Investigação do Curso de Doutoramento
Projeto de Investigação do Curso de DoutoramentoProjeto de Investigação do Curso de Doutoramento
Projeto de Investigação do Curso de Doutoramento
 
Novos professores nas escolas.
Novos professores nas escolas.Novos professores nas escolas.
Novos professores nas escolas.
 
Informação digital na gestão e organização escolar
Informação digital na gestão e organização escolarInformação digital na gestão e organização escolar
Informação digital na gestão e organização escolar
 
Plano de Comunicação Digital e Gestão Educacional
Plano de Comunicação Digital e Gestão EducacionalPlano de Comunicação Digital e Gestão Educacional
Plano de Comunicação Digital e Gestão Educacional
 
Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Plano de Comunicação e Gestão Educacional (Pré-Projeto)Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Plano de Comunicação e Gestão Educacional (Pré-Projeto)
 
Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1
 
Leadership Starratt
Leadership StarrattLeadership Starratt
Leadership Starratt
 
Configuração de dispositivos de io
Configuração de dispositivos de ioConfiguração de dispositivos de io
Configuração de dispositivos de io
 
Linguagens de programação 12º M12
Linguagens de programação 12º M12Linguagens de programação 12º M12
Linguagens de programação 12º M12
 
Linguagens de programação 12º M11
Linguagens de programação 12º M11Linguagens de programação 12º M11
Linguagens de programação 12º M11
 
Redes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSIRedes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSI
 
Redes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSIRedes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSI
 

Último

Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaronaldojacademico
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdflucassilva721057
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
interfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfinterfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfIvoneSantos45
 
tabela desenhos projetivos REVISADA.pdf1
tabela desenhos projetivos REVISADA.pdf1tabela desenhos projetivos REVISADA.pdf1
tabela desenhos projetivos REVISADA.pdf1Michycau1
 
ANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptx
ANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptxANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptx
ANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptxlvaroSantos51
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptxMarlene Cunhada
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfjanainadfsilva
 

Último (20)

Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riqueza
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdf
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
interfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfinterfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdf
 
tabela desenhos projetivos REVISADA.pdf1
tabela desenhos projetivos REVISADA.pdf1tabela desenhos projetivos REVISADA.pdf1
tabela desenhos projetivos REVISADA.pdf1
 
ANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptx
ANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptxANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptx
ANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptx
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptx
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
 

Modulo 15 PSI

  • 1. Modulo 15 Linguagem de definição de dados Programação e Sistemas de Informação
  • 3. Objetivos de Aprendizagem No final deste módulo os alunos devem ter adquirido conhecimentos, procedimentos e atitudes que lhe permitam: •Criação, alteração e eliminação de tabelas e índices em SQL; •Criação e eliminação de tabelas; •Alteração de tabelas; •Criação e eliminação de índices; •Conceito de transação; •Privilégios e controlo de acessos.
  • 4. Âmbito dos Conteúdos 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) 2. Atualização de dados 2.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)
  • 5. Transações no SQL Server • Definição de ‘Uma transação’ é um conjunto de procedimentos que são executados num sistema de base de dados. Para o utilizador, este sistema, é visto como uma única ação. • Deve-se garantir que a transacção é executada correctamente, ou seja, deve garantir-se a Atomicidade. (Ou executa todos os passos correctamente ou em caso de falha nalgum passo, não executa a transacção.)
  • 6. Consola do MySql Com o Xampp (sem serviço ativo): Cmd Cd Cd c:xamppmysqlbin Mysql -u root
  • 7. Planificação 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 Fichas de trabalho
  • 8. SHOW DATABASES • mysql> SHOW DATABASES; Empty set (0.00 sec) Lista as bases de dados que estão no servidor.
  • 9. Create Database • Sintaxe: – CREATE DATABASE nome_base_de_dados; • Exemplo: – CREATE DATABASE db_musicas;
  • 10. CREATE DATABASE • Criar uma base de dados. • mysql> CREATE DATABASE [IF NOT EXISTS] nome_bd • mysql> CREATE DATABASE [IF NOT EXISTS] db_alunos;
  • 11. USE DATABASE • mysql> USE db_alunos; A indicação USE db_name diz ao MySQL que use o a base de dados db_alunos como padrão (atual) para declarações subsequentes.
  • 12. SHOW TABLES • mysql> SHOW TABLES; Empty set (0.00 sec) Lista as tabelas que a base de dados escolhida (USE) tem.
  • 13. CREATE TABLE • Cria uma tabela CREATE TABLE nome_tabela ( campo1 tipo_1 [[NOT]NULL][UNIQUE] [{, campo_n tipo_n}] [, PRIMARY KEY (campo1)] [{, FOREIGN KEY (campo2) REFERENCES nome_tabela2 (campo3)}] )
  • 14. CREATE TABLE (Exemplo) • mysql> CREATE TABLE pet ( nome VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE); https://www.w3schools.com/sql/sql_datatypes.asp
  • 15. CREATE TABLE (Exemplo com Chaves Primárias e Secundárias) 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));
  • 16. Espaços web para praticar • 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/
  • 17. CREATE TABLE (Exercício 1) • 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.
  • 18. SHOW CREATE TABLE • mysql> SHOW CREATE TABLE nome_bd; • mysql> SHOW CREATE TABLE Alunos; CREATE TABLE Alunos ( CodAluno int(3) NOT NULL, Nome text, Idade int(2) DEFAULT NULL, PRIMARY KEY (CodAluno) ) ENGINE=INNODB DEFAULT CHARSET=utf8
  • 19. Listar os Objetos SHOW DATABASES; SHOW TABLES; SHOW CREATE [TABLES/DB]; SHOW [FULL] COLUMNS {FROM | IN} tbl_name [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
  • 20. Exemplo Prático Projeto • CREATE TABLE tbl_alunos ( numero int, apelido varchar(255), primeironome varchar(255), turma char(2), ano int );
  • 21. DROP DATABASE Elimina uma base de dados •mysql> DROP DATABASE IF EXISTS Nome_BD; •mysql> DROP DATABASE IF EXISTS Pessoas;
  • 22. SHOW TABLES • mysql> SHOW TABLES;
  • 23. ALTER TABLE • Add a column • Modify a column • Drop a column • Rename a column • Rename a table
  • 24. ALTER TABLE ADD ALTER TABLE table_name ADD column_name datatype ALTER TABLE supplier ADD supplier_name varchar2(50); ALTER TABLE table_name ADD (column_1 column-definition, column_2 column-definition, ... column_n column_definition);
  • 25. Exemplo prático de ADD Column 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);
  • 26. ALTER TABLE MODIFY ALTER TABLE table_name MODIFY COLUMN column_name datatype ALTER TABLE supplier MODIFY COLUMN supplier_name varchar2(100) not null;
  • 27. Exemplo prático de MODIFY COLUMN 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);
  • 28. ALTER TABLE RENAME COLUMN ALTER TABLE table_name RENAME COLUMN old_name to new_name; ALTER TABLE supplier RENAME COLUMN supplier_name to sname;
  • 29. Exemplo prático de ALTER TABLE RENAME COLUMN 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;
  • 30. ALTER TABLE RENAME TO ALTER TABLE table_name RENAME TO new_table_name; ALTER TABLE alunos RENAME TO tbl_alunos;
  • 31. ALTER TABLE DROP ALTER TABLE table_name DROP COLUMN column_name ALTER TABLE alunos DROP COLUMN porta;
  • 32. DROP DATABASE • Sintaxe – DROP DATABASE nome_base_de_dados • Exemplo – DROP DATABASE musicas;
  • 33. Begin, Commit e RollBack Transaction • Exemplo do pagamento Multibanco! • Basicamente as transações no SQL Server são feitas utilizando três comandos: – BEGIN TRANSACTION – COMMIT – ROLLBACK
  • 34. Exemplo prático 1 BEGIN TRANSACTION UPDATE TABELA1 SET CAMPO1 = ‘NOVO VALOR’ WHERE CAMPO2 = 35 IF @@ERROR <> 0 ROLLBACK ELSE COMMIT
  • 35. Exemplo prático 2 BEGIN TRANSACTION TRANS1 UPDATE TABELA1 SET CAMPO1 = ‘NOVO VALOR’ WHERE CAMPO2 = 35 IF @@ERROR <> 0 ROLLBACK TRANSACTION TRANS1 ELSE COMMIT TRANSACTION TRANS1
  • 36. Algumas Regras Mantenha transacções curtas, ou seja, não coloque muitas instruções SQL entre o BEGIN TRANSACTION e o COMMIT. Vamos supor que alguém resolve desligar o computador em que o servido em que o MySQL está a fazer uma transacção. A transacção foi iniciada mais ainda não fez o COMMIT. Neste caso, quando o serviço do SQL Server foi reiniciado, todas as transacções que ainda não executaram o COMMIT voltarão ao seu estado inicial antes do BEGIN TRANSACTION. Procure sempre dar nomes as transacções. Isso obriga a utilização do TRANSACTION no COMMIT e no ROLLBACK. Encadeamento de transacções são permitidos. Para ver em que nível de transacção em que está, utilize a variável @@TRANCOUNT
  • 37. 4. Privilégios e controlo de acessos (comandos GRANT e REVOKE) Os comandos GRANT e REVOKE permitem aos administradores do sistema criar utilizadores e conceder e revogar direitos aos utilizadores do MySQL em quatro níveis de privilégios.
  • 38. Criar um utilizador • CREATE USER ‘teste'@'localhost' IDENTIFIED BY 'mypass';
  • 39. SINTAXE GRANT priv_type [(column_list)] [, tipo_priv [(column_list)] ...] ON {tbl_name | * | *.* | db_name.*} TO user_name [IDENTIFIED BY [PASSWORD] 'password'] [, user_name [IDENTIFIED BY [PASSWORD] 'password'] ...] [REQUIRE NONE | [{SSL| X509}] [CIPHER cipher [AND]] [ISSUER issuer [AND]] [SUBJECT subject]] [WITH [GRANT OPTION | MAX_QUERIES_PER_HOUR # | MAX_UPDATES_PER_HOUR # | MAX_CONNECTIONS_PER_HOUR #]] REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...] ON {tbl_name | * | *.* | db_name.*} FROM user_name [, user_name ...]
  • 40. GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON bankaccount.* -> TO custom@localhost -> IDENTIFIED BY 'obscure';
  • 41. Nível Global Privilégios globais aplicam para todos os bancos de dados em um determinado servidor. Estes privilégios são armazenados na tabela mysql.user. GRANT ALL ON *.* e REVOKE ALL ON *.* concederão e revogarão apenas privilégios globais.
  • 42. Nível da Base de Dados Privilégios de bancos de dados aplicam-se a todas as tabelas em um determinado banco de dados. Estes privilégios são armazenados nas tabelas mysql.db e mysql.host. GRANT ALL ON db.* e REVOKE ALL ON db.* concederão e revogarão apenas privilégios de banco de dados.
  • 43. Nível das tabelas Privilégios de tabelas aplicam-se a todas as colunas em uma determinada tabela. Estes privilégios são armazenados na tabela mysql.tables_priv. GRANT ALL ON db.table e REVOKE ALL ON db.table concederão e revogarão apenas privilégios de tabelas.
  • 44. Nível das colunas Privilégios de colunas aplicam-se a uma única coluna em uma determinada tabela. Estes privilégios são armazenados na tabela mysql.columns_priv.
  • 45. ALL [PRIVILEGES] Configura todos os privilégios simples exceto WITH GRANT OPTION ALTER Permite o uso de ALTER TABLE CREATE Permite o uso de CREATE TABLE CREATE TEMPORARY TABLES Permite o uso de CREATE TEMPORARY TABLE DELETE Permite o uso de DELETE DROP Permite o uso de DROP TABLE. EXECUTE Permite que o utilizador execute stored procedures (MySQL 5.0) FILE Permite o uso de SELECT ... INTO OUTFILE e LOAD DATA INFILE. INDEX Permite o uso de CREATE INDEX e DROP INDEX INSERT Permite o uso de INSERT LOCK TABLES Permite o uso de LOCK TABLES em tabelas nas quais se tem o privilégio SELECT. PROCESS Permite o uso de SHOW FULL PROCESSLIST REFERENCES Para o futuro RELOAD Permite o uso de FLUSH REPLICATION CLIENT Da o direto ao utilizador de perguntar onde o slave/master está. REPLICATION SLAVE Necessário para a replicação dos slaves (para ler logs binário do master). SELECT Permite o uso de SELECT SHOW DATABASES SHOW DATABASES mostra todos os banco de dados. SHUTDOWN Permite o uso de mysqladmin shutdown SUPER Permite a conexão (uma vez) mesmo se max_connections tiverem sido alcançados e executa o comando CHANGE MASTER, KILL thread, mysqladmin debug, PURGE MASTER LOGS e SET GLOBAL UPDATE Permite o uso de UPDATE USAGE Sinônimo para ``sem privilégios.'' GRANT OPTION Sinônimo para WITH GRANT OPTION Para as instruções GRANT e REVOKE, tipo_priv pode ser especificado como um dos seguintes:
  • 46. mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'alguma_senha' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO monty@'%' IDENTIFIED BY 'alguma_senha' WITH GRANT OPTION; Um superutilizador completo que pode conectar ao servidor de qualquer lugar, mas deve utilizar uma senha 'alguma_senha' para fazer isto. Perceba que devemos utilizar instruções GRANT para monty@localhost e monty@"%".
  • 47. Retirar privilégios • REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ... • REVOKE INSERT ON *.* FROM ‘teste'@'localhost';
  • 48. Mostrar os privilégios • SHOW GRANTS FOR 'root'@'localhost';
  • 49. Apagar um Sql “User” • DROP USER ‘carlos'@'localhost';
  • 50. Exemplo 1 mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' -> WITH GRANT OPTION; mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' -> WITH GRANT OPTION; mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin_pass'; mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost'; mysql> CREATE USER 'dummy'@'localhost';
  • 51. Exemplo 2 mysql> CREATE USER 'custom'@'localhost' IDENTIFIED BY 'obscure'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON db_alunos.* -> TO 'custom'@'localhost';
  • 52. Conclusão • Resumo, conclusão, revisões, avaliação e autoavaliação.