Banco de dados C/C++ Delphi Lazarus Mysql PHP Python R
Mysql com C/Lazarus/Python/PHP/R – Parte 1

Neste super tutorial, iremos abordar a Conexão do Mysql com estas 5 linguagens.

Na primeira parte do tutorial, iremos abordado o Mysql própriamente dita, onde faço a instalação e configuração.

Nos próximos posts abordarei cada linguagem individualmente.

Mysql

Mysql é um banco fornecido pela Oracle, muito utilizado em aplicações embarcadas e web.

De forma geral é um banco sólido, com uma ampla gama de aplicações, e seguro.

Instalação no Linux / Ubuntu

A instalação do servidor mysql é muito simples.

apt install mysql-server

Instalação do mysql server em Linux

A instalação do Mysql é muito simples, e instala os principais componentes.

Instalação do Mysql

Vídeo de demonstração

Instalação do Mysql

Criando um banco de dados

Agora, iremos criar um projeto de banco de dados bem simples.

A idéia é basicamente permitir CRUD nos demais artigos. Para quem não conhece o CRUD, é a abreviação (Create, Read, Update, Delete).

Para nos ajudar, irei criar um git, do projeto.

Ambiente de desenvolvimento

A instalação do ambiente de desenvolvimento precisa ser feito através da lib:

 apt-get install libmysqlclient-dev 

A lib acima, instala os headers e .so para integração com C e outras linguagens, como Lazarus.

A medida que avancemos nos demais artigos, irei incluindo aqui, as bibliotecas para as demais linguagens tambem. Então fique atento.

GIT

https://github.com/marcelomaurin/mysql-vs-todos

SCRIPTS

Agora iremos criar o Nosso Makefile para carregar os scripts:

Arquivo Makefile

# Script de criacao do banco de dados
# Autor Marcelo Maurin Martins
# Daa: 31/01/2022
#


APP=mysql

all:  database Tabelas
database:
	$(APP)  < database.sql
Tabelas:
	$(APP) < pessoas.sql

Em seguida iremos criar o script de criação da base de dados, database.sql:

#Cria um banco de dados em Mysql
#Autor: Marcelo Maurin Martins
#31/01/2022


create database IF NOT EXISTS `testedb`;

E por fim nossa tabela pessoas.sql

#Cria a tabela de pessoas
#Autor: Marcelo Maurin Martins
#31/01/2022

use testedb;

create table if not exists pessoas
(
   idPessoa INT(6) unsigned auto_increment primary key,
   nome varchar(30) not null,
   dtnasc date,
   profissao varchar(20),
   sexo char(1),
   dtchg timestamp default current_timestamp on update current_timestamp,
   dtcad timestamp default current_timestamp
);

Executando Scripts

Entre na pasta scripts, para que possamos criar nossas estruturas de banco.

Digite o comando:

make

executa a criação do banco

A figura abaixo mostra sua execução

Exemplo do script do banco de dados

Por fim mais um vídeozinho

Procedimento de instalação dos scripts

Permissões

Ao montar o segundo artigo lembrei que para melhorar este artigo, o ideal seria criar uma conta especifica para cada aplicação. Desta forma criei um scripts novo chamado GRANTS.SQL

Desta forma, existe essa ultima etapa. Que precisamos, que será criar um usuário para acesso a aplicação:

Criando o usuario:

CREATE USER 'seu_usuario'@'localhost' IDENTIFIED BY 'suasenha';

Dando permissão:

GRANT ALL PRIVILEGES ON * . * TO 'seu_usuario'@'localhost';

Finalizando

FLUSH PRIVILEGES;

Este procedimento será validado, quando digitarmos

mysql -h localhost -u gcc -p

Conectando em banco de dados

Pois se as permissões não estiverem corretas o usuario não conecta.

Sempre que avançarmos em uma etapa, um novo usuário será criado, neste script.

Então não estranhem se eventualmente os scripts sofrerem modificação no git.

Cenas do próximos capítulos

Agora que preparamos a cama, iremos começar a codificar nela. No próximo artigo iremos criar um crud em C para cadastrar pessoas.

