Вы находитесь на странице: 1из 10

Lição 1 - Banco de Dados e tabelas

Um banco de dados relacional é visto logicamente como um conjunto de tabelas.


Fisicamente, um banco de dados SQL Server 7 é constituído por três tipos de arquivo:
Primary – um único arquivo por banco de dados; contém informação necessária
para inicialização e carga do banco de dados, além dos próprios dados
Secondary – zero ou mais arquivos que vão sendo criados para armazenar o que
não coube no Primary
Log - um ou mais arquivos com as informações necessárias para fazer a recuperação
do banco de dados. Tamanho mínimo de um arquivo de log: 512 KB

Opções de criação de um banco de dados:


a) Criar um banco de dados usando o Enterprise Manager
· Expandir a árvore do Enterprise Manager, clicar o ícone Microsoft SQL Servers
· Clicar com botão direito, o ícone Databases
· Clicar a opção New Database
· Digitar RH como nome do banco de dados (observar o nome sugerido e extensão do
arquivo PRIMARY: RH_Data.MDF; clicar a aba Tansaction Log para ver o nome
sugerido e extensão do arquivo LOG : RH_Log.LDF)
· Clicar botão OK

b) Criar um banco de dados usando o assistente de criação de banco de dados


· Clicar opção de menu Tools
· Clicar Wizards...
· Expandir Databases
· Dar um duplo clique em Create Database Wizard
· Seguir as orientações de cada janela do assistente; no final o assistente pergunta se
deve ser criado um plano de manutenção (plano de backup, testes de integridade,
atualização de informações para otimização), para o banco de dados recém criado

c) Criar um banco de dados usando o comando Transact SQL CREATE DATABASE ...
USE master
GO
CREATE DATABASE abc ON
(NAME = abc_dat, /* nome lógico do bd */
FILENAME = ‘c:\mssql\data\abc_dat.mdf’,
SIZE = 4, /* área em disco reservada para o BD em KB ou MB (default) */
MAXSIZE = 20, /* máxima área para o BD; sem especificar, limite é o disco */
FILEGROWTH = 2) /* incremento da área em %, KB ou MB (default) */
LOG ON /* arquivo onde será armazenado o log do BD */
(NAME = abc_log, FILENAME = ‘c:\mssql\data\abc_log.ldf’,
SIZE = 512 KB, MAXSIZE = 10, FILEGROWTH = 2)

Exibir as características de um banco de dados


· Expandir a árvore do Enterprise Manager, clicando Microsoft SQL Servers
· Clicar com botão direito, o ícone Databases
· Dar um duplo clique no nome do banco de dados desejado
· Há grupos de informação como: General, Tables & Indexes e Space Allocated
(Clicar cada um e examinar as características)

Alterar as características de um banco de dados


· Expandir a árvore do Enterprise Manager, clicando Microsoft SQL Servers
· Clicar com botão direito, o ícone Databases
· Clicar opção Properties (efetuar as alterações desejadas)

Excluir um banco de dados


· Expandir a árvore do Enterprise Manager, clicando Microsoft SQL Servers
· Clicar com botão direito, o ícone Databases
· Clicar com botão direito a opção Delete
· Clicar o botão Yes para confirmar a deleção

Criando uma Tabela

O SQL Server permite criar tabelas temporárias (na memória) e permanentes (em disco). O
símbolo # no início do nome da tabela indica que ela será temporária.
Constraints são uma maneira de garantir a integridade em um banco de dados e têm
prioridade de execução sobre triggers, regras, valores default. Constraints podem ser
especificados usando os comandos CREATE TABLE e ALTER TABLE. Há cinco tipos de
constraint:
Not null – uma coluna que deve ser preenchida obrigatoriamente.
Check – verifica a validade dos dados de uma coluna.
Unique – não admite valor duplicado na coluna (SQL Server cria índice único).
Primary key – cria a chave primária de tabela.
Foreign key – indica um ou mais campos de uma tabela que se referem a chave
primária de outra tabela.

