A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguagem de Definição de Dados

Apresentações semelhantes


Apresentação em tema: "Linguagem de Definição de Dados"— Transcrição da apresentação:

1 Linguagem de Definição de Dados

2 Linguagem de Manipulação de Dados
Conteúdos SQL - DDL (Data Definition Language) Comandos essenciais: Create, Alter e Drop Criação e eliminação de bases de dados Criação, alteração e eliminação de tabelas Criação e eliminação de índices SQL - DML (Data Manipulation Language) Comando Insert Comando Update Comando Delete Transações Privilégios e controlo de acessos Linguagem de Manipulação de Dados

3 SQL – DDL (Data Definition Language)
A linguagem SQL disponibiliza um conjunto de comandos para criação (CREATE), alteração (ALTER) e eliminação (DROP) de tabelas e outras estruturas. Estes comandos fazem parte da sublinguagem denominada DDL – Linguagem de Definição de Dados. Linguagem de Manipulação de Dados

4 Manipulação de Bases de Dados
A sintaxe do comando de criação de bases de dados é: CREATE DATABASE Nome_da_Base_de_Dados A sintaxe do comando de eliminação de bases de dados é: DROP DATABASE Nome_da_Base_de_Dados Linguagem de Manipulação de Dados

5 Manipulação de Tabelas
A criação de tabelas é realizada recorrendo ao comando CREATE TABLE. Para alterar a estrutura de uma tabela recorre-se a comando ALTER TABLE. A eliminação de uma tabela é possível através do comando DROP TABLE. Sintaxe: DROP TABLE Nome_da_Tabela Linguagem de Manipulação de Dados

6 Linguagem de Manipulação de Dados
CREATE TABLE Sintaxe: CREATE TABLE Nome_da_Tabela( NomeCampo1 Tipo, NomeCampo2 Tipo) Tipos de Dados Strings: text, text(n), varchar, varchar(n), char(n) Inteiros: int, integer, smallint, numeric(n) Reais: float, numeric, real Data/hora: date, datetime Moeda: money Nota: o Access faz a manipulação de datas entre cardinais da seguinte forma: #mm/dd/aaaa# Linguagem de Manipulação de Dados

7 Linguagem de Manipulação de Dados
CREATE TABLE - Exemplo Crie uma tabela para armazenar códigos postais: um número inteiro e uma string com 50 caracteres. CREATE TABLE CodigosPostais( Codigo int, Localidade varchar(50)) Linguagem de Manipulação de Dados

8 Linguagem de Manipulação de Dados
CREATE TABLE Na criação de uma tabela é ainda possível: Especificar se uma coluna pode ou não admitir valores nulos (vazios). Para isso utilizam-se as cláusulas NULL ou NOT NULL. Especificar qual o valor por defeito de uma coluna através da cláusula DEFAULT. Nota: O valor por defeito de uma coluna é aplicado/utilizado quando não é introduzido um valor para essa coluna, na criação ou atualização de registos. Linguagem de Manipulação de Dados

9 Linguagem de Manipulação de Dados
CREATE TABLE - Exemplo Crie uma tabela para armazenar códigos postais: um número inteiro e uma string com 50 caracteres. O código não pode ser vazio e a localidade por defeito deve assumir o valor ‘Lisboa’. CREATE TABLE CodigosPostais( Codigo int NOT NULL, Localidade varchar(50) DEFAULT ‘Lisboa’) Linguagem de Manipulação de Dados

10 Linguagem de Manipulação de Dados
CREATE TABLE - Chaves Um dos requisitos do modelo relacional é que cada tabela deve possuir uma chave primária. Deste modo, para a definição da chave primária de uma tabela utiliza-se a cláusula PRIMARY KEY. Para a definição de chaves estrangeiras utilizam-se as cláusulas: REFERENCES OU FOREING KEY (…) REFERENCES … (…) Linguagem de Manipulação de Dados

11 Linguagem de Manipulação de Dados
CREATE TABLE - Exemplo Crie uma tabela para armazenar códigos postais: um número inteiro e uma string com 50 caracteres. Defina o código como chave primária. CREATE TABLE CodigosPostais( Codigo int NOT NULL, Localidade varchar(50) NOT NULL, PRIMARY KEY(Codigo)) Linguagem de Manipulação de Dados

12 Linguagem de Manipulação de Dados
CREATE TABLE - Exemplo Crie uma tabela CodigosPostais para armazenar o código e a localidade. Em seguida crie uma tabela Pessoa para armazenar um código, nome e o código referente ao código postal. CREATE TABLE CodigosPostais( CodPostal int, Localidade varchar(50), PRIMARY KEY(CodPostal)) CREATE TABLE Pessoa( CodPessoa int, Nome varchar(100), CPostal int REFERENCES CodigosPostais(CodPostal), PRIMARY KEY(CodPessoa)) Linguagem de Manipulação de Dados

