Criação de Database Criação de Tabelas em Database Constraints e Foreign Keys Linguagem SQL Dump e Restore de Database MySQL Server e SQL Instalação do MySQL Server
Defina LinuxForce01 como senha de root e confirme a escolha,
após a conclusão da instalação verifique o status do serviço # systemctl status mysql -l
Verifique a porta padrão do MySQL
# ss -nltp | grep 3306
Logo no SGDB e verifique o seu usuário
> mysql -p > SELECT current_user(); MySQL Server e SQL Criação de Database
Verifique quais Databases estão presentes no SGBD
> SHOW DATABASES;
Crie o Database asf
> CREATE DATABASE asf;
Acesse o database e verifique que não possui tabelas
> USE asf > SHOW TABLES; MySQL Server e SQL Criação de Tabelas em Database
Crie as tabelas employee, contact e employee_contact
> CREATE TABLE employee (
-> id_person INT(5) UNSIGNED NOT NULL AUTO_INCREMENT, -> name TINYTEXT NOT NULL, -> sector TINYTEXT NOT NULL, -> position TINYTEXT NOT NULL, -> PRIMARY KEY(id_person)) -> ENGINE=InnoDB; MySQL Server e SQL Criação de Tabelas em Database
> CREATE TABLE contact (
-> id_contact INT(5) UNSIGNED NOT NULL AUTO_INCREMENT, -> corp_mail VARCHAR(55) NOT NULL, -> person_mail VARCHAR(55) NOT NULL, -> address TINYTEXT NOT NULL, -> phone_1 VARCHAR(15) NOT NULL, -> phone_2 VARCHAR(15) NOT NULL, -> start_time TIME NOT NULL, MySQL Server e SQL Criação de Tabelas em Database
-> start_time TIME NOT NULL,
-> finish_time TIME NOT NULL, -> PRIMARY KEY(id_contact)) -> ENGINE=InnoDB;
> CREATE TABLE employee_contact (
-> id_person INT(5) UNSIGNED NOT NULL , -> id_contact INT(5) UNSIGNED NOT NULL ) -> ENGINE=InnoDB; MySQL Server e SQL Criação de Tabelas em Database
Verifique as tabelas criadas
> SHOW TABLES;
Verifique a descrição de cada tabelas criada
> DESC employee; > DESC contact; > DESC employee_contact; MySQL Server e SQL Constraints e Foreign Keys
Implemente as contraints para definição das Foreign Keys
> ALTER TABLE employee_contact ADD CONSTRAINT person_fk
> ALTER TABLE employee_contact ADD CONSTRAINT contact_fk
FOREIGN KEY(id_contact) REFERENCES contact(id_contact); MySQL Server e SQL Linguagem SQL
Inserindo dados nas tabelas employee, contact e employee_contact
> INSERT INTO employee (id_person,name,sector,position)
VALUES (1,'Gideon Goddard','Manager','Owner');
> INSERT INTO contact (id_contact,corp_mail,person_mail,
address,phone_1,phone_2,start_time,finish_time)VALUES(1,'gideon .goddard@asf.com','gideon.goodard@gmail.com','5th Avenue N 1024','+1 211-020-1007','+1 140-319-9028','09:00:00','17:00:00');
> INSERT INTO employee_contact (id_person,id_contact)VALUES
(1,1); MySQL Server e SQL Linguagem SQL
Execute um SELECT nas tabelas buscando os registros
> SELECT * FROM employee;
> SELECT * FROM contact; > SELECT * FROM employee_contact;
Teste a deleção de dados e verifique se a integridade será mantida
> DELETE FROM employee WHERE id_person=1;
> DELETE FROM contact WHERE id_contact=1; MySQL Server e SQL Linguagem SQL
Altere a tabela contact
> SELECT * FROM contact WHERE id_contact=1;
> ALTER TABLE contact DROP person_mail; > ALTER TABLE contact DROP phone_2; > ALTER TABLE contact CHANGE corp_mail email VARCHAR(55) NOT NULL; > ALTER TABLE contact CHANGE phone_1 phone VARCHAR(15) NOT NULL; > SELECT * FROM contact WHERE id_contact=1; MySQL Server e SQL Linguagem SQL
Altere a tabela employee
> SELECT * FROM employee WHERE id_person=1;
> ALTER TABLE employee ADD surname TINYTEXT NOT NULL; > UPDATE employee SET name='Gideon' WHERE id_person=1; > UPDATE employee SET surname='Goddard' WHERE id_person=1; > SELECT * FROM employee WHERE id_person=1; MySQL Server e SQL Linguagem SQL
Insira novos registros nas tabelas
> INSERT INTO employee (id_person,name,sector,position,surname)
VALUES (2,'Lloyd','Cybersecurity','Analist','Chun'); > INSERT INTO employee (id_person,name,sector,position,surname) VALUES (3,'Elliot','Cybersecurity','Engineer','Alderson'); > INSERT INTO employee (id_person,name,sector,position,surname) VALUES (4,'Angela','Account Manager','Middle','Moss'); > INSERT INTO employee (id_person,name,sector,position,surname) VALUES (5,'Ollie','Marketing','Major','Parker'); MySQL Server e SQL Linguagem SQL
Insira novos registros nas tabelas
> INSERT INTO contact(id_contact,email,address,phone,start_time,
finish_time) VALUES (3,'elliot.alderson@asf.com','5th Avenue N 1024','+1 211-020-1009','09:00:00','17:00:00');
> INSERT INTO contact(id_contact,email,address,phone,start_time,
finish_time) VALUES (3,'elliot.alderson@asf.com','5th Avenue N 1024','+1 211-020-1009','09:00:00','17:00:00'); MySQL Server e SQL Linguagem SQL
Insira novos registros nas tabelas
> INSERT INTO contact(id_contact,email,address,phone,start_time,
finish_time)VALUES(4,'angela.moss@asf.com','5th Avenue N 1024','+1 211-020-1010','09:00:00','17:00:00');
> INSERT INTO contact(id_contact,email,address,phone,start_time,
finish_time)VALUES(5,'ollie.parker@asf.com','5th Avenue N 1024','+1 211-020-1011','09:00:00','17:00:00'); MySQL Server e SQL Linguagem SQL
Insira novos registros nas tabelas
> INSERT INTO employee_contact(id_person,id_contact)VALUES
(2,2); > INSERT INTO employee_contact(id_person,id_contact)VALUES (3,3); > INSERT INTO employee_contact(id_person,id_contact)VALUES (4,4); > INSERT INTO employee_contact(id_person,id_contact)VALUES (5,5); MySQL Server e SQL Linguagem SQL
Analise as inserções feitas nas tabelas
> SELECT * FROM employee;
> SELECT * FROM contact; > SELECT * FROM employee_contact;
Refine suas queries
> SELECT address FROM contact GROUP BY address;
> SELECT sector FROM employee GROUP BY sector; MySQL Server e SQL Linguagem SQL
Analise as inserções feitas nas tabelas
> SELECT * FROM employee; > SELECT * FROM contact; > SELECT * FROM employee_contact;
Refine suas queries buscando grupos e ordenando resultados
> SELECT address FROM contact GROUP BY address; > SELECT sector FROM employee GROUP BY sector; > SELECT * FROM emplyee ORDER BY name; MySQL Server e SQL Linguagem SQL
Execute a união de resultados obtidos em mais de uma tabela
> SELECT name FROM employee INNER JOIN contact ON employee.id_person=contact.id_contact; > SELECT name,email FROM employee INNER JOIN contact ON employee.id_person=contact.id_contact; > SELECT name,email,phone FROM employee INNER JOIN contact ON employee.id_person=contact.id_contact; > SELECT name,email,phone,sector FROM employee INNER JOIN contact ON employee.id_person=contact.id_contact; MySQL Server e SQL Dump e Restore de Database
Adicione um usuário com senha LinuxForce00 ao SGDB e
conceda permissões para administrar a base asf > GRANT ALL PRIVILEGES ON asf.* TO webmaster@localhost IDENTIFIED BY 'LinuxForce00' WITH GRANT OPTION;
Aplique as alterações e saia do MySQL e faça um dump da base
> FLUSH PRIVILEGES; > exit # mysqldump -u webmaster -p asf > asf_dump.sql MySQL Server e SQL Dump e Restore de Database
Logue no MySQL e destrua a base asf
# mysql -p > SHOW DATABASES; > DROP DATABASE asf; > SHOW DATABASES; > exit
Volte ao MySQL e recrie o Database asf
# mysql -p MySQL Server e SQL Dump e Restore de Database
> SHOW DATABASES;
> CREATE DATABASE asf; > SHOW DATABASES; > exit
Restaure as tabelas e registros através do arquivo de dump
# mysql -b asf -p < asf_dump.sql MySQL Server e SQL Dump e Restore de Database
Logue no MySQL e verifique o resultado da restauração
# mysql -u webmaster -p > SHOW DATABASES; > USE asf > SHOW TABLES; > SELECT name,email,phone,sector FROM employee INNER JOIN contact ON employee.id_person=contact.id_contact; > exit