Introdução. - josevalter.com.br SQL Server.pdf · VC++,VisualFoxPro,Access,Excel,Word,paraacessoviaODBC.Também podemosutilizaroacessoatravésdeprotocoloTCP/IPelinguagemHTML,

Embed Size (px)

Citation preview

  • Introduo. Jos Simo de Paula Pinto

    ([email protected]) Junho - 1997

    mailto:([email protected])

  • SUMRIO 1. SISTEMAS DE ARQUIVOS X BANCOS RELACIONAIS..................................1.1 ENTIDADES, RELACIONAMENTOS E ATRIBUTOS.........................................

    1.1.1 Entidades...............................................................................................................

    1.1.2 Relacionamentos...................................................................................................

    1.1.3 Atributos.................................................................................................................

    1.2 A LINGUAGEM SQL (STRUTURED QUERY LANGUAGE)............................2. O MICROSOFT SQL SERVER...............................................................................2.1 BANCOS DE DADOS (DATABASES).................................................................2.2 O BANCO DE DADOS MASTER.........................................................................2.3 O BANCO DE DADOS MODEL..........................................................................2.4 O BANCO DE DADOS TEMPDB.......................................................................2.5 O BANCO DE DADOS MSDB............................................................................2.6 LOCALIZAO DOS BANCOS DE DADOS....................................................3. USO DO PROGRAMA ISQLW..............................................................................4. DECLARAES BSICAS DO SQL..................................................................4.1 STORED PROCEDURES...................................................................................4.1.1 SP_HELP............................................................................................................4.1.2 SP_HELPDB......................................................................................................4.1.3 SP_HELPTEXT..................................................................................................4.1.4 SP_HELPSQL....................................................................................................4.2 UMA SEQNCIA BSICA DE TRABALHO....................................................4.2.1 CREATE TABLE................................................................................................4.2.2 INSERT................................................................................................................4.2.3 SELECT...............................................................................................................4.2.4 UPDATE..............................................................................................................4.2.5 DELETE...............................................................................................................4.2.6 DROP TABLE.....................................................................................................5. SINTAXE E EXEMPLOS DE ALGUNS COMANDOS......................................5.1 CREATE DATABASE..........................................................................................5.2 CREATE TABLE...................................................................................................5.3 SELECT..................................................................................................................5.3.1 SELECT *............................................................................................................5.3.2 ESCOLHENDO COLUNAS..............................................................................

    5.3.3 USANDO LETRAS.............................................................................................

    5.4 OPERADORES ARITIMTICOS..........................................................................

  • 5.5 MANIPULAO DE DADOS NUMRICOS......................................................5.6 MANIPULANDO CARACTERES DE DADOS..................................................

    5.7 MANIPULANDO DADOS DE DATA E TEMPO................................................

    5.8 FUNES DE SISTEMA.....................................................................................5.9 CONVERSO DE DADOS..................................................................................5.10 RECUPERAO DE DADOS..........................................................................5.10.1 ESCOLHENDO COLUNAS............................................................................

    5.10.2 ESCOLHA DE LINHAS BASEADA EM COMPARAES.......................5.10.3 ESCOLHA DE LINHAS BASEADA EM AMPLITUDES..............................

    5.10.4 ESCOLHA DE LINHAS BASEADA EM LISTAS.........................................

    5.10.5 ESCOLHA DE LINHAS BASEADA EM VALORES DECONHECIDOS..

    5.10.6 ESCOLHA DE LINHAS BASEADA EM BUSCA DE VARIOS ARGUMENTOS 5.10.7 ELIMINANDO DUPLICATAS..........................................................................

    5.10.8 CLASSIFICANDO RESULTADOS................................................................

    5.11 RECUPERAO DE DADOS - TPICOS AVANADOS...........................5.11.1 JOIN...................................................................................................................5.11.2 Natural JOIN.....................................................................................................5.11.3 Eqijoin..............................................................................................................5.11.4 JOINS com mais de duas Tabelas.................................................................5.11.5 Auto JOINS.......................................................................................................5.11.6 Outer JOINS......................................................................................................5.12 CRIANDO TRIGGERS........................................................................................5.12.1 INSERT TRIGGER..........................................................................................5.12.2 DELETE TRIGGER.........................................................................................5.12.3 UPDATE TRIGGER........................................................................................5.13 BULK COPY PROGRAM (BCP)......................................................................6. ACESSO VIA INTRANET / EXTRANET / INTERNET......................................6.1 EXEMPLO PRTICO............................................................................................6.2 ARQUIVOS NECESSRIOS E SCRIPTS.........................................................6.2.1 Script para o arquivo cadastro.htm...................................................................6.2.2 Script para o arquivo cadastro.idc....................................................................6.2.3 Script para o arquivo result.htx..........................................................................6.2.4 Script para o arquivo todos.idc.........................................................................6.2.5 Script para o arquivo cadastro.htx....................................................................6.2.6 Script para o arquivo cadpesq.idc....................................................................6.2.7 Script para o arquivo cadatu.htx........................................................................6.2.8 Script para o arquivo cadatu.idc.......................................................................

  • 1. SISTEMAS DE ARQUIVOS X BANCOSRELACIONAISO acesso a informaes em sistemas de processamento de dados que

    no utilizam Sistemas Gerenciadores de Bancos de Dados (SGBDs), feitopelo acesso seqencial a um ou mais arquivos. Cabe ao desenvolvedor criarmecanismos de recuperao da informao. Com a utilizao de um SGBD,porm, o acesso fica diferente: pede-se as informaes ao gerenciador debanco de dados e elas so devolvidas pelo mesmo.

    O processo pode ser comparado a uma compra em uma loja dedepartamentos e uma compra em uma loja de autopeas, que normalmentefuncionam por processo diferentes. No primeiro caso, o cliente dirige-se loja, procura por todas as sees, encontra o produto desejado e efetua acompra. No segundo, o cliente pede ao balconista o item desejado e esteentrega-o. No caso da compra em loja de departamentos, o trabalho tododo cliente, sendo este responsvel inclusive pelas especificaes necessrias(fazer a escolha certa). J na loja de autopeas, o balconista assume toda aresponsabilidade pela entrega da mercadoria desejada.

    1.1 ENTIDADES, RELACIONAMENTOS E ATRIBUTOSQuanto mais organizadas estiverem as informaes no Banco de

    Dados, mais fcil ser a conversa com o Gerenciador de Banco de Dados.Para isso, criou-se um modelo chamado Modelo de Entidades e

    Relacionamentos, do qual fazem parte trs elementos:

    FONTE: Microsoft

    1.1.1 EntidadesUma entidade um objeto de interesse do qual podem ser

    colecionadas informaes. Elas so representadas por tabelas. Exemplos:tabela de clientes; tabela de pedidos de clientes.

    1.1.2 RelacionamentosAs entidades podem ser relacionadas entre si pelos relacionamentos.

    Por exemplo: relacionamento entre a entidade de clientes e a entidade depedidos ( clientes fazem pedidos).

    Existe comoExiste como

    ExemplosExemplos

    EntidadesEntidadesEntidades RelacionamentosRelacionamentosRelacionamentos AtributosAtributosAtributos

    TabelasTabelas

    Informao deum cliente;informao deum pedido

    Informao deum cliente;informao deum pedido

    Colunasou Tabelas

    Pedidos deum clientePedidos deum cliente

    Colunas(ou Campos)numa Tabela

    Colunas(ou Campos)numa Tabela

    Nome,Endereo,Telefone docliente

    Nome,Endereo,Telefone docliente

  • 1.1.3 AtributosAtributos so as caractersticas das entidades. So representadas

    pelas colunas das tabelas. Por exemplo: nome, endereo do cliente.

    FONTE: Microsoft

    Uma das colunas de uma tabela uma primary key (chave primria).Isso indica para o gerenciador de banco de dados que uma coluna (ou umconjunto de colunas) deve ter um valor nico para identificar a linha inteira. Ogerenciador faz ento o controle para que no entrem duas linhas com omesmo valor na coluna que primary key.

    A figura a seguir demonstra o relacionamento entre tabelas utilizando-se chaves primrias (PK) e estrangeiras (FK).

    FONTE: Microsoft

    Pedidos se relacionam aos Clientes, atravs do campo cliente databela de pedidos. Esse campo tambm denominado chave estrangeira(foreign key). Isso garante o que denominado integridade referencial: ouseja, no pode haver inconsistncia nas linhas que esto associadas nastabelas. Por exemplo: o gerenciador no permite que clientes que tenham

    identificador nome endereo telefone ...100110021003100410051006

    JooAlbertoFrancisoMariaSniaRoberto

    ..........

    55544444687999NULL56789000988855NULL

    ~~~~~~~~~~~~~~~

    clientesclientes

    identificador nome . .. . ..100110021008

    JooAlberto.WilsonS..S...

    ...980229802298026

    NULL206-555-1212NULL05 Jun 199207 Ago 199203 Mar 1993

    clientesclientesPK NN NN NN NN

    numero cliente produto112

    100210011001

    PedidosPedidosPK PK,FK, NN NN

    567566122

  • pedidos sejam removidos da tabela clientes, nem que pedidos sejamrealizados por clientes inexistentes.

    1.2 A LINGUAGEM SQL (STRUTURED QUERY LANGUAGE)O SQL uma linguagem estruturada para manipulao de dados.

    padronizada para os bancos de dados relacionais, mas cada gerenciadorpode possuir uma extenso prpria dessa linguagem.

    Como no exemplo do pedido de compra para o funcionrio da loja deautopeas, cada comando no SQL um pedido de busca ou alterao dedados para o gerenciador do banco de dados. Quem vai executarpropriamente o comando o gerenciador.

  • 2. O MICROSOFT SQL SERVERTrata-se de um Sistema Gerenciador de Bancos de Dados,

    Relacionais, SGBDR, que funciona unicamente sob sistema operacionalWindows NT.Para trabalhar com esta ferramenta a Microsoft fornece o ISQL, tanto

    em interface DOS quanto em interface Windows. Alm disso, podemos noscomunicar com o banco a partir de APIs do Windows, fazendo uso dacamada de comunicao DB-Library, ou via ODBC. A interface com o usuriopode ser construda em Visual Basic ou Visual C++, para acesso atravs daDB-Library (que d total controle sobre as funes do banco), ou via VB,VC++, Visual Fox Pro, Access, Excel, Word, para acesso via ODBC. Tambmpodemos utilizar o acesso atravs de protocolo TCP/IP e linguagem HTML,caracterizando aplicaes de INTRA/INTER/EXTRANET; o acesso ao bancopropriamente dito, entre a camada de conexo a bancos de dados e o WebServer, ser realizado via ODBC.

    O Microsoft SQL Server foi originalmente baseado no Sybase SQLServer X, quando da verso 4.2. Na verso 6 a Microsoft implementoumodificaes visando fazer uso de caractersticas multitarefa do Windows NT.Atualmente est na verso 6.5, sendo aguardado para agosto/97 a verso 7,bem como uma verso Personal, para ambiente Windows 95 (97).2.1 BANCOS DE DADOS (DATABASES)

    Uma vez instalado o SQL Server so criadas automaticamente quatrodatabases:a) masterb) modelc) tempdbd) msdb

    Depois, o poderemos criar e instalar nossos prprios bancos de dadoslivremente, os quais sero os bancos de dados de usurio.

    Embora ambos os tipos de bancos de dados (sistema e usurio)armazenem dados, o SQL Server utiliza os bancos de sistema para operar egerenciar o sistema. O catlogo de sistema, por exemplo, consisteunicamente de tabelas armazenadas no banco de dados master.

    A figura a seguir ilustra os bancos de dados no SQL Server.

  • Vejamos a funo de cada um dos bancos de sistema.2.2 O BANCO DE DADOS MASTER

    Controla os bancos de dados de usurios e a operao do SQLServer, por isso os dados armazenados em suas tabelas so crticos e deve-se sempre manter back up atualizado. Ocupa inicialmente cerca de 17Mbytes, mantendo:

    a) contas de login;b) processos em andamento;c) mensagens de erro do sistema;d) databases armazenados no servidor;e) espao alocado a cada database;f) locks ativos;g) databases disponveis e dispositivos de dump;h) procedimentos de sistema, que so primariamente utilizados para

    administrao.O banco de dados master contm 13 tabelas de uso compartilhado

    com o sistema, conhecidas como Catlogo do Sistema ou Dicionrio deDados, que so:

    1. syscharsets - cdigos de pgina que estabelecem quais caracteres estodisponveis e sua ordem de classificao;

    2. sysconfigures - variveis de ambiente configurveis;3. syscurconfigs - variveis de ambiente configurveis;4. sysdatabases - bancos existentes no servidor;

    Systemtables

    master

    Systemtables

    model

    Systemtables

    tempdb

    Systemtables

    msdb

    Systemtables

    SAU02

    Systemtables

    SAU05

    Bancos dedados deusurio

    Bancos dedados dosistema

  • 5. sysdevices - referncia fsica aos dispositivos e bancos do servidor;6. syslanguages - entrada para as lnguas conhecidas pelo servidor;7. syslocks - quais so os locks ativos;8. syslogins - contas de usurios;9. sysmessages - mensagens de erro do sistema;10.sysprocesses - processos em andamento11.sysremotelogins - contas de acesso remoto, para conexo entre dois

    servidores;

    12.sysservers - servidores remotos;13.sysusages - espao em disco disponibilizado para cada banco de dados

    (relaciona-se com sysdatabases e sysdevices).2.3 O BANCO DE DADOS MODEL

    Fornece um prottipo (template) para um novo banco de dados.Contm as tabelas de sistema que sero inseridas em cada banco de dadosde usurio. As seguintes implementaes podem ser realizadas nestedatabase:

    a) tipos definidos pelo usurio (user datatypes), regras (rules), padres(defaults), stored procedures;

    b) usurios que tero acesso a todos os bancos adicionados ao sistema(administradores);

    c) privilgios padro, notadamente aos usurios guest (guest accounts);O tamanho padro deste banco de 1 Mbyte, e sua estrutura bsica

    pode ser vista na figura a seguir; as 18 tabelas mostradas sero semprecriadas em novos bancos de dados.

    Este conjunto de 18 tabelas conhecido como Catlogo do Banco deDados, e suas funes so as seguintes (note que todas possuem o prefixosys):

    1. sysalternates - possui uma linha para cada usurio mapeado para um bancode dados de usurio;

    2. syscolumns - possui uma linha para cada coluna em uma tabela ou view, epara cada parmetro em uma stored procedure;

    3. syscomments - possui uma ou mais linhas para cada view, regra (rule),padro (default), trigger e stored procedure que contenha uma declarao dedefinio;

    4. sysdepends - uma linha para cada procedure, view, ou tabela que sejareferenciada por uma procedure, view ou trigger;

    sysalternates syskeyssysindexessysdependssyscommentssyscolumnssyslogs systypessyssegmentssysprotectssysproceduressysobjectssysusers syssubscriptionssyspublicationssysarticlessysconstraintssysreferences

  • 5. sysindexes - uma linha para cada clustered index, nonclustered index, etabela sem ndices, mais uma linha extra para cada tabela com informaesde textos ou imagens;

    6. syskeys - uma linha para cada chave estrangeira (foreign), primria (primary)ou comum (common);

    7. syslogs - armazena o transaction log;8. sysobjects - uma linha para cada tabela (table), viso (view), storedprocedure, regra (rule), trigger, padro (default), log e objeto temporrio

    (somente tempdb);9. sysprocedures - uma linha para cada viso (view), stored procedure, regra

    (rule), trigger, padro (default);10.sysprotects - mantm as informaes de permisses de usurio;11.syssegments - uma coluna para cada segmento;12.systypes - uma linha para cada datatype definido pelo usurio ou fornecido

    pelo sistema;

    13.sysusers - uma linha para cada usurio permitido no database;14.sysreferences - uma linha para cada constraint de integridade referencial

    criada (PK-FK, Chave primria, chave estrangeira);15.sysconstraints - informaes sobre cada constraint criada;

    As ltimas trs tabelas so usadas para manter informaes sobrereplicao de dados.16.sysarticles - contm a article information para cada artigo criado para

    replicao;17.syspublications - contm uma linha para cada publicao criada;18.syssubscriptions - contm uma linha para cada subscrio de umsubscription server.

    2.4 O BANCO DE DADOS TEMPDBProvidencia um espao de armazenamento para tabelas e outras

    aes temporrias ou intermedirias, tais como resultados que envolvam aclusula GROUP BY, ORDER BY, DISTINCT e cursores (CURSORS). Possuias seguintes caractersticas:

    a) criado automaticamente no DEVICE MASTER (ateno, DEVICE eDATABASE so coisas diferentes);b) seu contedo apagado quando o usurio fecha a conexo, exceto para

    tabelas temporrias globais;c) quando o banco parado (stoped) seu contedo apagado completamente;d) seu tamanho padro de 2 Mbytes.e) pode ser colocado em memria RAM.

    2.5 O BANCO DE DADOS MSDBProvidencia suporte ao servio SQL Executive Service (o qual fornece

  • servios de schedulle de tarefas, replicao, gerenciamento dealertas). Possui as seguintes tabelas de sistema:

    a) sysalerts - armazena informaes sobre todos os alertas definidos porusurios;

    b) sysoperators - informaes sobre os operadores;c) sysnotifications - relaciona quais operadores devem receber quais alertas;d) systasks - mantm informaes sobre todas as tarefas definidas por

    usurios;e) syshistory - informaes a respeito de quando um alerta e uma tarefa foram

    executados, se com sucesso ou falha, identificao do operador, data e horada execuo;

    f) sysservermessages - mensagens sobre as operaes relacionadas aoservidor.

    2.6 LOCALIZAO DOS BANCOS DE DADOSOs bancos de dados ficam armazenados em arquivos fsicos que

    recebem o nome de DEVICES. Um DEVICE ocupa sempre a quantidade dedisco que for a ele destinada, independentemente da existncia ou no debancos de dados em seu interior e independentemente da taxa de ocupaodestes databases. Ou seja, mesmo vazio ele ocupar a poro de disco a eledestinada com seu arquivo. A figura a seguir demonstra esta caracterstica.

    Voc pode observar que existe neste exemplo um banco de dadosinstalado no drive C: (o disco rgido do equipamento), o qual contm umarquivo chamado NOMEARQ.DAT, que fisicamente ocupa 500 Mbytes dodisco. Porm, dentro deste DEVICE, que recebe o nome lgico de TESTE,existe somente um banco de dados, de nome lgico MEUBANCO, o qualocupa somente 40 Mbytes do espao disponvel.

    Unidade de disco C:DEVICE TESTE (C:\SQL\NOMEARQ.DAT)

    Tamanho do arquivo 500 Mbytes

    Banco de dados MEUBANCO,ocupando 40 Mbytes deespao no DEVICE TESTE

  • 3. USO DO PROGRAMA ISQLWLocalize no grupo SQL Server o cone do ISQL/W e clique duas vezes

    sobre ele. Guie-se pelas figuras a seguir, conforme seu Windows seja o 95 ouo 3.11.

    Voc ter, ento, uma tela como a que segue atravs da qualpassaremos comandos ao SQL Server, aps identificaremos algumasfunes.

    A primeira informao requerida aparece em destaque em umapequena janela no centro da tela e refere-se conexo com o banco dedados.

    Vejamos como esta conexo ser realizada.

  • Na janela de conexo ao servidor (Connect Server), identificamos asseguintes funes:

    Voc dever fornecer os parmetros adequados e iniciar sua sesso.Pergunte ao instrutor qual o nome do servidor, qual o tipo de segurana aser utilizado, o nome do usurio e a senha para a conexo. Saiba que sevoc acabou de instalar o SQL Server em sua mquina, o nome do servidor o nome da mquina, o usurio padro sa e senha nula (inexistente).

    Caso ao iniciar a conexo surja uma tela semelhante mostrada aseguir, experimente revisar as informaes fornecidas para o logon; casoestejam corretas, verifique se o servidor est ligado e com o banco no ar;estando, verifique sua conexo de rede. Caso estas providncias no surtamefeito, contate seu suporte tcnico[1].

    Server: Combo-box que mostra-nos os servidores disponveis ereconhecidos pelo programa. Pode-se digitar o nome doservidor, caso ele no esteja presente.Use TrustedConnection Informa que ser utilizado o logon padro do MicrosoftWindows.Use Standardsecurity Ser utilizado um objeto do MS SQL Server para controle delogon.Login ID: Nome do usurio.Password: Senha do usurio.Efetua a conexo utilizando as informaes de segurana,servidor, usurio e senha fornecidas.Cancela a conexo, mas no fecha o ISQLW.Aciona o Winhelp com o arquivo correspondente ajuda doISQLW.

  • Pelo contrrio, caso sua conexo tenha sido inicializada com sucesso,voc ter em seu micro uma tela como a mostrada na seqncia, a qualestudaremos em seguida.

    Esta tela possui uma janela principal e poder possuir vrias janelassecundrias, ou filhas. Assim, voc pode utilizar o programa para gerenciarmais de uma conexo simultaneamente ou conectar-se a diferentesservidores ao mesmo tempo, como ilustrado a seguir.

  • Para conectar-se a mais de umservidor, utilize o comando File, Conect, apartir do menu da janela principal, informandoem seguida os parmetros necessrios conexo. Para alternar entre as diferentesjanelas correspondentes s diferentesconexes, caso no estejam todas visveis,utilize o comando de menu Window,

    escolhendo a conexo desejada na lista.Voc poder minimizar

    algumas ou todas as janelascorrespondentes s conexesativas trabalhando com seuscontroles de estado da janela.

    importante ressaltar que uma vezque cada janela corresponde a umaconexo, fechada a janela, fecha-se aconexo (mas no o ISQLW).

    Para sejam quantas forem as janelas abertas, teremos somente umajanela principal e, por conseqncia, somente um menu, cujas funes soexplicadas a seguir.

    Windows 95 Funo Windows 3.1 / 3.11MinimizarMaximizarRestaurarFechar

  • Estando com a janela correspondente ao servidor adequado aberta(pergunte ao instrutor), vamos analis-la e iniciar com os comandos bsicos.

    Controle da janela (Restaurar, Mover, Tamanho, Minimizar, Maximizar, Fechar,Prxima).File Connect Abre a janela de conexo ao servidor Disconnect Fecha uma conexo (e sua janela) New Adiciona uma nova query conexo corrente Open Abre um arquivo contendo uma query ou um resultado,

    conforme a seleo esteja na ficha Query ou na Results Close Termina uma query Save Salva a query ou o resultado, conforme a seleo esteja naficha Query ou na Results Save as Salva com nome diferente, ou em outro diretrio, ou em outrodrive a query ou o resultado, conforme a seleo esteja naficha Query ou na Results Print Imprime a query ou o resultado, conforme a seleo esteja naficha Query ou na Results Print Setup Define caractersticas da impresso (papel, orientao, ...) Configure Configura caractersticas do ISQLW, tais como o tipo de letra,caractersticas da conexo, tais como o time out, etc 1, 2, 3, ... ltimos arquivos utilizados Exit Sai do ISQLW, fechando todas as conexesEdit Undo Desfaz aes de digitao, insero, deleo, recortar, colar,copiar (ATENO: no desfaz comandos j executados noSQL Server) Cut Recorta o texto selecionado Copy Copia o texto selecionado para a rea de transferncia Paste Cola o contedo da rea de transferncia na posio atual docursor ou sobre a seleo atual Find Inicia uma busca a uma seqncia (string) Repeat Last Find Repete a ltima busca Replace Substitui, quando encontrada, uma seqncia por outra Go to Vai para uma determinada linha. til para procurarinformaes em um conjunto de resultados, ou para procurarerros em queries extensas quando o SQL reporta em quallinha o erro est localizadoQuery Execute Executa a query apresentada na ficha Query Cancel Cancela a execuo da query atual Clear Window Limpa o texto da ficha atual T_SQL Help Aciona a ajuda para o Transact SQL Object Help Executa a stored procedure sp_help para o objetoselecionado No Exec Compila a query mas no a executa (liga/desliga) Statistics I/O Liga/desliga a exibio de grficos de execuo Set Options Altera a configurao da queryWindow Cascade Organiza as janelas abertas em cascata Tile Organiza horizontalmente as janelas abertas Arrange Icons Organiza os cones de janelas minimizadas 1, 2, 3, ... Alterna para a janela ...Help Contents Contedo do arquivo de ajuda do ISQLW Transact SQL Help Ajuda especfica do Transact SQL Keyboard Ajuda quanto utilizao do teclado Using Help Ajuda para utilizar a ajuda About Informaes sobre o ISQLW

  • No ttulo da janela temos aindicao de a qual conexo ela

    corresponde. Isto importante principalmente quando se possui mais de umajanela aberta.

    Em seguida temos a barra de funes.

    A seguir, uma rea composta por trs fichas.

    Nova consulta

    Abre uma consulta ou resultado existentes

    Salva uma consulta ou um resultado

    Configurao das opes de pesquisaIndica o banco de dados em que estamos trabalhandoatualmente, e serve ainda para mudar o banco padro.Para alternar entre as queries existentesApaga a query atualExecuta a queryCancela a execuo da query atual

    Corresponde ao local onde so digitados os comandos SQLCorresponde ao local onde sero apresentados os resultadosdas consultas enviadas ao servidor

  • Por fim, a barra de status.

    Alm dos itens mostrados anteriormente esto presentes as

    tradicionais barras de rolagem (scroll bars).

    Aqui so apresentadas as estatsticas referentes sua query,desde que tenha sido ligada esta opo ( )

    Liga / desliga o modo de no execuo. Neste modo a sintaxeser testada porm a query no ser executada.Liga / desliga a gerao de estatsticasNmero de conexesNome do arquivo, se j foi salvo ou foi aberto.Posio do cursor na tela.

    Total de linhas Linha atual Coluna atual

  • 4. DECLARAES BSICAS DO SQLA seguir, veremos alguns dos comandos mais utilizados na linguagem

    SQL, em exemplos extrados do manual do curso da Microsoft Implementinga SQL Server Database.Para iniciarmos nossos testes, iremos tomar como banco padro o

    banco master; portanto, caso ele no seja o banco padro, selecione-o.

    Em seguida, na ficha Query, digite o seguinte comando:SP_HELPDB

    Em seguida, execute-o. Voc poder enviar um comando de execuoda query de duas maneiras:

    Atravs do cone Ou pelo teclado, pressionando

    Voc ir obter um resultado semelhante ao mostrado a seguir, na fichaResults: (evidentemente, a depender do servidor em uso, os bancos de dadossero diferentes)

    Embora tenhamos digitado o comando sp_helpdb usando como defaulto banco master, ele funcionaria tambm caso o banco default fosse outro.Experimente:

    name Nome lgico do banco de dados, definido pelo criador do banco.db_size Tamanho definido do banco de dados; corresponde ao tamanhodo arquivo fsico que contm o banco de dados. Este espaoser sempre ocupado na mquina, independente de o bancoconter ou no informaes. Funciona como um limite para ocontedo do banco.owner Proprietrio do database.db_id Identificao do database nas tabelas de sistema.created Data de criao.status Configuraes e/ou opes especiais que tenham sido definidaspara o database.

  • USE PUBS

    SP_HELPDB

    Note que no s voc obteve o mesmo resultado, mas tambm seubanco default passou a ser o banco pubs (o que est indicado no Combo-box DB: ).

    O comando USE, passado ao SQL Server, faz com que o bancodefault, ou banco de trabalho, modifique-se. J a declarao SP_HELPDBcorresponde a uma stored procedure (procedimento armazenado), que servisto a seguir.

    Devemos observar que para maior clareza os comandos esto sendodigitados em letras maisculas. Porm, o SQL Server no case sensitive,de maneira que podemos misturar maisculas e minsculas indiferentemente.4.1 STORED PROCEDURES

    Stored procedures so objetos do banco de dados que contm umasrie de comando SQL Padro, que tem por objetivo facilitar e agilizar otrabalho com o banco. Podem ser de sistema ou criadas pelo usurio. Porexemplo, poderemos ter uma stored procedure para atualizar dados no, outrapara retornar valores, outra para deletar um determinado conjunto de dados,etc.

    Os procedimentos armazenados em uma sp so pr-compilados, demaneira que sua execuo, em comparao com a execuo de comandosque realizem a mesma tarefa, mais rpida.

    So usadas tanto para obter dados como para modific-los, mas noambos na mesma sp. Sua sintaxe verificada na primeira vez que soexecutadas, quando so compiladas e armazenadas em cache. Portanto,chamadas subsequentes a uma mesma sp sero ainda mais rpidas que aprimeira.

    Podem ser utilizadas em mecanismos de segurana: uma pessoapoder possuir direitos de execuo de uma sp, mesmo no possuindopermisses sobre as tabelas e views que ela referencia. Assim, por exemplo,poderamos liberar o acesso a uma sp que calcula o total de salrios de umdeterminado setor, pesquisando para isso todos os salrios indivduais destesetor; mas a pessoa que tivesse acesso execuo desta sp no teriaacesso tabela de salrios propriamente dita. Como resultado, nosso usuriohipottico poderia conhecer o total de salrios de cada departamento semjamais ter contato com salrios individuais.

    As stored procedures de sistema que usaremos so: (note que todascomeam com sp_).SP_HELP Fornece um relatrio dos objetos de um database.SP_HELPDB Fornece um relatrio dos databases existentes.

    Lista o texto correspondente a uma stored procedure e de outros

  • 4.1.1 SP_HELP

    Quando utilizada sem parmetros, lista todos os objetos do databaseatual:

    SP_HELP

    Se for passado para esta sp o nome de uma tabela, lista todos osobjetos da tabela, ou seja, exibe suas caractersticas.

    SP_HELP authors

    4.1.2 SP_HELPDBFornece uma lista dos databases.SP_HELPDB

    4.1.3 SP_HELPTEXTLista o texto correspondente a uma sp e de outros objetos.SP_HELPTEXT sp_help

    SP_HELPTEXT objetos.SP_HELPSQL Exibe informaes a respeito de declaraes (comandos) SQL,stored procedures e outros tpicos.

  • Note que, como a stored procedure SP_HELP est armazenada nodatabase master, ser necessrio alternar para este banco antes de iniciar ocomando, caso contrrio ser visualizada a mensagem de erro a seguir,indicando que o objeto no foi encontrado no database em uso.

    4.1.4 SP_HELPSQLExibe informaes a respeito de declaraes (comandos) SQL, storedprocedures e outros tpicos.Caso no seja passado um parmetro, a sp SP_HELPSQL exibir uma

    janela com informaes:SP_HELPSQL

    Para passar como parmetro o comando sobre o qual se necessita deajuda, devermos pass-lo entre aspas, pois caso contrrio surgir umamensagem de erro. As aspas podero ser simples ou duplas, desde queambas (incio e fim) sejam do mesmo tipo. Para maior clareza, e com fins depadronizao, prefira aspas simples.

    SP_HELPSQL select

  • 4.2 UMA SEQNCIA BSICA DE TRABALHOVamos providenciar a criao de uma tabela, na qual iremos inserir

    algumas linhas, para depois selecion-las e alter-las, fechando assim umciclo de comandos SQL bsicos, os quais sero posteriormente analisados.Ao final, apagaremos nossa tabela de teste.

    4.2.1 CREATE TABLEPara criarmos uma tabela, deveremos utilizar a declarao CREATE

    TABLE, unindo a ela o nome que ser atribudo ao objeto e suascaractersticas. Para verificar a sintaxe completa, use a declarao vistaanteriormente SP_HELPSQL CREATE TABLE.

    USE master ( )CREATE TABLE cliente ( cliente numeric (8,0) not null PRIMARY KEY, nome varchar (60) null, telefone varchar (20) null )++++++++++++++++

    CREATE TABLE pedidos ( numero int NOT NULL , cliente numeric(8, 0) NOT NULL , telefone int NOT NULL , PRIMARY KEY ( cliente, numero ),

  • FOREIGN KEY ( cliente ) REFERENCES cliente ( cliente ) )4.2.2 INSERT

    Para inserirmos dados em uma tabela, devemos informar qual atabela, quais os campos que estamos inserindo e quais so seus valores.

    INSERT cliente (cliente, nome, telefone) values (1001,'Joo','445-0988') INSERT cliente (cliente, nome, telefone) values (1002,'Alberto','465-9887') INSERT cliente (cliente, nome, telefone) values (1003,'Maria','789-9877') INSERT cliente (cliente, nome, telefone) values (1004,'Snia',null)A ordem dos campos pode ser diferente da ordem que estes possuem

    na tabela:INSERT cliente (nome, cliente, telefone) values ('Carlos',1005,null)Caso existam valores para todos os campos, podemos omitir seus

    nomes.INSERT cliente values (1006,'Viu s?','999-0000')

    4.2.3 SELECTAtravs do comando select, recuperamos os dados existentes no

    banco, de acordo com os critrios desejados:SELECT nome, telefone FROM cliente

  • Podemos recuperar todas as colunas de uma tabela utilizando ocaracter curinga *.

    SELECT * FROM cliente

    A utilizao da clusula WHERE faz com que o uso do comando SELECTseja dos mais freqentes no dia a dia, pois atravs dela poderemosespecificar condies de busca, as quais determinaro a quantidade deinformaes retornadas pelo servidor, ou, muitas vezes, traro exatamente oque precisamos. Esta ltima caracterstica, de obtermos exata e somenteaquilo que necessitamos que faz a grande diferena entre um servidor dearquivos, que envia pela rede o arquivo todo, e um gerenciador de bancos dedados, que envia somente o suficiente.

    SELECT * FROM cliente WHERE telefone LIKE 4%

    ObservaoCaso exista mais de uma sentena em sua janela de queries, e voc

    deseje executar apenas uma, selecione a sentena que voc deseja executar,antes de comandar sua execuo. O que no estiver selecionado serignorado.

  • 4.2.4 UPDATEUtilizado para modificar dados j cadastrados. Pode ser usado para

    atualizar todas as linhas ou para atualizar linhas que correspondam adeterminados critrios.

    UPDATE cliente SET telefone = 000-1111

    UPDATE cliente SET telefone = '111-0000' WHERE cliente = 1004

  • 4.2.5 DELETEPara apagar linhas de uma tabela devermos especificar critrios,

    atravs da clusula WHERE; caso contrrio todas as linhas da tabela seroapagadas. A tabela, porm, no ser eliminada. Continuar existindo, pormvazia.

    DELETE cliente WHERE cliente = 1006

    DELETE cliente

    4.2.6 DROP TABLEEste procedimento ir remover a tabela completamente, no existindo

    nenhum procedimento de recovery. Portanto, assegure-se de que a tabelaem questo realmente no mais necessria, ou, pelo menos, faa um backup do banco antes.

    Ao apagar uma tabela, saiba que os relacionamentos por ventura comela existente impediro sua deleo. Por isso, voc dever comear a apagaras tabelas desde as filhas.

    DROP TABLE cliente

    Assim, para apagar a tabela cliente, antes ser necessrio apagarmosa tabela pedidos.

    DROP TABLE pedidos

    DROP TABLE cliente

    Msg 3726, Level 16, State 1

    Could not drop object 'cliente'.

    It is being referenced by a foreign key constraint.

  • 5. SINTAXE E EXEMPLOS DE ALGUNS COMANDOSSintaxe e exemplos a seguir foram retirados do Help do SQL Server,

    que possui informaes bem mais completas que o resumo aqui apresentado.O banco a que se referem os exemplos o pubs, instalado juntamente

    com o SQL Server. Caso por qualquer motivo o banco de exemplos pubs noesteja presente em sua instalao, procure os sripts de instalao nosubdiretrio install e execute-os. Assim voc poder testar os exemplos.5.1 CREATE DATABASESintaxe: CREATE DATABASE database_name [ON {DEFAULT | database_device} [= size] [, database_device [= size]]...] [LOG ON database_device [= size] [, database_device [= size]...] [FOR LOAD] OBS.: Tamanhos em megabytes Exemplos: 1. CREATE DATABASE pubs (o tamanho default 2 Mb) 2. CREATE DATABASE newpubs ON default = 256 3. CREATE DATABASE newdb ON default = 50, newdata = 25 4. CREATE DATABASE library ON library_dev1 = 10 LOG ON librlog_dev2 = 4 5.2 CREATE TABLE

    Sintaxe: CREATE TABLE [database.[owner].]table_name

    Tipos de dados Tipos de dados supridos pelo sistemaBinary binary[(n)], varbinary[(n)]Character char[(n)], varchar[(n)]Date and time datetime, smalldatetimeExact numeric decimal[(p[,s])]Approximate numeric float[(n)], realInteger int, smallint, tinyintMonetary money, smallmoneySpecial bit, timestamp, user-defined datatypesText and imagem text, imagemSynonyms binary, varying for varbinary, character for char,

    character, varying for varchar, dec for decimal,integer for int, double precision for float

  • ( { col_name column_properties[constraint[constraint[...constraint]]] | [[,] constraint]} [[,] {next_col_name|next_constraint}...] ) [ON segment_name] Exemplos: Nome da coluna Tipo de Dados Null ou no Null CREATE TABLE member ( member_no member_no NOT NULL, lastname shortstring NOT NULL, firstname shortstring, middleinitial letter NULL photograph image NULL ) 5.3 SELECT Sintaxe: SELECT[ALL|DISTINCT] select_list [INTO[ new_table_name ]] [FROM{table_name|view_name}[optimizer_hints)] [[,{table_name2|view_name2}{optimizer_hints)] [...,{table_name16|view_name16}[(optimizer_hints)]]] [WHERE clause} [GROUP BY clause] [HAVING clause] [ORDER BY clause] [COMPUTE clause] [FOR BROWSE] 5.3.1 SELECT * Sintaxe: SELECT * FROM table_name 5.3.2 ESCOLHENDO COLUNAS SELECT column_name[,column_name...] FROM table_name SELECT au_id, au_fname, au_lname FROM authors

  • 5.3.3 USANDO LETRAS SELECT column_name|string literal[,column_namestring_literal...] FROM table_name SELECT au_fname, au_name, Identification number:, au_id FROM authors SELECT column_heading=column_name[,column_name...] FROM table_name ou SELECT column_name column_heading[,column_name...] FROM table_name SELECT FIRST = au_fname, LAST = au_lname, IDENTIFICATIO# = Identification number:, Author_ID = au_id FROM authors 5.4 OPERADORES ARITIMTICOS

    Sintaxe { constant | column_name | function | (subquery) } [{ arithmetic_operator | bitwise_operator | string_operator } { constant | column_name | function | (subquery) }...] SELECT price, (price * 1.1), title FROM titles 5.5 MANIPULAO DE DADOS NUMRICOS

    Operao tipos de dados que podem usar esta operao+ int, smallint, tinyint, numeric, decimal, float, real, money e

    smallmoney- int, smallint, tinyint, numeric, decimal, float, real, money e

    smallmoney/ int, smallint, tinyint, numeric, decimal, float, real, money e

    smallmoney* int, smallint, tinyint, numeric, decimal, float, real, money e

    smallmoney% int, smallint e tinyint

    Funo ParmetrosABS (numeric_expr)ACOS,ASIN,ATAN,ATN2 (float_expr)COS,SIN,COT,TAN (float_expr)CEILING (numeric_expr)DEGREES (numeric_expr)EXP (float_expr)FLOOR (numeric_expr)LOG (float_expr)

  • SELECT title_id, ROUND(price*royalty/100,0) FROM titles 5.6 MANIPULANDO CARACTERES DE DADOS

    SELECT au_lname + , + Substring (au_fname,1,1) + ., au_id FROM authors 5.7 MANIPULANDO DADOS DE DATA E TEMPO

    LOG10 (float_expr)PI ()POWER (numeric_expr,y)RADIANS (numeric_expr)RAND ([seed])ROUND (numeric_expr,length)SIGN (numeric_expr)SQRT (float_expr)

    Funo Parmetros+ (expression expression)ASCII (char_expr)CHAR (integer_expr)CHARINDEX (pattern, expression)DIFFERENCE (char_expr1,char_expr2)LOWER (char_expr)LTRIM (char_expr)PATINDEX (%patern%, expression)REPLICATE (char_expr, integer_expr)REVERSE (char_expr)RIGHT (char_expr,integer_expr)RTRIM (char_expr)SOUNDEX (char_expr)SPACE (integer_expr)STR (float_expr[,lenght[,decimal]])STUFF (char_expr1, start, lenght, char_expr2)SUBSTRING (expression, start, lenght)UPPER (char_expr)

    FUNO PARAMETROSDATEADD (datepart, number, date)DATEDIFF (datepart, date1, date2)DATENAME (datepart, date)DATEPART (datepart, date)GETDATE ()

  • SELECT DATEDIFF (MONTH, pubdate, GETDATE()) FROM Titles 5.8 FUNES DE SISTEMA

    SELECT length = DATALENGTH(pub_name), pub_name FROM publishers Resultado: length pub_name 14 New Moon Books 16 Binnet & Hardley 20 Algodata Infosystems 21 Five Lakes Publishing (4 row(s) affected)

    Tipos de data Abreviaes Valores aceitosyear yy 1752-9999quarter qq 1-4mont mm 1-12day of year dy 1-366day dd 1-31week wk 0-51weekday dw 1-7 (1 domingo)hour hh 0-23minute mi 0-59second ss 0-59millisecond ms 0-999

    FUNO PARMETROSCOALESCE (expression1,expression2,...expressionN)COL_NAME (table_id, column_id)COL_LENGHT (table_name, column_name)DATALENGHT (expression)DB_ID ([databasename])DB_NAME ([database_id])GETANSINULL ([databasename])HOST_ID ()HOST_NAME ()IDENT_INCR (table_name)IDENT_SEED (table_name)INDEX_COL (table_name, index_id, key_id)ISNULL (expression, value)NULLIF (expression1,expression2)OBJECT_ID (object_name)OBJECT_NAME (oblect_id)STATS_DATE (table_id,index_id)SUSER_ID ([server_user_id])SUSER_NAME ([server_user_id])USER_ID ([username])USER_NAME ([user_id])

  • 5.9 CONVERSO DE DADOS CONVERT(datatype[(length)],expression[,style])

    SELECT Title Code = pub_id + UPPER(SUBSTRING(type,1,3)) + SUBSTRING(CONVERT(CHAR(4),DATEPART(YY,pubdate)),3,3) FROM titles Resultado: Title Code 1389BUS91 0736BUS91 1389BUS91 . . . (18 row(s) affected) 5.10 RECUPERAO DE DADOSExistem muitas variaes e usos para o comando SELECT. Vejamos algumas.5.10.1 ESCOLHENDO COLUNAS SELECT select_list FROM table_list WHERE search_conditions Condies de pesquisa includas: Operadores de comparao (=,>, 90000

    COM SEC. SEC. STANDARD FORMATO DE SAIDA DOS DADOS1 101 USA mm/dd/yy2 102 ANSI yy.mm.dd3 103 britnico dd/mm/yy10 110 USA mm-dd-yy12 112 ISO yymmdd

  • 5.10.2 ESCOLHA DE LINHAS BASEADA EM COMPARAES SELECT select_list FROM table_list WHERE expression comparison_operator expression Operadores de comparao: (=,>,

  • 5.10.6 ESCOLHA DE LINHAS BASEADA EM BUSCA DE VARIOS ARGUMENTOS SELECT select_list FROM table_list WHERE [NOT] expression {AND|OR}[NOT] expression SELECT title_id, title, pub_id, price, pubdate FROM titles WHERE (title LIKE T% OR pub_id = 0877) AND (price > $16.00) 5.10.7 ELIMINANDO DUPLICATAS SELECT [ALL|DISTINCT] select_list FROM table_list WHERE search_conditions SELECT DISTINCT city, state FROM authors 5.10.8 CLASSIFICANDO RESULTADOS SELECT column_name [,column_name...] FROM table_list [ORDER BY column_name|select_list_number|expression [ASC|DESC][,column_name|select_list_number|expression [ASC|DESC]..] SELECT pub_id, type, price, title FROM titles ORDER BY type, price DESC 5.11 RECUPERAO DE DADOS - TPICOS AVANADOS 5.11.1 JOIN SELECT column_name, column_name [,column_name...] FROM table_name, table_name [,table_name...] WHERE table_name, column_name, join_operator, table_name, column_name Join operators: (=,>,

  • 5.11.2 Natural JOIN SELECT publishers.pub_id, publishers.pub_name, publishers.state, authors . * FROM publishers, authors WHERE publishers.city = authors.city 5.11.3 Eqijoin SELECT * FROM authors, publishers WHERE authors.city = publishers.city 5.11.4 JOINS com mais de duas Tabelas SELECT stor_name, qty, title FROM titles, stores, sales WHERE titles.title_id = sales.title_id AND stores.stor_id = sales.stor_id 5.11.5 Auto JOINS SELECT au1.au_fname, au.au_lname, au2.au_fname, au2.au_lname FROM authors au1, authors au2 WHERE au1.city = Oakland AND au1.sate = CA AND au1.zip = au2.zip AND au1.au_id < au2.au_id 5.11.6 Outer JOINS SELECT titles.title_id, title, qty FROM titles, sales WHERE titles.title_id *= sales.tilte_id 5.12 CRIANDO TRIGGERSCREATE TRIGGER [owner.] trigger_name ON [owner.]table_name FOR {INSERT|UPDATE} AS IF UPDATE (column_name)...] [{AND|OR} UPDATE} sql_statements} 5.12.1 INSERT TRIGGER

  • CREATE TRIGGER loan_insert ON loan FOR INSERT AS UPDATE copy SET on_loan = y FROM copy, inserted WHERE copy.isbn = insertedd.isbn AND copy.copy_no = inserted.copy_no 5.12.2 DELETE TRIGGER CREATE TRIGGER member_delete ON member FOR DELETE AS IF (SELECT COUNT (*) FROM loan, deleted WHERE loan.member_no = deleted.member_no) > 0 BEGIN PRINT Transaction cannot be processed. PRINT This member still has books on loan. ROLLBACK TRANSACTION END ELSE DELETE reservation FROM reservation, deleted WHERE reservation.member_no = deleted.member_no 5.12.3 UPDATE TRIGGER CREATE TRIGGE member_update ON member FOR UPDATE AS IF UPDATE (member_no) BEGIN RAISEERROR (Transaction cannot be processed.\ ***** Member number cannot be modified., 10, 1) ROLLBACK TRANSACTION END 5.13 BULK COPY PROGRAM (BCP) bcp [[database_name.]owner.]table_name {in|out} datafile [/m maxerrors] [/f formatfile] [/e errfile] [/F firstrow] [/L lastrow] [/b batchsize] [/n] [/c] [/E] [/t field_term] [/r row_term] [/i inputfile] [/o outputfile] [/U login_id] [/P password] [/S servername] [/v] [/a

  • packet_size]

    Exemplo: bcp sau05..PROG in a:PROG.txt -U usurio -P senha

    -S graciosa

  • 6. ACESSO VIA INTRANET / EXTRANET / INTERNETAcessar informaes atravs da utilizao de navegadores, seja no

    ambiente de uma Intranet, de uma Extranet ou da Internet, uma tendnciatecnolgica, devido facilidade de uso, e em muitos casos de implementaoe facilidade de atualizao, entre outras vantagens.

    A Intranet um ambiente interno empresa, como exemplificado aseguir.

    FONTE: Microsoft

    J no caso da Internet, o que muda que os acessos sero permitidosa todo e qualquer usurio em qualquer parte do mundo, conformeexemplificado na figura a seguir.

    FONTE: Microsoft

    Em ambos os casos utiliza-se umservidor dotado do sistema operacionalWindows NT e acompanhado do MicrosoftInternet Information Server, IIS, que o servidorde servios Internet (gerencia servios de ftp,gopher e www). Nestes exemplos assumiu-se

  • que o banco de dados que estdisponvel para os usurios, via net, o SQLServer; mas na verdade qualquer outraferramenta que suporte o protocolo ODBCpoder ser utilizada (Access, Sybase, Informix,Oracle, ...).

    Interessa-nos em especial o serviowww, e o acesso a bancos de dados viaprotocolo HTTP. O acesso s informaescontidas no servidor feito de maneirarelativamente simples. A partir da figura aseguir, veremos como isto realizado.

    FONTE: Microsoft

    Como podemos observar, o navegador (web browser) comunica-secom o servidor (web server) utilizando o protocolo HTTP, o qual portado noTCP/IP. O servidor, ao receber uma comunicao inicial envia como respostauma seqncia HTML, atravs da qual o navegador efetua a formatao dapgina e mostra-a ao usurio.

    Opcionalmente podem ser enviados ao servidor comandos adicionais,anexados ao endereo. Na figura a seguir exemplifica-se isto atravs do enviode um comando para execuo da library add.dll, qual sero passados doisargumentos

    FONTE: Microsoft

    O Microsoft IIS poder ainda executar scripts cgi, bastante comuns emaplicaes Internet.

  • FONTE: Microsoft

    Para enterdermos o que ocorre para que um usurio possa acessarinformaes em um banco de dados SQL Server (ou em outro que aceiteconexes ODBC, como o Access), vamos basear-nos na figura a seguir.

    FONTE: Microsoft

    Todo o gerenciamento da comunicaocom a Internet efetuada pelo IIS. Paraconectar-se a um banco de dados ele utiliza-sedo IDC, Internet Database Conector, o qual integrado ao IIS e efetua a conexo atravs doprotocolo ODBC, possibilitando assim acesso auma ampla gama de databases.

    Antes de prosseguirmos, devemos terem mente que realizada uma checagem desegurana antes que comandos e/ou acessosejam efetivamente executados, de maneira amanter a integridade e sigilo dos dados. Asegurana do IIS integrada do WindowsNT, deixando para este todo o gerenciamentode usurios, contas e direitos de acesso.

    6.1 EXEMPLO PRTICOVamos construir uma pequena aplicao

  • de banco de dados, em que utilizaremosum browser como front end.

    Nossa aplicao ser formada por umatabela, na qual poderemos cadastrar um nome,um estado e um cdigo, conform a estruturamostrada a seguir:

    CREATE TABLE cadastro ( numero int IDENTITY (1, 1) NOTNULL , nome varchar (40) NULL , estado char (2) NULL DEFAULT('PR'), codigo int NOT NULL

    )

    Para acessar esta tabela simples,criaremos um acesso conforme mostrado aseguir; uma vez cadastrado, deveremosoferecer uma lista para consulta epossibilidades de alterao.

    Quando as informaes foremsubmetidas ao IIS, este ir realizaruma consulta no arquivo de conexoindicado pelo mtodo submit do formu-lrio, descobrindo ento a qual bancode dados dever se conectar. Umavez conectado ao banco, ser

    FONTE: Microsoft

  • realizada a query passada peloarquivo de conexo, que tambmpassou os valores de campos rece-bidos do formulrio. Realizada aconsulta, o IIS ir utilizar o arquivo demodelo para montar uma seqnciade comandos HTML cor-respondentes pgina que ser enviada ao usurio.Desta maneira o browser enxergarHTML puro.

    Vejamos como ficar nossoesquema de navegao:

    Teremos uma tela inicial, escrita em HTML padro que conter umFORM. Uma vez preenchido o formulrio e submetido ao servidor, atravs doarquivo IDC, no mostrado acima, ser realizada a insero dos dados nodatabase, e enviada uma tela de agradecimento ao usurio. Desta tela, ousurio ter possibilidade de conectar-se com o servidor para realizar umaconsulta s informaes cadastradas. Ser novamente utilizado um arquivoIDC, o qual usar um novo arquivo de template, do tipo HTX, para enviar osdados (Lista) ao usurio. Nesta tela de resultados o usurio poder escolherqualquer um dos itens existentes para proceder sua alterao. O campo

    Pgina INICIAL

    Arquivo: HTML

    Agradecimento

    Arquivo: HTX

    Tela para alteraodos dados

    Arquivo: HTX

    Lista

    Arquivo: HTX

  • correspondente ao nmero ser usado como chave de pesquisa,quando da alterao, mas no aparecer na tela (dever estar com o atributode invisvel).6.2 ARQUIVOS NECESSRIOS E SCRIPTS

    Utilizaremos os seguintes arquivos, cujo contedo ser mostrado naseqncia:

    Note que estamos considerando apenas os arquivos bsicos para anavegao e execuo das tarefas, e que no ser includo nestes arquivosnenhum tipo de embelezamento, a no ser quanto a uma imagem de fundo,de maneira a deixar o cdigo o mais inteligvel possvel.6.2.1 Script para o arquivo cadastro.htm

    Teste de Cadastro

    Curso de SQL Server

    Teste de cadastro

    Nome:

    Estado:

    PR

    SC

    RS

    SP

    Arquivo Tipo FinalidadeCadastro .htm Tela inicialCadastro .idc Conexo para INSERT no databaseResult .htx Mensagem de agradecimentoTodos .idc Conexo para SELECT * no databaseCadastro .htx Mostrar uma lista com o contedo do databaseCadpesq .idc Conexo para SELECT WHERE nmero = ?Cadatu .htx Tela para alteraes, com as informaes atuais

    correspondentes ao nmero escolhidoCadatu .idc Conexo para UPDATE no database

  • AM

    PI

    MA

    BA

    RN

    MS

    TO

    Cdigo:

    6.2.2 Script para o arquivo cadastro.idc

    Datasource: SRV-LAB1

    Username: CADASTRO

    Password: CADASTRO

    Template: Result.htx

    SQLStatement:

    +INSERT cadastro..cadastro

    +VALUES('%nome%','%estado%',%codigo%)

    6.2.3 Script para o arquivo result.htx

    Teste de Cadastro

  • Obrigado por se cadastrar aqui !

    6.2.4 Script para o arquivo todos.idcDatasource: SRV-LAB1

    Username: CADASTRO

    Password: CADASTRO

    Template: Cadastro.htx

    SQLStatement:

    + SELECT * FROM CADASTRO..CADASTRO ORDER BY NUMERO

    6.2.5 Script para o arquivo cadastro.htx

    Teste de cadastro

    Teste de cadastro

    (Clique sobre o nmero para editar)

  • NmeroNomeEstadoC

    No foi localizado nenhum

    6.2.6 Script para o arquivo cadpesq.idcDatasource: SRV-LAB1

    Username: CADASTRO

    Password: CADASTRO

    Template: CadAtu.htx

    SQLStatement:

    +SELECT * FROM CADASTRO..CADASTRO

    +WHERE CADASTRO.NUMERO = %proc%

    6.2.7 Script para o arquivo cadatu.htx

    Teste de cadastro

  • Alterar cadastro

    Nome:

    Estado:

    Cdigo:

    6.2.8 Script para o arquivo cadatu.idcDatasource: SRV-LAB1

    Username: CADASTRO

    Password: CADASTRO

    Template: Result.htx

    SQLStatement:

    +UPDATE cadastro..cadastro

    + SET NOME = '%updnome%',+ ESTADO = '%updestado%',+ CODIGO = %updcodigo%+ WHERE+ NUMERO = %updnumero%

    [1] CCE / Microinformtica - 366-2323, ramal 3116 ou [email protected]

    mailto:[email protected]