13 Linguagem de Manipulação de Dados
CREATE TABLE – Exemplo Exemplo da outra forma de definição de chaves estrangeiras. CREATE TABLE CodigosPostais( CodPostal int, Localidade varchar(50), PRIMARY KEY(CodPostal)) CREATE TABLE Pessoa( CodPessoa int, Nome varchar(100), CPostal int, FOREIGN KEY(CPostal) REFERENCES CodigosPostais(CodPostal), PRIMARY KEY(CodPessoa)) Linguagem de Manipulação de Dados

14 Linguagem de Manipulação de Dados
ALTER TABLE Comando utilizado para efectuar alterações na estrutura de uma tabela. Seguem-se alguns exemplos. Adição de um campo a uma tabela: ALTER TABLE NomeTabela ADD NomeCampo Tipo Remoção de um campo a uma tabela: ALTER TABLE NomeTabela DROP NomeCampo Alteração do tipo de dados de um campo: ALTER TABLE NomeTabela MODIFY NomeCampo Tipo Linguagem de Manipulação de Dados

15 Linguagem de Manipulação de Dados
DROP TABLE Comando responsável pela eliminação de uma tabela. A sintaxe do comando é: DROP TABLE Nome_da_Tabela Nota: O comando apaga a tabela especificada e todos os seus dados. Depois de executado o comando, não existe qualquer forma de “desfazer” esta operação. Linguagem de Manipulação de Dados

16 Manipulação de Índices
Permitem uma consulta mais rápida sobre os campos definidos como índice. A sintaxe do comando de criação de índices é: CREATE [UNIQUE] INDEX Nome_do_Indice ON Nome_da_Tabela (Coluna1 [ASC|DESC], ..) Exemplo – Criar um índice sobre a coluna Localidade da tabela CodigosPostais. CREATE INDEX Ind_Local ON CodigosPostais (Localidade) Linguagem de Manipulação de Dados

17 Manipulação de Índices
Para eliminar um índice utiliza-se o comando DROP INDEX. A sintaxe do comando é: DROP INDEX Nome_do_Indice ON Nome_Tabela Exemplo – Eliminação do índice do slide anterior DROP INDEX Ind_Local ON CodigosPostais Linguagem de Manipulação de Dados

18 SQL – DML (Data Manipulation Language)
A linguagem SQL responsável pela manipulação dos dados existentes numa base de dados (nomeadamente em tabelas). A manipulação dos dados de uma tabela é possível através dos comandos: INSERT – Criação de novos registo. UPDATE – atualização de registos existentes. DELETE – Eliminação de registos. Linguagem de Manipulação de Dados

19 Linguagem de Manipulação de Dados
Comando INSERT O comando INSERT permite realizar a introdução de novos registos numa tabela da base de dados. A sintaxe é: INSERT INTO Nome_da_Tabela(Campo1,…,CampoN) VALUES (Valor1, … , ValorN) OU INSERT INTO Nome_da_Tabela VALUES (Valor1, … , ValorN) Linguagem de Manipulação de Dados

20 Comando INSERT - Exemplo
Assumindo a tabela ‘CodigosPostais’ adicione um novo registo com os valores 3720 e Oliveira de Azeméis. INSERT INTO CodigosPostais(CodPostal,Localidade) VALUES (3720, ‘Oliveira de Azeméis’) OU INSERT INTO CodigosPostais VALUES (3720, ‘Oliveira de Azeméis’) NOTA: o formato abreviado obriga a fazer a introdução de valores para todas as colunas da tabela. Linguagem de Manipulação de Dados

21 Linguagem de Manipulação de Dados
Comando UPDATE O comando UPDATE permite atualizar valores já existentes nos campos de uma tabela. A sintaxe é: UPDATE Nome_da_Tabela SET Campo1 = Valor1, … , CampoN = ValorN, [WHERE Condição] A cláusula WHERE permite restringir quais os registos a serem processados. Se omitida todos os registos serão atualizados. Linguagem de Manipulação de Dados

22 Comando UPDATE - Exemplo
Assumindo a tabela ‘Pessoa’ atualize o nome do registo com o código 10 para ‘João’. UPDATE Pessoa SET Nome = ‘João’ WHERE CodPessoa = 10 atualize o código postal de todos os registos para 3720. UPDATE Pessoa SET Cpostal = 3720 Linguagem de Manipulação de Dados

23 Linguagem de Manipulação de Dados
Comando DELETE O comando DELETE permite eliminar registos de uma tabela. A sintaxe do comando é: DELETE FROM Nome_da_Tabela [WHERE Condição] A cláusula WHERE permite restringir os registos a serem eliminados. Se omitida todos os registos da tabela são eliminados. Linguagem de Manipulação de Dados

24 Comando DELETE - Exemplo
Assumindo a tabela ‘Pessoa’ elimine o registo com o código 90. DELETE FROM Pessoa WHERE CodPessoa = 90 Apague todos os registos da tabela. Apague todos os registos da tabela com o código postal 3701. WHERE CPostal = 3701 Linguagem de Manipulação de Dados

