SEGUNDA FASE / S2B MIC PERNAMBUCO SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados SEGUNDA FASE / S2B MIC PERNAMBUCO SEGUNDA FASE / S2B MIC PERNAMBUCO Diego von Söhsten Microsoft Certified Technology Specialist Analista de Desenvolvimento Allen Informática Recife diegosohsten@hotmail.com twitter.com/diegovonsohsten Este material foi elaborado pelo Microsoft Innovation Center Brasil, sendo revisado e atualizado por Diego von Söhsten (diegosohsten@hotmail.com). A redistribuição dele não é permitida sem a autorização do Microsoft Innovation Center da sua região. 1
Como manipular a informação e objetos do banco de dados? Temos basicamente 3 tipos de manipulação de informação no BD: DML - Data Manipulation Language DDL - Data Definition Language DCL - Data Control Language Cada uma delas é de extrema importância para a utilização do banco de dados, porém, a mais conhecida e utilizada é a DML, na qual temos os controles SELECT, INSERT, UPDATE e DELETE. T-SQL Veremos em módulos a frente os detalhes da linguagem, porém serve como base para entendimento dos tipos de interação que podem ser feitos com o banco de dados, além de ser uma parte muito importante do dia a dia do administrador do banco de dados.
DDL – DATA DEFINITION LANGUAGE CREATE DATABASE [nome do banco] Comando utilizado para criar um banco de dados. CREATE TABLE Comando utilizado para criar uma tabela. ALTER TABLE Comando utilizado para alterar uma tabela. DROP TABLE Comando utilizado para apagar uma tabela.
DDL – DATA DEFINITION LANGUAGE Exemplo: criando a tabela produto, no banco de dados supermercado, com os atributos id, nomeproduto, fabricante e preco unitario. USE supermercado CREATE TABLE produto (id int, nomeproduto varchar(40), fabricante varchar(30), [preco unitario] float) GO
DCL – DATA CONTROL LANGUAGE GRANT Dá permissão para determinada tarefa. DENY Nega permissão para determinada tarefa. REVOKE Remove uma permissão Grant ou Deny para determinada tarefa.
DCL – DATA CONTROL LANGUAGE Exemplo: Permitir que todos possam usar o comando Select na tabela produto, no banco de dados supermercado. USE northwind GRANT SELECT ON products TO public GO
DML – DATA MANIPULATION LANGUAGE SELECT Seleciona uma tabela ou parte de uma tabela para consulta. INSERT Insere dados em uma tabela. DELETE Apaga dados de uma tabela. UPDATE Atualiza dados de uma tabela.
DML – DATA MANIPULATION LANGUAGE Exemplo: inserir dados em uma tabela, atualizá- los, consultá-los e depois apagá-los. USE supermercado INSERT INTO produto VALUES (1, ‘Refrigerante 2L’, ‘Fabricante’, 3.00) UPDATE produto SET precounitario=2.80 WHERE id = 1 SELECT id, nomeproduto, fabricante, precounitario FROM produto DELETE FROM produto GO
GO EXEC Diretivas em lotes Define os lotes de instruções Transact-SQL para ferramentas e utilitários Não é uma instrução Transact-SQL real EXEC Executa uma função definida pelo usuário, um procedimento do sistema, um procedimento armazenado definido pelo usuário ou um procedimento armazenado estendido Controla a execução de uma seqüência de caracteres em um lote do Transact-SQL 9
Comentários em linha Comentários em bloco Comentários Exemplo 1 USE northwind SELECT productname , (unitsinstock - unitsonorder) -- Calcula o inventário , supplierid FROM products GO Exemplo 3 /* Este código recupera todas as linhas da tabela products e exibe o preço unitário, o preço unitário aumentado em 10% e o nome do produto. */ USE northwind SELECT unitprice, (unitprice * 1.1), productname FROM products GO 10
Identificadores padrão O primeiro caractere deve ser um caractere alfabético Outros caracteres podem incluir letras, numerais ou símbolos Os nomes de identificadores que começam com um símbolo têm utilizações especiais Identificadores delimitados Use quando os nomes contiverem espaços incorporados Use quando palavras reservadas forem partes de nomes Delimite-os por colchetes ([ ]) ou aspas duplas (" ") 11
Variáveis Definidas pelo usuário com a instrução DECLARE precedida de um símbolo @ Recebem valores através de uma instrução SET ou SELECT precedida de um símbolo @ Têm escopo local USE northwind DECLARE @EmpID varchar(11) ,@vlName char(20) SET @vlname = 'Dodsworth' SELECT @EmpID = employeeid FROM employees WHERE LastName = @vlname SELECT @EmpID AS EmployeeID GO 12
Funções agregadas Funções escalares Funções do sistema USE northwind SELECT AVG (unitprice) AS AvgPrice FROM products GO USE northwind SELECT DB_NAME() AS 'database‘ GO 13
Exemplos de funções do sistema SELECT 'ANSI:', CONVERT(varchar(30), GETDATE(), 102) AS Style UNION SELECT 'Japanese:', CONVERT(varchar(30), GETDATE(), 111) UNION SELECT 'European:', CONVERT(varchar(30), GETDATE(), 113) GO Resultado Style ANSI: 1998.11.20 Japanese: 11/20/98 European: 20 Nov 1998 16:44:12:857 14
Combinação de símbolos e operadores Expressões Combinação de símbolos e operadores Avaliação como um único valor escalar Resultado de tipo de dados dependentes dos elementos na expressão USE northwind SELECT OrderID, ProductID ,(UnitPrice * Quantity) as ExtendedAmount FROM [Order Details] WHERE (UnitPrice * Quantity) > 10000 GO 15
Elementos de linguagem de controle de fluxo Exemplo 2 DECLARE @n tinyint SET @n = 5 IF (@n BETWEEN 4 and 6) BEGIN WHILE (@n > 0) SELECT @n AS 'Number' ,CASE WHEN (@n % 2) = 1 THEN 'EVEN' ELSE 'ODD' END AS 'Type' SET @n = @n - 1 END ELSE PRINT 'SEM ANÁLISE' GO Nível de instrução Blocos BEGIN … END Blocos IF … ELSE Construções com WHILE Nível de registro Expressão CASE 16
Como podemos administrar um banco de dados? Administração Como podemos administrar um banco de dados? Primeiramente temos que identificar seu principais pontos de preocupação: Rotinas de freqüente execução Backup Performance (SW e HW) Utilização do equipamento Pontos importante a serem observados quanto a manutenção do ambiente, já que tarefas deste tipo podem consumir grande parte do tempo do DBA.