Criando uma tabela via comando Transact SQL usando o Query Analyzer

· create table Clien


( nrc integer not null, nom varchar(30), sex char (1), primary key clustered (nrc))
· create table Prod (cdp integer identity, nmp char (15), qtd integer, preco
decimal(6,2) primary key nonclustered (cdp))
· create table NFiscal1 (nrnf integer CONSTRAINT UPKNF PRIMARY KEY
CLUSTERED, dtnf datetime,serie char(2), vlnf decimal(7,2),
nrcli integer references Clien (nrc), primary key (nrnf))
· create table PrNf (cdp integer, nrnf integer, qtd integer, val decimal(6,2) primary
key nonclustered (cdp, nrnf),
foreign key (cdp) references prod (cdp),
foreign key (nrnf) references Nfiscal)

Incluindo uma coluna numa tabela via comando SQL

· alter table func add rg char(14) /* inclui coluna rg na tabela func*/


· alter table func add dtnasc datetime /* inclui coluna dtnasc na tabela func */

Criando uma tabela via Enterprise Manager


· Expandir a pasta Databases
· Expandir o banco de dados onde se deseja criar a tabela
· Clicar Tables com o botão direito
· Selecionar a opção New Table...
· Digitar o nome da tabela na caixa de diálogo Choose Name
· Clicar o botão OK
· Preencher as colunas conforme o significado de cada uma:
o Column Name – digitar o nome da coluna
o Datatype – selecionar o tipo de dado desejado
o Lenght – o tamanho do atributo em bytes é dado conforme Datatype
o Precision – digitar o número de posições numéricas para o atributo
o Scale – digitar o número de casas decimais do campo numérico
o Allow Nulls – se marcada, atributo permite valor null
o Default value – digitar o valor que deve ser atribuído à coluna
o Identity – se marcada, indica valor gerado automaticamente para a coluna
o Identity Seed – digitar valor inicial para geração automática do valor
o Identity Increment – digitar valor a incrementar na geração automática
o RowGuid – se marcar deve ser criado um identificador único global para a
coluna; neste caso o datatype dever ter sido uniqueidentifier

Lição 2 - Índices

No SQL Server os índices podem ser Clustered ou Nonclustered. O índice clustered


armazena as linhas da tabela na ordem da chave e não é criado numa estrutura separada da
tabela como ocorre com o nonclustered.
Não é obrigatório haver índice clustered numa tabela, mas se houver, apenas um índice desse
tipo pode ser criado para uma tabela. Quando houver mais de um índice numa tabela, é
recomendável criar antes o clustered.
É possível criar índices via comando SQL , via Enterprise Manager ou usando um assistente.

Criando um índice via comando Transact SQL usando o Query Analyzer

· create nonclustered index INmp on Prod (nmp)


· create unique nonclustered index Irg on Func (rg)
· create unique clustered index Imat on Func (mat)
· create index Icdd on Func (cdd, nom desc)

Para ver os índices de uma tabela:


· sp_helpindex prnf
· sp_helpindex Nfiscal
· sp_helpindex Prod

Criando um índice enquanto a tabela é criada

· Expandir a pasta do Database onde vão ser criados tabela e índice


· Clicar com direito a pasta Tables
· Selecionar New Table e digitar o nome da tabela a ser criada
· Após preencher os dados referentes às colunas da tabela, clicar qualquer coluna com
botão direito
· Selecionar Properties
· Clicar aba Indexes/Keys e em seguida, clicar New
· Escolher as colunas que formarão o índice
· Atribuir nome ao índice em Index Name
· Marcar Create UNIQUE e Create as CLUSTERED, conforme o caso.

Criando um índice numa tabela existente

· Expandir a pasta do Database onde vão ser criados tabela e índice


