Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
samislobato

Artigo: SQL CRUD

Question

Artigo: SQL CRUD

Autor: Samis Pedro Lobato

Data: 24/11/2009

Sobre o autor:

Samis é analista de sistemas, empresário, atualmente trabalha na Secretaria da Fazenda do estado de Goiás pela POLITEC.

Tem experiência com C#,ASP3.0,ASP.NET,DELPHI,SQL,INTERBASE,FIREBIRD,ORACLE entre outras ferramentas.

É certificado pela Microsoft como MSP e pela Borland DDP

Criando e trabalhando com SQL Tabela gTabela.

Requisitos:

Para acompanhar o artigo, vamos precisar do Microsoft SQl Server instalado

na máquina e o Management Studio Express. Quando você instala esses dois itens,

já vem junto um banco de testes da Microsoft que é o NorthWind o qual nós usaresmos.

Para darmos inicio, levando em consideração que já tenha todos esses itens instalados

no seu computador e já esteja com SQLMS aberto vamos dar início.

O primeiro passo será criarmos nossa tabela no banco NorthWind, segue abaixo o Cod.

Vamos criar uma tabela chamada gTabela como segue o código abaixo.

Create table gTabela /* Tabela principal */

(gID int default 0,

gNome varchar(100) not null,

gTelefone varchar(100) not null,

gEmail varchar(100) not null,

gCidade varchar(100) not null,

gRG varchar(100) not null,

gSalario money not null )

Create table gComentarios /* Tabela de comentários */

(gID int default 0,

gAutor varchar(50) not null,

gComentario varchar(100) not null )

Comentários:

Usamos o comando Create table para criar a tabela, e o nome gTabela é o nome da tabela

que vamos criar, notem que definimos o nome do campo e o tamanho ( gNome varchar(100))

que define o tamanho do campo na memória e a quantidade de caracteres que o campo irá

receber.

Alterando tabela do banco e criando novo campo.

vamos usar o comando Alter Table e passar o nome da tabela para ele saber quem ele deve

alterar, e em seguida o nome do campo que queremos criar ou alterar, como mostra o

exemplo abaixo.

Alter Table gTabela

Add gComentarioID integer

Alter Table gComentarios

Add gComentarioID integer

Comentários:

No primeiro exemplo àcima criamos na tabela gTabela o campo gComentarioID e falamos

para ele que ele será do tipo integer.

No segundo exemplo Alteramos na tabela gComentarios o campo gComentarioID falamos

para ele que ele será do tipo integer.

Excluindo campo da tabela

Bom agora vamos ver como excluir um campo da tabela.

Para tal tarefa vamos usar o comando Alter Table passando o nome da tabela,

e em seguida o comando drop column e passando o nome do campo a ser excluído,

como mostra o exemplo abaixo

Alter Table gTabela

drop column gComentarioID,gRG

Comentários:

Como você pode ver, podemos excluir vários campos da tabela ao mesmo tempo

apenas separando por "," os campos

Dando select na tabela e definindo registros.

Podemos usar o select de váaaaaaarias formas, o tradicional é vermos os registros

de uma determinada tabela, neste caso usamos select * from tabela, no nosso esemplo

abaixo temos o primeiro comando select * from gTabela, onde ele trará todos os meus

dados da tabela "gTabela", porem nem sempre precisamos de todos os dados e assi podemos

funilar mais o nosso resultado, trazendo apenas os dados que precisamos, na segunda

linha do nosso exemplo temos o comando select * from gTabela where gNome = 'Samis Lobato'

onde ele trará todos os dados mas com uma condição, que é somente os dados cujo o nome

for igual a Samis Lobato, mas suponhamos que eu tenha vários registros com o sobrenome

lobato e que quero todos os registros cujo o nome contenha lobato, dai eu uso a terceira

linha do meu exemplo, o comando like é o responsável por isso, notem que quando eu

passei o like eu dispenso o uso do sinal de "=". Bom mas digamos que queremos funilar

ainda mais o nosso resultado, na 4 linha do nosso exemplo temos o like e o and, onde

falamos que queremos todos os samis mas apenas os que moram em Goiania

A tambem podemos fazer um select de vários ID da minha tabela como mostra a linha 5

do nosso exemplo abaixo, separando os indeces por virgula, exemplo in(1,2,3)

select * from gTabela

select * from gTabela where gNome = 'Samis Lobato'

select * from gTabela where gNome like '%lobato%'

