Professional Documents
Culture Documents
ndice
SISTEMAS GERENCIADORES DE BANCO DE DADOS....................................................................................... 3 INTRODUO ...................................................................................................................................................... 3 CARACTERSTICAS DE UM SGBD ............................................................................................................................. 3 O MODELO RELACIONAL........................................................................................................................................ 4 CONCEITOS BSICOS DOS BANCOS DE DADOS RELACIONAIS........................................................................................... 4 REGRAS DE INTEGRIDADE ...................................................................................................................................... 8 OUTRAS REGRAS DE INTEGRIDADE ........................................................................................................................... 9 TABELAS BSICAS A SEREM UTILIZADAS NO CURSO .................................................................................................... 10 SQL (STRUCTURED QUERY LANGUAGE) ...................................................................................................... 12 INTRODUO .................................................................................................................................................... 12 PRINCIPAIS OPERADORES..................................................................................................................................... 13 TIPOS DE DADOS SQL SERVER ............................................................................................................................ 14 COMANDOS DML SQL ...................................................................................................................................... 16 Comando SELECT ...................................................................................................................................... 17 Comando INSERT ...................................................................................................................................... 21 Comando DELETE ..................................................................................................................................... 22 Comando UPDATE .................................................................................................................................... 22 FUNES DE AGREGAO.................................................................................................................................... 23 COMANDOS DDL .............................................................................................................................................. 24 Comando CREATE TABLE .......................................................................................................................... 24 Comando ALTER TABLE ............................................................................................................................ 25 Comando DROP TABLE ............................................................................................................................. 26 Comando CREATE VIEW ........................................................................................................................... 26 Comando DROP VIEW .............................................................................................................................. 27 REFERNCIAS.............................................................................................................................................. 28
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
Caractersticas de um SGBD
Ao utilizar-se um SGBD esto implcitos certos objetivos fundamentais, como a integrao das atividades gerenciais e operacionais da organizao, a obteno de maior segurana em termos do armazenamento dos dados, a facilitao da tarefa de desenvolvimento de sistemas, a melhor adequao da base de dados realidade do dia a dia, etc. Para que tudo isso seja possvel, necessrio que o SGBD obedea a alguns princpios bsicos que resumimos a seguir: 1) Independncia de dados: o principal objetivo de um SGBD. Consiste na capacidade detornar as caractersticas fsicas dos dados (como localizao, estrutura, tamanho, etc.) transparentes para a aplicao. Com isso, os programas aplicativos passam a ter apenas uma viso lgica da base de dados, que no influenciada por eventuais modificaes na forma de armazenamento dos dados. Significa tambm que devem existir trs sublinguagens incorporadas ao banco de dados: uma Linguagem de Definio de Dados (DDL), uma Linguagem de Manipulao de Dados (DML) e uma Linguagem de Controle de Dados (DCL). 2) Compartilhamento de dados: deve ser possvel que, num determinado momento, mais de um usurio possa acessar os dados armazenados pelo SGBD. 3) Garantia de integridade de dados: apesar de permitir que os dados sejam compartilhados, o SGBD deve oferecer servios que evitem que atualizaes concorrentes tornem a base de dados inconsistente. 4) Garantia de segurana de dados: o SGBD deve oferecer meios que resguardem a base de dados nos casos de falha de programa, equipamento ou sinistros. Tambm deve ser possvel que alteraes indevidas feitas durante a operao dos aplicativos pelos usurios
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
sejam desfeitas sem prejuzo da coerncia dos dados. Considera-se igualmente como um item de segurana a ser proporcionado pelo software gerenciador, o controle dos nveis de acesso dos usurios aos dados do sistema. 5) Relacionamento entre os dados: a implementao dos diversos relacionamentos previstos na base de dados deve ser controlada automaticamente pelo SGBD, externamente aplicao. 6) Controle da redundncia de dados: devem ser proporcionados meios para que seja possvel o controle da repetio de dados pelos diversos arquivos administrados pelo SGBD. Isso conseguido por meio da centralizao da definio dos dados um Dicionrio de Dados ou Catlogo, que serve como base para a operao do SGBD.
Evidentemente, tais princpios existem interligados entre si, sendo que o descuido com relao a um deles geralmente apresenta reflexos sobre todos (ou quase todos) os demais.
O modelo relacional
Os SGBDs mais utilizados hoje em dia foram concebidos com base em um modelo matemtico derivado da Teoria dos Conjuntos e que teve um grande desenvolvimento a partir da dcada de 70. Esse modelo chamado Modelo Relacional e os SGBD que suportam tais conceitos so chamados de Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDR). So exemplos de SGBDR: MS-Access, MySQL, ZIM, MS-SQL Server, Oracle, Sybase, Informix, CA-Ingres, IBM-DB2, Borland-Interbase, etc. Alm dos gerenciadores relacionais, existem tambm SGBDs ditos hierrquicos (praticamente em desuso), de modelo de rede (considerados ultrapassados) e orientados a objetos (uma tecnologia emergente, mas ainda em maturao). Dessa forma, quando neste material for mencionado o termo SGBD est subentendido que se refere a um produto que implementa os conceitos do modelo relacional. Mais especificamente, estaremos trabalhando com o SGBDR SQL Server 2005 ou superior, um dos principais produtos para bancos de dados disponveis no mercado atualmente.
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
Linha: Uma ocorrncia em particular de dados em uma tabela ocupa uma linha dessa tabela. Em determinadas literaturas as linhas das tabelas podem tambm ser chamadas de registros ou de tuplas. No exemplo anterior, os dados de um empregado ocupam uma linha na tabela Funcionario. Como existem 10 empregados nessa tabela, ela possui 10 linhas (ou tuplas, ou registros). Coluna: Cada tipo de informao armazenada em uma tabela uma coluna. Dois sinnimos de uso corrente para coluna so as palavras campo e atributo. Toda coluna de uma tabela deve possuir um nome pelo qual ser referenciada sempre que necessrio. Ao criarmos uma tabela definimos, para cada uma de suas colunas, o seu nome e tambm o seu tipo (numrico, alfabtico, data, etc). Por exemplo, NmFunc e DtAdm so colunas (ou campos) da tabela Funcionario. Essa tabela possui um total de 6 campos em sua estrutura. Domnio: Sempre que identificamos uma coluna de uma tabela, temos tambm uma idia de qual o tipo de informao que ela poder vir a conter. Por exemplo, se reconhecemos Sexo como sendo uma coluna de uma tabela qualquer, sabemos de antemo que a informao ali contida ser, sempre, "Masculino" ou "Feminino". De forma semelhante, se uma coluna for Estado, com certeza seu contedo ser a sigla ou o nome de um dos Estados do Brasil. Chamamos a essa faixa de valores que uma coluna pode conter de domnio dessa coluna. Assim, para o atributo DiadoMes, o domnio ser o conjunto de nmeros entre 1 e 31; o domnio de uma coluna Salario ser o conjunto de nmeros entre 0 e o teto salarial estipulado pela empresa, e assim por diante.
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
Exemplo de domnio
Chave primria: Um dos princpios do modelo relacional diz que uma linha de uma tabela deve sempre poder ser referenciada de forma nica. O atributo diferenciador (que no se repete) entre as linhas de uma tabela chamado de chave primria, que no caso da tabela Funcionario, por exemplo, poderia ser a coluna NrMatric, j que essa informao no se repete para dois funcionrios distintos. Muitas vezes, porm, uma tabela no possui, entre suas colunas, uma que por si s seja suficiente para identificar univocamente uma linha. Nesses casos deve sempre ser possvel que a combinao de dois ou mais colunas tenha a capacidade de se constituir numa chave primria. Chamamos a essas chaves primrias formadas pela combinao de vrios atributos de chaves primrias compostas. Chave estrangeira: Os relacionamentos entre tabelas so implementados no modelo relacional atravs de atributos de relacionamento. Essa tcnica consiste na distribuio de alguns atributos-chave pelas tabelas que representam as entidades envolvidas no relacionamento, de forma que seja possvel a associao lgica entre as linhas das tabelas com base na comparao de suas chaves. Na prtica uma chave estrangeira uma coluna (ou combinao de colunas) que indica um valor que deve existir como chave primria numa outra tabela (chamada de tabela pai). No caso da tabela Funcionrio existem duas chaves estrangeiras: as colunas CdCargo e CdDepto que referenciam, respectivamente, as tabelas de Cargos e de Departamentos.
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
Nulo: Representa um valor desconhecido para um dado. No devemos confundir o conceito de nulo com espaos em branco ou o nmero zero, por exemplo, que so valores conhecidos. Nulo a ausncia de informao. Uma coluna de preenchimento obrigatrio numa tabela deve possuir todos os seus valores no-nulos. Se, por exemplo, uma linha da tabela Funcionrio contiver um nulo na coluna DtAdm, significa que a data de admisso do funcionrio correspondente quela linha desconhecida.
Exemplo de nulo
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
Regras de Integridade
O modelo relacional, ao definir os conceitos de Tabela, Coluna, Nulo, Domnio, Chave Primria e Chave Estrangeira, deixa implcitas algumas regras bsicas para a manuteno da consistncia da base de dados. Elas so chamadas de Regras de Integridade e tratam dos cuidados que analistas, projetistas e programadores devem observar ao implementar as rotinas de Incluso, Alterao e Excluso de dados nos objetos. Consideramos que existem dois principais tipos de integridade a serem mantidas numa base de dados relacional adequadamente projetada: a Integridade de Entidade e a Integridade Referencial. Integridade de Entidade (ou de Identidade ou Existencial): Refere-se s chaves primrias e busca garantir que toda e qualquer linha de uma tabela deve poder ser acessada com base apenas no contedo de sua chave primria. Regra bsica: "Nenhum atributo que faa parte de uma chave primria pode ter valor nulo." Isso significa que os contedos de todos os atributos que constituem uma chave primria devem ser conhecidos. Um contedo nulo representa uma informao desconhecida ou, em outras palavras, a ausncia da informao. Adicionalmente lembramos que, por definio, no se deve permitir que numa mesma tabela existam duas ocorrncias com chaves primrias iguais. Integridade Referencial: Diz respeito s chaves estrangeiras e visa manter a integridade dos relacionamentos previstos na base de dados. Na definio dos cuidados referentes a esse tipo de integridade, utilizaremos dois conceitos novos: Tabela-Pai (Parent Table): aquela onde o atributo de relacionamento desempenha o papel de chave primria. Tabela-Filho (Dependent Table): tabela onde o atributo de relacionamento desempenha o papel de chave estrangeira. Regra bsica: "O contedo de uma chave estrangeira deve, necessariamente, ser igual ao de uma ocorrncia da Tabela-Pai ou ento ser nulo." O primeiro caso mencionado pela regra significa que a ocorrncia da Tabela-Filho possui uma correspondente na Tabela-Pai. J o segundo caso representa a ausncia da correspondncia: para aquela ocorrncia em particular, no existe o relacionamento. As conseqncias da Integridade Referencial refletem-se nas consistncias necessrias ao se proceder s operaes de Incluso, Alterao e Excluso de dados nas Tabelas Pai e Filho. isso o que mostra o quadro a seguir.
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
Nas demonstraes vamos supor que cada tabela possui um pequeno nmero de linhas. O contedo inicial assumido para cada tabela o seguinte:
Tabela FILME
COD_FILME 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 FILME 300 Mquina Mortfera A Mexicana A Verdade Nua e Crua A vida bela Austrlia Ultimato Bourn Constantine Os Irmos Grimm Os Doze Macacos Amadeus As Torres Gmeas Platoon O Advogado do Diabo Beowulf Bolt o super co Apertem o cinto o piloto sumiu Doze demais Uma noite no museu COD_CATEGORIA 1 1 2 2 2 3 3 4 4 4 5 5 1 6 7 7 9 9 9 DIRETOR Richard Donner Richard Donner Burr Steers Robert Luketic Roberto Benigni Baz Luhrmann Paul Greengrass Francis Lawrence Terry Gilliam Terry Gilliam Milos Forman Oliver Stone Oliver Stone Taylor Hackford Robert Zemeckis Byron Howard Jim Abrahams Shawn Levy Shawn Levy VALOR_LOCACAO 3,5 3,6 2 4 3,5 4 3,5 2,5 3,5 2,5 10 2,5 5,5 1,5 1 1,5 3,6 9,2 2,5 RESERVADA n n s n s s n s n n n s s s n s s s n
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
10
Tabela CLIENTES
COD_CLIENTE 1 2 3 4 5 6 7 8 9 10 RG 321346530 421346111 324857670 112345553 945848768 676548499 321349999 335466531 112233445 222222222 NOME Edson Martin Feitosa Rafael Fernando de Moraes Moreno Joo da Silva Maria Chiquinha Rafael Nunes Sales Daniela Martin Feitosa Renata Cristina Joaquim Ferreira de Souza Junior Ladislau Ferreira Vanessa Oliveira ENDERECO Rua Orlando Alvarenga, 1 Rua Francisco de Souza, 123 Rua Mario Quintana, 13 Rua Padre Luiz, 55 Rua Orlando Alvarenga, 4 Rua Guilherme Oliveria, 1 Rua Orlando Alvarenga, 1 Rua Outubro Vermelho, 65 Rua Orlando Alvarenga, 12345 Rua das Flores, 1 BAIRRO Jd. Vera Cruz Jd. Nova Esperana Av. Bartolomeu Jd. Vera Cruz Jd. Vera Cruz Jd. Vera das Acssicas Jd. Vera Cruz Jd. Santa Roslia Jd. Vera Cruz Jd. do Sol CIDADE Sorocaba So Roque Sorocaba Sorocaba Sorocaba Votorantim Sorocaba Votorantim Sorocaba Votorantim ESTADO SP SP SP SP SP SP SP SP SP SP TELEFONE 32125809 32274567 32134098 23336684 32124609 32132109 32125809 11125809 32144409 32122222 EMAIL edson.feitosa@ig.com.br rafael@terra.com.br joao@uol.com.br maria@ig.com.br rafael.sales@terra.com.br daniela.martin@gmail.com renata@gmail joaquim_junior@ig.com.br ladislau@terra.com.br vanessa@ig.com.br DATANASCIMENTO 1982-11-30 00:00:00.000 1985-04-01 00:00:00.000 1992-12-05 00:00:00.000 1982-11-30 00:00:00.000 1985-04-01 00:00:00.000 1986-12-26 00:00:00.000 1970-09-01 00:00:00.000 1980-04-08 00:00:00.000 1988-01-03 00:00:00.000 1998-08-08 00:00:00.000 sexo M M M F M F F M M F
Tabela LOCACOES
COD_LOCACAO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 COD_CLIENTE 1 1 1 1 1 2 3 3 4 5 6 6 7 7 7 7 7 7 8 9 9 10 COD_FILME 1 6 8 2 13 5 3 19 17 5 7 9 16 1 5 8 11 12 9 3 6 10 DATA_RETIRADA 2010-03-20 19:05:43.887 2010-03-20 19:05:43.887 2010-03-20 19:05:43.887 2010-03-15 00:00:00.000 2010-03-15 00:00:00.000 2010-03-20 19:05:43.887 2010-03-18 19:05:43.887 2010-03-18 19:05:43.887 2010-03-01 19:05:43.887 2010-03-03 19:05:43.887 2010-03-03 19:05:43.887 2010-03-03 19:05:43.887 2010-03-13 19:05:43.887 2010-03-13 19:05:43.887 2010-03-14 19:05:43.887 2010-03-14 19:05:43.887 2010-03-14 19:05:43.887 2010-03-15 19:05:43.887 2010-03-20 19:05:43.887 2010-03-21 19:05:43.887 2010-03-21 19:05:43.887 2010-02-20 19:05:43.887 DATA_DEVOLUCAO 2010-03-23 00:00:00.000 2010-03-23 00:00:00.000 2010-03-23 00:00:00.000 2010-03-17 00:00:00.000 2010-03-17 00:00:00.000 2010-03-21 00:00:00.000 2010-03-20 00:00:00.000 2010-03-20 00:00:00.000 2010-03-03 00:00:00.000 2010-03-05 00:00:00.000 2010-03-04 00:00:00.000 2010-03-04 00:00:00.000 2010-03-15 00:00:00.000 2010-03-15 00:00:00.000 2010-03-16 00:00:00.000 2010-03-16 00:00:00.000 2010-03-16 00:00:00.000 2010-03-17 00:00:00.000 2010-03-21 00:00:00.000 2010-03-22 00:00:00.000 2010-03-22 00:00:00.000 2010-02-21 00:00:00.000
Tabela CATEGORIA
COD_CATEGORIA NOME_CATEGORIA 1 Ao 2 Romance 3 Aventura 4 Fico 5 Drama 6 Terror 7 Desenho 8 Policial 9 Comdia
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
11
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
12
geralmente so secundrias e existe sempre uma sintaxe mnima que suportada por todos os produtos.
Principais operadores
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
13
Float
Image
Int Money
Nchar
Ntext
Numeric Nvarchar
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
14
Similar ao tipo de dado float, usando apenas 4 bytes de armazenamento com preciso de at 7 dgitos. Campo data menos preciso, que armazena data e hora em preciso de minutos, utilizando 4 bytes. Armazena dados numricos preciso at a quantidade de nmeros armazenados em 2 bytes. Menor que o int, ele pode conter nmeros de 32.768 at 32.767. Contm dados monetrios decimais precisos at o 4 dgito. Usa 4 bytes de armazenamento e pode conter valores de -214.748,3648 at 214.748,3647. Contm uma string de caracteres no-Unicode com tamanho de at 2.147.483.647 caracteres. Similiar ao campo memo encontrado em outros bancos de dados, este tipo de dado armazena grandes quantidades de texto em pginas de 2kb. Colunas definidas com este tipo de dado no podem ser indexadas, pesquisadas, agrupadas ou ordenadas. Um valor binrio automaticamente atualizado cada vez que uma tabela com uma coluna deste tipo alterada. Ele usa 8 bytes de armazenamento e nico dentro do banco de dados. Uma tabela s pode possui uma coluna deste tipo. O menor tipo de dado inteiro, ele consome apenas 1 byte de armazenamento e pode conter nmeros de 0 a 255. Um nmero hexadecimal de 16 bytes, tambm conhecido como GUID (globally unique identification number). Use a funo do SQL Server NEWID() para gerar novos identificadores nicos para alimentar uma varivel ou uma coluna deste tipo de dado. Similar ao tipo binrio, este pode conter at 8.000 bytes de dados binrios de tamanho varivel. Tamanho varivel significa que o campo ir consumir apenas o espao necessrio para armazenar os dados contidos no mesmo. Contm at 8.000 bytes de tamanho varivel para strings. Use este tipo para colunas que iro armazenar valores nulos de dados que variam em tamanho.
Smallmoney
Text
Timestamp
Tinyint Uniqueidentifier
Varbinary
Varchar
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
15
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
16
Comando SELECT
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
17
3. Exibindo nome e telefone dos clientes masculinos ordenados por ordem alfabtica
select NOME,TELEFONE from CLIENTES where sexo = 'm' order by NOME ou select NOME,TELEFONE from CLIENTES where sexo = 'm' order by 1
NOME ---------------------------------------Edson Martin Feitosa Joo da Silva Joaquim Ferreira de Souza Junior Ladislau Ferreira Rafael Fernando de Moraes Moreno Rafael Nunes Sales TELEFONE ----------32125809 32134098 11125809 32144409 32274567 32124609
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
18
5. Exemplo de juno de tabela, exibindo os nomes dos clientes que possuem locao e a data de locao
select NOME, DATA_RETIRADA from LOCACOES, CLIENTES where LOCACOES.COD_CLIENTE = CLIENTES.COD_CLIENTE
NOME -------------------------------------------------Edson Martin Feitosa Edson Martin Feitosa Edson Martin Feitosa Edson Martin Feitosa Edson Martin Feitosa Rafael Fernando de Moraes Moreno Joo da Silva Joo da Silva Maria Chiquinha Rafael Nunes Sales Daniela Martin Feitosa Daniela Martin Feitosa Renata Cristina Renata Cristina Renata Cristina Renata Cristina Renata Cristina Renata Cristina Joaquim Ferreira de Souza Junior Ladislau Ferreira Ladislau Ferreira Vanessa Oliveira DATA_RETIRADA ----------------------2010-03-20 19:05:43.887 2010-03-20 19:05:43.887 2010-03-20 19:05:43.887 2010-03-15 00:00:00.000 2010-03-15 00:00:00.000 2010-03-20 19:05:43.887 2010-03-18 19:05:43.887 2010-03-18 19:05:43.887 2010-03-01 19:05:43.887 2010-03-03 19:05:43.887 2010-03-03 19:05:43.887 2010-03-03 19:05:43.887 2010-03-13 19:05:43.887 2010-03-13 19:05:43.887 2010-03-14 19:05:43.887 2010-03-14 19:05:43.887 2010-03-14 19:05:43.887 2010-03-15 19:05:43.887 2010-03-20 19:05:43.887 2010-03-21 19:05:43.887 2010-03-21 19:05:43.887 2010-02-20 19:05:43.887
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
19
7. Exemplo de agrupador, contar quantidades de locaes por cliente e renomear a coluna para quantidade
select NOME, COUNT(*) as quantidade from LOCACOES, CLIENTES where LOCACOES.COD_CLIENTE = CLIENTES.COD_CLIENTE group by NOME
NOME -------------------------------------------------Daniela Martin Feitosa Edson Martin Feitosa Joo da Silva Joaquim Ferreira de Souza Junior Ladislau Ferreira Maria Chiquinha Rafael Fernando de Moraes Moreno Rafael Nunes Sales Renata Cristina Vanessa Oliveira quantidade ----------2 5 2 1 2 1 1 1 6 1
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
20
10. Criando campo calculado, prever data de entrega acrescentando 3 dias na data de retidada
select NOME,DATA_RETIRADA,(DATA_RETIRADA+3) as previsao_devolucao from LOCACOES l, CLIENTES c where l.COD_CLIENTE = c.COD_CLIENTE
NOME ----------------------------------Edson Martin Feitosa Edson Martin Feitosa Edson Martin Feitosa Edson Martin Feitosa Edson Martin Feitosa Rafael Fernando de Moraes Moreno Joo da Silva Joo da Silva Maria Chiquinha Rafael Nunes Sales Daniela Martin Feitosa Daniela Martin Feitosa Renata Cristina Renata Cristina Renata Cristina Renata Cristina Renata Cristina Renata Cristina Joaquim Ferreira de Souza Junior Ladislau Ferreira Ladislau Ferreira Vanessa Oliveira
DATA_RETIRADA ----------------------2010-03-20 19:05:43.887 2010-03-20 19:05:43.887 2010-03-20 19:05:43.887 2010-03-15 00:00:00.000 2010-03-15 00:00:00.000 2010-03-20 19:05:43.887 2010-03-18 19:05:43.887 2010-03-18 19:05:43.887 2010-03-01 19:05:43.887 2010-03-03 19:05:43.887 2010-03-03 19:05:43.887 2010-03-03 19:05:43.887 2010-03-13 19:05:43.887 2010-03-13 19:05:43.887 2010-03-14 19:05:43.887 2010-03-14 19:05:43.887 2010-03-14 19:05:43.887 2010-03-15 19:05:43.887 2010-03-20 19:05:43.887 2010-03-21 19:05:43.887 2010-03-21 19:05:43.887 2010-02-20 19:05:43.887
previsao_devolucao ----------------------2010-03-23 19:05:43.887 2010-03-23 19:05:43.887 2010-03-23 19:05:43.887 2010-03-18 00:00:00.000 2010-03-18 00:00:00.000 2010-03-23 19:05:43.887 2010-03-21 19:05:43.887 2010-03-21 19:05:43.887 2010-03-04 19:05:43.887 2010-03-06 19:05:43.887 2010-03-06 19:05:43.887 2010-03-06 19:05:43.887 2010-03-16 19:05:43.887 2010-03-16 19:05:43.887 2010-03-17 19:05:43.887 2010-03-17 19:05:43.887 2010-03-17 19:05:43.887 2010-03-18 19:05:43.887 2010-03-23 19:05:43.887 2010-03-24 19:05:43.887 2010-03-24 19:05:43.887 2010-02-23 19:05:43.887
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
21
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
22
Funes de agregao
A linguagem SQL oferece um conjunto de funes destinadas a calcular valores estatsticos a partir de grupos de linhas selecionadas atravs da clusula GROUP BY prevista no comando SELECT. Conforme os atributos que especificamos nessa clusula sero os agrupamentos de linhas que sero produzidos, uma vez que linhas com o mesmo valor nos atributos especificados so colocadas no mesmo grupo. As funes de agregao previstas pela SQL padro so indicadas na tabela a seguir.
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
23
Comandos DDL
Em SQL temos um conjunto de comandos com a finalidade de permitir a criao, alterao e eliminao dos objetos da base de dados. Esse conjunto chamado de Linguagem de Definio de Dados (em ingls, Data Definition Language DDL) e composto basicamente pelos comandos CREATE, ALTER E DROP. Com eles podemos definir objetos como tabelas, vises, ndices, entre outros, com pequenas variaes na sintaxe de cada comando. Comando CREATE TABLE Cria uma tabela, especificando suas colunas e restries. A sintaxe apresentada a seguir est simplificada, omitindo algumas clusulas opcionais um pouco mais tcnicas que no so importantes neste momento. CREATE TABLE <nome_tabela> ( <nome_coluna1> <tipo_dado> <restries_c>, <restries_t> ) Argumento <nome_tabela> <nome_coluna > <tipo_dado> Significado Especifica o nome da tabela a ser criada. Especifica o nome da coluna a ser criada. Tipo de dado da coluna, que dever ser escolhido dentro do conjunto de tipos de dados vlidos. Se necessrio, especificar tambm o tamanho do dado. Restries de coluna a serem aplicadas para o dado. Restries de tabela a serem aplicadas.
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
24
Comando ALTER TABLE Altera definies de uma tabela, adicionando e modificando colunas ou adicionando e excluindo restries. ALTER TABLE <nome_tabela> { ALTER COLUMN <nome_coluna> <tipo_dado> <restrio_c> | ADD { <nome_coluna> <tipo_dado> <restrio_c> | <restrio_t> } [, ... n] | DROP { <restrio_t> | <nome_coluna> } } Argumento <nome_tabela> <nome_coluna> <tipo_dado> Significado Nome da tabela a ser modificada. Nome da coluna a ser modificada, inserida ou excluda. Tipo de dado da coluna, que dever ser escolhido dentro do conjunto de tipos de dados vlidos. Se necessrio, especificar tambm o tamanho do dado. Restries de coluna a serem aplicadas para o dado. Restries de tabela a serem aplicadas.
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
25
3. Referenciando o campo COD_CLIENTE da tabela Clientes como chave estrangeira na tabela Locaes
ALTER TABLE dbo.LOCACOES WITH CHECK ADD CONSTRAINT FK_LOCACOES_CLIENTE FOREIGN KEY (COD_CLIENTE) REFERENCES dbo.CLIENTES(COD_CLIENTE)
Comando DROP TABLE Elimina uma tabela do banco de dados, excluindo todos os seus dados, bem como os ndices correspondentes. DROP TABLE <nome_tabela>
Comando CREATE VIEW Cria ou modifica uma viso. Uma viso uma espcie de tabela lgica, onde os seus dados so obtidos dinamicamente a partir das tabelas do banco de dados. CREATE | ALTER VIEW <nome_viso> AS <consulta> Argumento <nome_viso> <consulta> Significado Especifica o nome da viso a ser criada ou modificada. Consulta SELECT ... FROM... WHERE ... que fornecer os dados a serem exibidos pela viso.
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
26
2. Criando uma viso que mostre todos os filmes que no esto reservados
CREATE VIEW FILME_SEM_RESERVA AS SELECT * FROM FILME WHERE RESERVADA = 'n'
Comando DROP VIEW Elimina uma viso do banco de dados. DROP VIEW <nome_viso>
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
27
Referncias
[1] < http://msdn.microsoft.com/pt-br/library/bb545450.aspx> Biblioteca SQL SERVER. [2] Apostila SQL Prof MS. Antonio Cesar de Barros Munari.
SGBD e SQL ANSI [verso 1.0] Edson Martin Feitosa / Rafael Fernando de Moraes Moreno
28