ado SQL Avançado Apresentação Sobre o instrutor: Expectativa quando ao aproveitamento do curso Agenda para 09/12 Introdução Transact-SQL

Tamanho: px
Começar a partir da página:

Download "ado SQL Avançado Apresentação Sobre o instrutor: Expectativa quando ao aproveitamento do curso Agenda para 09/12 Introdução Transact-SQL"

Transcrição

1 SQL Avanç Apresentação SQL Avanç Leandro Tonietto jan-07 Sobre o instrutor: Professor no curso de Jogos e Entretenimento Digital da Unisinos e do Instituto de Informática da Unisinos Gerente de Projetos da empresa Qualità Informática Expectativa quando ao aproveitamento do curso SQL Avanç Agenda para 09/12 Introdução Transact-SQL Elementos de sintaxe Implementando Conceitos Criação e modificação Otimização SQL Avanç Transaction-SQL O Transact-SQL é uma linguagem de definição, manipulação e controle de ds. Padronização SQL-92 ISO e ANSI Elementos de linguagem de programação Diretivas, comentários, identificres, controle de fluxo, loops, funções, expressões,... SQL Avanç Tipos de linguagem para BD DDL - Data Definition Language Definição do BD: criação, alteração e remoção de campos e tabelas, regras, índices,... DML - Data Manipulation Language Manipulação de ds: consulta, inclusão, alteração e exclusão Transaction-SQL Programação de funções auxiliares SQL Avanç Elementos de Linguagem Diretivas de lotes Comentários Identificres Tipos de ds Variáveis Operres Expressões Controle de fluxo Palavras reservadas 1

2 SQL Avanç Diretiva de lotes Lote: Conjunto de instruções de programação SQL Server processa um lote de instruções por vez. Diretivas de lote: são instruções para envio dos lotes para execução do SGBD Duas instruções: e EXEC SQL Avanç Diretiva de lotes : Envia lote atual de instruções para execução O lote atual é composto de todas as instruções inseridas desde o último comando ou desde o início da sessão ad hoc (ou script, se esse for o primeiro ). Os usuários devem seguir as regras referentes a lotes. Por exemplo, algumas instruções de DDL devem ser executadas isoladamente de outras instruções Transact-SQL, separando-as com um comando. Escopo das variáveis é definido dentro de um lote SQL Avanç Diretiva de lotes : Exemplo : /* bloco de comandos 1 */ varchar(11) /* bloco de comandos 2 */ = Teste O escopo da variável vel é lote. O lote é conjunto instruções separadas por s Serão executs apenas os lotes após s o comando O que aconteceria se estes blocos de comandos fossem executs? SQL Avanç Diretiva de lotes EXEC: Executa comandos do usuário Comandos TransacSQL Funções Lotes Comandos são passs por parâmetro e o método retorna o status da execução: sucesso ou erro. SQL Avanç Comentários São códigos não executáveis de um lote de comandos Geralmente utilizs para: indicar alguma ponto importante de um código colocar explicações curtas sobre uma função ou lote Suprimir execução de linhas de código sem removê-las Comentário de linha: -- Comentário de bloco: /*... */ SQL Avanç Comentários Exemplo 1: USE northwind SELECT productname, (unitsinstock-unitsonorder) -- Calcula inventário --, supplierid FROM products -- indica ao interpretr de comando que ignore o estiver à sua direita, até o fim da linha Suprimindo um linha 2

3 SQL Avanç Comentários Exemplo 2: /* Este código recupera todas as linhas da tabela products e exibe o preço unitário, o preço unitário aument em 10% e o nome do produto. */ USE northwind SELECT unitprice, (unitprice * 1.1), productname FROM products Normalmente os comentários de blocos são uss para comentar blocos de linhas de código c e colocar explicações sobre o que é execut no lote SQL Avanç Identificres São nomes ou identificação única para variáveis e funções Os identificres padrão podem conter de 1 a 128 caracteres, inclusive letras, símbolos ou #) e números. Não são permitidos espaços. Regras: O primeiro caractere deve ser um caractere alfabético, de a-z ou A-Z. Os identificres podem incluir letras, números ou os $, # ou _. Os nomes de identificres que começam com um símbolo têm utilizações especiais: Um identificr que inicie com o indica um parâmetro ou variável local. Um identificr que inicie com um sinal de tralha (#) indica um procedimento ou uma tabela temporária. Um identificr que inicie com um sinal de tralha duplo (##) indica um objeto temporário global. Os nomes de objetos temporários não devem ter mais de 116 caracteres, incluindo os sinais # ou ##, porque o SQL Server atribui um sufixo numérico interno aos objetos temporários. SQL Avanç Identificres Exemplo: int SQL Avanç Identificres delimits Os identificres delimits podem ser uss nas seguintes situações: Quando os nomes contiverem espaços incorpors Quando forem utilizadas palavras reservadas como nomes de objetos ou partes de nomes de objetos Os identificres delimits devem ser colocs entre parênteses ou aspas duplas. SQL Avanç Convenção de Nomes de Identificres Mantém um padrão de escrita Facilita manutenção de código Diretrizes: Quando possível, empregue nomes significativos. Use convenções de nomeação simples e fáceis. Use um identificr que diferencie tipos de objeto, principalmente para views e procedimentos armazens. Mantenha a exclusividade dos nomes de objetos e usuários. Por exemplo, evite criar uma tabela sales (vendas) e um cargo sales dentro do mesmo banco de ds. SQL Avanç Tipos de ds Os tipos de ds são atributos que especificam o tipo de informação que pode ser armazen em uma coluna, parâmetro ou variável Delimita o domínio dos valores possíveis para uma variável, parâmetro ou coluna 3