· Clicar com direito a pasta Tables
· Expandir a pasta Tables
· Clicar com o direito o nome da tabela onde vai ser criado o índice
· Selecionar opção Design Table
· Clicar qualquer coluna com o botão direito
· Selecionar Properties
· Clicar New após selecionar aba Indexes/Key
· Escolher as colunas que formarão o índice
· Atribuir nome ao índice em Index Name
· Marcar Create UNIQUE e Create as CLUSTERED, conforme o caso.

Criando um índice usando o assistente Create Index Wizzard

· Clicar opção de menu Tools do Enterprise Manager ou clicar ícone Assistentes


(varinha mágica com estrelinhas na extremidade)
· Expandir Database da janela Select Wizard
· Clicar duplamente a opção Create Index Wizzard
· Seguir as instruções do assistente, escolhendo o banco de dados e a tabela onde será
criada o índice
· Janela exibe os índices existentes; clicar Next
· Marcar a caixa de seleção Include in Index para as colunas que formarão a chave
do índice / Clicar Next
· Selecionar as opções desejadas Unique e/ou Clustered e Fill factor (0 – deixa
espaço para adição de chaves nos nós folha do índice; 100 – não reserva espaço para
adição de chaves nos nós folha do índice, recomendado apenas para tabelas de
baixíssima taxa de inclusões)
· Clicar Next / Digitar nome do índice em Index Name / Clicar Finish

Visualizando os índices de uma tabela

No Query Analyzer, executar a stored procedure sp_helpindex informando o nome da


tabela como parâmetro; para ver os índices da tabela Func do BD RH, digitar:
· sp_helpindex func

No Enterprise Manager:
· Clicar com o botão direito o nome da tabela
· Selecionar All Tasks / Manage Indexes...

Excluindo um índice usando o Enterprise Manager


· Clicar com o botão direito o nome da tabela
· Selecionar All Tasks / Manage Indexes...
· Selecionar o índice a excluir e clicar Delete

Lição 3 - Visões

Visão é uma tabela virtual, que permite “enxergar” linhas e colunas selecionadas se uma ou
mais tabelas.

Criando visão usando comando SQL no Query Analyzer

· create view idosas as /* idosas são as mulheres com mais de 29 anos */


select nom, dtn, datediff(year, dtn, getdate()) as Idade from func
where sex = "F" and 29 < datediff(year, dtn, getdate())

Para ver o funcionamento da view idosas

· select * from idosas


Criando visão usando o Enterprise Manager

· Expandir a pasta do Database onde vai ser criada a visão


· Clicar com direito a pasta Views
· Selecionar New View... e adicionar as tabelas a serem usadas na criação da visão
· Selecionar as colunas e critérios a serem aplicados
· Fechar a janela e atribuir nome à visão

Excluindo uma visão com o Enterprise Manager

· Expandir a pasta do Database onde vai ser criada a visão


· Clicar com o direito a pasta Views
· Clicar com o direito o nome da view a ser excluída / Delete
· Clicar Show Dependencies..., caso deseje ver os objetos envolvidos na view
· Clicar Drop All para excluir a view ou views selecionadas

Renomeando uma visão usando o Enterprise Manager

· Expandir a pasta do Database onde vai ser criada a visão


· Clicar com o direito a pasta Views
· Clicar com o direito o nome da view a ser renomeada / Rename
· Clicar View Dependencies..., caso deseje ver os objetos envolvidos na view
· Alterar o nome da visão e clicar Yes

Exibindo o resultado da visão usando o Enterprise Manager

· Expandir a pasta do Database onde vai ser criada a visão


· Clicar com o direito a pasta Views
· Clicar com o direito o nome da view a ser executada / Open view
· Selecionar uma das opções Return all rows ou Return Top...

Alterando uma visão usando o Enterprise Manager

· Expandir a pasta do Database onde vai ser criada a visão


· Clicar com o direito a pasta Views
· Clicar com o direito o nome da view a ser alterada / Design view
· Efetuar as alterações e fechar a janela salvando as alterações

