segunda-feira, 15 de fevereiro de 2016

Criando novo usuário e concedendo permissões no Mysql #2

Bom pessoal, no post anterior eu recebi umas dicas e umas delas foram fazer um post sobre criar usuários e conveder permissões o famoso GRANT. Então aqui vai xD.

Para criar um usuário é simples. Primeiro você deve logar no Mysql como root, depois basta você executar o seguinte comando: CREATE USER 'Novouser'@'localhost' IDENTIFIED BY 'senha'



Agora vamos logar com o usuário novo e criar um banco



Ops, permisão negada. Parece que não temos permissão para criar um banco. Então devemos dar as permissões para esse user. Vamos sair desse user com o comando EXIT e logar novamente com o root. Feito isso vamos usar o comando de permissão: GRANT ALL PRIVILEGES ON *.* TO 'UsuarioNovo'@'localhost';



Parece que deu tudo certo, nesse exemplo eu dei todas as permissões para esse usuário. Agora teremos que usar um comando para colocar essas permissões em vigor. Vamos fazer isso com o camando: FLUSH PRIVILEGES;



Agora vamos logar com o novo user e tentar criar um banco e uma tabela;


Agora deu certo xD

É possiível também conceder permissões de usuários diferentes. Para dar permissão a um usúario especifico, você pode usar o seguinte comando



No exemplo acima, eu criei um novo user e concedi a permissão de CREATE, ou seja, ele pode criar bancos e tabelas. Lembrando que o '*' é para dar acesso a todas as bases de dados(primeiro *) e todas as tabelas(segundo *).
No lugar do CREATE, vocẽ pode usar outros tipo de permissões como:

ALL PRIVILEGES: Todo acesso a um determinado banco ou sistema(caso não for selecionado nenhum banco).
CREATE: Criar bancos e tabelas.
DROP: Apagar bancos.
DELETE: Deletar linhas das tabelas.
INSERT: Inserir linhas nas tabelas.
SELECT: Ler bases de dados.
UPDATE: Atualizar linhas e tabelas.
GRANT OPTION: Permite o novo user conceder ou revogar privilégios de outros user).

Caso queira revogar uma permissão ou apagar um user, pode usar os seguintes comando



E não se esqueça de usar o comando FLUSH PRIVILEGES; sempre que conceder, atualizar ou mudar uma permissão.

É isso pessoal, espero que tenha ficado bom. No próximo tentarei melhorar mais.

Qualquer dúvida, deixe nos comentários.

domingo, 14 de fevereiro de 2016

O básico de Banco de Dados #1

Pessoal, resolvi criar um série de posts para fixar meu conhecimento em Banco de Dados. Minha ideia é criar vários posts para não ficar muito grande.

Como eu uso Linux eu optei pelo terminal, mas caso queira usar alguma IDE, fique a vontade.

Vamos começar criando um projeto simples de controle de gastos, vou utilizar o Mysql.

Primeiro passo é você logar no mysql com o seu usuario com o seguinte comando: mysql -uroot -p 



Create

Agora podemos criar nosso Banco com o comando: create database controle_gastos;



Feito isso, você vai receber uma mensagem dizendo que está tudo ok. Caso queria verificar se realmente o banco foi criado, você pode usar o comando: show databases; para ver os bancos que foram criados, o nosso realmente foi, como podemos ver na imagem abaixo.


Agora temos que entrar nesse banco para pode criar as tabelas, podemos fazer isso com o comando: use controle_gastos;
 


Com o banco criado, agora temos que criar um tabela que vai receber os dados. Só que, antes, teremos que difinir a estrutura da tabela. Nessa nossa tabela, a ideia é fazer um controle de gastos, mas quais as informações que queremos ver nessa tabela?

Bom, eu pensei em id, data, valor e observacao. Lembrando que teremos que definir o tipo de cada um desses atributos.

Podemos fazer isso com o seguinte comando: create table Gastos(id int auto_increment primary-key, data date, valor double, observacoes varchar(255));
O auto_increment é para preencher a id automaticamente. A primary-key é pra caso queiramos buscar uma linha toda pela a id. 



Tabela criada, mas podemos ver se ela realmente foi criada e se há outras tabelas nesse banco. Vamos usar novamente o comando show só que agora para consultar as tabelas