4 SQL Avanç Tipos de ds Numéricos: Para representação de números Inteiros: int, tinyint, smallint e bigint Decimais: numeric, decimal, money e smallmoney Ponto flutuante: float e real SQL Avanç Tipos de ds Numéricos: Para representação de números Inteiros: int, tinyint, smallint e bigint Decimais: numeric, decimal, money e smallmoney Ponto flutuante: float e real Datas: Representa datas ou períodos de tempo. Os dois tipos de ds de data são datetime, cuja precisão é de 3,33 milissegundos, e smalldatetime, cuja precisão é de intervalos de 1 minuto. SQL Avanç Tipos de ds Characters Este tipo de ds é us para representar seqüências ou ds de caractere e inclui tipos de ds de seqüência de tamanho fixo, como char e nchar, e de tamanho variável, como varchar e nvarchar. Binários Este tipo de ds é muito semelhante aos tipos de ds de caractere em termos de armazenamento e estrutura, porém o conteúdo dos ds é trat como uma série de valores de bytes. Os tipos de ds binários incluem binary e varbinary. O tipo de ds bit indica um valor de bit único igual a zero ou um. SQL Avanç Tipos de ds Unique Identifiers Este tipo especial de ds é um uniqueidentifier que representa um identificr global exclusivo, o qual é um valor hexadecimal de 16 bytes que deve ser sempre exclusivo. SQL Variantes Este tipo de ds pode representar valores de vários tipos de ds para os quais há suporte no SQL Server, com exceção de text, ntext, image, timestamp e rowversion. SQL Avanç Tipos de ds Image e Text Estes tipos de ds são estruturas objeto binário extenso (BLOB) que representam tipos de ds de tamanho fixo e variável para o armazenamento de ds binários e de caractere Unicode e não- Unicode grandes, como image, text e ntext. Tables Este tipo de ds pode ser us apenas para definir variáveis locais de tipo de tabela ou o valor de retorno de uma função definida pelo usuário. Cursors Este tipo de ds é us para programação em procedimentos armazens e com interfaces de cliente de baixo nível. Ele nunca é us como parte de uma instrução de DDL. SQL Avanç Tipos de ds Definidos pelo usuário Este tipo de ds é cri pelo administrr do banco de ds e se baseia nos tipos de ds do sistema. Use os tipos de ds definidos pelo usuário quando várias tabelas devem armazenar o mesmo tipo de ds em uma coluna, e você deve garantir que as colunas tenham exatamente o mesmo tipo de ds, tamanho e nulidade. 4

5 SQL Avanç Variáveis Variável é um recurso de linguagem de programação para definição de identificres que representam e armazenam um determin valor na memória. Vários locais: DECLARE Atribuição de valor é feita através do comando SET ou da execução de uma expressão como um SELECT Escopo é do lote. Isto significa que? Nome da variável deve ser precedido SQL Avanç Variáveis Sintaxe de uso geral: DECLARE <tipo_de_ds>} [,...n] = expressão Exemplos: varchar(70) int 0 SQL Avanç Variáveis Exemplo: USE northwind char(20) = 'Dodsworth' = employeeid FROM employees WHERE LastName AS EmployeeID SQL Avanç O Transac-SQL permite a execução de funções pré-definidas do sistema, como: Sum, avg, sqrt, length,... Consultar guia de referência para identificar todas as funções Tipos de funções: Agem sobre um conjunto de ds e retornam alguma compilação dos mesmos USE northwind SELECT AVG(unitprice) AS AvgPrice FROM products AVG calcula média SQL Avanç Tipos de funções: Retornam um valor individual que opera a partir de nenhum ou de diversos valores escalares individuais. As funções escalares podem ser agrupadas nas seguintes categorias: Configuração - Retorna informações sobre a configuração atual. Cursor - Retorna informações sobre cursores. Data e hora - Efetua uma operação sobre um valor inserido de data e hora e retorna um valor de seqüência, numérico ou de data e hora. Matemática - Efetua um cálculo com base em valores inseridos como parâmetros para a função e retorna um valor numérico. Metads - Retorna informações sobre o banco de ds e os objetos do banco de ds. Segurança - Retorna informações sobre usuários e cargos. Seqüência de caracteres Efetua uma operação sobre um valor inserido de seqüência (char ou varchar) e retorna um valor de seqüência de caracteres ou numérico. Sistema - Efetua operações e retorna informações sobre valores, objetos e configurações no SQL Server. Estatística do sistema Retorna informações estatísticas sobre o sistema. Texto e imagem Efetua uma operação sobre um valor inserido de texto ou imagem ou sobre uma coluna, e retorna informações sobre o valor. SQL Avanç Exemplo: USE northwind SELECT DB_NAME() AS 'database' 5

6 SQL Avanç Tipos de funções: Podem ser usadas como referências de tabela em uma instrução Transact-SQL Exemplo: SELECT * FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM owner.titles') Está função funcionará sempre? SQL Avanç Função de conversão de data: 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) Repare que a instru Repare que a instrução SELECT retorna ds que concatens UNION agrupa conjunto de ds SQL Avanç Result: Style ANSI: Japanese: 11/20/98 European: 20 Nov :44:12:857 SQL Avanç Exemplo do uso da função DATEFORMAT: SET DATEFORMAT dmy datetime = '11/29/98' DATEFORMAT define o formato de data padrão atual Repare que a data é impressa (dmy( dmy) de forma diferente do padrão ANSI SQL Avanç Exemplo de função que interage com ds do SGDB: USE library SELECT user_name(), app_name() SQL Avanç Exemplo de função que obtém ds sobre o BD: USE library SELECT COLUMNPROPERTY(OBJECT_ID('member'), 'firstname', 'AllowsNull') 6