Lição 4 - Diagrama de Banco de Dados

O SQL Server permite criar mais de um DER (Diagrama de Entidade e Relacionamento)


para um mesmo banco de dados. Após salvar alterações no DER, estas serão efetuadas no
banco de dados. As alterações feitas em uma tabela num DER serão refletidas nos demais
diagramas do BD onde a tabela alterada esteja. Incluir atributo, alterar a ordem dos atributos
ou excluir um atributo de uma tabela, causará a regeração da tabela no BD, após a salva do
DER.

Criando um DER

· Expandir a pasta Databases no Enterprise Manager


· Expandir a pasta do banco de dados a ter o diagrama criado
· Clicar com o direito na pasta Diagrams
· Selecionar a opção New Database Diagram ...
· Seguir as instruções do assistente
· Clicar direito em área livre do diagrama oferece menu com opções para adicionar
tabelas existentes, criar nova tabela,...); a criação de nova tabela vai incluí-la no BD,
após salvar o diagrama.

Visualizado as propriedades de uma tabela no diagrama

· Clicar com o direito a tabela a examinar


· Clicar Column Properties para exibir as propriedades das colunas da tabela
· Clicar Column Names para exibir apenas o nome de cada coluna
· Clicar Keys para exibir apenas os atributos que compõem a chave primária
· Clicar Name Only para exibir no diagrama apenas os nomes das tabelas
· Clicar Custom para exibir apenas as propriedades de cada coluna escolhidas pelo
usuário (para alterar esta escolha, clicar a opção seguinte Modify Custom View)
· Clicar Set Primary Key para definir as colunas selecionadas como chave primária
· Clicar Properties para examinar as propriedades da tabela; surge uma janela com três
abas: Tables, Relationships e Indexes/Keys;
Tables permite selecionar uma tabela para ver suas propriedades;
Relationships exibe os relacionamentos que envolvem a tabela selecionada
Indexes/Keys permite visualizar e criar novos índices para a tabela selecionada

Incluindo anotação no Diagrama

· Clicar o ícone a|b ou clicar botão direito numa área livre do diagrama e selecionar
a opção New Text Annotation
· Digitar o texto desejado

Adicionando tabelas relacionadas ao Diagrama

· Para adicionar as tabelas que têm relacionamento com uma dada tabela, clicar esta
última com o botão direito
· Selecionar a opção Add Related Tables
Excluindo uma tabela do diagrama e do banco de dados

· Clicar com botão direito a tabela a ser excluída


· Selecionar Remove Table from Diagram para remover a tabela apenas do diagrama,
deixando-a porém no BD
· Selecionar Delete Table from Database para eliminar a tabela do BD e também dos
diagramas

Lição 5 - Stored Procedures

Stored Procedures são procedimentos armazenados no banco de dados formados por


comandos de controle de fluxo,variáveis e comandos SQL. Aceita parâmetros de entrada e
pode retornar valores. Pode ser executada manualmente ou ser chamada de dentro de
programas ou de outro stored procedure. Um SP pode ser local ou remoto, conforme o
servidor onde esteja armazenado. Pode ser também classificado como: definido pelo usuário
ou stored procedures do sistema.

Criando Stored Procedure via Enterprise Manager

· Expandir a pasta do banco de dados onde o Stored Procedure vai ser armazenado
· Clicar com o direito Stored Procedures / Clicar New Stored Procedure...
· Continuar a definição do SP, deixando-a por exemplo, como:

CREATE PROCEDURE AltSalFunc


@mat integer, @sal decimal AS
Update func set sal = @sal where mat = @mat

O SP AltSalFunc recebe os parâmetros matrícula do funcionário (@mat) e o valor


do salário (@sal) a ser aplicado ao funcionário de matrícula igual a @mat

Criando Stored Procedure com o assistente Create Stored Procedure Wizard

· No Enterprise Manager, clicar opção de menu Tools ou o ícone Assistentes


