<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Diário de um DBA &#187; SQL</title>
	<atom:link href="http://silasmendes.com/dba/tag/sql/feed" rel="self" type="application/rss+xml" />
	<link>http://silasmendes.com/dba</link>
	<description>Tecnologia &#38; Banco de Dados</description>
	<lastBuildDate>Sun, 15 Apr 2012 12:20:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>O que é SQL?</title>
		<link>http://silasmendes.com/dba/o-que-e-sql</link>
		<comments>http://silasmendes.com/dba/o-que-e-sql#comments</comments>
		<pubDate>Tue, 26 Jul 2011 14:52:09 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[ORACLE]]></category>
		<category><![CDATA[SQL SERVER 2000]]></category>
		<category><![CDATA[SQL SERVER 2005]]></category>
		<category><![CDATA[SQL SERVER 2008]]></category>
		<category><![CDATA[SQL SERVER 2008 R2]]></category>
		<category><![CDATA[SQL SERVER 7]]></category>
		<category><![CDATA[banco de dados relacional]]></category>
		<category><![CDATA[db2]]></category>
		<category><![CDATA[gerenciador de banco de dados]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[plsql]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[sgbd]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Sql Server]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=949</guid>
		<description><![CDATA[Pra começar você precisa saber que SQL não é um banco de dados; SQL é um idioma (entre especialistas costumamos substituir o termo “idioma” por “linguagem”). A sigla SQL significa Structured Query Language; em português: linguagem de consulta estruturada. Destaquei &#8230; <a href="http://silasmendes.com/dba/o-que-e-sql">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pra começar você precisa saber que SQL não é um banco de dados; SQL é um idioma (entre especialistas costumamos substituir o termo “idioma” por “linguagem”). A sigla SQL significa <em><strong>Structured Query Language</strong></em>; em português: linguagem de <span style="color: #ff6600;"><strong>consulta </strong></span>estruturada. Destaquei o “consulta” porque o foco dela é justamente isso: consultar!</p>
<p><em><a href="http://silasmendes.com/dba/wp-content/uploads/2011/07/torre-de-babel.jpg"><img class="alignleft size-full wp-image-950" title="torre-de-babel" src="http://silasmendes.com/dba/wp-content/uploads/2011/07/torre-de-babel.jpg" alt="" width="260" height="401" /></a></em>Os bancos de dados (ou gerenciadores de bancos de dados) nasceram antes da linguagem SQL e cada qual tinha sua própria linguagem de consulta. Logo os usuários e fabricantes notaram que essa torre de babel não era interessante e optaram pela criação de um único idioma para consultar bancos de dados relacionais (em outra oportunidade falaremos sobre os bancos dimensionais). O órgão <em>American National</em> <em>Standards Institute </em>(ANSI) ficou responsável pela padronização desta linguagem e de tempos em tempos realiza encontros entre fabricantes para discutir a linguagem SQL e propor melhorias; no entanto esta padronização não impede que cada fabricante personalize a linguagem SQL para atender suas necessidades, e é aí que surgem os dialetos.  Por exemplo, o &#8220;dialeto&#8221; do gerenciador de banco de dados Oracle é o PL/SQL; o do SQL Server é o T-SQL (transact SQL) e etc.</p>
<p><span style="color: #ff0000;">Agora é importante que você não confunda a linguagem SQL com gerenciadores de banco de dados! Isso é um erro muito comum!</span></p>
<p><span style="color: #ff0000;"> </span></p>
<p>Por exemplo, o gerenciador de banco de dados Microsoft SQL Server (como o nome já diz), é um programa que gerencia bancos de dados. A arquitetura dos sistemas gerenciadores de bancos de dados (SGBDs) é definida de forma que os dados possam estar sempre consistentes e que sejam recuperados da forma mais rápida possível! Digamos que estes são itens de série de qualquer SGBD. Para tornar os gerenciadores de bancos de dados ainda mais atraentes, os fabricantes adicionam outras inúmeras funcionalidades para facilitar o trabalho dos DBAs, aumentar a segurança, a disponibilidade e etc.</p>
<p>Hoje existem diversos gerenciadores de <a href="http://silasmendes.com/dba/wp-content/uploads/2011/07/sgbds.png"><img class="size-medium wp-image-955 alignright" title="sgbds" src="http://silasmendes.com/dba/wp-content/uploads/2011/07/sgbds-300x205.png" alt="" width="300" height="205" /></a>bancos de dados disponíveis no mercado, como o Oracle, o Microsoft SQL Server, o PostgreSQL, entre outros. <strong>Todos utilizam a linguagem SQL para consultar dados</strong>.</p>
<p>A grande dúvida que paira na cabeça de alguns profissionais de TI é: qual o melhor banco de dados? SQL Server? Oracle?! DB2?</p>
<p>O que eu digo é o seguinte: o melhor gerenciador de banco de dados é aquele que atende adequadamente o seu negócio. É como comprar um carro: você compraria uma Ferrari para fazer <em>rally</em>?! Compraria um Fusca para fazer uma longa viagem pelo Brasil?</p>
<p><strong>Conclusão</strong></p>
<p>SQL é uma linguagem de consulta a bancos de dados relacionais. No mercado atual existem inúmeros sistemas gerenciadores de bancos de dados relacionais (comumente chamados apenas pela sigla SGBD); podemos citar como exemplo o Oracle, Microsoft SQL Server, DB2, etc. Estes gerenciadores de bancos de dados utilizam a linguagem SQL para consultar os dados; porém, adicionam à esta linguagem soluções para atender suas particularidades e aí nascem dialetos como o PL/SQL, PL/pgSQL e o T-SQL.</p>
<p>Nos próximos posts falaremos mais sobre a linguagem SQL e os gerenciadores de bancos de dados.</p>
<p>Para conhecer mais detalhes sobre a linguagem SQL, <a href="http://silasmendes.com/dba/dml-ddl-o-que-e-isso" target="_blank">dê uma olhada nesse post</a> e fique familiarizado com outras siglas populares no mundo SQL como: DDL e DML!</p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/o-que-e-sql/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DML, DDL?!? O que é isso?</title>
		<link>http://silasmendes.com/dba/dml-ddl-o-que-e-isso</link>
		<comments>http://silasmendes.com/dba/dml-ddl-o-que-e-isso#comments</comments>
		<pubDate>Mon, 18 Oct 2010 17:03:04 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[dcl]]></category>
		<category><![CDATA[ddl]]></category>
		<category><![CDATA[dml]]></category>
		<category><![CDATA[Linguagem]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=718</guid>
		<description><![CDATA[A linguagem SQL é composta por inúmeros comandos, os quais são agrupados da seguinte maneira: Comandos que definem dados; Comandos que manipulam dados; Comandos de controle de dados. Algumas literaturas adicionam outras subdivisões, mas neste post vamos nos ater somente &#8230; <a href="http://silasmendes.com/dba/dml-ddl-o-que-e-isso">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div>
<p>A linguagem SQL é composta por inúmeros comandos, os quais são agrupados da seguinte maneira:</p>
<ul>
<li> Comandos que definem dados;</li>
<li>Comandos que manipulam dados;</li>
<li>Comandos de controle de dados.</li>
</ul>
<blockquote><p>Algumas literaturas adicionam outras subdivisões, mas neste post vamos nos ater somente as citadas acima.</p></blockquote>
<ul>
<li><strong>DDL</strong></li>
</ul>
<p>Quando você cria um banco de dados, ele inicialmente está “vazio”; antes de começar a consultar e alterar dados é preciso definir onde e como as informações serão gravadas dentro do novo banco; então você cria diversas tabelas explicitando o tipo de dados de cada campo, as chaves estrangeiras, os índices, as regras e etc. Estes comandos de criação e alteração de estrutura são os comandos de DEFINIÇÃO dos dados, pois definem como os dados serão armazenados; em inglês são chamados de: <strong><em>Data Definition Language</em></strong><strong> (DDL)</strong>. Logo, quando falamos em comandos do tipo <strong>DDL</strong> estamos falando de comandos do tipo: CREATE, ALTER ou DROP; comandos que criam, alteram ou excluem objetos como tabelas, procedures, índices, relacionamentos e etc.</p>
<p>Exemplos de comandos DDL:</p>
<pre class="brush: sql; title: ; notranslate">

-- Cria uma tabela

CREATE TABLE Pessoa(
codigoPessoa char(11),
nomePessoa varchar(50));

-- Altera tabela

ALTER TABLE Pessoa
ADD numeroTelefone varchar(11);

-- Exclui tabela

DROP TABLE Pessoa;
</pre>
<ul>
<li><strong>DML</strong></li>
</ul>
<p>Depois que você criou suas tabelas, definiu relacionamentos, índices e etc., é hora de  manipular seus dados; os comandos SQL que MANIPULAM dados são os populares SELECT, INSERT, UPDATE e DELETE. Em inglês esses comandos são chamados de <em><strong>Data Manipulation Language</strong></em> o que explica a abreviação <strong>DML</strong>.</p>
<blockquote><p>Em algumas literaturas o comando SELECT não é considerado um comando de manipulação de dados, sendo enquadrado numa outra categoria: DQL, Data Query Language, em português: Linguagem de consulta.</p></blockquote>
<p>Exemplos de comandos DML:</p>
<pre class="brush: sql; title: ; notranslate">

-- Seleciona dados

SELECT nome+' '+sobrenome
FROM Pessoa;

-- Altera dados

UPDATE Pessoa
SET codigoPessoa = '35649869711';

-- Exclui dados

DELETE Pessoa;
</pre>
<ul>
<li><strong> DCL</strong></li>
</ul>
<p>Com o banco de dados pronto e rodando é importante definir quem poderá acessá-lo, enfim, precisamos definir a segurança do seu banco. Em inglês, os comandos responsáveis pelo controle dos dados são chamados de <em><strong>Data Control Language</strong></em> (<strong>DCL</strong>). Os comandos <strong>GRANT </strong>e <strong>REVOKE </strong>fazem parte deste grupo.</p>
<pre class="brush: sql; title: ; notranslate">

-- Permissão de seleção na tabela Pessoa para a usuária Maria

GRANT SELECT ON Pessoa TO Maria;

-- Permissão de seleção e inserção na tabela Pessoa para o usuário Alberto

GRANT SELECT, INSERT ON Pessoa TO Alberto;

-- Negando alterações na tabela Pessoa para usuários do grupo GRP_RH

DENY INSERT, UPDATE, DELETE ON Pessoa TO GRP_RH;
</pre>
<ul>
<li><strong> CONCLUSÃO</strong></li>
</ul>
<p>A linguagem SQL é constituída de diferentes tipos de comandos e estes comandos são agrupados em três categorias principais, sendo: comandos <strong>DDL </strong>as instruções que definem estruturas de armazenamento dos dados; <strong>DML </strong>os comandos que manipulam os dados e <strong>DCL </strong>os comandos que controlam o acesso aos dados.</p>
<p>Durante as atividades do dia-a-dia você utilizará com mais freqüência os comandos do tipo DDL e DML.</p>
<p>Até +</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/dml-ddl-o-que-e-isso/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>SQL Injection :)</title>
		<link>http://silasmendes.com/dba/sql-injection</link>
		<comments>http://silasmendes.com/dba/sql-injection#comments</comments>
		<pubDate>Mon, 09 Aug 2010 16:51:12 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Bla bla bla]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[drop table]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[sql injection]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=625</guid>
		<description><![CDATA[Acabei de ver essa no Buzz do meu amigo e professor Rodrigo Smarzaro&#8230; muito boa! Fonte: http://xkcd.com/327/ Traduzido por: seginfo.com.br]]></description>
			<content:encoded><![CDATA[<p>Acabei de ver essa no <em>Buzz </em>do meu amigo e professor Rodrigo Smarzaro&#8230; muito boa!</p>
<p><img class="aligncenter size-full wp-image-626" title="sql injection" src="http://silasmendes.com/dba/wp-content/uploads/2010/08/exploits_of_a_mom.png" alt="" width="666" height="205" /></p>
<p>Fonte: <a href="http://xkcd.com/327/">http://xkcd.com/327/</a></p>
<p>Traduzido por: <a href="http://www.seginfo.com.br/mais-uma-otima-tirinha-exploits-de-uma-mae/" target="_blank">seginfo.com.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/sql-injection/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PGCon Brasil 2009</title>
		<link>http://silasmendes.com/dba/pgcon-brasil-2009</link>
		<comments>http://silasmendes.com/dba/pgcon-brasil-2009#comments</comments>
		<pubDate>Wed, 23 Sep 2009 18:01:30 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Conferência]]></category>
		<category><![CDATA[PGCon]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=364</guid>
		<description><![CDATA[Minha inscrição está confirmada! 23 e 24 de Outubro no Centro de Convenções da Unicamp, em Campinas &#8211; SP! Mais informações: http://pgcon.postgresql.org.br/]]></description>
			<content:encoded><![CDATA[<p>Minha inscrição está confirmada!</p>
<p>23 e 24 de Outubro no Centro de Convenções da Unicamp, em Campinas &#8211; SP!</p>
<p style="text-align: center;"><a href="http://pgcon.postgresql.org.br/" target="_blank"><img class="size-full wp-image-365 aligncenter" title="PGcon 2009" src="http://silasmendes.com/dba/wp-content/uploads/2009/09/pgcon2009_horizontal_small.gif" alt="pgcon2009_horizontal_small" width="432" height="60" /></a></p>
<p>Mais informações: <a href="http://pgcon.postgresql.org.br/" target="_blank">http://pgcon.postgresql.org.br/</a></p>
<p><a href="http://pgcon.postgresql.org.br/" target="_blank"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/pgcon-brasil-2009/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