7 SQL Avanç Operres Operres são símbolos que efetuam cálculos matemáticos, concatenações de seqüências de caracteres e comparações entre colunas, constantes e variáveis. É possível combinar e utilizar os operres em condições de pesquisa. A ordem em que os operres serão processs baseia-se em uma precedência predefinida. Quatro tipos de operres: aritméticos, de comparação, de concatenação de seqüências de caracteres e lógicos SQL Avanç Operres Aritméticos: Aditivos: + e Multiplicativos: *, / e % Comparação: Retornam verdadeiro ou falso =, <, >, <=, >= e <> Concatenação: Somente com ds String: + Lógicos Utilizs para conectar o result de mais de uma expressão OR, AND e NOT Uss na cláusula WHERE SQL Avanç Operres Precedência: Agrupamento primário: ( ) Aritmético Multiplicativo: *, / e % Aritmético Aditivo: e + Concatenação de seqüências de caracteres: + Lógico NOT: NOT Lógico AND: AND Lógico OR: OR SQL Avanç Expressões Combinação de campos e variáveis com operres e funções para retornar um result Tipo de retorno depende dos elementos da expressão SQL Avanç Expressões Exemplo: USE northwind SELECT OrderID, ProductID,(UnitPrice * Quantity) as ExtendedAmount FROM [Order Details] WHERE (UnitPrice * Quantity) > SQL Avanç Elementos de Controle de Fluxo elementos de linguagem que controlam o fluxo da lógica em uma instrução a função CASE que permite usar uma lógica condicional em um único registro de cada vez, em uma instrução SELECT ou UPDATE 7

8 SQL Avanç Elementos de Controle de Fluxo Exemplo nível de instrução: USE northwind IF EXISTS (SELECT * FROM orders WHERE customerid = 'frank') PRINT '*** Cliente não pode ser excluído ***' ELSE BEGIN DELETE customers WHERE customerid = 'frank' PRINT '*** Cliente foi excluído ***' END SQL Avanç Elementos de Controle de Fluxo Exemplo nível de registro: tinyint = 5 IF BETWEEN 4 and 6) BEGIN WHILE > 0) BEGIN AS 'Número', CASE WHEN % 2) = 1 THEN 'ÍMPAR' ELSE 'PAR' END AS 'Tipo - 1 END END ELSE PRINT 'SEM ANÁLISE' SQL Avanç Definição: São tabelas que representam uma visão de um conjunto de ds de uma ou mais tabelas. Não armazenam nenhum d, apenas fornecem a visualização para estes de forma diferente. VIEW == SELECT SQL Avanç Exemplos: Um subconjunto de registros ou colunas de uma tabela base: subconjunto das pessoas de uma tabela de pessoas com idade > 30 anos. Uma união, intersecção ou associação de duas ou mais tabelas base: Pessoas com idade > 30 e que são do sexo masculino Um resumo estatístico de uma tabela base: tabela que mostra os pedidos com uma coluna totalizando o valor dos seus itens. Um subconjunto de outra view ou alguma combinação de views e tabelas base. SQL Avanç Vantagens: Visualização focalizada Tirar a complexidade da visualização dos ds, como por exemplo, uniões de tabelas restrições sobre os conjuntos Organização de ds para exportação Permissão de acesso com restrições Desempenho, pois o result fica armezan SQL Avanç Sintaxe: CREATE VIEW propr.nome_da_view [(coluna [,n ])] [WITH {ENCRYPTION SCHEMABINDING VIEW_METADATA} [,n ]] AS instrução_select [WITH CHECK OPTION] 8

9 SQL Avanç View no Transact: USE Northwind CREATE VIEW dbo.employeeview AS SELECT LastName, Firstname FROM Employees SELECT * from EmployeeView SQL Avanç Padronização: Segue a mesma verificação dos identificres Nomes devem ser únicos É fortemente recomend fazer distinção entre padrão de nomes de tabelas e de views: Tabela: Pessoas View: View_Pessoas_Masculino SQL Avanç Só podem criar views usuários com permissão de administrres do BD Definir usuário dba com proprietário de todas as tabelas Qualquer usuário com permissões mínimas no sistema, por padrão, consegue visualizar os ds de uma view. SQL Avanç Restrições: A instrução CREATE VIEW não pode incluir as cláusulas COMPUTE ou COMPUTE BY. A instrução CREATE VIEW não pode incluir a palavrachave INTO. A instrução CREATE VIEW só poderá incluir a cláusula ORDER BY se a palavra-chave TOP for usada. As views não podem fazer referência a tabelas temporárias. As views não podem fazer referência a mais de colunas. A instrução CREATE VIEW não pode ser combinada com outras instruções Transact-SQL em um único lote. SQL Avanç Exemplo 2: USE Northwind CREATE VIEW dbo.ordersubtotalsview (OrderID, Subtotal) AS SELECT OD.OrderID, SUM(CONVERT (money,(od.unitprice*quantity*(1- Discount)/100))*100) FROM [Order Details] OD GROUP BY OD.OrderID SELECT * FROM OrderSubtotalsView SQL Avanç para fornecer um modo conveniente de examinar informações de duas ou mais tabelas associadas em um local central: Neste exemplo, ShipStatusView associa as tabelas Customers (Clientes) e Orders (Pedidos). USE Northwind CREATE VIEW dbo.shipstatusview AS SELECT OrderID, ShippedDate, ContactName FROM Customers c INNER JOIN Orders o ON c.customerid = O.CustomerID WHERE RequiredDate < ShippedDate SELECT * FROM ShipStatusView OrderID ShippedDate ContactName 9

10 SQL Avanç Encriptação: Usar a opção WITH ENCRYPTION na criação da view Criptografa as entradas da tabela syscomments, critografando a definição da view Para descriptografar somente removendo e criando novamente a view. Pode ser interessante guardar uma cópia do script de criação da view em algum lugar (arquivo) seguro SQL Avanç Exercício: Criar a view: página?? Sem a opção de encriptação Ver os ds da tabela syscomments Apagar a view e criar de novo com a opção de encriptação Ver novamente os ds da tabela syscomments SQL Avanç Exercício: Crie a tabela Pessoas no transact-sql, com os campos nome, idade e sexo Insira cinco registros nesta tabela; sendo 3 homens e duas mulheres. Três destas pessoas tem idade maior que 30. Crie uma view para representar as mulheres com idade maior que trinta. Altere os ds e apenas faça mais um comando de seleção simples na view. SQL Avanç Alterando de definição da view Exemplo: USE Northwind ALTER VIEW dbo.employeeview AS SELECT LastName, FirstName, Extension FROM Employees SQL Avanç Atenção: Se você definir uma view com uma instrução SELECT * e, depois, alterar a estrutura das tabelas subjacentes adicionando colunas, as novas colunas não aparecerão na view. Quando todas as colunas são selecionadas em uma instrução CREATE VIEW, a lista de colunas é interpretada apenas quando você cria a view pela primeira vez. Para ver as novas colunas na view, você deve alterá-la. SQL Avanç Apagando uma view DROP VIEW <nome da view> Apague a view definida no exercício anterior 10

