Usando MySQL na linguagem C
Este é um artigo que visa demostrar como podemos usar a linguagem C para realizar as ações básicas em um banco de dados MySQL. As ações básicas num banco de dados são: inserção, remoção, alteração e consulta de dados.
Introdução
Este é um artigo que visa demonstrar como podemos usar a linguagem C para
realizar as ações básicas em um banco de dados MySQL. As ações básicas
num banco de dados MySQL são:
Inicie, criando um banco de dados chamado "teste" e crie um usuário para acessar esse BD. No caso aqui criarei um usuário chamado "guest" com a senha "guest", depois criaremos uma tabela chamada "aprendendo". Abaixo estão os comandos para você fazer isso no console ou no rxvt (se quiser usar o gráfico):
01 $ mysql --user=root -p
02 Enter password: <senha aqui>
03 Welcome to the MySQL monitor. Commands end with ; or \g.
04 Your MySQL connection id is 8 to server version: 3.23.51-log
05 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
06 mysql> create database teste;
07 Query OK, 1 row affected (0.00 sec)
08 mysql> grant all on teste.* to guest identified by "guest";
09 Query OK, 0 rows affected (0.06 sec)
10 mysql> flush privileges;
11 Query OK, 0 rows affected (0.03 sec)
12 mysql> exit
13 Bye
Agora vamos comentar isso. Na linha 01, você pede para logar com o usuário administrador do MySQL, que no caso é chamado root (--user=root), mas poderia ser outro. Fora isso, temos também que dizer que para esse usuário será preciso digitar uma senha (-p). Se você não sabe qual é esse usuário, me desculpe, mas consulte a pessoa que instalou o MySQL na sua máquina.
Agora, na linha 06 pedimos para criarmos o banco de dados teste e na linha 08 dizemos que o usuário guest (to guest) com senha guest (identified by "guest") terá todos os direitos no banco de dados teste (grant all on teste.*). Na linha 10, fazemos valer o novo usuário. Assim, só depois desse comando o usuário vai funcionar e exit é para sair (linha 12). Agora você me pergunta: "E a tabela?". Criaremos a tabela usando o usuário que possui direitos nela para irmos nos acostumando a isso! Vamos lá:
$ mysql --user=guest -p
Enter password: <senha aqui>
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 38 to server version: 3.23.51-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> connect teste;
Connection id: 39
Current database: teste
mysql> create table aprendendo (
-> `ID` INT NOT NULL AUTO_INCREMENT,
-> `nome` VARCHAR( 40 ) NOT NULL,
-> `sexo` CHAR( 1 ) NOT NULL,
-> unique ( `ID` )
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
Isso faz com que você reconecte com o banco de dados teste (connect teste) e depois crie uma tabela chamada aprendendo (create table aprendendo), que possui três colunas:
Um pequeno comentário quanto aos tipos VARCHAR e CHAR. VARCHAR é usado quando queremos uma economia de espaço nas tabelas. Essa economia é gerada da seguinte forma: podemos inserir no máximo 40 caracteres, sendo que se inserirmos menos, vamos ter uma string da quantidade inserida, ao contrário do tipo CHAR, pois o tipo CHAR sempre vai ter o tipo definido. Isso dá um ganho de velocidade na hora da busca. Se definirmos um CHAR de no máximo 5 e inserirmos 3 caracteres, ele ocupará espaço como se tivesse cinco caracteres.
- inserção;
- remoção;
- alteração e;
- consulta de dados
Inicie, criando um banco de dados chamado "teste" e crie um usuário para acessar esse BD. No caso aqui criarei um usuário chamado "guest" com a senha "guest", depois criaremos uma tabela chamada "aprendendo". Abaixo estão os comandos para você fazer isso no console ou no rxvt (se quiser usar o gráfico):
01 $ mysql --user=root -p
02 Enter password: <senha aqui>
03 Welcome to the MySQL monitor. Commands end with ; or \g.
04 Your MySQL connection id is 8 to server version: 3.23.51-log
05 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
06 mysql> create database teste;
07 Query OK, 1 row affected (0.00 sec)
08 mysql> grant all on teste.* to guest identified by "guest";
09 Query OK, 0 rows affected (0.06 sec)
10 mysql> flush privileges;
11 Query OK, 0 rows affected (0.03 sec)
12 mysql> exit
13 Bye
Agora vamos comentar isso. Na linha 01, você pede para logar com o usuário administrador do MySQL, que no caso é chamado root (--user=root), mas poderia ser outro. Fora isso, temos também que dizer que para esse usuário será preciso digitar uma senha (-p). Se você não sabe qual é esse usuário, me desculpe, mas consulte a pessoa que instalou o MySQL na sua máquina.
Agora, na linha 06 pedimos para criarmos o banco de dados teste e na linha 08 dizemos que o usuário guest (to guest) com senha guest (identified by "guest") terá todos os direitos no banco de dados teste (grant all on teste.*). Na linha 10, fazemos valer o novo usuário. Assim, só depois desse comando o usuário vai funcionar e exit é para sair (linha 12). Agora você me pergunta: "E a tabela?". Criaremos a tabela usando o usuário que possui direitos nela para irmos nos acostumando a isso! Vamos lá:
$ mysql --user=guest -p
Enter password: <senha aqui>
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 38 to server version: 3.23.51-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> connect teste;
Connection id: 39
Current database: teste
mysql> create table aprendendo (
-> `ID` INT NOT NULL AUTO_INCREMENT,
-> `nome` VARCHAR( 40 ) NOT NULL,
-> `sexo` CHAR( 1 ) NOT NULL,
-> unique ( `ID` )
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
Isso faz com que você reconecte com o banco de dados teste (connect teste) e depois crie uma tabela chamada aprendendo (create table aprendendo), que possui três colunas:
- ID: que receberá um inteiro incrementado automaticamente;
- nome: que será do tipo VARCHAR que não poderá ser vazio;
- sexo: que será do tipo CHAR, também não podendo ser vazio.
Um pequeno comentário quanto aos tipos VARCHAR e CHAR. VARCHAR é usado quando queremos uma economia de espaço nas tabelas. Essa economia é gerada da seguinte forma: podemos inserir no máximo 40 caracteres, sendo que se inserirmos menos, vamos ter uma string da quantidade inserida, ao contrário do tipo CHAR, pois o tipo CHAR sempre vai ter o tipo definido. Isso dá um ganho de velocidade na hora da busca. Se definirmos um CHAR de no máximo 5 e inserirmos 3 caracteres, ele ocupará espaço como se tivesse cinco caracteres.
valeus