25 Linguagem de Manipulação de Dados
Transações Consiste num conjunto de passos inter-relacionados em que ou se realizam todos ou não se realiza nenhum. Ou seja, trata-se de um conjunto de ações de devem ser executadas de forma sequencial. No entanto, caso uma das ações falhe (ocorrência de erro) todas as ações devem parar e falhar. Linguagem de Manipulação de Dados

26 Linguagem de Manipulação de Dados
Transações - Exemplo Suponhamos que um indivíduo A pretende transferir 1000 Eur da sua conta para a conta de um indivíduo B. Ora a transferência corresponde à diminuição do saldo da conta do indivíduo A e ao aumento do saldo da conta do indivíduo B. Ora em código SQL esta transferência dá origem a dois comandos UPDATE: Um para atualizar a conta do indivíduo A Outro para atualizar a conta do indivíduo B Linguagem de Manipulação de Dados

27 Linguagem de Manipulação de Dados
Transações - Exemplo UPDATE Tabela_Conta SET Saldo = Saldo – 1000 WHERE Conta = ‘Conta A’ Saldo = Saldo WHERE Conta = ‘Conta B’ Ora, o que aconteceria se existisse algum problema apenas fosse realizado um dos UPDATES? Ficaria um cliente com mais saldo e outro com o mesmo? Ficaria um cliente com menos saldo e o outro com o mesmo? É aqui que surge o conceito de Transação, para resolução de problemas deste género. Linguagem de Manipulação de Dados

28 Linguagem de Manipulação de Dados
Transações Um transação inicia-se com o comando BEGIN TRANSACTION. Após este comando devem ser colocadas as instruções inter-relacionadas. A transação será finalizada através de um dos comandos: COMMIT – torna todas as alterações definitivas. ROLLBACK – elimina as alterações realizadas, ficando a base de dados no estado em que se encontrava antes da transação ser iniciada. Linguagem de Manipulação de Dados

29 Linguagem de Manipulação de Dados
Transações - Exemplo Resolução do problema anterior. BEGIN TRANSACTION UPDATE Tabela_Conta SET Saldo = Saldo – 1000 WHERE Conta = ‘Conta A’ Saldo = Saldo WHERE Conta = ‘Conta B’ COMMIT Nota: se durante a execução de um dos UPDATES ocorrer um problema então executa-se o comando ROLLBACK (em vez do COMMIT) para retroceder as operações realizadas. Assim, garante-se que ou todas as ações são realizadas com sucesso ou nenhuma é efectuada. Linguagem de Manipulação de Dados

30 Privilégios e controlo de acessos
Os sistemas de gestão de bases de dados permitem essencialmente dois tipos de segurança: Controlo de acesso de utilizadores através do conjunto Login/Password; Definição dos privilégios dos utilizadores (que operações e a que objetos o utilizador pode aceder). Linguagem de Manipulação de Dados

31 Linguagem de Manipulação de Dados
Controlo de Acessos Sintaxe para a criação de utilizadores: CREATE USER Nome_Utilizador IDENTIFIED BY Palavra_Chave Exemplo: CREATE USER User_Psi IDENTIFIED BY ‘PSI_2009’ Linguagem de Manipulação de Dados

32 Linguagem de Manipulação de Dados
Controlo de Acessos Sintaxe para a atualização de utilizadores: ALTER USER Nome_Utilizador IDENTIFIED BY Nova_Palavra_Chave Exemplo: ALTER USER User_Psi IDENTIFIED BY ‘PSI_09’ Sintaxe para a eliminação de utilizadores: DROP USER Nome_Utilizador DROP USER User_Psi Linguagem de Manipulação de Dados

33 Definição de Privilégios
Sintaxe para a atribuição de privilégios: GRANT Privilégio ON objeto TO Utilizador Exemplo: GRANT SELECT, INSERT ON Pessoa TO User_Psi Linguagem de Manipulação de Dados

34 Definição de Privilégios
Os privilégios podem ser: SELECT Permite seleccionar dados da tabela. SELECT(lista) Permite seleccionar as colunas especificadas. INSERT Permite inserir registos na tabela. INSERT(lista) Permite inserir valores nas colunas especificadas. UPDATE Permite alterar registos na tabela. UPDATE(lista) Permite alterar os valores das colunas especificadas. DELETE Permite apagar registos da tabela. REFERENCES Permite referenciar todas as colunas da tabela. REFERENCES(lista) Permite referenciar as colunas especificadas da tabela. EXECUTE Permite a execução de Stored Procedures. ALL Atribui todos os privilégios. Linguagem de Manipulação de Dados

35 Definição de Privilégios
Sintaxe para a remoção de privilégios: REVOKE Privilégio ON objeto FROM Utilizador Exemplo: REVOKE SELECT ON Pessoa FROM User_Psi Linguagem de Manipulação de Dados

36 Linguagem de Manipulação de Dados
Referências DAMAS, Luís: SQL, FCA Linguagem de Manipulação de Dados


Carregar ppt "Linguagem de Definição de Dados"

Apresentações semelhantes


Anúncios Google