11 SQL Avanç Atualização dos ds através das views é possível considerando as seguintes restrições: Que seja proveniente de uma única tabela e que contenha todos os seu campos não nulos Não possua funções de agregação Poderão ocasionar erros se afetarem colunas às quais a view não faz referência. SQL Avanç Otimização de desempenho Armazenamento de ds de consultas completas Joins com views é mais rápido do que com várias tabelas Evitar aninhamento de views. Podem esconder problemas com results Exemplo das páginas SQL Avanç Práticas recomendadas: Nomes consistentes e com um padrão que os distinguem das tabelas; facilitando a identificação das views Dbo como proprietário: facilita utilização, já que, por ser o usuário default, não é necessário colocar o nome do usuário proprietário da view no momento de usá-la. Verifique dependências dos objetos antes de excluí-los sp_denpends Se for necessário esconder a definição de uma view, não apague esta definição da tabela syscomments; use a opção WITH ENCRYPTION nos comandos CREATE VIEW ou ALTER VIEW. Cuid views aninhadas, tenha certeza de sua real necessidade; elas podem esconder problemas com results. SQL Avanç Procedimentos Armazens Stored procedures Coleção nomeada de instruções TransactSQL que é armazenada no servidor. Suporte a recursos de programação São funções ou procedimentos, logo encapsulam execução repetida de código (mesmo código execut em lugares diversos) SQL Avanç Procedimentos Armazens Tipos Armazens no BD do sistema. Fornecem informações das tabelas do sistema Por padrão, precedidos por sp_ São funções do sistema Uss por qualquer BD Procedimentos de armazenamento local Uso restrito Procedimentos temporários locais (#) ou globais (##) Locais ao usuário ou globais para todas as sessões Procedimentos externos (construídos como DLL). Armazens fora do BD Prefixo xp_ SQL Avanç Procedimentos Armazens Características Instruções para executar operações sobre o BD Permite passagem de parâmetros Retorno de status da execução Parâmetros de saída 11

12 SQL Avanç Procedimentos Armazens Processamento Criação Primeira consulta, coloca o plano de consulta respectivo no cache. Cache aloc conforme necessidade Cache de procedimentos SQL Avanç Procedimentos Armazens Processo de criação: Codificação Verificação sintática. Em caso erro não será cri nada. Armazenamento da tabela de sistema sysobjects e texto na syscomments Armazenamento é feito dentro da BD atual SQL Avanç Procedimentos Armazens Comando de criação: CREATE PROCEDURE Cria o procedimento e armazena na BD A criação pode referenciar tabelas, view, variáveis,... O que é cri dentro do procedimento não tem vida externa ao mesmo Primeiro testar o código e depois realizar o armazenamento do mesmo Uma instrução CREATE PROCEDURE não pode combinada com outras instruções SQL em um único lote (assim como a VIEW). Deve ter permissões para CREATE PROCEDURE. Tamanho máximo de um procedimento é de 128Mb. SQL Avanç Procedimentos Armazens Sintaxe CREATE PROCEDURE CREATE PROC nome [;número] tipo_d} [VARYING][=padrao][OUTPUT]][,...n] [{RECOMPILE ENCRYPTION ambos }] [FOR REPLICATION] AS Instrução_sql[...n] SQL Avanç Procedimentos Armazens Exemplo 1: USE Northwind CREATE PROC dbo.overdueorders AS SELECT * FROM dbo.orders WHERE RequiredDate < GETDATE() AND ShippedDate IS NULL SQL Avanç Procedimentos Armazens Diretrizes para criação: Recomendo que o usuário dbo possua todos os objetos do BD Sempre especifique o dbo como proprietário dos procedimentos, tabelas, views e etc. que você criar Considere as permissões necessárias em todos os objetos em que a procedure precisa referenciar. O ideal é se logar no gerencir do banco como administrr, na hora de criar ou alterar objetos do sistema. Idealmente, uma procedure realiza uma ação Evitar uso de objetos temporários, por questões de desempenho. Prefira sp_executesql do que EXECUTE 12

13 SQL Avanç Procedimentos Armazens Executando um procedimento: EXEC retorno=] me_procedimento} [DEFAULT]][,...n] [WITH RECOMPILE] SQL Avanç Procedimentos Armazens Executando um procedimento: EXEC OverdueOrders Possível combinar EXEC dentro de um INSERT Inserir ds com o retorno da execução de uma procedure Exemplo da página 69. SQL Avanç Procedimentos Armazens Alteração Altera código de uma procedure existente Sintaxe é parecida com a CREATE Ver página 70. ALTER PROC vai alterar o conteúdo da PROC dentro da tabela syscomments Exemplo da página 71 SQL Avanç Procedimentos Armazens Remoção de procedures Interessante executar comando sp_depends antes de excluir um registro, para verificar as dependências. Sintaxe: DROP PROCEDURE {nome_proc} SQL Avanç Procedimentos Armazens Usando parâmetros de entrada Permitem passagem de valores externos para o procedimento. Generaliza o procedimento. Comando: CREATE tipo Considere: Melhor verificar o que está se recebendo, por exemplo, evitar processar um procedimento com parâmetro nulo. Com valor padrão, execução possibilita que não se passe nenhum valor para um determin parâmetro Exemplo da página 76. SQL Avanç Procedimentos Armazens Considerações sobre o exemplo: Ordem da declaração difere da ordem de passagem dos parâmetros não são especifics, porquê? No segundo exemplo, página 77, os parâmetros de passagem não indicam qual parâmetro eles estão se referenciando, porque eles são passs na ordem de declaração. 13