Até a próxima.

Referências

https://stackoverflow.com/questions/838978/how-to-check-if-mysql-database-exists

https://stackoverflow.com/questions/11739014/how-to-generate-a-create-table-script-for-an-existing-table-in-phpmyadmin

https://stackoverflow.com/questions/6239131/how-to-grant-remote-access-permissions-to-mysql-server-for-user

https://linuxize.com/post/how-to-create-mysql-user-accounts-and-grant-privileges/

Artigos Relacionados

    R
    Exemplo de código em R

    Segue um exemplo bem simples em R,

    Criado para avaliar as notas , calculando média.

    Fonte:

    ##Criado por Marcelo Maurin Martins
    ##Aplicação de Média
    ##19/02/2018
    ##Treinamento de Linguagem R

    #Criar um algoritmo em R que faça:
    #1 – Cadastro de alunos (nome, e-mail, etc…, notas de provas)
    #2 – Mostra os dados dos alunos cadastrados informando também os aprovados e reprovados.

    Nomes=c(“Marcelo”,”Fernanda”,”Camille”,”Roberta”,”Marcella”)
    Nomes=as.character(Nomes)
    Email=c(“marcelomaurinmartins@gmail.com”,”teste1@”,”teste2@”,”teste3@”,”teste4@”)
    Email=as.character(Email)
    Nota1=c(9,1.4,9,3,9)
    Nota1=as.numeric(Nota1)
    Nota2=c(9,2.4,9,2,8)
    Nota2=as.numeric(Nota2)
    Nota3=c(9,1.4,9,3,7)
    Nota3=as.numeric(Nota3)
    Nota4=c(9,3.4,9,4,6)
    Nota4=as.numeric(Nota4)
    Media=c(0,0,0,0,0)
    Media=as.numeric(Media)

    #Monta o data frame
    Notas=data.frame(Nomes,Email,Nota1,Nota2,Nota3,Nota4,Media)

    #Calcula a media
    for(i in 1:length(Nomes))
    {
    print(Notas[i,1])
    Notas[i,7]=(Notas[i,3]+Notas[i,4]+Notas[i,5]+Notas[i,6])/4
    if(Notas[i,7]>=7)
    {
    print(“Aprovado”)
    }
    else
    {
    print(“Reprovado”)
    }
    }

    Resultado do Data.frame

    Notas
    Nomes Email
    1 Marcelo marcelomaurinmartins@gmail.com
    2 Fernanda teste1@
    3 Camille teste2@
    4 Roberta teste3@
    5 Marcella teste4@
    Nota1 Nota2 Nota3 Nota4 Media
    1 9.0 9.0 9.0 9.0 9.00
    2 1.4 2.4 1.4 3.4 2.15
    3 9.0 9.0 9.0 9.0 9.00
    4 3.0 2.0 3.0 4.0 3.00
    5 9.0 8.0 7.0 6.0 7.50

    Output de dados

    [1] Marcelo
    [1] “Aprovado”
    [1] Fernanda
    [1] “Reprovado”
    [1] Camille
    [1] “Aprovado”
    [1] Roberta
    [1] “Reprovado”
    [1] Marcella
    [1] “Aprovado”

    Programação R
    Instalando Mysql Conection em RStudio

    O Procedimento a seguir foi extraído do seguinte artigo com variances:

    http://db.rstudio.com/databases/my-sql/

    Em Tools > Install Packages instale os seguintes pacotes:

    • RMySQL
    • devtools
    • dbConnect

    Instale o ODBC e a lib do Mysql

    Restart RStudio

    Segue exemplo de conexão com Mysql ankara escort çankaya escort ankara escort çankaya escort escort ankara çankaya escort escort bayan çankaya istanbul rus escort eryaman escort escort bayan ankara ankara escort kızılay escort istanbul escort ankara escort ankara rus escort escort çankaya ankara escort bayan istanbul rus Escort atasehir Escort beylikduzu Escort Ankara Escort malatya Escort kuşadası Escort gaziantep Escort izmir Escort

    #install.packages(“dbConnect”,type=”source”)
    library(RMySQL)
    library(dbConnect)

    con = dbConnect(MySQL(), user='<user>’, password='<password>’, dbname=’SMSdb’, host=’192.168.1.211′)

    dbListTables(con)

    #Create table in R from Mysql table
    myQuery = “select * from jobs”

    str(df)

    telefone= “16981434112”

    my_d_query=paste(“select * from jobs where telefone = ‘”,telefone,”‘ “)
    out_df= dbGetQuery(con,my_d_query)

    dbWriteTable(con,”out_df”,out_df, overwrite=TRUE, append=FALSE)
    dbDisconnect(con)

    Sem categoria
    Exemplo de Conexão com RStudio em Mysql

    Segue um exemplo prático de obtenção de dados do Banco Mysql usando R

    #install.packages(“dbConnect”,type=”source”)
    library(RMySQL)
    library(dbConnect)

    con = dbConnect(MySQL(), user=’user’, password=’passwrd’, dbname=’SMSdb’, host=’192.168.1.211′)

    dbListTables(con)

    #Create table in R from Mysql table
    myQuery = “select * from jobs”

    str(df)

    telefone= “16981434112”

    #my_d_query=paste(“select * from jobs where telefone = ‘”,telefone,”‘ “)
    my_d_query=paste(“select * from jobs “)
    out_df= dbGetQuery(con,my_d_query)

    dbWriteTable(con,”out_df”,out_df, overwrite=TRUE, append=FALSE)
    dbDisconnect(con)

    Sem categoria
    Escolhendo o melhor tipo de grafico em R

    A seleção de um bom exemplo de gráfico pode te auxiliar a provar ou apresentar uma idéia ou informação. ankara escort çankaya escort ankara escort çankaya escort escort ankara çankaya escort escort bayan çankaya istanbul rus escort eryaman escort escort bayan ankara ankara escort kızılay escort istanbul escort ankara escort ankara rus escort escort çankaya ankara escort bayan istanbul rus Escort atasehir Escort beylikduzu Escort Ankara Escort malatya Escort kuşadası Escort gaziantep Escort izmir Escort

    Ref.: https://www.ibpad.com.br/blog/analise-de-dados/qual-e-o-grafico-mais-adequado/

    Segue documento que visa auxiliar esta escolha:

    http://maurinsoft.com.br/download/Tipos de Grafico R.pdf

    Sem categoria
    Instalando o R no Linux

    Segue procedimento para instalação do R no Linux

    apt-get update

    apt-get upgrade

    apt-get install r-base r-base-dev

    apt-get install libatlas3-base

    apt-get install libopenblas-base

    Fonte: https://cran.r-project.org/bin/linux/debian/

    PHP
    Programação PHP Integrada ao R

    O Desenvolvimento e analise de dados não é tarefa fácil.

    Integrar o R com outras linguagens é o segredo para analisar grande volume de dados em tempo real, gerando vetores e gráficos.

    Um exemplo deste é a Webapi que criei para linguagem PHP:

    http://maurinsoft.com.br:8090/ws/graphic.php

    Esta web api, gera um arquivo de imagem com um gráfico.

    Ao chamar o URL, é chamado em tempo de execução um script em R, que gera a imagem e armazena em um repositório.

    É possível criar diversos scripts com o mesmo URL, basta indicar nos parametros o script em R que deverá ser rodado.

    No caso do default.R, lê as informações processadas do sensor de chuva, que aponta quando ocorre precipitação de chuva em minha casa.

    Valore altos de 900 até 1024, indicam tempo seco.

    A imagem é armazenada neste endereço.

    Neste exemplo, o R processou o seguinte comando SQL

    select

    devvalue, dtupdate

    from logdevpar

    where

    devparname=’dev3′

    and iddevice=’2′

    and (dtupdate>=( DATE_SUB(CONCAT(CURDATE(), ‘ 00:00:00’), INTERVAL 1 DAY) ))

    order by dtupdate

    limit 100

    maurinsoft.com.br