890 likes | 1.2k Vues
Curso EFA de técnico de Informática e Sistemas. Ano letivo 2012-2013. EDUCAÇÃO E FORMAÇÃO DE ADULTOS Curso EFA – Sec. Turma C - 2012 / 2013. Docente: Ana Batista. Exemplos de comandos. Criar e alterar a estrutura de uma BD:
E N D
Curso EFA de técnico de Informática e Sistemas Ano letivo 2012-2013 EDUCAÇÃO E FORMAÇÃO DE ADULTOS Curso EFA – Sec. Turma C - 2012 / 2013 Docente: Ana Batista
Exemplos de comandos • Criar e alterar a estrutura de uma BD: • Create database – para iniciar a criação de uma base de dados; • Create table – para criar a estrutura de uma tabela; • Alter table – modificar a estrutura de uma tabela; • Drop table – eliminar uma tabela; • Drop database – eliminar uma BD. Docente: Ana Batista
Exemplos de comandos • Atualizar e consultar uma BD: • Insert – inserir dados numa tabela; • Update – atualizar ou alterar dados; • Delete – apagar dados; • Select – efetuar consultas ou pesquisas a uma base de dados. Docente: Ana Batista
Exemplos de comandos • Controlar o acesso e o funcionamento seguros de uma BD: • grant – permite atribuir ou definir os direitos dos utilizadores de uma BD; • revoke – retira os direitos atribuídos; • Lock table – bloqueia uma tabela de forma a impedir que outros utilizadores a alterem; • Unlock table – desbloqueia tabela bloqueada; • Start transation – inicia uma transação/operação controlada numa BD. Docente: Ana Batista
Comandos para criar e eliminar uma BD • Criação de uma BD • Create database Vendas Objetivo: iniciar a criação de uma bd com o nome Vendas. Docente: Ana Batista
Comandos para criar e eliminar uma BD • Eliminar uma BD em SQL • Drop database Vendas Objetivo: elimina a bd com o nome Vendas, de forma irrecuperável (a não ser que tenham sido feitas cópias de segurança). NOTA: Só os utilizadores do sistema que tenham o estatuto de superutilizador ou a quem tenham sido atribuídos todos os direitos sobre a base de dados, é que podem efetuar este tipo de operação. Docente: Ana Batista
Criar uma tabela - sintaxe Create table nome_tabela (definição_campo1 … Definição campo_n); Cria uma tabela com um dado nome. Dentro dos parêntesis é indicada a estrutura dos campos que se pretende para a tabela. Docente: Ana Batista
Assim… • Definição_campo1 corresponde a: Nome_campo tipo_dados [not null] [default valor] [primary key] [references…] Docente: Ana Batista
Ou seja… Para cada campo da tabela indicam-se obrigatoriamente: • Nome do campo • Tipo de dados do campo Para além destes elementos obrigatórios, podem ainda ser indicados outros elementos opcionais. Docente: Ana Batista
NOTA: os parêntesis retos servem apenas para indicar os elementos opcionais; se estes elementos forem indicados, são escritos sem os parêntesis retos. Docente: Ana Batista
Elementos opcionais • Not null – serve para indicar que o campo não pode conter valores nulos • Default valor – permite indicar um valor por defeito para o campo. Por exemplo: default 10 (o campo assume este valor se não for indicado outro) Docente: Ana Batista
Elementos opcionais • Primary key – indica que o campo é ou faz parte da chave primária da tabela. • References – inicia a indicação que o campo funciona como chave estrangeira. Deve ser escrito: Referencesnome_tabela (nome_campo) , ou seja, a seguir à palavra References é escrito o nome da tabela e o nome do campo (dentro parêntesis curvos) a que o campo faz referência como chave estrangeira. Docente: Ana Batista
Principais tipos de dados em SQL Docente: Ana Batista
Principais tipos de dados em SQL Docente: Ana Batista
Principais tipos de dados em SQL Docente: Ana Batista
Exemplo de um Modelo físico de uma base de dados Docente: Ana Batista
Exemplificação da criação de tabelas Create table Clientes (CodCli Int auto_increment primary key, Cliente Varchar(20), morada varchar (30)); Docente: Ana Batista
Explicação • A tabela Clientes é composta por 3 campos: • CodCli - int • Cliente - varchar • Morada – varchar Docente: Ana Batista
Campo Codcli • Código do cliente é definido como int, isto é número inteiro, além disso é auto_increment, ou seja, o sistema incrementa o n.º do código sempre que é inserido um novo registo nesta tabela. • É indicado como primary key, pois é a chave primária da tabela clientes. Docente: Ana Batista
Campo Cliente • Definido como varchar(20), o campo cliente aceita até um máximo de 20 carateres. Docente: Ana Batista
Campo Morada • Definido como varchar(30), o campo morada aceita até um máximo de 30 carateres. Docente: Ana Batista
Exemplificação da criação de tabelas Create table Produtos (Codprod Int auto_increment primary key, Produto Varchar(20), preco numeric (10,2)); Docente: Ana Batista
Tabela Produtos • É semelhante à tabela Clientes, o que muda é o campo Preco. NOTA: não se deve escrever preço, porque os nomes tabelas, campos em SQL só podem conter os carateres do alfabeto inglês, onde não há acentos nem caracteres especiais como o ç. Docente: Ana Batista
Campo Preco • O campo preço é do tipo numérico, não inteiro, mas com casas decimais, aconselhável para pôr por exemplo, valores monetários. Docente: Ana Batista
Tabela Encomendas Create table Encomendas (Nenc Int Auto_increment primary key, CodCli Int references Clientes (CodCli), CodProd Int references Produtos (CodProd), Quant Int); Docente: Ana Batista
Campo NEnc • O campo Nenc (nº da encomenda) é definido como inteiro, incrementado, e chave primária da tabela encomendas. Docente: Ana Batista
Campo Quant • O campo Quant (quantidade) é definido como inteiro. Docente: Ana Batista
Parte especial da tabela encomendas… • Reside nos campos codCli e CodProd que são chaves estrangeiras, por se referirem a campos que são chaves primárias em outras tabelas. • Esses campos vão fazer referência aos mesmos campos nas tabelas de origem (Clientes e produtos). Docente: Ana Batista
Eliminar e alterar a estrutura de uma tabela • Para eliminar uma tabela, o comando sql é drop table nome_tabela Ex: drop table Encomendas Docente: Ana Batista
Eliminar e alterar a estrutura de uma tabela • Para alterar uma tabela, o comando sql é alter table que contém 3 variantes: add, modify e drop. Ex: alter table nome_tabela {Add (novo_campo tipo_dados) | modify (nome_campo tipo_dados) | drop (nome_campo)}; Docente: Ana Batista
O facto de as 3 opções, add, modify e drop serem incluídas dentro de chavetas {} significa que só uma delas pode ser usada em cada instrução. Docente: Ana Batista
Adiciona um novo campo à tabela xxx Modifica um novo campo na tabela xxx Elimina um novo campo na tabela xxx Docente: Ana Batista
Exemplo 1 Alter table Clientes Add telefoneinteger; Acrescenta na tabela clientes, um novo campo com o nome Telefone e do tipo inteiro. Docente: Ana Batista
Exemplo 2 Alter table Clientes Modify telefonechar (9); Modifica na tabela clientes, o campo Telefone passando a ser do tipo char com 9 carateres. Docente: Ana Batista
Exemplo 3 Alter table Clientes drop telefone; Modifica a tabela clientes, eliminando o campo telefone. Docente: Ana Batista
Atualizar dados numa tabela • Quando se fala em atualizar uma base de dados, tal compreende 3 tipos de operações: • Inserir • Apagar • alterar Docente: Ana Batista
Inserir dados numa tabela Insert into nome_tabela (lista de campos) {values (valores) | select instrução}; Inserir dados na tabela indicada, especificando esses dados a seguir à palavra values ou obtendo-os através de uma instrução select. Docente: Ana Batista
NOTA • Após a indicação do nome tabela, podemos indicar opcionalmente os nomes dos campos, onde queremos inserir os dados. • Se os campos não forem indicados, supõe-se que vamos inserir dados em todos os campos da tabela. Docente: Ana Batista
Exemplo 1 Insert into Clientes (Cliente, morada) values (“Aníbal”, “Lisboa”), (“Belmiro”, “Braga”), (“Casimiro”, “Coimbra”); Docente: Ana Batista
Tabela clientes Docente: Ana Batista
Exemplo 2 Insert into Produtos values (null, “portátil”, 400), (null, “berbequim”, 50), (null, “ms office”, 150); Docente: Ana Batista
Tabela produtos Docente: Ana Batista
No exemplo anterior, como não indicámos os campos onde queríamos inserir dados, temos de atribuir valores para todos os campos da tabela. • Null significa que o 1º campo da tabela era auto increment (codprod) e não podemos mexer, por isso a forma é indicar o valor null. Docente: Ana Batista
Exemplo 3 Insert into Encomendas values (null, 1,1,10), (null, 2,1,2), (null, 3,2,5), (null, 1,3,1); Docente: Ana Batista
Tabela encomendas Na tabela encomendas, o primeiro campo é Nenc é do tipo auto_increment, o que impede de atribuir valores, por isso indicamos o null para todos os dados correspondentes a esse código. Quanto aos campos CodCli e CodProd como são chaves estrangeiras, pois referem-se a chaves primárias de outras tabelas, isto obriga a que os valores inseridos devam existir nas tabelas iniciais, por forma a respeitar a integridade referencial. Docente: Ana Batista
Apagar registos e alterar dados • O comando delete apaga registos (linhas) por inteiro numa tabela. Delete from nome_tabela [where condição]; Docente: Ana Batista
Objetivo • Apagar todos os registos na tabela indicada, podendo apagar toda a tabela (se não for especificada uma condição) ou apenas o(s) registos que correspondam à condição indicada. • Se a cláusula Where condição não for indicada, serão apagados todos os registos (todos os dados) da tabela. • Se Where condição for indicada, serão apagados os registos que respeitem a condição indicada. Docente: Ana Batista
Exemplo 1 Delete from produtos; Efeito: todos os dados da tabela produtos serão apagados. Docente: Ana Batista
Exemplo 2 Delete from Produtos Where produto=“Ms office”; Efeito: apaga na tabela produtos os registos (linhas) em que o campo produto é igual a ms office. Docente: Ana Batista
Comando update • A alteração, modificação ou atualização de dados em SQL, faz-se com o comando update. Docente: Ana Batista