14 SQL Avanç Procedimentos Armazens Parâmetros de retorno Servem para retornar ds processs na procedure para quem a chamou. Sintaxe: CREATE PROC int OUTPUT EXEC OUTPUT Exemplo da página 78. SQL Avanç Procedimentos Armazens Exercícios: crie um procedimento que retorne o maior entre dois números outro para o menor outro para retornar a média. Teste os procedimentos cris... Calcular fatorial de um número. SQL Avanç Procedimentos Armazens Tratamento de erros: Tratamento de mensagens para informar sucesso ou falha de um procedimento. Mensagens tanto para programr, quando para usuário. Retorno satisfatório / esclarecedor para quem invocou a função, de tal forma que este possa tratar um erro. Boa prática: verificar situações de erro (RN) antes de executar uma rotina. SQL Avanç Procedimentos Armazens Tratamento de erros: Instrução RETURN: Retorna para método anterior Retorna um valor ou não Também usada para retornar o status de execução: normalmente 0 para êxito e valores negativos para erros. Valores de -1 a -14 estão em uso no SQL Server Valores de -15 a -99 estão reservs SQL Avanç Procedimentos Armazens Tratamento de erros: USE Northwind CREATE PROCEDURE nchar (10) AS SELECT OrderID, CustomerID, EmployeeID FROM [Order Qry] WHERE CustomerID RETURN SQL Avanç Procedimentos Armazens Função sp_addmessage Insere uma mensagem na tabela de mensagens do BD (sysmessages) Possibilitando assim, que o usuário que executou a procedure, identifique o código do erro que retornou de uma falha de execução da procedure 14

15 SQL Avanç Procedimentos Armazens Função Retorna o número do erro que ocorreu na última execução Caso não tenha ocorrido erro, retorna zero Faça o exemplo das página Crie uma mensagem personalizada para cada caso de erro, adicione na tabela de mensagens do sistema e mostre o erro ger, se for o caso, no lote que executou a procedure. SQL Avanç Procedimentos Armazens Função RAISERROR Gera um erro. Utilizada quando da verificação da possibilidade de um erro, lógico, de negócio ou de sistema. Pode ser utiliz para evitar o erro do SGBD e tratar o erro personaliz Exemplo das páginas SQL Avanç Procedimentos Armazens SQL Avanç Procedimentos Armazens Exercício Fazer pesquisa fonética em uma tabela do BD. Algoritmo Soundex como procedure. Este algoritimo foi cri pelo governo Americano para recuperar nomes para a administração da Seguridade Social nos arquivos Nacionais. O algoritimo é simples e esta explic a seguir. Uma chave de busca é foneticamente igual à algum d da tabela, se o código SOUNDEX dela for igual ao código SOUNDEX de um registro do d da tabela. O código soundex é obtido conforme as seguintes regras: Se o código for maior que quatro caracteres os demais não serão considers. Se for menor serão acrescidos Zeros. Você preserva o primeiro caractere da String e atribui valores conforme a tabela abaixo até 3 caracteres. As vogais A,E,I,O,U os caracteres Y,W e H e os demais caracteres não são considers. Os caracteres numéricos são considers apenas para a primeira casa, os demais não considers Havendo caracteres repetidos somente o primeiro será consider Exercício Código do caractere Caractere Para palavras curtas B, P, F, V C, S, G, J. K, Q, X, Z D, T L M, N R Soundex da palavra BROWN B = B R = 6 O = - W = 0 N = 5 B650 SQL Avanç SQL Avanç Procedimentos Armazens Funções do usuário Recurso que permite a customização de funções para o usuário. Restrições Devem retornar algum valor (escalar ou tabela) Aceitam nenhum ou vários parâmetros de entrada Não aceitam parâmetros de saída 15

16 SQL Avanç Funções do usuário Tipos: Escalares Funções simples, que processam alguma tarefa e retornam um escalar. Com valor de tabela e instruções Semelhantes a procedimentos Permitem o uso numa instrução FROM e SELECT Com valor de tabela in-line Assemelha-se ao uso de views, porém com suporte à parâmetros SQL Avanç Funções do usuário Criação (CREATE FUNCTION): Veja sintaxe na página 94 do manual. CREATE FUNCTION fn_newregion ( NVARCHAR(30)) RETURNS NVARCHAR(30) BEGIN IS NULL = Não Aplicável END SQL Avanç Funções do usuário Uso da função em SELECT: SELECT LastName, City, dbo.fn_newregion(region) AS Region, Country FROM dbo.employees SQL Avanç Funções do usuário Alteração: A alteração da função segue a mesma sintaxe de estrutura da criação, com exceção da palavra-chave do comando: ALTER FUNCTION dbo.fn_newregion... Exclusão de funções: Semelhante aos demais objetos: DROP FUNCTION dbo.fn_newregion SQL Avanç Funções do usuário Fazer exemplos das páginas: 98 funções escalares com valor de tabela tabela in-line. Discussão sobre os exemplos: Quais são as características de cada tipo? Em qual situação devemos usar qual tipo de função? SQL Avanç Funções do usuário Boas práticas: Funções complexas em ds pequenos Cuid com o encapsulamento As funções escondem a complexidade de uma consulta simples Prefira funções à procedimentos Funções in-line são parecidas com view, mas com uma vantagem: permitem parâmetros 16