(varinha mágica com estrelinhas na extremidade)
· Expandir Database / Clicar duplamente Create Stored Procedure Wizard
· Seguir as instruções do assistente e selecionar o banco de dados
· Selecionar tabelas e as operações a serem usados pelo stored procedure (ex.: marcar
update na tabela Func caso o SP vá aumentar o salário dos funcionários)
· Clicar Next / Clicar Edit para selecionar que atributos alterar e que linhas selecionar
· Alterar o nome do SP em Name / Clicar Edit SQL... (por exemplo:
CREATE PROCEDURE [AumentaSal] (@cdd char, @perc decimal)
AS UPDATE [RH].[dbo].[Func] SET sal = ((@perc / 100) + 1) * sal
WHERE ( cdd = @cdd)
· Após alterar o corpo do procedimento como acima, clicar Parse para checar a
sintaxe; (o procedimento acima recebe parâmetros código do departamento (@cdd)
e percentual de aumento (@perc) a ser dado aos funcionários desse departamento)
· Clicar OK / Clicar Finish

Alterando Stored Procedure

· Expandir a pasta do banco de dados onde o Stored Procedure está armazenado


· Clicar Stored Procedures
· Clicar duplamente o stored procedure a alterar

Renomeando e excluindo Stored Procedure

· Expandir a pasta do banco de dados onde o Stored Procedure está armazenado


· Clicar Stored Procedures
· Clicar com o botão direito o stored procedure a excluir ou renomear

Lição 6 – Triggers

Triggers são um tipo especial de procedimento armazenado no banco de dados, cuja


execução é disparada quando um dado evento (insert, update ou delete em uma tabela)
ocorre. Aplicações de trigger são: produzir coluna derivada de outras colunas, atualizar
outras tabelas quando uma dada tabela sofre alteração (replicação ou controle de
integridade), gravar auditoria (log) quando uma dada tabela sofre alteração, ...
Durante a execução de um trigger, são mantidas duas tabelas temporárias:
INSERTED – armazena cópia das linhas incluídas e alteradas (imagem nova)
DELETED – armazena cópia das linhas excluídas ou alteradas (imagem antiga)
Criando Trigger usando comando Transact SQL via Query Analyzer

create trigger tdelFunc on func for delete as


print "um funcionário foi excluído ..."
select * from deleted /* exibir linhas deletadas e reinserí-las no comando seguinte */
insert into func (mat, nom, sal, sex, cdd, match, dtn, rg) select * from deleted
Eliminando Trigger usando comando Transact SQL vai Query Analyzer

drop trigger tdelfunc

Criando Trigger via Enterprise Manager

· Expandir a pasta do banco de dados onde se deseja criar Trigger


· Clicar Tables
· Clicar com o direito nome da tabela onde o trigger vai atuar
· Clicar All Tasks / Clicar Manage Triggers...
· Completar o texto apresentado, fazendo as alterações necessárias, atribuindo um
nome para o trigger, escolhendo uma das opções após a palavra FOR e completando
os comandos SQL após a palavra AS, conforme abaixo:

· CREATE TRIGGER [TRIGGER NAME] ON [Func]


FOR INSERT, UPDATE, DELETE
AS
· Clicar Check Sintax / Clicar OK para salvar

Visualizando os triggers de uma tabela

Seguem stored procedures do sistema que deixam ver os triggers de uma tabela bem como
exibir seu texto:
· sp_helptrigger func /* exibe os triggers que atuam na taqbela func */
· sp_helptext tdelfunc /* exibe os comandos que formam o trigger tdelfunc */

Replicando linhas de uma tabela via trigger

create trigger tIncFunc on func for insert as


print "um funcionário foi incluído ..."
select * from inserted /* exibir linhas inseridas e inserí-las no comando seguinte */
insert into func1 (mat, nom, sal, sex, cdd, match, dtn, rg) select * from inserted

Вам также может понравиться