Podemos ver também a estrutura da nossa tabela com o comando: desc Gastos



Insert into

Agora podemos inserir nossos gastos na tabela, para isso iremos utilizar o comando: insert into e values(para passar os valores)



Select

Prontinho, valores inseridos na tabela. Mas como eu posso ver a tabela? Simples, usando o comando select. Podemos utilizar ele de diversas formas, uma delas é para ver a tabela toda, para isso usamos o '*', o comando fica assim: select * from gastos; O from é pra dizer de qual tabela você quer ver as informações, no nosso caso é a única que criamos, a gastos.



Caso você queira ver apenas os valores, basta trocar o '*' por 'valor'. Caso queira ver data e valor basta trocar o '*' por 'data, valor' e assim por diante, uma dica é brincar bastante com isso.

Agora vou inserir um monte de dados

 
Pronto pessoal, mas e se eu quiser filtrar minhas buscas, é possível? Sim, com o comando where. Digamos que eu queria ver todos os gastos menores do que 10,00


Reparem que ele me mostrou somente os valor menores ou iguais a 10.

Um outro exemplo usando Data


Nesse exemplo eu pedi para me mostrar todos os gastos com a data acima do dia 18.

Outro exemplo, esse é um filtro mais especifico


Nesse exemplo, eu pedi todos os valores abaixo de 300 com a id menor o igual a 6. Na id 8, a tabela tinha um linha com o valor 300, mas como pedi com a ID menor ou igual a 6, não apareceu na tabela.

Espero que tenha ficado claro hehe, em caso de dúvidas deixe um comentário que eu irei responder o mais rápido possível.

Até a próxima ;)

sexta-feira, 12 de fevereiro de 2016

Foto #1


Internacionalizando seu app Android

Essa semana fiquei responsável por internacionalizar um app, coisa simples(Que eu não sabia XD) e resolvi escrever um post sobre isso e tentar detalhar o máximo possível para iniciantes, assim como eu.


Imagine que você desenvolve seu app e tem vontade que outras pessoas do mundo use ele, seria legal, não? Só que para isso seu app precisa estar no idioma do país em que as pessoas vão usar ele. Vamos usar o Inglês nesse exemplo, por ser o idioma mais falado no mundo, mas nada impede de você querer traduzir seu app para outros idiomas, afinal, pode traduzir para todos os idiomas do mundo se quiser. E para fazer isso no android é uma bem simples.

Agora vamos começar a parte legal hehe.

Ao abrir seu projeto, você deve ir na pasta app>src>main>res>values

Você vai ver algo assim:



Esse arquivo "string.xml" é padrão, para sempre que o device não estiver configurado em um dos idiomas suportados pelo seu app, ele vai usar usar ele como idioma padrão.

Bom, agora precisamos criar um recurso de texto para os idioma que você deseja que seu app suporte. Fazer isso é muito simples, em cima da pasta values, clique com o botão direito vai em New >Values resource file > Locale. E vai ter algo assim:  


Nesse caso estou criando para suportar dois idiomas, mas só para vocês terem ideia de que é possível fazer com mais de um idioma.

Feito isso, você vai ter algo assim:


Agora temos que preencher nossas strings (strings.xml(en-rUS) e strings. xml(pt-BR)). E ficara assim:

string.xml(en-rUS)

string.xml(pt-rBR)


Agora vamos usar um exemplo de um palavra, vale lembrar que é muito importante trabalhar com Strings no app, afinal, você não querer desenvolver um app gigantesco e depois ter o trabalho de modificar ele todo para poder fazer a internacionalização. E isso é muito simples também e vai evitar dores de cabeça no futuro.

Maneira errada(ou maneira "dor de cabeça" no futuro hehe):

 

Maneira correta(ou maneira que evita "dor de cabeça" no futuro hehe):


Mas notamos que tem um erro ai, por que está em vermelho? Simples, porque essa string ainda não existe, então temos que fazer ela existir e para fazer isso você precisa modificar suas strings, assim:

string.xml(pt-rBR)


Pronto, agora quando o app estiver com o idioma padrão em Inglês, o app rodara  em Inglês. Quando estiver em português, o app rodara em português. E quando não estiver me nenhum, ele vai usar o arquivo strings.xml como idioma padrão(ai depende qual o idioma você quer que seja padrão).


Dúvidas, só perguntar ;)