17 SQL Avanç Funções do usuário Exercício: Converter o procedimento SoundexFunc para uma função Criar tabela de Pessoa com os atributos nome e sobrenome Escrever testes usando a SoundexFunc para validar o uso da função Pergunta: A comparação usando SoundexFunc é mais lenta que a comparação direta de nomes, porque precisa converter o nome para um código antes de pesquisar; mata o índice!! Então qual seria a solução para utilizar o recurso do soundex sem perda de índices? SQL Avanç Disparres (TRIGGERS) São um tipo especial de procedimento que executs sempre que ocorre algum evento. Por exemplo, pode-se criar uma trigger (ou disparr) para que, toda vez que seja inserido um registro em uma determinada tabela, seja cri algum outro registro de relacionamento. A execução ocorre automaticamente, quando ocorre o evento ao qual a trigger está associada. Inclusive não invocs manualmente SQL Avanç Disparres (TRIGGERS) Uso: Mais us para manter integridade Automatização de operações complexas em cascata Customizar verificações e mensagens Permite trabalhar com est atual e anterior de um d SQL Avanç Disparres (TRIGGERS) Uso: Operações em cascata Alteração e exclusão em cascata Automatização de operações complexas de integridade Por exemplo, verificar o est de um atributo comparando com outras tabelas; caso ele esteja dentro de uma faixa de valores realiza alguma operação sobre os ds, caso contrário realiza outra. Digamos que pedido não pode pedir mais do que X unidades de um produto que está num limite mínimo em estoque. SQL Avanç Disparres (TRIGGERS) Uso: Customizar verificações e mensagens Verifica alguma condição especial do sistema e lança um erro de lógica de negócios apropri. Desnormalização Junção de várias tabelas para consolidação de ds Modelo continua íntegro, mas a visualização pode ser feita conjunta Permite trabalhar com est atual e anterior de um d SQL Avanç Disparres (TRIGGERS) Considerações: Podem conter ROLLBACK Entretanto, se é necessário sair do script da trigger quando é feito um ROLLBACK, é melhor usar comando RETURN para sair da execução Em geral, os disparres são reativos: D um evento um disparr é execut Restrições e INSTEAD OF são executs antes do evento Disparres podem afetar várias linhas de ds 17

UNIDADE 1 - SQL... 3 1.1 LINGUAGEM DE PROGRAMAÇÃO TRANSACT-SQL... 3 1.2 ELEMENTOS DE SINTAXE DO TRANSACT-SQL... 3 1.3 DIRETIVAS EM LOTES... 3 1.

UNIDADE 1 - SQL... 3 1.1 LINGUAGEM DE PROGRAMAÇÃO TRANSACT-SQL... 3 1.2 ELEMENTOS DE SINTAXE DO TRANSACT-SQL... 3 1.3 DIRETIVAS EM LOTES... 3 1. BANCO DE DADOS II 1 UNIDADE 1 - SQL... 3 1.1 LINGUAGEM DE PROGRAMAÇÃO TRANSACT-SQL... 3 1.2 ELEMENTOS DE SINTAXE DO TRANSACT-SQL... 3 1.3 DIRETIVAS EM LOTES... 3 1.4 COMENTÁRIOS... 4 1.5 IDENTIFICADORES...

Leia mais

Tarefa Orientada 19 Triggers

Tarefa Orientada 19 Triggers Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma

Leia mais

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 03 AT03 Diversos II Page 1 of 25 Indice EXEMPLOS COM GROUP BY E COM A CLÁUSULA HAVING - TOTALIZANDO DADOS... 3 GROUP BY... 3 Cláusula HAVING com GROUP BY... 5 ENTENDENDO

Leia mais

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela Certamente você já ouviu falar muito sobre triggers. Mas o quê são triggers? Quando e como utilizá-las?

Leia mais

Linguagem SQL Parte I

Linguagem SQL Parte I FIB - Centro Universitário da Bahia Banco de Dados Linguagem SQL Parte I Francisco Rodrigues Santos chicowebmail@yahoo.com.br Slides gentilmente cedidos por André Vinicius R. P. Nascimento Conteúdo A Linguagem

Leia mais

SQL. Structured Query Language

SQL. Structured Query Language SQL Structured Query Language Construções básicas Junção de Tabelas Join O uso da operação JOIN numa cláusula FROM especifica como se deseja que as tabelas sejam vinculadas. Use INNER JOIN para associar

Leia mais

Linguagem SQL (Parte I)

Linguagem SQL (Parte I) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: contato@itatechjr.com.br Linguagem SQL (Parte I) Introdução

Leia mais

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva - www.assembla.com/spaces/objetivobd/documents

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva - www.assembla.com/spaces/objetivobd/documents Banco de dados Linguagens de Banco de Dados II 1 Linguagem de Definição de Dados - DDL Comandos utilizados para criação do esquema de dados; Um DDL permite ao utilizador definir tabelas novas e elementos

Leia mais

Procedimentos armazenados

Procedimentos armazenados Procedimentos armazenados Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Material da Profª Maria Lígia B. Perkusich Procedimentos armazenados (i) Definição Um procedimento armazenado (stored procedure)

Leia mais

Revisão / Exercícios. Prof. Márcio Bueno. {bd2tarde,bd2noited}@marciobueno.com

Revisão / Exercícios. Prof. Márcio Bueno. {bd2tarde,bd2noited}@marciobueno.com Revisão / Exercícios Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Especificando Campos Apelidos de campo SELECT DEI" + "-UNICAP" as Centro, Universidade = UNICAP" Expressões como campos Podem

Leia mais

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

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS Esclarecimento Licenciamento de Uso Este documento é propriedade intelectual 2012 da NRSYSTEM COMÉRCIO E SERVIÇOS DE INFORMÁTICA LTDA-ME, consiste de uma compilação de diversos materiais entre livros,

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

Leia mais

Oracle PL/SQL Overview

Oracle PL/SQL Overview Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade

Leia mais

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 1 1- Bancos de dados compreendem desde agendas telefônicas até sistemas computadorizados. (Sim) 2- Só podemos instalar o SQL Server Express se tivermos

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 10 - PROCEDIMENTOS ARMAZENADOS - STORED PROCEDURES 1. INTRODUÇÃO Em muitas situações será necessário armazenar procedimentos escritos com a finalidade de se utilizar recursos como loop, estruturas

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Operação de União JOIN

