<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Graciano Torrão's Deblog</title>
	<atom:link href="http://gracianotorrao.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gracianotorrao.wordpress.com</link>
	<description>O meu diário de trabalho em Debian ... e não só!</description>
	<lastBuildDate>Fri, 06 Nov 2009 23:21:10 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='gracianotorrao.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/f34bb289b93585baf0068db90e4483f7?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Graciano Torrão's Deblog</title>
		<link>http://gracianotorrao.wordpress.com</link>
	</image>
			<item>
		<title>Exemplo de uma aplicação escrita em C++/Qt com ligação a uma base de dados MySQL</title>
		<link>http://gracianotorrao.wordpress.com/2009/11/06/exemplo-de-uma-aplicacao-escrita-em-cqt-com-ligacao-a-uma-base-de-dados-mysql/</link>
		<comments>http://gracianotorrao.wordpress.com/2009/11/06/exemplo-de-uma-aplicacao-escrita-em-cqt-com-ligacao-a-uma-base-de-dados-mysql/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 23:17:07 +0000</pubDate>
		<dc:creator>Graciano Torrão</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[QT]]></category>

		<guid isPermaLink="false">http://gracianotorrao.wordpress.com/?p=1643</guid>
		<description><![CDATA[
Este é o quarto de uma série de exemplos que preparei para demonstrar alguns aspectos relacionados com a ligação a uma base de dados MySQL, utilizando a linguagem C++/Qt.
No fundo limitei-me a criar uma versão mais simplificado do que tinha feito aqui.
Convém lembrar que este exemplo se liga ao &#8220;localhost&#8221;, à base de dados Qt, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1643&subd=gracianotorrao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="aligncenter size-medium wp-image-1645" title="bd" src="http://gracianotorrao.files.wordpress.com/2009/11/bd.png?w=427&#038;h=343" alt="bd" width="427" height="343" /></p>
<p>Este é o quarto de uma série de exemplos que preparei para demonstrar alguns aspectos relacionados com a ligação a uma base de dados MySQL, utilizando a linguagem C++/Qt.</p>
<p>No fundo limitei-me a criar uma versão mais simplificado do que tinha feito <a href="http://gracianotorrao.wordpress.com/2009/04/23/exemplos-qt-ligacao-a-uma-base-de-dados-mysql/" target="_blank">aqui</a>.</p>
<p>Convém lembrar que este exemplo se liga ao &#8220;localhost&#8221;, à base de dados Qt, com o utilizador &#8220;qtuser&#8221; que utiliza a palavra passe &#8220;123&#8243;.</p>
<p>Se estas condições não forem satisfeitas, o primeiro semáforo(base de dados) nunca ficará verde.</p>
<p>O melhor é experimentarem que a &#8220;malta&#8221; dá as dicas que faltarem.</p>
<p>O código pode ser obtido <a href="http://www.box.net/shared/24zob0h6ah" target="_blank">aqui</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gracianotorrao.wordpress.com/1643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gracianotorrao.wordpress.com/1643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gracianotorrao.wordpress.com/1643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gracianotorrao.wordpress.com/1643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gracianotorrao.wordpress.com/1643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gracianotorrao.wordpress.com/1643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gracianotorrao.wordpress.com/1643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gracianotorrao.wordpress.com/1643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gracianotorrao.wordpress.com/1643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gracianotorrao.wordpress.com/1643/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1643&subd=gracianotorrao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gracianotorrao.wordpress.com/2009/11/06/exemplo-de-uma-aplicacao-escrita-em-cqt-com-ligacao-a-uma-base-de-dados-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e76057f5187b3f21cfb9019e114b8db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gracianotorrao</media:title>
		</media:content>

		<media:content url="http://gracianotorrao.files.wordpress.com/2009/11/bd.png?w=300" medium="image">
			<media:title type="html">bd</media:title>
		</media:content>
	</item>
		<item>
		<title>#7 Utilização elementar dos comandos MySQL do subconjunto DML</title>
		<link>http://gracianotorrao.wordpress.com/2009/10/24/7-utilizacao-elementar-dos-comandos-mysql-do-subconjunto-dml/</link>
		<comments>http://gracianotorrao.wordpress.com/2009/10/24/7-utilizacao-elementar-dos-comandos-mysql-do-subconjunto-dml/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 10:34:51 +0000</pubDate>
		<dc:creator>Graciano Torrão</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://gracianotorrao.wordpress.com/?p=1605</guid>
		<description><![CDATA[Nos pontos #1 a #6 falei sobre:

instalar um servidor/cliente MySQL;
criar uma base de dados;
criar utilizadores;
definir privilégios de acesso para os utilizadores;
criar tabelas

Se não se acreditarem basta carregar no golfinho para rever.
Mas de que serve tudo isto se eu não conseguir escrever /alterar/eliminar informação acerca de Jogadores e Equipas na minha base de dados?!
Por esta razão [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1605&subd=gracianotorrao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Nos pontos #1 a #6 falei sobre:</p>
<ul>
<li>instalar um servidor/cliente MySQL;</li>
<li>criar uma base de dados;</li>
<li>criar utilizadores;</li>
<li>definir privilégios de acesso para os utilizadores;</li>
<li>criar tabelas</li>
</ul>
<p>Se não se acreditarem basta carregar no golfinho para rever.</p>
<p>Mas de que serve tudo isto se eu não conseguir escrever /alterar/eliminar informação acerca de Jogadores e Equipas na minha base de dados?!</p>
<p>Por esta razão vou registar aqui uma versão reduzida do subconjunto DML ( Data Manipulation Language), cujos principais comandos são:</p>
<ul>
<li>SELECT ( <a href="http://dev.mysql.com/doc/refman/5.0/en/select.html" target="_blank">http://dev.mysql.com/doc/refman/5.0/en/select.html</a> )</li>
<li>INSERT ( <a href="http://dev.mysql.com/doc/refman/5.0/en/insert.html" target="_blank">http://dev.mysql.com/doc/refman/5.0/en/insert.html</a> )</li>
<li>DELETE ( <a href="http://dev.mysql.com/doc/refman/5.0/en/delete.html" target="_blank">http://dev.mysql.com/doc/refman/5.0/en/delete.html</a> )</li>
<li>UPDATE ( <a href="http://dev.mysql.com/doc/refman/5.0/en/update.html" target="_blank">http://dev.mysql.com/doc/refman/5.0/en/update.html</a> )</li>
</ul>
<p><strong><span style="color:#3366ff;"># SELECT</span></strong></p>
<p>Permite obter dados a partir das tabelas.</p>
<p>Como neste momento as nossas tabelas ainda estão vazias o resultado é pouco esclarecedor, pelo que vamos reutilizar estes comandos mais para a frente.</p>
<pre class="brush: sql;">
mysql&gt; SELECT * FROM Equipa;
Empty set (0.00 sec)

mysql&gt; SELECT * FROM Jogador;
Empty set (0.00 sec)
</pre>
<p><strong><span style="color:#3366ff;"># INSERT</span></strong></p>
<p>Permite inserir os dados nas tabelas.</p>
<p>Vamos então inserir alguns dados relativos a equipas e jogadores.</p>
<pre class="brush: sql;">
mysql&gt; DESCRIBE Equipa;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| id          | tinyint(3)  | NO   | PRI | NULL    |       |
| nome        | varchar(15) | NO   |     | NULL    |       |
| nrsocios    | int(7)      | NO   |     | NULL    |       |
| campeonatos | tinyint(2)  | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql&gt; INSERT INTO Equipa(id, nome, nrsocios, campeonatos)
 -&gt; VALUES(1, &quot;SCP&quot;, 1000000, 45);
Query OK, 1 row affected (0.00 sec)

mysql&gt; INSERT INTO Equipa VALUES(2, &quot;FCP&quot;, 900000, 1);
Query OK, 1 row affected (0.00 sec)

mysql&gt; INSERT INTO Equipa(id, nome, nrsocios)
 -&gt; VALUES(3, &quot;SLB&quot;, 12);
Query OK, 1 row affected (0.00 sec)

mysql&gt; INSERT INTO Equipa(id, nome, nrsocios) VALUES(3, &quot;ERRO&quot;, 0);
ERROR 1062 (23000): Duplicate entry '3' for key 1
mysql&gt; SELECT * FROM Equipa;
+----+------+----------+-------------+
| id | nome | nrsocios | campeonatos |
+----+------+----------+-------------+
|  1 | SCP  |  1000000 |          45 |
|  2 | FCP  |   900000 |           1 |
|  3 | SLB  |       12 |        NULL |
+----+------+----------+-------------+
3 rows in set (0.00 sec)
</pre>
<p><strong><span style="color:#3366ff;"># UPDATE</span></strong></p>
<p>Permite alterar os dados previamente inseridos.</p>
<p>Vamos realizar algumas alterações aleatórias muito elementares.</p>
<pre class="brush: sql;">
mysql&gt; UPDATE Equipa
 -&gt; SET campeonatos = 1
 -&gt; WHERE nome = 'SCP';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql&gt; SELECT * FROM Equipa;
+----+------+----------+-------------+
| id | nome | nrsocios | campeonatos |
+----+------+----------+-------------+
|  1 | SCP  |  1000000 |           1 |
|  2 | FCP  |   900000 |           0 |
|  3 | SLB  |       12 |           0 |
+----+------+----------+-------------+
3 rows in set (0.00 sec)
</pre>
<p>x</p>
<p><strong><span style="color:#3366ff;"># DELETE</span></strong></p>
<p>Permite eliminar linhas/registos de uma tabela que foram previamente inseridos.</p>
<p>Partindo do princípio que duas das rquipas deveriam ser erradicadas do nosso campeonato,  vamos realizar algumas alterações aleatórias muito elementares.</p>
<pre class="brush: sql;">
mysql&gt; DELETE FROM Equipa
 -&gt; WHERE nome &lt;&gt; 'SCP';
Query OK, 2 rows affected (0.00 sec)

mysql&gt; SELECT * FROM Equipa;
+----+------+----------+-------------+
| id | nome | nrsocios | campeonatos |
+----+------+----------+-------------+
|  1 | SCP  |  1000000 |           1 |
+----+------+----------+-------------+
1 row in set (0.00 sec)
</pre>
<p>E que fique claro &#8230; <strong>NÃO SOU SPORTINGUISTA</strong> &#8230; sou futebolisticamente &#8220;<strong>ateu</strong>&#8220;.</p>
<p><a href="http://gracianotorrao.wordpress.com/2009/10/10/mysql-instalacao-e-preparacao-da-base-de-dados-num-sistema-debian/" target="_self"><img class="alignright size-full wp-image-1506" title="principal100" src="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png?w=100&#038;h=65" alt="principal100" width="100" height="65" /></a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gracianotorrao.wordpress.com/1605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gracianotorrao.wordpress.com/1605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gracianotorrao.wordpress.com/1605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gracianotorrao.wordpress.com/1605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gracianotorrao.wordpress.com/1605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gracianotorrao.wordpress.com/1605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gracianotorrao.wordpress.com/1605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gracianotorrao.wordpress.com/1605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gracianotorrao.wordpress.com/1605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gracianotorrao.wordpress.com/1605/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1605&subd=gracianotorrao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gracianotorrao.wordpress.com/2009/10/24/7-utilizacao-elementar-dos-comandos-mysql-do-subconjunto-dml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e76057f5187b3f21cfb9019e114b8db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gracianotorrao</media:title>
		</media:content>

		<media:content url="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png" medium="image">
			<media:title type="html">principal100</media:title>
		</media:content>
	</item>
		<item>
		<title>Como criar um Splash Screen para uma aplicação em Qt</title>
		<link>http://gracianotorrao.wordpress.com/2009/10/23/como-criar-um-splash-screen-para-uma-aplicacao-em-qt/</link>
		<comments>http://gracianotorrao.wordpress.com/2009/10/23/como-criar-um-splash-screen-para-uma-aplicacao-em-qt/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 17:58:06 +0000</pubDate>
		<dc:creator>Graciano Torrão</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[QT]]></category>

		<guid isPermaLink="false">http://gracianotorrao.wordpress.com/?p=1575</guid>
		<description><![CDATA[
Um splashscreen é um elemento gráfico que é exibido quando uma aplicação é iniciada.
Estes podem ser utilizados por razões puramente &#8220;estéticas&#8221; mas tornam-se particularmente úteis quando a aplicação demora algum tempo a carregar. Nestas situações é possível ir fornecendo alguma informação ao utilizador, de forma a que este saiba que a aplicação está a ser [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1575&subd=gracianotorrao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="aligncenter size-full wp-image-1591" title="f0" src="http://gracianotorrao.files.wordpress.com/2009/10/f01.png?w=637&#038;h=311" alt="f0" width="637" height="311" /></p>
<p>Um splashscreen é um elemento gráfico que é exibido quando uma aplicação é iniciada.<br />
Estes podem ser utilizados por razões puramente &#8220;estéticas&#8221; mas tornam-se particularmente úteis quando a aplicação demora algum tempo a carregar. Nestas situações é possível ir fornecendo alguma informação ao utilizador, de forma a que este saiba que a aplicação está a ser carregada.<br />
O ponto de partida para criarmos o nosso splashscreen em Qt deverá naturalmente ser a classe que possibilita a sua criação, ou seja, <a href="http://doc.trolltech.com/4.5/qsplashscreen.html" target="_blank">QSplashScreen</a>.</p>
<p>De seguida, e  como um exemplo ajuda sempre, vou disponibilizar as experiências que realizei:</p>
<p><span style="color:#3366ff;"><strong>#1 &#8211; O básico</strong></span></p>
<p>Surge o splashcreen enquanto a janela principal é carregada. Neste caso é tudo muito rápido pois a aplicação exemplo é minúscula.</p>
<p>Exemplo:</p>
<pre class="brush: cpp;">
#include &lt;QtGui/QApplication&gt;
#include &quot;mainwindow.h&quot;
#include &lt;QSplashScreen&gt;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QPixmap pixmap(&quot;f0.png&quot;);
    QSplashScreen splash;
    splash.setPixmap(pixmap);
    splash.show();
    MainWindow w;
    w.show();
    splash.finish(&amp;w);
    return a.exec();
}
</pre>
<p><a href="http://www.box.net/shared/xtl4ooxqld" target="_blank">Download</a></p>
<p><span style="color:#3366ff;"><strong>#2 &#8211; Garantir que o splashscreen &#8220;sobrevive&#8221; por 5 segundos, enquanto exibo uma mensagem<br />
</strong></span></p>
<p>Exemplo:</p>
<pre class="brush: cpp;">
#include &lt;QtGui/QApplication&gt;
#include &quot;mainwindow.h&quot;
#include &lt;QSplashScreen&gt;
#include &lt;QTimer&gt;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QPixmap pixmap(&quot;f0.png&quot;);
    QSplashScreen splash;
    splash.setPixmap(QPixmap(&quot;f0.png&quot;));
    splash.show();
    splash.showMessage(QObject::trUtf8(&quot;A preparar a janela principal ...&quot;), Qt::AlignRight|Qt::AlignTop, Qt::black);
    MainWindow w;
    QTimer::singleShot(5000, &amp;splash, SLOT(close()));
    QTimer::singleShot(5000, &amp;w, SLOT(show()));
    return a.exec();
}
</pre>
<p><a href="http://www.box.net/shared/vi3tyl2u2b" target="_blank">Download</a></p>
<p><span style="color:#3366ff;"><strong>#3 &#8211; Tenho várias tarefas para executar, e quero ir mantendo o utilizador informado. Entretanto vou mostrando imagens diferentes.<br />
</strong></span></p>
<p>Exemplo:</p>
<pre class="brush: cpp;">
void operacao_03();

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QSplashScreen *splash = new QSplashScreen;
    splash-&gt;setPixmap(QPixmap(&quot;:/splash/f2&quot;));
    splash-&gt;show();
    splash-&gt;showMessage(QObject::trUtf8(&quot;A executar a operação 01 ...&quot;), Qt::AlignRight|Qt::AlignTop, Qt::black);
    operacao_01();
    splash-&gt;setPixmap(QPixmap(&quot;:/splash/f1&quot;));
    splash-&gt;showMessage(QObject::trUtf8(&quot;A executar a operação 02 ...&quot;), Qt::AlignRight|Qt::AlignBottom, Qt::black);
    operacao_02();
    splash-&gt;setPixmap(QPixmap(&quot;:/splash/f0&quot;));
    splash-&gt;showMessage(QObject::trUtf8(&quot;A executar a operação 03 ...&quot;), Qt::AlignRight|Qt::AlignTop, Qt::black);
    operacao_03();

    MainWindow w;
    w.show();
    splash-&gt;finish(&amp;w);
    delete splash;
    return a.exec();
}

void operacao_01(){
    sleep(2);
}

void operacao_02(){
    sleep(2);
}

void operacao_03(){
    sleep(2);
}
</pre>
<p><a href="http://www.box.net/shared/uv7p4ytfdy" target="_blank">Download</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gracianotorrao.wordpress.com/1575/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gracianotorrao.wordpress.com/1575/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gracianotorrao.wordpress.com/1575/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gracianotorrao.wordpress.com/1575/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gracianotorrao.wordpress.com/1575/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gracianotorrao.wordpress.com/1575/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gracianotorrao.wordpress.com/1575/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gracianotorrao.wordpress.com/1575/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gracianotorrao.wordpress.com/1575/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gracianotorrao.wordpress.com/1575/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1575&subd=gracianotorrao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gracianotorrao.wordpress.com/2009/10/23/como-criar-um-splash-screen-para-uma-aplicacao-em-qt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e76057f5187b3f21cfb9019e114b8db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gracianotorrao</media:title>
		</media:content>

		<media:content url="http://gracianotorrao.files.wordpress.com/2009/10/f01.png" medium="image">
			<media:title type="html">f0</media:title>
		</media:content>
	</item>
		<item>
		<title>#6 Criar tabelas</title>
		<link>http://gracianotorrao.wordpress.com/2009/10/10/6-criar-tabelas/</link>
		<comments>http://gracianotorrao.wordpress.com/2009/10/10/6-criar-tabelas/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 16:23:23 +0000</pubDate>
		<dc:creator>Graciano Torrão</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://gracianotorrao.wordpress.com/?p=1555</guid>
		<description><![CDATA[Note que todas as operações foram realizadas como root.
A partir de agora deverá iniciar uma sessão com o utilizador “psi”, com o qual pode fazer “tudo o que lhe passar pela cabeça”, pois as alterações apenas irão incidir sobre a base de dados “exemplo”.
A sequência seguinte demonstra como podemos:

criar a tabela Equipa (id, nome, nrsocios, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1555&subd=gracianotorrao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Note que todas as operações foram realizadas como root.</p>
<p>A partir de agora deverá iniciar uma sessão com o utilizador “psi”, com o qual pode fazer “tudo o que lhe passar pela cabeça”, pois as alterações apenas irão incidir sobre a base de dados “exemplo”.</p>
<p>A sequência seguinte demonstra como podemos:</p>
<ol>
<li>criar a tabela Equipa (id, nome, nrsocios, campeonatos);</li>
<li>criar a tabela Jogador (numero, nome, posicao, idade, equipa);</li>
<li>criar a tabela Lixo (atributo1, atributo2, atributo3);</li>
<li>visualizar estrutura da tabela “Lixo”;</li>
<li>eliminar o “atributo3” da tabela “Lixo”;</li>
<li>adicionar o “atributo4” à tabela “Lixo”;</li>
<li>eliminar a tabela “Lixo”.</li>
</ol>
<pre class="brush: sql;">
mysql&gt; CREATE TABLE Equipa
 -&gt; (
 -&gt; id TINYINT(3) PRIMARY KEY,
 -&gt; nome VARCHAR(15) NOT NULL,
 -&gt; nrsocios INT(7) NOT NULL,
 -&gt; campeonatos TINYINT(2)
 -&gt; );
Query OK, 0 rows affected (0.00 sec)

mysql&gt; CREATE TABLE Jogador
 -&gt; (
 -&gt; nrid INT(8) PRIMARY KEY,
 -&gt; nrcamisola TINYINT(2),
 -&gt; nome varchar(30) NOT NULL,
 -&gt; posicao VARCHAR(10) NOT NULL,
 -&gt; idade TINYINT(2),
 -&gt; equipa TINYINT(3) NOT NULL
 -&gt; );
Query OK, 0 rows affected (0.00 sec)

mysql&gt; CREATE TABLE Lixo
 -&gt; (
 -&gt; atributo1 INT(8) PRIMARY KEY,
 -&gt; atributo2 TINYINT(2),
 -&gt; atributo3 varchar(30) NOT NULL
 -&gt; );
Query OK, 0 rows affected (0.00 sec)

mysql&gt; DESCRIBE Lixo;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| atributo1 | int(8)      | NO   | PRI | NULL    |       |
| atributo2 | tinyint(2)  | YES  |     | NULL    |       |
| atributo3 | varchar(30) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql&gt; ALTER TABLE Lixo DROP COLUMN Atributo3;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql&gt; DESCRIBE Lixo;
+-----------+------------+------+-----+---------+-------+
| Field     | Type       | Null | Key | Default | Extra |
+-----------+------------+------+-----+---------+-------+
| atributo1 | int(8)     | NO   | PRI | NULL    |       |
| atributo2 | tinyint(2) | YES  |     | NULL    |       |
+-----------+------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql&gt; ALTER TABLE Lixo ADD COLUMN Atributo4 int(4);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql&gt; DESCRIBE Lixo;
+-----------+------------+------+-----+---------+-------+
| Field     | Type       | Null | Key | Default | Extra |
+-----------+------------+------+-----+---------+-------+
| atributo1 | int(8)     | NO   | PRI | NULL    |       |
| atributo2 | tinyint(2) | YES  |     | NULL    |       |
| Atributo4 | int(4)     | YES  |     | NULL    |       |
+-----------+------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql&gt; DROP TABLE Lixo;
Query OK, 0 rows affected (0.00 sec)

mysql&gt; SHOW TABLES;
+-------------------+
| Tables_in_Exemplo |
+-------------------+
| Equipa            |
| Jogador           |
+-------------------+
2 rows in set (0.00 sec)
</pre>
<p>Saber mais:</p>
<p><a href="http://dev.mysql.com/doc/refman/5.0/en/create-table.html" target="_self">http://dev.mysql.com/doc/refman/5.0/en/create-table.html</a></p>
<p><a href="http://dev.mysql.com/doc/refman/5.0/en/getting-information.html" target="_self">http://dev.mysql.com/doc/refman/5.0/en/getting-information.html</a></p>
<p><a href="http://dev.mysql.com/doc/refman/5.0/en/alter-table.html" target="_self">http://dev.mysql.com/doc/refman/5.0/en/alter-table.html</a></p>
<p><a href="http://dev.mysql.com/doc/refman/5.0/en/drop-table.html" target="_self">http://dev.mysql.com/doc/refman/5.0/en/drop-table.html</a></p>
<p><a href="http://gracianotorrao.wordpress.com/2009/10/10/mysql-instalacao-e-preparacao-da-base-de-dados-num-sistema-debian/" target="_self"><img class="alignright size-full wp-image-1506" title="principal100" src="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png?w=100&#038;h=65" alt="principal100" width="100" height="65" /></a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gracianotorrao.wordpress.com/1555/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gracianotorrao.wordpress.com/1555/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gracianotorrao.wordpress.com/1555/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gracianotorrao.wordpress.com/1555/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gracianotorrao.wordpress.com/1555/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gracianotorrao.wordpress.com/1555/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gracianotorrao.wordpress.com/1555/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gracianotorrao.wordpress.com/1555/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gracianotorrao.wordpress.com/1555/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gracianotorrao.wordpress.com/1555/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1555&subd=gracianotorrao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gracianotorrao.wordpress.com/2009/10/10/6-criar-tabelas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e76057f5187b3f21cfb9019e114b8db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gracianotorrao</media:title>
		</media:content>

		<media:content url="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png" medium="image">
			<media:title type="html">principal100</media:title>
		</media:content>
	</item>
		<item>
		<title>MySQL &#8211; Instalação e preparação da Base de dados num sistema Debian</title>
		<link>http://gracianotorrao.wordpress.com/2009/10/10/mysql-instalacao-e-preparacao-da-base-de-dados-num-sistema-debian/</link>
		<comments>http://gracianotorrao.wordpress.com/2009/10/10/mysql-instalacao-e-preparacao-da-base-de-dados-num-sistema-debian/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 15:22:35 +0000</pubDate>
		<dc:creator>Graciano Torrão</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://gracianotorrao.wordpress.com/?p=1500</guid>
		<description><![CDATA[Imagine que é um utilizador de Debian GNU/Linux e está prestes a iniciar-se no estudo das bases de dados MySQL!
Como aluno aplicado que com certeza é, vai ter todo o interesse em poder realizar todos os exercícios também na sua máquina pessoal.
Neste artigo vou tentar resumir os aspectos mais práticos no que diz respeito à [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1500&subd=gracianotorrao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Imagine que é um utilizador de Debian GNU/Linux e está prestes a iniciar-se no estudo das bases de dados MySQL!<br />
Como aluno aplicado que com certeza é, vai ter todo o interesse em poder realizar todos os exercícios também na sua máquina pessoal.<br />
Neste artigo vou tentar resumir os aspectos mais práticos no que diz respeito à instalação e utilização de uma base de dados MySQL num sistema Debian GNU/Linux.<br />
Não vou estar com preocupações de segurança nem performance da base de dados, focando-me apenas nos aspectos que permitem obter resultados rápidos e deixando o aprofundamento dos conteúdos abordados para uma fase posterior.<br />
Pretendo apresentar um exemplo que abrange desde a instalação do servidor até à criação de uma Base de Dados Relacional muito simples, preocupando-me apenas com a utilização dos subconjuntos da linguagem SQL de <a href="http://pt.wikipedia.org/wiki/Linguagem_de_defini%C3%A7%C3%A3o_de_dados" target="_blank">Linguagem de definição de dados</a> (LDD ou DDL, do Inglês Data Definition Language) e de <a href="http://pt.wikipedia.org/wiki/Linguagem_de_controle_de_dados" target="_blank">Linguagem de Controle de Dados</a> (LCD ou DCL do inglês Data Control Language).</p>
<p>No caso prático em estudo vamos falar de futebol, e o modelo correspondente é o seguinte:</p>
<p><img class="aligncenter size-medium wp-image-1502" title="diagrama1" src="http://gracianotorrao.files.wordpress.com/2009/10/diagrama1.png?w=300&#038;h=48" alt="diagrama1" width="300" height="48" /><br />
Os atributos associados às duas entidades são os seguintes:</p>
<p style="padding-left:30px;"><strong>Equipa</strong> (<span style="text-decoration:underline;">id</span>, nome, nrsocios, campeonatos)<br />
<strong>Jogador</strong> (<span style="text-decoration:underline;">numero</span>, nome, posicao, idade, equipa)</p>
<p>Para evitar que este artigo fique demasiado longo vou utilizar uma estratégia semelhante à que usei <a href="http://gracianotorrao.wordpress.com/2008/08/22/manipulacao-de-ficheiros-de-texto-em-linguagem-c/" target="_blank">aqui</a>.<br />
Os vários passos a seguir são apresentados aqui, na forma de uma hiperligação para um subartigo que cobre apenas essa tarefa específica, nos quais terei o cuidado de deixar alguns links para páginas com informação mais detalhada.</p>
<p>#1 <a href="http://gracianotorrao.wordpress.com/2009/10/10/1-instalacao-do-servidor-e-cliente-de-mysql/" target="_self">Instalação do servidor e cliente de MySQL</a><br />
#2 <a href="http://gracianotorrao.wordpress.com/2009/10/10/2-iniciar-uma-sessao-em-modo-interactivo/" target="_self">Iniciar uma sessão em modo interactivo</a><br />
#3 <a href="http://gracianotorrao.wordpress.com/2009/10/10/3-criar-utilizadores/" target="_self">Criar utilizadores</a><br />
#4 <a href="http://gracianotorrao.wordpress.com/2009/10/10/4-criareliminar-uma-base-de-dados/" target="_self">Criar/Eliminar uma base de dados</a><br />
#5 <a href="http://gracianotorrao.wordpress.com/2009/10/10/5-definir-os-privilegios-de-acesso-dos-utilizadores-as-bases-de-dados/" target="_self">Definir os privilégios de acesso dos utilizadores às bases de dados</a><br />
#6 <a href="http://gracianotorrao.wordpress.com/2009/10/10/6-criar-tabelas/" target="_self">Criar tabelas</a></p>
<p>#7 <a href="http://gracianotorrao.wordpress.com/2009/10/24/7-utilizacao-elementar-dos-comandos-mysql-do-subconjunto-dml/" target="_self">Utilização elementar dos comandos MySQL do subconjunto DML</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gracianotorrao.wordpress.com/1500/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gracianotorrao.wordpress.com/1500/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gracianotorrao.wordpress.com/1500/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gracianotorrao.wordpress.com/1500/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gracianotorrao.wordpress.com/1500/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gracianotorrao.wordpress.com/1500/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gracianotorrao.wordpress.com/1500/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gracianotorrao.wordpress.com/1500/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gracianotorrao.wordpress.com/1500/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gracianotorrao.wordpress.com/1500/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1500&subd=gracianotorrao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gracianotorrao.wordpress.com/2009/10/10/mysql-instalacao-e-preparacao-da-base-de-dados-num-sistema-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e76057f5187b3f21cfb9019e114b8db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gracianotorrao</media:title>
		</media:content>

		<media:content url="http://gracianotorrao.files.wordpress.com/2009/10/diagrama1.png?w=300" medium="image">
			<media:title type="html">diagrama1</media:title>
		</media:content>
	</item>
		<item>
		<title>#5 Definir os privilégios de acesso dos utilizadores às bases de dados</title>
		<link>http://gracianotorrao.wordpress.com/2009/10/10/5-definir-os-privilegios-de-acesso-dos-utilizadores-as-bases-de-dados/</link>
		<comments>http://gracianotorrao.wordpress.com/2009/10/10/5-definir-os-privilegios-de-acesso-dos-utilizadores-as-bases-de-dados/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 15:18:58 +0000</pubDate>
		<dc:creator>Graciano Torrão</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://gracianotorrao.wordpress.com/?p=1535</guid>
		<description><![CDATA[Por esta altura já temos a base de dados “exemplo” e o utilizador ”psi” criados.
Para que o utilizador “psi” possa utilizar a base de dados “exemplo” é necessário atribuir-lhe privilégios de acesso.
A sequência seguinte demonstra como podemos:

 verificar a existência da base de dados “exemplo”;
 verificar a existência do utilizador &#8216;psi&#8217; e respectivos privilégios;
 atribuir [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1535&subd=gracianotorrao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Por esta altura já temos a base de dados “exemplo” e o utilizador ”psi” criados.<br />
Para que o utilizador “psi” possa utilizar a base de dados “exemplo” é necessário atribuir-lhe privilégios de acesso.<br />
A sequência seguinte demonstra como podemos:</p>
<ol>
<li> verificar a existência da base de dados “exemplo”;</li>
<li> verificar a existência do utilizador &#8216;psi&#8217; e respectivos privilégios;</li>
<li> atribuir ao utilizador “psi” privilégios totais sobre a base de dados “exemplo”;</li>
<li> verificar os novos privilégios do utilizador;</li>
<li> remover os privilégios do utilizador &#8216;psi&#8217;;</li>
<li> verificar se tudo voltou à situação inicial.</li>
</ol>
<pre class="brush: sql;">mysql&gt; SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| exemplo            |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)

mysql&gt; SHOW GRANTS FOR 'psi';
+----------------------------------------------------------------------------------------------------+
| Grants for psi@%                                                                                   |
+----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'psi'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
+----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql&gt; GRANT ALL PRIVILEGES ON exemplo.* TO 'psi'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql&gt; SHOW GRANTS FOR 'psi';
+----------------------------------------------------------------------------------------------------+
| Grants for psi@%                                                                                   |
+----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'psi'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
| GRANT ALL PRIVILEGES ON `exemplo`.* TO 'psi'@'%'                                                   |
+----------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql&gt; REVOKE ALL ON exemplo.* FROM 'psi'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql&gt; SHOW GRANTS FOR 'psi';
+----------------------------------------------------------------------------------------------------+
| Grants for psi@%                                                                                   |
+----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'psi'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
+----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
</pre>
<p>Nota: Após a utilização de GRANT ou REVOKE é necessário executar o seguinte comando de forma a que as alterações tenham efeito:</p>
<pre class="brush: sql;">mysql&gt; FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
</pre>
<p>Saber mais em:</p>
<p><a href="http://dev.mysql.com/doc/refman/5.1/en/grant.html" target="_blank">http://dev.mysql.com/doc/refman/5.1/en/grant.html</a><br />
<a href="http://dev.mysql.com/doc/refman/5.0/en/revoke.html" target="_blank">http://dev.mysql.com/doc/refman/5.0/en/revoke.html</a></p>
<p><a href="http://gracianotorrao.wordpress.com/2009/10/10/mysql-instalacao-e-preparacao-da-base-de-dados-num-sistema-debian/" target="_blank"><img class="alignright size-full wp-image-1506" title="principal100" src="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png?w=100&#038;h=65" alt="principal100" width="100" height="65" /></a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gracianotorrao.wordpress.com/1535/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gracianotorrao.wordpress.com/1535/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gracianotorrao.wordpress.com/1535/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gracianotorrao.wordpress.com/1535/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gracianotorrao.wordpress.com/1535/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gracianotorrao.wordpress.com/1535/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gracianotorrao.wordpress.com/1535/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gracianotorrao.wordpress.com/1535/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gracianotorrao.wordpress.com/1535/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gracianotorrao.wordpress.com/1535/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1535&subd=gracianotorrao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gracianotorrao.wordpress.com/2009/10/10/5-definir-os-privilegios-de-acesso-dos-utilizadores-as-bases-de-dados/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e76057f5187b3f21cfb9019e114b8db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gracianotorrao</media:title>
		</media:content>

		<media:content url="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png" medium="image">
			<media:title type="html">principal100</media:title>
		</media:content>
	</item>
		<item>
		<title>#4 Criar/Eliminar uma base de dados</title>
		<link>http://gracianotorrao.wordpress.com/2009/10/10/4-criareliminar-uma-base-de-dados/</link>
		<comments>http://gracianotorrao.wordpress.com/2009/10/10/4-criareliminar-uma-base-de-dados/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 15:14:01 +0000</pubDate>
		<dc:creator>Graciano Torrão</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://gracianotorrao.wordpress.com/?p=1532</guid>
		<description><![CDATA[A criação de uma base de dados, na sua forma mais simples, passa pela execução de um comando muito simples:
mysql&#62; CREATE DATABASE nome_bd;
Eliminar uma base de dados é igualmente simples, bastando executar:
mysql&#62; DROP DATABASE nome_bd;
Nas linhas seguintes está representada uma sessão em que são realizadas três operações:

 é criada uma base de dados com o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1532&subd=gracianotorrao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A criação de uma base de dados, na sua forma mais simples, passa pela execução de um comando muito simples:</p>
<p><strong>mysql&gt; CREATE DATABASE nome_bd;</strong></p>
<p>Eliminar uma base de dados é igualmente simples, bastando executar:</p>
<p><strong>mysql&gt; DROP DATABASE nome_bd;</strong></p>
<p>Nas linhas seguintes está representada uma sessão em que são realizadas três operações:</p>
<ol>
<li> é criada uma base de dados com o comando CREATE DATABASE exemplo;</li>
<li> são visualizadas as bases de dados existentes com o comando SHOW DATABASES;</li>
<li> é eliminada a base de dados com o comando DROP DATABASE exemplo;</li>
<li> verificar se a base de dados foi eliminada.</li>
</ol>
<pre class="brush: sql;">mysql&gt; CREATE DATABASE IF NOT EXISTS exemplo;
Query OK, 1 row affected (0.00 sec)

mysql&gt; SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| exemplo            |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)

mysql&gt; DROP DATABASE exemplo;
Query OK, 0 rows affected (0.00 sec)

mysql&gt; SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
2 rows in set (0.00 sec)</pre>
<p>Saber mais em:<br />
<a href="http://dev.mysql.com/doc/refman/5.0/en/create-database.html" target="_blank"> http://dev.mysql.com/doc/refman/5.0/en/create-database.html</a><br />
<a href="http://dev.mysql.com/doc/refman/5.0/en/drop-database.html" target="_blank"> http://dev.mysql.com/doc/refman/5.0/en/drop-database.html</a></p>
<pre><a href="http://gracianotorrao.wordpress.com/2009/10/10/mysql-instalacao-e-preparacao-da-base-de-dados-num-sistema-debian/" target="_self"><img class="alignright size-full wp-image-1506" title="principal100" src="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png?w=100&#038;h=65" alt="principal100" width="100" height="65" /></a>
</pre>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gracianotorrao.wordpress.com/1532/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gracianotorrao.wordpress.com/1532/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gracianotorrao.wordpress.com/1532/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gracianotorrao.wordpress.com/1532/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gracianotorrao.wordpress.com/1532/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gracianotorrao.wordpress.com/1532/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gracianotorrao.wordpress.com/1532/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gracianotorrao.wordpress.com/1532/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gracianotorrao.wordpress.com/1532/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gracianotorrao.wordpress.com/1532/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1532&subd=gracianotorrao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gracianotorrao.wordpress.com/2009/10/10/4-criareliminar-uma-base-de-dados/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e76057f5187b3f21cfb9019e114b8db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gracianotorrao</media:title>
		</media:content>

		<media:content url="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png" medium="image">
			<media:title type="html">principal100</media:title>
		</media:content>
	</item>
		<item>
		<title>#3 Criar utilizadores</title>
		<link>http://gracianotorrao.wordpress.com/2009/10/10/3-criar-utilizadores/</link>
		<comments>http://gracianotorrao.wordpress.com/2009/10/10/3-criar-utilizadores/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 14:59:09 +0000</pubDate>
		<dc:creator>Graciano Torrão</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://gracianotorrao.wordpress.com/?p=1514</guid>
		<description><![CDATA[Uma vez que é necessário garantir o controlo do acesso à base de dados, temos que proceder à criação de utilizadores, ao quais se associam posteriormente determinados privilégios de acesso.
Vamos apenas criar o utilizador e posteriormente, noutro tópico, associar-lhe alguns privilégios de acesso.
O nosso utilizador irá ter a designação “psi” e palavra-passe “123”.
A seguinte sequência [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1514&subd=gracianotorrao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:left;">Uma vez que é necessário garantir o controlo do acesso à base de dados, temos que proceder à criação de utilizadores, ao quais se associam posteriormente determinados privilégios de acesso.<br />
Vamos apenas criar o utilizador e posteriormente, noutro tópico, associar-lhe alguns privilégios de acesso.<br />
O nosso utilizador irá ter a designação “psi” e palavra-passe “123”.</p>
<p style="text-align:left;">A seguinte sequência de comandos permite:<br />
1.criar o utilizador &#8216;psi&#8217; que pode aceder ao servidor a partir de qualquer host (&#8216;%&#8217;);<br />
2.verificar que este utilizador não possui quaisquer privilégios ( USAGE );<br />
3.eliminar o utilizador.</p>
<pre class="brush: sql;">
gt2009@debian:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 57
Server version: 5.0.51a-24+lenny2 (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql&gt; CREATE USER 'psi'@'%' IDENTIFIED BY '123';
Query OK, 0 rows affected (0.00 sec)

mysql&gt; SHOW GRANTS FOR 'psi';
+----------------------------------------------------------------------------------------------------+
| Grants for psi@%                                                                                   |
+----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'psi'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257'|
+----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql&gt; DROP USER 'psi';
Query OK, 0 rows affected (0.00 sec)
</pre>
<p> Saber mais em: <a href="http://dev.mysql.com/doc/refman/5.0/en/adding-users.html" target="_blank"> http://dev.mysql.com/doc/refman/5.0/en/adding-users.html</a> <a href="http://dev.mysql.com/doc/refman/5.0/en/show-grants.html" target="_blank"> http://dev.mysql.com/doc/refman/5.0/en/show-grants.html</a> <a href="http://dev.mysql.com/doc/refman/5.0/en/drop-user.html" target="_blank"> http://dev.mysql.com/doc/refman/5.0/en/drop-user.html</a> </p>
<p><strong>Nota:</strong>Embora nesta fase não deseje ainda falar do comando SELECT, deixo aqui uma forma muito simples para se obter uma listagem dos utilizadores existentes.</p>
<pre class="brush: sql;">
mysql&gt; SELECT user FROM mysql.user;
+------------------+
| user             |
+------------------+
| lixo             |
| lixo33           |
| psi              |
| user01           |
| user02           |
| user03           |
| root             |
| root             |
| debian-sys-maint |
| monty            |
| root             |
+------------------+
11 rows in set (0.00 sec)
</pre>
<p><a href="http://gracianotorrao.wordpress.com/2009/10/10/mysql-instalacao-e-preparacao-da-base-de-dados-num-sistema-debian/" target="_self"><img class="alignright size-full wp-image-1506" title="principal100" src="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png?w=100&#038;h=65" alt="principal100" width="100" height="65" /></a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gracianotorrao.wordpress.com/1514/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gracianotorrao.wordpress.com/1514/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gracianotorrao.wordpress.com/1514/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gracianotorrao.wordpress.com/1514/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gracianotorrao.wordpress.com/1514/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gracianotorrao.wordpress.com/1514/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gracianotorrao.wordpress.com/1514/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gracianotorrao.wordpress.com/1514/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gracianotorrao.wordpress.com/1514/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gracianotorrao.wordpress.com/1514/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1514&subd=gracianotorrao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gracianotorrao.wordpress.com/2009/10/10/3-criar-utilizadores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e76057f5187b3f21cfb9019e114b8db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gracianotorrao</media:title>
		</media:content>

		<media:content url="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png" medium="image">
			<media:title type="html">principal100</media:title>
		</media:content>
	</item>
		<item>
		<title>#2 Iniciar uma sessão em modo interactivo</title>
		<link>http://gracianotorrao.wordpress.com/2009/10/10/2-iniciar-uma-sessao-em-modo-interactivo/</link>
		<comments>http://gracianotorrao.wordpress.com/2009/10/10/2-iniciar-uma-sessao-em-modo-interactivo/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 14:50:40 +0000</pubDate>
		<dc:creator>Graciano Torrão</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://gracianotorrao.wordpress.com/?p=1510</guid>
		<description><![CDATA[
Nesta fase já temos um SGBD mas ainda “sem” informação relevante. Para aceitar esta afirmação é necessário abstrair-se de alguma informação já existente, tal como é mostrado na figura.
O formato genérico para se iniciar a sessão segue a sintaxe seguinte:
 mysql (opções) [nome_da_base_de_dados]
Nota:  (opções) é obrigatório e [nome_da_base_de_dados] é opcional.
Na prática basta algo do tipo:
#mysql [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1510&subd=gracianotorrao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="aligncenter size-medium wp-image-1511" title="1" src="http://gracianotorrao.files.wordpress.com/2009/10/1.png?w=300&#038;h=178" alt="1" width="300" height="178" /></p>
<p>Nesta fase já temos um SGBD mas ainda “sem” informação relevante. Para aceitar esta afirmação é necessário abstrair-se de alguma informação já existente, tal como é mostrado na figura.</p>
<p>O formato genérico para se iniciar a sessão segue a sintaxe seguinte:</p>
<p><strong> mysql (opções) [nome_da_base_de_dados]</strong></p>
<p><strong>Nota</strong>:  (opções) é obrigatório e [nome_da_base_de_dados] é opcional.</p>
<p>Na prática basta algo do tipo:</p>
<p><strong>#mysql -u root -p</strong></p>
<p>Será pedida a palavra-passe do administrador e, caso tudo corra bem, estaremos perante a linha de comandos do programa mysql ( mysql&gt;      ).</p>
<p>De seguida iremos digitar várias linhas de comandos de forma a realizarmos as tarefas pretendidas, uma vez que agora estamos em comunicação directa com o servidor.</p>
<p>Nesta fase convém ter presente que uma instrução SQL pode ocupar várias linhas, pelo que o fim da linha é assinalado de forma especial por (;) ou ( \g ), tal como exemplificado a seguir.</p>
<p>Formas de terminar uma instrução SQL :</p>
<p><strong>select version();<br />
select now();<br />
select version()\g<br />
select now()\g<br />
select version()    ERRO!</strong></p>
<p><strong></strong><br />
No final, naturalmente que iremos desejar terminar a sessão, pelo que devemos executar o comando seguinte:</p>
<p><strong>mysql&gt; quit</strong></p>
<p>A imagem utilizada mostra uma sequência muito simples que exemplifica o que aqui foi dito, sendo o comando showdatabases; meramente ilustrativo.</p>
<p>Quanto às várias opções do programa MySQL vou limitar-me apenas a referir um link para consulta:</p>
<p><a href="http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html" target="_blank">http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html</a></p>
<p style="text-align:right;"><a href="http://gracianotorrao.wordpress.com/2009/10/10/mysql-instalacao-e-preparacao-da-base-de-dados-num-sistema-debian/" target="_self"><img class="size-full wp-image-1506 alignright" title="principal100" src="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png?w=100&#038;h=65" alt="principal100" width="100" height="65" /></a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gracianotorrao.wordpress.com/1510/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gracianotorrao.wordpress.com/1510/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gracianotorrao.wordpress.com/1510/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gracianotorrao.wordpress.com/1510/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gracianotorrao.wordpress.com/1510/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gracianotorrao.wordpress.com/1510/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gracianotorrao.wordpress.com/1510/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gracianotorrao.wordpress.com/1510/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gracianotorrao.wordpress.com/1510/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gracianotorrao.wordpress.com/1510/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1510&subd=gracianotorrao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gracianotorrao.wordpress.com/2009/10/10/2-iniciar-uma-sessao-em-modo-interactivo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e76057f5187b3f21cfb9019e114b8db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gracianotorrao</media:title>
		</media:content>

		<media:content url="http://gracianotorrao.files.wordpress.com/2009/10/1.png?w=300" medium="image">
			<media:title type="html">1</media:title>
		</media:content>

		<media:content url="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png" medium="image">
			<media:title type="html">principal100</media:title>
		</media:content>
	</item>
		<item>
		<title>#1 Instalação do servidor e cliente de MySQL</title>
		<link>http://gracianotorrao.wordpress.com/2009/10/10/1-instalacao-do-servidor-e-cliente-de-mysql/</link>
		<comments>http://gracianotorrao.wordpress.com/2009/10/10/1-instalacao-do-servidor-e-cliente-de-mysql/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 14:44:18 +0000</pubDate>
		<dc:creator>Graciano Torrão</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gracianotorrao.wordpress.com/?p=1505</guid>
		<description><![CDATA[Partindo do princípio de que vamos fazer tudo na nossa máquina, teremos que instalar o servidor e um cliente de MySQL.
Para tal, basta executar como root o comando:
# apt-get install mysql-server mysql-client 
Durante este processo vamos ter que definir uma palavra-passe de root para o MySQL mas, ATENÇÃO! Este root não tem nada a ver [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1505&subd=gracianotorrao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Partindo do princípio de que vamos fazer tudo na nossa máquina, teremos que instalar o servidor e um cliente de MySQL.<br />
Para tal, basta executar como root o comando:</p>
<p><strong># apt-get install mysql-server mysql-client </strong></p>
<p>Durante este processo vamos ter que definir uma palavra-passe de root para o MySQL mas, <strong>ATENÇÃO</strong>! Este root não tem nada a ver com o administrador de um sistema Linux, mas apenas com a administração do servidor MySQL.</p>
<p><a href="http://gracianotorrao.wordpress.com/2009/10/10/mysql-instalacao-e-preparacao-da-base-de-dados-num-sistema-debian/" target="_self"><img class="size-full wp-image-1506 alignright" title="principal100" src="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png?w=100&#038;h=65" alt="principal100" width="100" height="65" /></a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gracianotorrao.wordpress.com/1505/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gracianotorrao.wordpress.com/1505/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gracianotorrao.wordpress.com/1505/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gracianotorrao.wordpress.com/1505/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gracianotorrao.wordpress.com/1505/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gracianotorrao.wordpress.com/1505/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gracianotorrao.wordpress.com/1505/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gracianotorrao.wordpress.com/1505/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gracianotorrao.wordpress.com/1505/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gracianotorrao.wordpress.com/1505/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gracianotorrao.wordpress.com&blog=3045652&post=1505&subd=gracianotorrao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gracianotorrao.wordpress.com/2009/10/10/1-instalacao-do-servidor-e-cliente-de-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e76057f5187b3f21cfb9019e114b8db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gracianotorrao</media:title>
		</media:content>

		<media:content url="http://gracianotorrao.files.wordpress.com/2009/10/principal100.png" medium="image">
			<media:title type="html">principal100</media:title>
		</media:content>
	</item>
	</channel>
</rss>