BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com



Documentos relacionados
BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

Banco de Dados. Prof. Antonio

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Sistemas de Banco de Dados

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia

SQL Structured Query Language

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Linguagem SQL Sub-linguagem DDL

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

SQL. Autor: Renata Viegas

Disciplina: Unidade V: Prof.: Período:

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Linguagem de Consulta Estruturada SQL- DML

Comandos de Manipulação

A linguagem SQL

EXEMPLOS DE COMANDOS NO SQL SERVER

O que são Bancos de Dados?

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Introdução ao SQL. O que é SQL?

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

INTRODUÇÃO. Diferente de Bando de Dados

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

SQL - Criação de Tabelas

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Segurança de Acesso a Banco de Dados no MS SQL Server

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

Controle de transações em SQL

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Introdução a Sistemas de Bancos de Dados

Linguagem de Consulta - SQL

Tarefa Orientada 16 Vistas

Structured Query Language (SQL)

Exercícios de Lógica Exercícios de Fixação 08

Visões. Definição de Visões

Introdução ao SQL. Aécio Costa

Administração de Usuários e Privilégios no Banco de Dados

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

MySQL: Controle de Acesso

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Bases de Dados 2007/2008. Aula 1. Referências

Prof.: Clayton Maciel Costa

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Banco de Dados. Maurício Edgar Stivanello

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Prof. Marcelo Machado Cunha

Structured Query Language (SQL) Aula Prática

Structured Query Language (SQL)

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language

Banco de Dados. Módulo 7 - Modelo Relacional. Definição do Esquema Relacional em SQL. modulo07.prz 1 10/09/01

Prof. Omero, pág. 63. Banco de Dados InterBase.

SQL DDL. Frederico D. Bortoloti

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

1. Domínio dos Atributos

Introdução à linguagem SQL

4.6. SQL - Structured Query Language

SQL (Structured Query Language)

Linguagem SQL (Parte I)

Banco de Dados. Structured Query Language SQL. Prof. Walteno Martins Parreira Jr 1.

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

SQL (Structured Query Language)

Roteiro 2 Conceitos Gerais

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

SQL (STRUCTUREDQUERY LANGUAGE)

SQL (Structured Query Language)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Modelo Cliente/Servidor Por HIARLY ALVES

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Tarefa Orientada 19 Triggers

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

Transcrição:

BANCO DE DADOS WEB AULA 4 linguagem SQL: subconjuntos DCL, DDL e DML professor Luciano Roberto Rocha www.lrocha.com

O que é SQL? Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional. Muitas das características originais do SQL foram inspiradas na álgebra relacional Foi desenvolvido originalmente no início dos anos 70 nos laboratórios da IBM. Tinha por objetivo demonstrar a viabilidade da implementação do modelo relacional proposto por Edgar Codd. Seu nome original era SEQUEL, acrônimo para "Structured English Query Language" 2

SQL (principais características) A linguagem SQL é um grande padrão de banco de dados. Por ser uma linguagem declarativa (não procedural), uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. Apesar de ser originalmente criada pela IBM, muitos desenvolvedores foram criando "dialetos" para ela. Essa expansão levou à necessidade de ser criado e adaptado um padrão para a linguagem. Em 1986/87 a linguagem SQL foi padronizada pela ANSI e ISO sendo revisada nos anos de 1992, 1999 e 2003. Normalmente a linguagem pode ser aportada de plataforma para plataforma sem mudanças significativas em sua estrutura. 3

Estrutura da linguagem SQL A linguagem SQL é dividida em subconjuntos de acordo com as operações que se deseja efetuar sobre um banco de dados. Os principais subconjuntos são: DDL - Data Definition Language (Linguagem de Definição de Dados) Principais comandos: CREATE, ALTER e DROP DML - Data Manipulation Language (Linguagem de Manipulação de Dados) Principais comandos: SELECT, INSERT, UPDATE, DELETE, TRUNCATE e outros. DCL - Data Control Language (Linguagem de Controle de Dados) Principais comandos: GRANT, REVOKE e SET. 4

DDL Linguagem de Definição de Dados O conjunto de comandos da linguagem DDL é usado para a definição das estruturas de dados, fornecendo as instruções que permitem a criação, modificação e remoção de objetos de banco de dados (base de dados, esquemas, tabelas, índices etc.). A maioria dos bancos de dados comerciais tem extensões proprietárias no DDL. Os comandos básicos da DDL são: CREATE: cria um objeto (uma Tabela, por exemplo) dentro da base de dados. DROP: apaga um objeto do banco de dados. ALTER: permite ao usuário alterar um objeto, por exemplo, adicionando uma coluna a uma tabela existente. 5