Operação de União JOIN Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada

Leia mais

Histórico de revisões

Histórico de revisões Apostila 3 Histórico de revisões Data Versão Descrição Autor 30/09/2011 1.0 Criação da primeira versão HEngholmJr CONTEÚDO Exclusão de registros Consultas por Dados de Resumo Group by / Having Funções

Leia mais

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) Conceitos sobre a versão ANSI da SQL, a sublinguagem de definição de dados (DDL) e a sublinguagem de manipulação de dados (DML) Prof. Flavio Augusto C. Correia 1

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro ! Transact-SQL (T-SQL) Extensão ao SQL Permite controlo do fluxo de execução Permite comandos DDL (contrariamente ao PLSQL) T-SQL combina: poder de manipulação de dados

Leia mais

Bases de Dados 2007/2008. Aula 9

Bases de Dados 2007/2008. Aula 9 Bases de Dados 2007/2008 Aula 9 1. T-SQL TRY CATCH 2. TRATAMENTO ERROS RAISERROR 3. TRIGGERS 4. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql

Leia mais

Núcleo de Pós Graduação Pitágoras

Núcleo de Pós Graduação Pitágoras Núcleo de Pós Graduação Pitágoras Professor: Fernando Zaidan Disciplina: Modelagem e Projeto de Banco de Dados Especialização em Tecnologia da Informação - Ênfases Março- 2009 1 Modelo Físico Introdução

Leia mais

Hugo Pedro Proença, 2007

Hugo Pedro Proença, 2007 Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações

Leia mais

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

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 Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

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

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127 Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

Tarefa Orientada 18 Procedimentos armazenados

Tarefa Orientada 18 Procedimentos armazenados Tarefa Orientada 18 Procedimentos armazenados Objectivos: Criar Procedimentos armazenados Chamar procedimentos armazenados Utilizar parâmetros de entrada e de saída Um procedimento armazenado representa

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

Formação em Banco de Dados. Subtítulo

Formação em Banco de Dados. Subtítulo Formação em Banco de Dados Subtítulo Sobre a APTECH A Aptech é uma instituição global, modelo em capacitação profissional, que dispõe de diversos cursos com objetivo de preparar seus alunos para carreiras

Leia mais

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

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix Ingress SQL

Leia mais

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

Leia mais

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Principais Instruções em SQL Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Atenção: Esta apostila foi desenvolvida com o auxílio on-line do banco MS-ACCESS,

Leia mais

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

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma:

O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma: 1 CREATE TABLE O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma: CREATE TABLE (), (

Leia mais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br BANCO DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br INTRODUÇÃO AO SQL Ferramentas brmodelo Ferramenta Case PostgreSQL versão 8 ou superior SGBD Em 1986 o American

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

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

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza PHP e Banco de Dados progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível

Leia mais

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS CLAUDIO RIBEIRO DA SILVA MARÇO 1997 2 1 - CONCEITOS GERAIS DE 1.1 - Conceitos Banco de Dados - Representa

Leia mais

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) (Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...

Leia mais

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de BD Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de informação para nosso êxito no curso. A intenção de elaborar

Leia mais

Laboratório de Banco de Dados II

Laboratório de Banco de Dados II Laboratório de Banco de Dados II Esquema de um banco de dados relacional Em aulas anteriores, vocês implantaram um projeto físico de banco de dados com todos os seus elementos, inclusive tratando do projeto

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

Leia mais

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

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

Integridade dos Dados

Integridade dos Dados 1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL) CEFET.PHB - PI Prof. Jefferson Silva SQL (MySql) ROTEIRO I PARTE - INTRODUÇÃO AO SQL COMANDOS E SUAS PARTES DA LINGUAGEM SQL II PARTE ADMINSTRAÇÃO DE BANCO DE DADOS UTILIZANDO MYSQL PRINCIPAIS INSTRUÇÕES

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com MYSQL: TIPOS DE DADOS Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com TIPOS DE DADOS Bancos de dados, como falamos anteriormente, armazenam dados dentro de tabelas, na forma de linhas e colunas.

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

CIÊNCIA E TECNOLOGIA DO RIO

CIÊNCIA E TECNOLOGIA DO RIO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE BANCO DE DADOS II Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia

Leia mais

PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com

PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com Um dos grandes diferenciais do PostgreSQL em relação à maioria dos outros sistemas de bancos de dados é a presença de diversas linguagens

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida UFCD 787 Administração de base de dados Elsa Marisa S. Almeida 1 Objectivos Replicação de base de dados Gestão de transacções Cópias de segurança Importação e exportação de dados Elsa Marisa S. Almeida

Leia mais

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

PROCEDIMENTOS ARMAZENADOS (Stored Procedures) PROCEDIMENTOS ARMAZENADOS (Stored Procedures) 1. Introdução Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a

Leia mais

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

Oracle 10g: SQL e PL/SQL

Oracle 10g: SQL e PL/SQL Oracle 10g: SQL e PL/SQL PL/SQL: Visão Geral Enzo Seraphim Visão Geral Vantagens de PL/SQL Suporte total à linguagem SQL Total integração com o Oracle Performance Redução da comunicação entre a aplicação

Leia mais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

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

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre BANCO DE DADOS BANCO DE DADOS Prof. Patrícia Lucas 3º Trimestre ROTEIRO PARA O 3º TRIMESTRE 1. O MySQL DDL SQL 1. Como funciona o MySQL 2. Como criar um banco de dados no MySQL 3. Como criar tabelas: comandos

Leia mais

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico Editora Carlos A. J. Oliviero Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico Orientado por Projeto 1a Edição 2 Reimpressão São Paulo 2011 Érica Ltda. Noções Livrarse Preparação muitas muita Sumário

Leia mais

SQL Server - Arquitectura Cliente/Servidor

