SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Diego von Söhsten Microsoft Certified Technology...
Transcript of SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Diego von Söhsten Microsoft Certified Technology...
SE
GU
ND
A F
AS
E /
S2
B
MIC
PE
RN
AM
BU
CO
SE
GU
ND
A F
AS
E /
S2
B
MIC
PE
RN
AM
BU
CO
Banco de Dados
Diego von SöhstenMicrosoft Certified Technology SpecialistAnalista de DesenvolvimentoAllen Informática [email protected]/diegovonsohsten
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.
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.
Exemplo: criando a tabela produto, no banco de dados supermercado, com os atributos id, nomeproduto, fabricante e preco unitario.
USE supermercadoCREATE TABLE produto(id int, nomeproduto varchar(40),fabricante varchar(30), [preco unitario] float)GO
USE supermercadoCREATE TABLE produto(id int, nomeproduto varchar(40),fabricante varchar(30), [preco unitario] float)GO
DDL – DATA DEFINITION LANGUAGE
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.
Exemplo:
Permitir que todos possam usar o comando Select na tabela produto, no banco de dados supermercado.
DCL – DATA CONTROL LANGUAGE
USE northwindGRANT SELECT ON products TO publicGO
USE northwindGRANT SELECT ON products TO publicGO
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.
Exemplo: inserir dados em uma tabela, atualizá-los, consultá-los e depois apagá-los.
DML – DATA MANIPULATION LANGUAGE
USE supermercadoINSERT INTO produtoVALUES (1, ‘Refrigerante 2L’, ‘Fabricante’, 3.00)UPDATE produto SET precounitario=2.80WHERE id = 1SELECT id, nomeproduto, fabricante, precounitarioFROM produtoDELETE FROM produtoWHERE id = 1GO
USE supermercadoINSERT INTO produtoVALUES (1, ‘Refrigerante 2L’, ‘Fabricante’, 3.00)UPDATE produto SET precounitario=2.80WHERE id = 1SELECT id, nomeproduto, fabricante, precounitarioFROM produtoDELETE FROM produtoWHERE id = 1GO
GO 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 caracteresem um lote do Transact-SQL
Comentários em linha
Comentários em bloco
USE northwindSELECT productname
, (unitsinstock - unitsonorder) -- Calcula o inventário
, supplieridFROM products
GO
USE northwindSELECT productname
, (unitsinstock - unitsonorder) -- Calcula o inventário
, supplieridFROM products
GO
/* 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 northwindSELECT unitprice, (unitprice * 1.1), productname FROM productsGO
/* 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 northwindSELECT unitprice, (unitprice * 1.1), productname FROM productsGO
Exemplo 3Exemplo 3
Exemplo 1Exemplo 1
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 partesde nomes
Delimite-os por colchetes ([ ]) ou aspas duplas (" ")
Definidas pelo usuário com a instrução DECLARE precedida de um símbolo @
Recebem valores através de uma instrução SETou SELECT precedida de um símbolo @
Têm escopo local
USE northwindDECLARE @EmpID varchar(11) ,@vlName char(20)SET @vlname = 'Dodsworth'SELECT @EmpID = employeeid FROM employees WHERE LastName = @vlnameSELECT @EmpID AS EmployeeID GO
USE northwindDECLARE @EmpID varchar(11) ,@vlName char(20)SET @vlname = 'Dodsworth'SELECT @EmpID = employeeid FROM employees WHERE LastName = @vlnameSELECT @EmpID AS EmployeeID GO
Funções agregadas
Funções escalares
USE northwindSELECT AVG (unitprice) AS AvgPrice FROM productsGO
USE northwindSELECT AVG (unitprice) AS AvgPrice FROM productsGO
USE northwindSELECT DB_NAME() AS 'database‘GO
USE northwindSELECT DB_NAME() AS 'database‘GO
SELECT 'ANSI:', CONVERT(varchar(30), GETDATE(), 102) AS StyleUNIONSELECT 'Japanese:', CONVERT(varchar(30), GETDATE(), 111)UNIONSELECT 'European:', CONVERT(varchar(30), GETDATE(), 113)GO
SELECT 'ANSI:', CONVERT(varchar(30), GETDATE(), 102) AS StyleUNIONSELECT 'Japanese:', CONVERT(varchar(30), GETDATE(), 111)UNIONSELECT 'European:', CONVERT(varchar(30), GETDATE(), 113)GO
Resultado
StyleStyleStyleStyle
ANSI:ANSI:
Japanese:Japanese:
European:European:
1998.11.201998.11.20
11/20/9811/20/98
20 Nov 1998 16:44:12:85720 Nov 1998 16:44:12:857
Exemplo 1
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 northwindSELECT OrderID, ProductID ,(UnitPrice * Quantity) as ExtendedAmount FROM [Order Details] WHERE (UnitPrice * Quantity) > 10000GO
USE northwindSELECT OrderID, ProductID ,(UnitPrice * Quantity) as ExtendedAmount FROM [Order Details] WHERE (UnitPrice * Quantity) > 10000GO
Nível de instrução Blocos BEGIN … END Blocos IF … ELSE Construções com WHILE
Nível de registro Expressão CASE
DECLARE @n tinyintSET @n = 5IF (@n BETWEEN 4 and 6) BEGIN WHILE (@n > 0) BEGIN SELECT @n AS 'Number' ,CASE WHEN (@n % 2) = 1 THEN 'EVEN' ELSE 'ODD' END AS 'Type' SET @n = @n - 1 END ENDELSE PRINT 'SEM ANÁLISE'GO
DECLARE @n tinyintSET @n = 5IF (@n BETWEEN 4 and 6) BEGIN WHILE (@n > 0) BEGIN SELECT @n AS 'Number' ,CASE WHEN (@n % 2) = 1 THEN 'EVEN' ELSE 'ODD' END AS 'Type' SET @n = @n - 1 END ENDELSE PRINT 'SEM ANÁLISE'GO
Exemplo 2Exemplo 2
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