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 ltonietto@unisinos.br 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 {@<nome> <tipo_de_ds>} [,...n] = expressão Exemplos: varchar(70) int 0 SQL Avanç Variáveis Exemplo: USE northwind varchar(11),@vlname 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 (@n BETWEEN 4 and 6) BEGIN WHILE (@n > 0) BEGIN AS 'Número', CASE WHEN (@n % 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] [{@parâmetro 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 (@@ROWCOUNT) 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 ( (@param1 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 17

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) 8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras

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

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

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. 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

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

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

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

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

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

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

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

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

Linguagem SQL Sub-linguagem DDL

Linguagem SQL Sub-linguagem DDL Linguagem SQL Sub-linguagem DDL 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 Language para suas

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

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

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda. SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]

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

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

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

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

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

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

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

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

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

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

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

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

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

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

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

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

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

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

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

NOME SEXO CPF NASCIMENTO SALARIO

NOME SEXO CPF NASCIMENTO SALARIO Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento

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

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

Leia mais

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

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Objetivos: Criar restrições para atributos, chaves primárias e estrangeiras; Explorar consultas SQL com uso de

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

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

OPERADORES E ESTRUTURAS DE CONTROLE

OPERADORES E ESTRUTURAS DE CONTROLE OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em

Leia mais

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL

Leia mais

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

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 3 Linguagem SQL Linguagem de manipulação de dados (DML) DISCIPLINA: Banco de

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

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

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

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Desktop

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Desktop MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Desktop 1 1 INICIANDO O APLICATIVO PELA PRIMEIRA VEZ... 3 2 PÁGINA PRINCIPAL DO APLICATIVO... 4 2.1 INTERFACE INICIAL... 4 3 INICIANDO PROCESSO DE LEITURA...

Leia mais

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS Profº Erinaldo Sanches Nascimento Introdução Cursor é usado para percorrer um conjunto de linhas retornadas por uma consulta

Leia mais

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados 1. Conceitos Básicos No contexto de sistemas de banco de dados as palavras dado e informação possuem o mesmo significado, representando uma

Leia mais

Tarefa Orientada 14 Subconsultas

Tarefa Orientada 14 Subconsultas Tarefa Orientada 14 Subconsultas Objectivos: Subconsultas não correlacionadas Operadores ALL, SOME e ANY Subconsultas correlacionadas Operador EXISTS Subconsultas incluídas na cláusula FROM de uma consulta

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

Introdução à Lógica de Programação

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião INTRODUÇÃO BANCO DE DADOS Prof. Msc. Hélio Esperidião BANCO DE DADOS Podemos entender por banco de dados qualquer sistema que reúna e mantenha organizada uma série de informações relacionadas a um determinado

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

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

1. SQL Instrumental...2 1.1 Select...3 1.2 Delete...13 1.3 Update... 1.4 Insert... 1.5 Group by... 1.6 Having... 1.7 Unnion All...

1. SQL Instrumental...2 1.1 Select...3 1.2 Delete...13 1.3 Update... 1.4 Insert... 1.5 Group by... 1.6 Having... 1.7 Unnion All... SQL 1. SQL Instrumental...2 1.1 Select...3 1.2 Delete...13 1.3 Update... 1.4 Insert... 1.5 Group by... 1.6 Having... 1.7 Unnion All... 2. Servidor... 2.1 Ativando log no Broker... 2.2 Leitura do log no

Leia mais

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

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional Modelo de Dados Relacional e as Restrições de um Banco de Dados Relacional Modelo de Dados Relacional Conceitos do Modelo Relacional Representa o banco de dados como uma coleção de relações. Comparaçã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

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

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais

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

Segurança de Acesso a Banco de Dados no MS SQL Server Segurança de Acesso a Banco de Dados no MS SQL Server Para efetuar com sucesso os exemplos que serão mostrados a seguir é necessário que exista no SQL Server uma pessoa que se conecte como Administrador,

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

Manual do Ambiente Moodle para Professores

Manual do Ambiente Moodle para Professores UNIVERSIDADE FEDERAL DA FRONTEIRA SUL Manual do Ambiente Moodle para Professores Tarefas Versão 1.0b Setembro/2011 Direitos Autorais: Essa apostila está licenciada sob uma Licença Creative Commons 3.0

Leia mais

Treinamento sobre SQL

Treinamento sobre SQL Treinamento sobre SQL Como Usar o SQL Os dois programas que você mais utilizara no SQL Server são: Enterprise Manager e Query Analyzer. No Enterprise Manager, você pode visualizar e fazer alterações na

Leia mais

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

Banco de Dados Oracle 10g: Introdução à Linguagem SQL Oracle University Entre em contato: 0800 891 6502 Banco de Dados Oracle 10g: Introdução à Linguagem SQL Duração: 5 Dias Objetivos do Curso Esta classe se aplica aos usuários do Banco de Dados Oracle8i,

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

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

2008.2. SQL Avançado Continuação. Renata Viegas

2008.2. SQL Avançado Continuação. Renata Viegas SQL Avançado Continuação Renata Viegas Cláusula COMPUTE Sintaxe: SELECT FROM ORDER BY COMPUTE BY Para que serve? Gerar totalizadores

Leia mais

Treinamento. DBA Oracle 11g. Duração: 120 horas

Treinamento. DBA Oracle 11g. Duração: 120 horas Treinamento DBA Oracle 11g Duração: 120 horas Neste curso no primeiro módulo (Introdução ao Oracle 11g SQL e PL_SQL) é oferecido um curso introdutório à tecnologia do banco de dados Oracle 11g. Também

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

Laboratório de Banco de Dados II Aula 1. Stored Procedures

Laboratório de Banco de Dados II Aula 1. Stored Procedures Laboratório de Banco de Dados II Aula 1 Stored Procedures Stored procedures Uma seqüência de comandos SQL pode ser agrupada, formando uma stored procedure A sua execução é comandada, invocando-se o nome

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