select * from gTabela where gNome like '%samis%' and gCidade = 'Goiania'

select * from gTabela where gID in(1,2,3,4,5,6,7,8,9)

Inserindo dados na tabela gTabela

Bom essa parte é uma das mais importantes e a que eu mais gosto, alimentar o nosso

banco de dados. E para essa tarefa ser executada é a mais simples, porem como todas

precisamos tomar muito cuidado na hora de passar os valores e os tipos de dados, no

nosso exemplo logo abaixo vamos alimentar a tabela gTabela, vamos usar dois comandos

o insert into e o Values onde eu preciso fazer o seguinte. Escrevo o comando

insert into e passo o nome da tabela que eu quero alimentar, entre parenteses () eu

informo os campos da tabela que eu quero alimentar escrevo o segundo comando Values

e informo os dados que alimentaram os campos com os valores que eu defini, no nosso

exemplo abaixo estamos alimentando a tabela gTabela e nos Values passando os valores.

Notem que onde eu tenho string eu passo o valor entra aspas simples e onde eu tenho

inteiro apenas o valor separado por virgula. No caso de estarmos trabalhando em uma

aplicação fariamos apenas o Value diferente, exemplo:

var X as Integer

X = 10;

Logo no Value da minha Query eu passaria a variável X.

E quando eu passo um valor do tipo money ou mesmo currency eu passo sem aspas e separo

por "." e não por ",".

insert into gTabela (gID,gNome,gTelefone,gEmail,gCidade,gRG,gSalario)

Values

(4,'Samis Lobato','(62)9198 9319','[email protected]','Goiânia','4381465',3800.00)

insert into gComentarios

(gID,gAutor,gComentario)

Values

(2,'SamisLobato','Giselle Rodrigues da Cunha aprendendo SQL')

Comentários:

Você pode aprfundar mais no caso do insert, por exemplo fazer um insert em duas

tabelas diferentes

Deletando registros

No exempo abaixo, vamos deletar na tabela gTabela o registro onde o codigo for

igual a 1, ok, temos que tomar muito mas muito cuidado nessa hora, caso você por

algum acaso da destração rss, como já aconteceu comigo, você pode sair deletando

o que não quer e o que não pode.... então vamos usar o comando delete passando o

nome da tabela seguindo da condição where e passando ao where a condição, como mostra

a linha 1 do nosso exemplo abaixo, podemos tambem deletar vários registros ao mesmo

tempo em uma unica query, bastando passarmos os indices conforme a linha 2 no nosso

exemplo

delete gTabela where gID = 1

delete gTabela where gID in(2,3)

Comentários:

No caso do delete, é muito importante termos atenção, para não perdermos

dados importantes....

Atualizando dados

Sempre precisamos alterar dados já inseridos em uma determinada tabela, é um caso típico

e você sempre passará por este problema.

Bom, para atualizarmos dados em uma tabela, precisaremos do comando Update, escrevemos

o comando update e passamos o nome da tabela que queremos atualizar, em seguida o comando set

que iremos setar o nome do campo da tabela em específico que queremos mudar o valor e a

condição, como mostra nosso exemplo abaixo, na linha 1 estamos atualizando na tabela

gTabela o campo gNome para Senhor Luiz' onde o gID for igual a 2

update gTabela set gNome = 'Senhor Luiz' where gID = 2

update gTabela set gID = 2 where gCidade = 'Caldas Novas'

update gTabela set gSalario = 4500.00 where gID in(1,2,3,4)

Muitissimo cuidado com esse comando, caso você mande executar uma query dessa sem

passar uma condição ele o fará para todos, logo se você passar sem o where já era.

EX: update gTabela set gNome = 'Senhor Luiz'. pronto se você tiver 1000 registros nessa

tabela todo mundo vai ter o mesmo nome agora, portanto, muita atenção ao usar o update

sem uma condição, onde a condição será uma forma de identificação para onde ele fará

a operação

Bom pessoal, são comando básicos do SQL server, no próximo artigo, vamos aprofundar

mais, inner join e por ai..... Abraços, sucesso e bons estudos a todos.

Samis Pedro Lobato

Analista de sistemas

POLITEC - SEFAZ-GO

E-mail's: [email protected] , [email protected]

MSN: [email protected]

Mobile: (62) 9198 9319

Edited by samislobato

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  



  • Forum Statistics

    • Total Topics
      148386
    • Total Posts
      643773
×
×
  • Create New...