SQL Server - Arquitectura Cliente/Servidor MS - SQL Server Índice SQL Server - Arquitectura Cliente/Servidor... 3 SQL Server - Arquitectura da Base de Dados... 4 SQL Server - SQL Server Enterprise Manager... 8 SQL Server - Criar uma base de dados...

Leia mais

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação. O Departamento de Pesquisas da IBM desenvolveu a SQL como forma de interface para

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

1. Domínio dos Atributos

1. Domínio dos Atributos Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando

Leia mais

SQL (Linguagem de Consulta Estruturada)

SQL (Linguagem de Consulta Estruturada) SQL (Linguagem de Consulta Estruturada) M.Sc. Cristiano Mariotti mscmariotti@globo.com Introdução à SQL 1 Visão Geral Introdução Comandos de Definição de Dados Comandos de Manipulação de Dados Introdução

Leia mais

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

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

SQL. Hélder Antero Amaral Nunes

SQL. Hélder Antero Amaral Nunes SQL Hélder Antero Amaral Nunes 2 Introdução Desenvolvida pelo departamento de pesquisa da IBM na década de 1970 (System R); Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

Leia mais

Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com. Elaborado por Maria Lígia B. Perkusich

Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com. Elaborado por Maria Lígia B. Perkusich Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Elaborado por Maria Lígia B. Perkusich O que é um gatilho (trigger)? Um gatilho é um tipo especial de procedimento armazenado

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

Fundamentos do Sistema Gerenciador de Banco de Dados

Fundamentos do Sistema Gerenciador de Banco de Dados Fundamentos do Sistema Gerenciador de Banco de Dados Cláudio Luís V. Oliveira Janeiro de 2010 Definição "Um sistema cujo objetivo principal é gerenciar o acesso, a correta manutenção e a integridade dos

Leia mais

Formação em Banco de Dados

Formação em Banco de Dados Formação em Banco de Dados Sobre a KTEC A KTEC Escola de Tecnologia oferece uma série de cursos, para os que procuram uma base sólida no aprendizado, com foco nas boas práticas que fazem a diferença no

Leia mais

Curso: SQL Básico. Padrão de linguagem de consulta relacional aceito pelos comitês ANSI e ISO.

Curso: SQL Básico. Padrão de linguagem de consulta relacional aceito pelos comitês ANSI e ISO. Curso: SQL Básico Glauco Luiz Rezende de Carvalho glauco.rezende@banese.com.br Este material foi baseado e adaptado pelo material do Prof. MSc. Fábio Soares Silva da Universidade Tiradentes - UNIT SQL

Leia mais

Á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:

Á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: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais

Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL. www.pedrofcarvalho.com.br contato@pedrofcarvalho.com.br São José do Rio Preto

Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL. www.pedrofcarvalho.com.br contato@pedrofcarvalho.com.br São José do Rio Preto Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL Objetivos Revisando a sintaxe SQL SELECT, UPDATE, INSERT, DELETE Manipulando expressões Funções matemáticas, etc Condições de Pesquisa Funções de Agregação

Leia mais

UNISA Universidade de Santo Amaro. http://www.unisa.br. Material de Estudo. Módulo I: Básico Banco de dados SQL Server. http://www.unisa-sis.

UNISA Universidade de Santo Amaro. http://www.unisa.br. Material de Estudo. Módulo I: Básico Banco de dados SQL Server. http://www.unisa-sis. UNISA Universidade de Santo Amaro http://www.unisa.br Material de Estudo Módulo I: Básico Banco de dados SQL Server http://www.unisa-sis.info Junho/2010 Objetivo do Workshop Compartilhar e apresentar

Leia mais

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DDL Frederico D. Bortoloti freddb@ltc.ufes.br Introdução Modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language)

Leia mais

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL PL/SQL Laboratório de Bases de Dados PL/SQL Program Language SQL linguagem de programação da Oracle que permite processar dados armazenados no banco de dados Exemplos de operações permitidas alterar, remover,

Leia mais

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro !"#$ Excepção: condição de erro; quando ocorre o erro é levantada uma excepção que interrompe o fluxo normal de execução do programa e o direcciona para uma rotina de tratamento

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Prof. Marcelo Siedler Objetivos do documento: Apresentar os conceitos de stored procedutes e funções. Exercícios. Referência: http://dev.mysql.com/doc/refman/4.1/pt/stored-procedures.html

Leia mais

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com SQL Procedural Josino Rodrigues Neto josinon@gmail.com SQL Procedural Agregada em SQL-92 As ferramentas têm nomes para suas linguagens SQL procedurais/embutidas Oracle : PL/SQL Postgres PL/Pgsql SQL Server

Leia mais

Comandos DDL. id_modulo = id_m odulo

Comandos DDL. id_modulo = id_m odulo Comandos DDL Estudo de Caso Controle Acadêmico Simplificado Uma escola contém vários cursos, onde cada aluno possui uma matricula num determinado curso. Estes cursos, por sua vez, possuem módulos, aos

Leia mais

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

Leia mais

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

Banco de Dados. Módulo 7 - Modelo Relacional. Definição do Esquema Relacional em SQL. modulo07.prz 1 10/09/01 Banco de Dados Módulo 7 - Modelo Relacional Definição do Esquema Relacional em SQL modulo07.prz 1 10/09/01 Introdução SQL linguagem padrão para SGBDs relacionais derivada do SEQUEL (Structured English

Leia mais

Introdução ao SQL Avançado

Introdução ao SQL Avançado Introdução ao SQL Avançado Introdução as consultas, manipulação e a filtragem de dados com a linguagem SQL Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão

Leia mais

CRIANDO TABELAS E INSERINDO REGISTROS VIA SQL NO SQL Server 7.0

CRIANDO TABELAS E INSERINDO REGISTROS VIA SQL NO SQL Server 7.0 CRIANDO TABELAS E INSERINDO REGISTROS VIA SQL NO SQL Server 7.0 Obs: Estes comandos deverão ser realizados no Query Analyzer. - Para criar um Banco de Dados no SQL Server via código SQL: Depois de criado

Leia mais