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

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

Linguagem de Definição de Dados. Linguagem de Manipulação de Dados 2 SQL - DDL (Data Definition Language)  Comandos essenciais: Create, Alter e Drop.

Apresentações semelhantes


Apresentação em tema: "Linguagem de Definição de Dados. Linguagem de Manipulação de Dados 2 SQL - DDL (Data Definition Language)  Comandos essenciais: Create, Alter e Drop."— Transcrição da apresentação:

1 Linguagem de Definição de Dados

2 Linguagem de Manipulação de Dados 2 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 Conteúdos

3 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 3 SQL – DDL (Data Definition Language)

4 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 4 Manipulação de Bases 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 5

6 Sintaxe: CREATE TABLE Nome_da_Tabela( NomeCampo1 Tipo, NomeCampo2 Tipo) Tipos de Dados varchar  Strings: text, text(n), varchar, varchar(n), char(n) int  Inteiros: int, integer, smallint, numeric(n) float  Reais: float, numeric, real datetime  Data/hora: date, datetime  Moeda: money Linguagem de Manipulação de Dados 6 CREATE TABLE

7 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 7 CREATE TABLE - Exemplo

8 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 8 CREATE TABLE

9 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 9 CREATE TABLE - Exemplo

10 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 10 CREATE TABLE - Chaves

11 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 11 CREATE TABLE - Exemplo

12 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. Linguagem de Manipulação de Dados 12 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)) CREATE TABLE - Exemplo

13 Exemplo da outra forma de definição de chaves estrangeiras. Linguagem de Manipulação de Dados 13 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)) CREATE TABLE – Exemplo

14 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 14 ALTER TABLE

15 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 15

16 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 16 Manipulação de Índices

17 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 17

18 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 18 SQL – DML (Data Manipulation Language)

19 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 19 Comando INSERT

20 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 20 Comando INSERT - Exemplo

21 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 21 Comando UPDATE

22 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 UPDATE Pessoa SET Cpostal = 3720 Linguagem de Manipulação de Dados 22 Comando UPDATE - Exemplo

23 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 23

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

25 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 25 Transações

26 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 26 Transações - Exemplo

27 UPDATE Tabela_Conta SET Saldo = Saldo – 1000 WHERE Conta = ‘Conta A’ UPDATE Tabela_Conta SET 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 27 Transações - Exemplo

28 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 28 Transações

29 Resolução do problema anterior. BEGIN TRANSACTION UPDATE Tabela_Conta SET Saldo = Saldo – 1000 WHERE Conta = ‘Conta A’ UPDATE Tabela_Conta SET Saldo = Saldo WHERE Conta = ‘Conta B’ COMMIT Linguagem de Manipulação de Dados 29 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. Transações - Exemplo

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 30

31 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 31

32 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  Exemplo: DROP USER User_Psi Linguagem de Manipulação de Dados 32 Controlo de Acessos

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 33

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

35 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 35

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


Carregar ppt "Linguagem de Definição de Dados. Linguagem de Manipulação de Dados 2 SQL - DDL (Data Definition Language)  Comandos essenciais: Create, Alter e Drop."

Apresentações semelhantes


Anúncios Google