DML Linguagem de Manipulação de Dados É o grupo de comandos dentro da linguagem SQL utilizado para a recuperação, inclusão, remoção e modificação de informações em bancos de dados. Os comandos básicos da DML são: SELECT: permite ao usuário especificar uma consulta ("query") como uma descrição do resultado desejado. INSERT é usada para inserir um registro (formalmente uma tupla) a uma tabela existente. UPDATE para mudar os valores de dados em uma ou mais linhas da tabela existente. DELETE permite remover linhas existentes de uma tabela. TRUNCATE: remove rapidamente todas as linhas da tabela, esvaziando-a. COMMIT: efetiva a transação atualmente executada. ROLLBACK:desfaz a transação corrente, fazendo com que todas as modificações realizadas pela transação sejam rejeitadas. 6

DCL Linguagem de Controle de Dados É o grupo de comandos que permitem ao administrador de banco de dados gerenciar os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados. Alguns exemplos de comandos DCL são: GRANT: concede privilégios a um ou mais usuários para acessar ou realizar determinadas operações em um objetos de dados. REVOKE: revoga (remove) ou restringe a capacidade de um usuário de executar operações. SET: Define parâmetros em tempo de execução, como por exemplo, o tipo de codificação do cliente e o estilo de representação de data e hora. LOCK: Bloqueia explicitamente uma tabela fazendo o controle de acessos concorrente. 7

BANCO DE DADOS WEB AULA 4 criação de papéis (Roles): usuários e grupos professor Luciano Roberto Rocha www.lrocha.com

Criação de Usuários CREATE USER: cria uma conta de usuário do banco de dados Descrição Adiciona um novo usuário ao agrupamento de bancos de dados do PostgreSQL. Apenas os superusuários do banco de dados podem usar este comando. Sinopse CREATE USER nome [ [ WITH ] opção [... ] ] onde opção pode ser: CREATEDB NOCREATEDB CREATEUSER NOCREATEUSER IN GROUP nome_do_grupo [,...] [ ENCRYPTED UNENCRYPTED ] PASSWORD 'senha' VALID UNTIL 'data_e_hora' 9

Criação de Usuários Parâmetros nome O nome do usuário. CREATEDB - NOCREATEDB Estas cláusulas definem a permissão para o usuário criar banco de dados. Se for especificado CREATEDB, o usuário sendo definido terá permissão para criar seus próprios bancos de dados. Se for especificado NOCREATEDB, nega-se ao usuário a permissão para criar banco de dados. Se nenhuma destas cláusulas for especificada, o padrão é NOCREATEDB. CREATEUSER - NOCREATEUSER Estas cláusulas determinam se o usuário pode ou não criar novos usuários. CREATEUSER também torna o usuário um superusuário, o qual pode passar por cima de todas as restrições de acesso. Se nenhuma destas cláusulas for especificada, o padrão é NOCREATEUSER. 10

Criação de Usuários Parâmetros nome_do_grupo O nome de um grupo existente onde o usuário será incluído como um novo membro. Podem ser especificados nomes de vários grupos. senha Define a senha do usuário. Esta opção pode ser omitida, mas o usuário não poderá mais se conectar se for decidido mudar para autenticação por senha. A senha poderá ser definida ou mudada posteriormente através do comando ALTER USER. ENCRYPTED - UNENCRYPTED Estas cláusulas controlam se a senha será armazenada criptografada, ou não, nos catálogos do sistema; Se não for especificada nenhuma destas cláusulas, o comportamento padrão será determinado pelo parâmetro de configuração password_encryption. data_e_hora A cláusula VALID UNTIL define uma data e hora após a qual a senha do usuário não é mais válida. Se esta cláusula for omitida, a conta será válida para sempre. 11

Criação de Usuários Exemplos Criar um usuário sem senha: CREATE USER jonas; Criar um usuário com senha no grupo desenvolvedores: CREATE USER manuel PASSWORD 'jw8s0f4' IN GROUP desenvolvedores; Criar um usuário com uma senha válida até o fim de 2009. Após o primeiro segundo de 2010 a senha não será mais válida. CREATE USER miriam PASSWORD 'jw8s0f4' VALID UNTIL '2010-01-01'; Criar uma conta onde o usuário pode criar bancos de dados: CREATE USER manuel PASSWORD 'jw8s0f4' CREATEDB; Criar um superusuário: CREATE USER Altair CREATEUSER CREATEDB PASSWORD 'jw8s0f4'; 12

Alteração de Usuários ALTER USER: altera uma conta de usuário do banco de dados Descrição Altera os atributos de uma conta de usuário do PostgreSQL. Os atributos não mencionados no comando permanecem com suas definições anteriores. Somente um superusuário do banco de dados pode alterar qualquer uma destas configurações para qualquer usuário. Os usuários comuns podem apenas alterar suas próprias senhas. Sinopse ALTER USER nome [ [ WITH ] opção [... ] ] ALTER USER nome RENAME TO novo_nome ALTER USER nome SET parâmetro { TO = } { valor DEFAULT } ALTER USER nome RESET parâmetro 13

