NESSA DEMONSTRAÇÃO MOSTRO COMO CRIAR UM BANCO DE DADOS, TABELAS E COMO FAZER A LISTAGEM DE DADOS DE DETERMINADA TABELA, PELA RELAÇÃO EXISTENTES ENTRE ELAS... NÃO FOI UM TUTORIAL MUITO EXPLICATIVO, FOI MAIS DEMONSTRATIVO, EM BREVE GRAVO UM VIDEO ENSINANDO DIREITINHO...
MAIS DA PARA VOCÊS TEREM UMA NOÇÃO DE ALGUNS COMANDOS MYSQL.
OBS: PARA MELHOR ENTENDIMENTO PESQUISE CADA COMANDO USADO, E COMO É O SEU FUNCIONAMENTO. POIS, NÃO EXPLICO COMO UTILIZAR ESSES COMANDOS E NEM DOU O REAL FUNCIONAMENTO DELES, SÓ TENTO MOSTRAR O QUE O COMANDO ESTA FAZENDO...
//ESSE COMANDO É PARA ACESSAR O MYSQL
root@user:~$ mysql -u root -p
Enter password: root (no caso a senha definida é root, caso mudou é só usar a senha que criou)
//ESSE COMANDO MOSTRA OS BANCO DE DADOS EXISTENTES.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0,00 sec)
//ESTE COMANDO CRIA UM NOVO BANCO DE DADOS.
mysql> create database ifnmg_alunos;
Query OK, 1 row affected (0,00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ifnmg_alunos |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0,01 sec)
//COMO O NOME DO COMANDO JÁ DIZ, "USE" VAI USAR DETERMINADO BANCO DE DADOS.
mysql> use ifnmg_alunos;
Database changed
//ESSE COMANDO CRIA UMA NOVA TABELA NO BANCO DE DADOS SELECIONADO PARA "USO" A CIMA.
mysql> create table turma(
-> id int(10) primary key auto_increment,
-> nome_turma varchar(30));
Query OK, 0 rows affected (0,46 sec)
//FOREIGN KEY CRIA A CHAVE ESTRANGEIRA QUE FAZ REFERENCIA A DETERMINADO CAMPO DE UMA TABELA (FAZ A LIGAÇÃO ENTRE ELAS).
mysql> create table aluno(
-> id int(10) primary key auto_increment,
-> nome varchar(30),
-> data_nasc DATE,
-> cpf varchar(14),
-> rg varchar(14),
-> aluno_id int(10),
-> foreign key (aluno_id) references turma(id));
Query OK, 0 rows affected (0,36 sec)
//ESTE COMANDO MOSTRA OS CAMPOS DAS TABELAS
mysql> desc aluno;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| id | int(10) | NO | PRI | NULL | auto_increment |
| nome | varchar(30) | YES | | NULL | |
| data_nasc | date | YES | | NULL | |
| cpf | varchar(14) | YES | | NULL | |
| rg | varchar(14) | YES | | NULL | |
| aluno_id | int(10) | YES | MUL | NULL | |
+-----------+-------------+------+-----+---------+----------------+
6 rows in set (0,01 sec)
//ESTE COMANDO INSERE UM NOVO DADO A DETERMINADA TABELA
mysql> insert into turma (nome_turma) values ("1INFO");
Query OK, 1 row affected (0,04 sec)
mysql> insert into turma (nome_turma) values ("2INFO");
Query OK, 1 row affected (0,07 sec)
mysql> insert into turma (nome_turma) values ("3INFO");
Query OK, 1 row affected (0,03 sec)
//ESSE COMANDO MOSTRA DOS DADOS DA TABELA.
mysql> select * from turma;
+----+------------+
| id | nome_turma |
+----+------------+
| 1 | 1INFO |
| 2 | 2INFO |
| 3 | 3INFO |
+----+------------+
3 rows in set (0,00 sec)
//ESSE COMANDO INSERE UM NOVO USUARIO A TABELA ALUNO.
mysql> mysql> insert into aluno (nome,data_nasc,cpf,rg,aluno_id) values ("JOAO GUSTAVO DERTURE","1998-03-12",09143298721,19317897,3);
Query OK, 1 row affected (0,04 sec)
mysql> select * from aluno;
+----+------------------------+------------+------------+----------+----------+
| id | nome | data_nasc | cpf | rg | aluno_id |
+----+------------------------+------------+------------+----------+----------+
| 1 | JOAO GUSTAVO DERTURE | 1998-03-12 | 9143298721 | 19317897 | 3 |
+----+------------------------+------------+------------+----------+----------+
1 row in set (0,00 sec)
//ESSE COMANDO MOSTRA A TURMA DO ALUNO DE ID=1
mysql> select turma.nome_turma from turma, aluno where turma.id = aluno.aluno_id and aluno.id = 1;
+------------+
| nome_turma |
+------------+
| 3INFO |
+------------+
1 row in set (0,00 sec)
mysql> insert into aluno (nome,data_nasc,cpf,rg,aluno_id) values ("Joao Vitor","1999-05-13",09143245721,45317897,3);
Query OK, 1 row affected (0,06 sec)
mysql> insert into aluno (nome,data_nasc,cpf,rg,aluno_id) values ("Lucas Oliveira","1999-
Query OK, 1 row affected (0,03 sec)
mysql> select * from aluno;
+----+------------------------+------------+------------+----------+----------+
| id | nome | data_nasc | cpf | rg | aluno_id |
+----+------------------------+------------+------------+----------+----------+
| 1 | JOAO GUSTAVO DERTURE | 1998-03-12 | 9143298721 | 19317897 | 3 |
| 2 | Joao Vitor | 1999-05-13 | 9143245721 | 45317897 | 3 |
| 3 | Lucas Oliveira | 1999-05-13 | 9143245721 | 45317897 | 3 |
+----+------------------------+------------+------------+----------+----------+
3 rows in set (0,00 sec)
mysql> select * from aluno; +----+------------------------+------------+------------+----------+----------+
| id | nome | data_nasc | cpf | rg | aluno_id |
+----+------------------------+------------+------------+----------+----------+
| 1 | JOAO GUSTAVO DERTURE | 1998-03-12 | 9143298721 | 19317897 | 3 |
| 2 | Joao Vitor | 1999-05-13 | 9143245721 | 45317897 | 3 |
| 3 | Lucas Oliveira | 1999-05-13 | 9143245721 | 45317897 | 3 |
| 4 | Fabricio Lacerda | 1999-05-13 | 9143245721 | 45317897 | 2 |
| 5 | Emilly Gonçalves | 1999-05-13 | 9143245721 | 45317897 | 2 |
| 6 | Daniel Gonçalves | 1999-05-13 | 9143245721 | 45317897 | 2 |
| 7 | Daniel Gomes | 1999-05-13 | 9143245721 | 45317897 | 2 |
| 8 | Roberto Garcia | 1999-05-13 | 9143245721 | 45317897 | 1 |
| 9 | Gilson Garcia | 1999-05-13 | 9143245721 | 45317897 | 1 |
| 10 | Marcio Garcia | 1999-05-13 | 9143245721 | 45317897 | 1 |
| 11 | Gustavo Barbosa | 1999-05-13 | 9143245721 | 45317897 | 1 |
| 12 | Felipe Barbosa | 1999-05-13 | 9143245721 | 45317897 | 1 |
| 13 | Helder Gomes | 1999-05-13 | 9143245721 | 45317897 | 1 |
| 14 | Helder Lisboa | 1999-05-13 | 9143245721 | 45317897 | 2 |
| 15 | Severino Lisboa | 1999-05-13 | 9143245721 | 45317897 | 2 |
| 16 | Eduardo Lisboa | 1999-05-13 | 9143245721 | 45317897 | 2 |
| 17 | Wellintom Lisboa | 1999-05-13 | 9143245721 | 45317897 | 2 |
| 18 | Wellintom Rodrigues | 1999-05-13 | 9143245721 | 45317897 | 2 |
| 19 | Wellintom Rodrigues | 1999-05-13 | 9143245721 | 45317897 | 3 |
| 20 | Wellintom Dourado | 1999-05-13 | 9143245721 | 45317897 | 3 |
| 21 | Garfiel Donatello | 1999-05-13 | 9143245721 | 45317897 | 3 |
| 22 | Bryan Donatello | 1999-05-13 | 9143245721 | 45317897 | 3 |
| 23 | Dominick Toretto | 1999-05-13 | 9143245721 | 45317897 | 3 |
| 24 | Tulio Fonseca | 1999-05-13 | 9143245721 | 45317897 | 3 |
| 25 | Lucas Fonseca | 1999-05-13 | 9143245721 | 45317897 | 3 |
| 26 | Matheus Lopes | 1999-05-13 | 9143245721 | 45317897 | 3 |
| 27 | Matheus Silva | 1999-05-13 | 9143245721 | 45317897 | 3 |
| 28 | Matheus Silva | 1999-05-13 | 9143245721 | 45317897 | 2 |
| 29 | Matheus Silva | 1999-05-13 | 9143245721 | 45317897 | 1 |
| 30 | Matheus Oliveira | 1999-05-13 | 9143245721 | 45317897 | 1 |
+----+------------------------+------------+------------+----------+----------+
30 rows in set (0,00 sec)
// ESSE COMANDO LISTA O NOME DOS ALUNOS PERTENCENTES A TURMA DE ID= 1
mysql> select aluno.nome from turma, aluno where turma.id = aluno.aluno_id and turma.id = 1;
+------------------+
| nome |
+------------------+
| Roberto Garcia |
| Gilson Garcia |
| Marcio Garcia |
| Gustavo Barbosa |
| Felipe Barbosa |
| Helder Gomes |
| Matheus Silva |
| Matheus Oliveira |
+------------------+
8 rows in set (0,01 sec)
//ESSE COMANDO CONTA A QUANTIDADE DE ALUNOS EM DETERMINADA TURMA DE ID=3
mysql> select count(aluno_id) from aluno where aluno_id="3";
+-----------------+
| count(aluno_id) |
+-----------------+
| 12 |
+-----------------+
1 row in set (0,03 sec)
ESSE RELAÇÃO DE TABELAS É DE 1:N (UM PARA MUITOS).
PESQUISEM SOBRE RELAÇÕES ENTRE TABELAS, COMANDOS MYSQL PARA TER MELHOR ENTENDIMENTO...