+5

Introdução ao PHP

criado por João Prado Maia em 25/01/2001 6:32pm
<p class=\"negrito\">13. No&ccedil;&otilde;es de SQL</p>
<p align=\"JUSTIFY\">Introdu&ccedil;&atilde;o</p>
<p align=\"JUSTIFY\">Quando os Bancos de Dados Relacionais estavam sendo
desenvolvidos, foram criadas linguagens destinadas &agrave; sua
manipula&ccedil;&atilde;o. O Departamento de Pesquisas da IBM, desenvolveu
a SQL como forma de interface para o sistema de BD relacional denominado
SYSTEM R, in&iacute;cio dos anos 70. Em 1986 o American National
Standard Institute ( ANSI ), publicou um padr&atilde;o SQL. </p>
<p align=\"JUSTIFY\">A SQL estabeleceu-se como linguagem padr&atilde;o
de Banco de Dados Relacional.</p>
<p align=\"JUSTIFY\">SQL apresenta uma s&eacute;rie de comandos que
permitem a defini&ccedil;&atilde;o dos dados, chamada de DDL (Data
Definition Language), composta entre outros pelos comandos Create,
que &eacute; destinado a cria&ccedil;&atilde;o do Banco de Dados,
das Tabelas que o comp&otilde;e, al&eacute;m das rela&ccedil;&otilde;es
existentes entre as tabelas. Como exemplo de comandos da classe
DDL temos os comandos Create, Alter e Drop. </p>
<p align=\"JUSTIFY\">Os comandos da s&eacute;rie DML (Data Manipulation
Language), destinados a consultas, inser&ccedil;&otilde;es, exclus&otilde;es
e altera&ccedil;&otilde;es em um ou mais registros de uma ou mais
tabelas de maneira simult&acirc;nea. Como exemplo de comandos da
classe DML temos os comandos Select, Insert, Update e Delete.</p>
<p align=\"JUSTIFY\">Uma subclasse de comandos DML, a DCL (Data Control
Language), disp&otilde;e de comandos de controle como Grant e Revoke.
</p>
<p align=\"JUSTIFY\">A Linguagem SQL tem como grandes virtudes sua capacidade
de gerenciar &iacute;ndices, sem a necessidade de controle individualizado
de &iacute;ndice corrente, algo muito comum nas linguagens de manipula&ccedil;&atilde;o
de dados do tipo registro a registro. Outra caracter&iacute;stica
muito importante dispon&iacute;vel em SQL &eacute; sua capacidade
de constru&ccedil;&atilde;o de vis&otilde;es, que s&atilde;o formas
de visualizarmos os dados na forma de listagens independente das
tabelas e organiza&ccedil;&atilde;o l&oacute;gica dos dados. </p>
<p align=\"JUSTIFY\">Outra caracter&iacute;stica interessante na linguagem
SQL &eacute; a capacidade que dispomos de cancelar uma s&eacute;rie
de atualiza&ccedil;&otilde;es ou de as gravarmos, depois de iniciarmos
uma seq&uuml;&ecirc;ncia de atualiza&ccedil;&otilde;es. Os comandos
Commit e Rollback s&atilde;o respons&aacute;veis por estas facilidades.</p>
<p align=\"JUSTIFY\">Devemos notar que a linguagem SQL consegue implementar
estas solu&ccedil;&otilde;es, somente pelo fato de estar baseada
em Banco de Dados, que garantem por si mesmo a integridade das rela&ccedil;&otilde;es
existentes entre as tabelas e seus &iacute;ndices.</p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">Estrutura das tabelas</p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">Comando Create</p>
<p align=\"JUSTIFY\">Este comando permite a cria&ccedil;&atilde;o de
tabelas no banco de dados ou mesmo de sua cria&ccedil;&atilde;o.
</p>
<p align=\"JUSTIFY\">Sintaxe:</p>
<p align=\"JUSTIFY\" class=\"mysql\"> CREATE DATABASE &lt; nome_db &gt;;</p>
<p align=\"JUSTIFY\">onde:</p>
<p align=\"JUSTIFY\">nome_db - indica o nome do Banco de Dados a ser
criado.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Sintaxe:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\">CREATE TABLE &lt; nome_tabela
&gt; (<br>
&nbsp;&nbsp;</span><span class=\"mysql\">nome_atributo1 &lt; tipo
&gt; [ NOT NULL ],<br>
&nbsp;&nbsp;</span><span class=\"mysql\">nome_atributo2 &lt; tipo
&gt; [ NOT NULL ],<br>
&nbsp;&nbsp;</span><span class=\"mysql\">......<br>
&nbsp;&nbsp;</span><span class=\"mysql\">nome_atributoN &lt; tipo
&gt; [ NOT NULL ]<br>
</span><span class=\"mysql\">);</span></p>
<p align=\"JUSTIFY\">onde:</p>
<p align=\"JUSTIFY\">nome_tabela - indica o nome da tabela a ser criada.</p>
<p align=\"JUSTIFY\">nome_atributo - indica o nome do campo a ser criado
na tabela.</p>
<p align=\"JUSTIFY\">tipo - indica a defini&ccedil;&atilde;o do tipo
de atributo ( integer(n), char(n), ... ).</p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">Comando Drop</p>
<p align=\"JUSTIFY\">Este comando elimina a defini&ccedil;&atilde;o
da tabela, seus dados e refer&ecirc;ncias.</p>
<p align=\"JUSTIFY\">Sintaxe:</p>
<p align=\"JUSTIFY\" class=\"mysql\">DROP TABLE &lt; nome_tabela &gt;
;</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">Comando Alter</p>
<p align=\"JUSTIFY\">Este comando permite inserir/eliminar atributos
nas tabelas j&aacute; existentes.</p>
<p align=\"JUSTIFY\">Comando:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\">ALTER TABLE &lt; nome_tabela
&gt; ADD / DROP (<br>
&nbsp;&nbsp;</span><span class=\"mysql\">nome_atributo1 &#9;&lt; tipo
&gt;&#9;[ NOT NULL ],<br>
&nbsp;&nbsp;</span><span class=\"mysql\">nome_atributoN&#9;&lt; tipo
&gt;&#9;[ NOT NULL ]<br>
</span><span class=\"mysql\">);</span></p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">Manipulando dados das tabelas<br>
<br>
</p>
<p align=\"JUSTIFY\">Comando SELECT</p>
<p align=\"JUSTIFY\">Permite recuperar informa&ccedil;&otilde;es existentes
nas tabelas.</p>
<p align=\"JUSTIFY\">Sintaxe b&aacute;sica:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\">SELECT [DISTINCT] expressao
[AS nom-atributo]<br>
</span><span class=\"mysql\">[FROM from-list]<br>
</span><span class=\"mysql\">[WHERE condicao]<br>
</span><span class=\"mysql\">[ORDER BY attr_name1 [ASC | DESC ]]</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">onde:</p>
<p align=\"JUSTIFY\">DISTINCT : Para eliminar linhas duplicadas na sa&iacute;da.</p>
<p align=\"JUSTIFY\">Expressao: Define os dados que queremos na sa&iacute;da,
normalmente uma ou mais colunas de uma tabela da lista FROM.</p>
<p align=\"JUSTIFY\">AS nom-atributo : um alias para o nome da
coluna, exemplo:</p>
<p align=\"JUSTIFY\">FROM : lista das tabelas na entrada</p>
<p align=\"JUSTIFY\">WHERE : crit&eacute;rios da sele&ccedil;&atilde;o</p>
<p align=\"JUSTIFY\">ORDER BY : Crit&eacute;rio de ordena&ccedil;&atilde;o
das tabelas de sa&iacute;da. ASC ordem ascendente, DESC ordem descendente</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><br>
Exemplo:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\">SELECT cidade, estado from
brasil where populacao &gt; 100000;</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">Comando INSERT</p>
<p align=\"JUSTIFY\">Adiciona um ou v&aacute;rios registros a uma tabela.
Isto &eacute; referido como consulta anexa&ccedil;&atilde;o.</p>
<p align=\"JUSTIFY\">Sintaxe b&aacute;sica</p>
<p align=\"JUSTIFY\"><span class=\"mysql\">INSERT INTO destino [(campo1[,
campo2[, ...]])]<br>
</span><span class=\"mysql\">VALUES (valor1[, valor2[, ...])</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A instru&ccedil;&atilde;o INSERT INTO tem as partes
abaixo:</p>
<p align=\"JUSTIFY\">Destino- O nome da tabela ou consulta em que os
registros devem ser anexados.</p>
<p align=\"JUSTIFY\">campo1, campo2 - Os nomes dos campos aos quais
os dados devem ser anexados</p>
<p align=\"JUSTIFY\">valor1, valor2 - Os valores para inserir em campos
espec&iacute;ficos do novo registro. Cada valor &eacute; inserido
no campo que corresponde &agrave; posi&ccedil;&atilde;o do valor
na lista: Valor1 &eacute; inserido no campo1 do novo registro, valor2
no campo2 e assim por diante. Voc&ecirc; deve separar os valores
com uma v&iacute;rgula e colocar os campos de textos entre aspas
(\" \").</p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">Comando UPDATE</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Cria uma consulta atualiza&ccedil;&atilde;o que
altera os valores dos campos em uma tabela especificada com base
em crit&eacute;rios espec&iacute;ficos.</p>
<p align=\"JUSTIFY\">Sintaxe: </p>
<p align=\"JUSTIFY\"><span class=\"mysql\">UPDATE tabela<br>
SET campo1 = valornovo, ...<br>
WHERE crit&eacute;rio;</span></p>
<p align=\"JUSTIFY\">Onde:</p>
<p align=\"JUSTIFY\">Tabela - O nome da tabela cujos os dados voc&ecirc;
quer modificar.</p>
<p align=\"JUSTIFY\">Valornovo - Uma express&atilde;o que determina
o valor a ser inserido em um campo espec&iacute;fico nos registros
atualizados.</p>
<p align=\"JUSTIFY\">crit&eacute;rio - Uma express&atilde;o que determina
quais registros devem ser atualizados. S&oacute; os registros que
satisfazem a express&atilde;o s&atilde;o atualizados.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">&#9;UPDATE &eacute; especialmente &uacute;til quando
voc&ecirc; quer alterar muitos registros ou quando os registros
que voc&ecirc; quer alterar est&atilde;o em v&aacute;rias tabelas.
Voc&ecirc; pode alterar v&aacute;rios campos ao mesmo tempo. </p>
<p align=\"JUSTIFY\">&#9;UPDATE n&atilde;o gera um conjunto de resultados.
Se voc&ecirc; quiser saber quais resultados ser&atilde;o alterados,
examine primeiro os resultados da consulta sele&ccedil;&atilde;o
que use os mesmos crit&eacute;rios e ent&atilde;o execute a consulta
atualiza&ccedil;&atilde;o.</p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">Comando DELETE</p>
<p align=\"JUSTIFY\">Remove registros de uma ou mais tabelas listadas
na cl&aacute;usula FROM que satisfaz a cl&aacute;usula WHERE.</p>
<p align=\"JUSTIFY\">Sintaxe</p>
<p align=\"JUSTIFY\"><span class=\"mysql\">DELETE [tabela.*]<br>
FROM tabela<br>
WHERE crit&eacute;rio</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">onde:</p>
<p align=\"JUSTIFY\">tabela.* - O nome opcional da tabela da qual os
registros s&atilde;o exclu&iacute;dos.</p>
<p align=\"JUSTIFY\">tabela - O nome da tabela da qual os registros
s&atilde;o exclu&iacute;dos.</p>
<p align=\"JUSTIFY\">crit&eacute;rio - Uma express&atilde;o que determina
qual registro deve ser exclu&iacute;do.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">&#9;DELETE &eacute; especialmente &uacute;til quando
voc&ecirc; quer excluir muitos registros. Para eliminar uma tabela
inteira do banco de dados, voc&ecirc; pode usar o m&eacute;todo
Execute com uma instru&ccedil;&atilde;o DROP. </p>
<p align=\"JUSTIFY\">Entretanto, se voc&ecirc; eliminar a tabela, a
estrutura &eacute; perdida. Por outro lado, quando voc&ecirc; usa
DELETE, apenas os dados s&atilde;o exclu&iacute;dos. A estrutura
da tabela e todas as propriedades da tabela, como atributos de campo
e &iacute;ndices, permanecem intactos. </p>
<p align=\"JUSTIFY\">Voc&ecirc; pode usar DELETE para remover registros
de tabelas que est&atilde;o em uma rela&ccedil;&atilde;o um por
v&aacute;rios com outras tabelas. Opera&ccedil;&otilde;es de exclus&atilde;o
em cascata fazem com que os registros das tabelas que est&atilde;o
no lado \"v&aacute;rios\" da rela&ccedil;&atilde;o sejam exclu&iacute;dos
quando os registros correspondentes do lado \"um\" da rela&ccedil;&atilde;o
s&atilde;o exclu&iacute;dos na consulta. Por exemplo, nas rela&ccedil;&otilde;es
entre as tabelas Clientes e Pedidos, a tabela Clientes est&aacute;
do lado \"um\" e a tabela Pedidos est&aacute; no lado \"v&aacute;rios\"
da rela&ccedil;&atilde;o. Excluir um registro em Clientes faz com
que os registros correspondentes em Pedidos sejam exclu&iacute;dos
se a op&ccedil;&atilde;o de exclus&atilde;o em cascata for especificada.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O DELETE exclui registros inteiros e n&atilde;o
apenas dados em campos espec&iacute;ficos. Se voc&ecirc; quiser
excluir valores de um campo espec&iacute;fico, crie uma consulta
atualiza&ccedil;&atilde;o que mude os valores para Null. </p>
<p align=\"JUSTIFY\">Ap&oacute;s remover os registros usando uma consulta
exclus&atilde;o, voc&ecirc; n&atilde;o poder&aacute; desfazer a
opera&ccedil;&atilde;o. Se quiser saber quais arquivos foram exclu&iacute;dos,
primeiro examine os resultados de uma consulta sele&ccedil;&atilde;o
que use o mesmo crit&eacute;rio e ent&atilde;o, execute a consulta
exclus&atilde;o. Mantenha os backups de seus dados. Se voc&ecirc;
excluir os registros errados, poder&aacute; recuper&aacute;-los
a partir dos seus backups.</p>

Comentários:

Mostrando 1 - 10 de 19 comentários
Alguem descobriu onde baixar esse tutorial???
02/09/2008 8:57am (~12 anos atrás)

Como baixar o tutorial ?
24/05/2008 2:56pm (~12 anos atrás)

João Santos disse:
como baixo o tutorial?

obrigado
30/03/2008 8:16am (~12 anos atrás)

Estou procurando a dias esse arquivos PDF com as imagens, pois não estou encontrando o arquivo completo, quero imprimir isso.

Obriado.
28/06/2007 5:30am (~13 anos atrás)

Cyrus disse:
01/06/2006 5:22am (~14 anos atrás)


tentei no passado aprender por apostila,
mais livros ajudar muito ,em especial aquele que envolver o leitor num projeto.
esse tipo de trabalho ou livro são excelente ajuda : mais legal pela iniciativa
25/11/2005 10:32am (~15 anos atrás)

Legal colega - me ajudou muito !
28/09/2005 6:29pm (~15 anos atrás)

As imagens não estão aparecendo e tentei acessar o site do autor, mas também não funciona.
Alguém tem disponível para download?
24/06/2005 7:06pm (~15 anos atrás)

dizem q a primeira impreção é a q fica,
axei bastante intuitivo.
:)
24/04/2005 11:56pm (~15 anos atrás)

Galera, quem estiver afim de baixar o tutorial é só acessar o seguinte link
http://www.helo.tato.nom.br/arquivos/apostilaphp_mv.pdf

Té +
11/03/2005 7:31pm (~15 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)