Alteração de Usuários Exemplos Mudar a senha do usuário: ALTER USER marcos PASSWORD 'hu8jmn3'; Mudar a data de expiração da senha do usuário: ALTER USER manuel VALID UNTIL 'Jan 31 2030'; Mudar a data de expiração da senha, especificando que a senha expira ao meio dia de 4 de maio de 2010: ALTER USER cristiane VALID UNTIL 'May 4 2010 12:00:00'; Tornar o usuário válido para sempre: ALTER USER andrea VALID UNTIL 'infinity'; Dar ao usuário permissão para criar outros usuários e novos bancos de dados: ALTER USER luizete CREATEUSER CREATEDB; 14

Exclusão de Usuários DROP USER: remove uma conta de usuário do banco de dados Descrição O comando DROP USER remove o usuário especificado. Não remove as tabelas, visões ou outros objetos pertencentes ao usuário. Se o usuário possuir algum banco de dados uma mensagem de erro é gerada. Sinopse DROP USER nome Parâmetro nome O nome do usuário a ser removido. 15

Exclusão de Usuários Observações O PostgreSQL inclui o aplicativo dropuser que possui a mesma funcionalidade deste comando (na verdade, chama este comando), mas que pode ser executada a partir da linha de comandos. Para remover um usuário que possui um banco de dados, primeiro o banco de dados deve ser removido ou mudado de dono. Não se aconselha remover um usuário que possua algum objeto de banco de dados, ou que tenha permissões concedidas para objetos. Atualmente isto só é verificado no caso dos donos de bancos de dados, mas é provável que as versões futuras do PostgreSQL verifiquem os outros casos. Exemplos Para remover uma conta de usuário: DROP USER marcos; 16

Criação de Grupos CREATE GROUP: cria um grupo de usuário do banco de dados Descrição O comando CREATE GROUP cria um grupo de usuários. É necessário ser um superusuário do banco de dados para executar este comando. Deve ser observado que tanto os usuários quanto os grupos são definidos no nível de agrupamento de bancos de dados e, portanto, são válidos em todos os bancos de dados do agrupamento. Sinopse CREATE GROUP nome [ [ WITH ] opção [... ] ] onde opção pode ser: USER nome_do_usuário [,...] 17

Criação de Grupos Parâmetros nome O nome do grupo. nome_do_usuário A lista dos usuários a serem incluídos no grupo. Os usuários devem existir. Exemplos Criar um grupo vazio: CREATE GROUP colaboradores; Criar um grupo com membros: CREATE GROUP vendas WITH USER jonas, marcela; obs: Não existe o comando CREATE GROUP no padrão SQL. O conceito de papéis (roles) é semelhante ao de grupos. 18

Alteração de Grupos ALTER GROUP: altera um grupo de usuários Descrição O comando ALTER GROUP altera os atributos de um grupo de usuários. As duas primeiras variantes abaixo adicionam ou removem usuários de um grupo, respectivamente. A terceira forma muda o nome do grupo. Somente os superusuários do banco de dados podem utilizar este comando. Para conhecer o conjunto de grupos existentes, deve ser consultada a tabela do sistema pg_group com o seguinte comando: SELECT groname FROM pg_group; Sinopse ALTER GROUP nome_do_grupo ADD USER nome_do_usuário [,... ] ALTER GROUP nome_do_grupo DROP USER nome_do_usuário [,... ] ALTER GROUP nome_do_grupo RENAME TO novo_nome 19

Alteração de Grupos Parâmetros nome_do_grupo O nome do grupo a ser modificado. nome_do_usuário Os usuários a serem adicionados ou removidos do grupo. Os usuários devem existir; o comando ALTER GROUP não cria nem remove usuários. novo_nome O novo nome do grupo. Exemplos Adicionar usuários a um grupo: ALTER GROUP arquitetura ADD USER joana, alberto; Remover um usuário de um grupo: ALTER GROUP engenharia DROP USER margarida; 20

Exclusão de Grupos DROP GROUP: remove um grupo de usuários Descrição O comando DROP GROUP remove um grupo de usuários especificado. Os usuários que fazem parte do grupo não são removidos. Somente os superusuários do banco de dados podem utilizar este comando. Sinopse DROP GROUP nome 21

Exclusão de Grupos Parâmetros nome_do_grupo O nome do grupo a ser removido. Exemplos Para remover um grupo: DROP GROUP arquitetura; Obs.: Não se aconselha remover um grupo que tenha permissões concedidas para objetos. Atualmente isto não é exigido, mas é provável que as versões futuras do PostgreSQL verifiquem este erro. 22