ficha01 - WordPress.com

Propaganda
Ficha de trabalho nº1
Curso Tecnológico de Informática
Módulo 9: Linguagens de programação para a web
Bases de Programação 12º Ano
Abril de 2011
Objectivo: Introdução às ferramentas programação para a Web
Instalação de ferramentas necessárias à programação com PHP
Software a instalar – Xampp (1.7.4)
Instale o software Xampp - este contém (Apache, Mysql, PHP)
(root- password : aluno)
Inicialização do Apache e MySQL
Faça o Apache Start , e o MySQL Start
No Navegador Web escreva localhost – seleccione o separador mysqlAdmin e crie um
novo utilizador com o nome aluno e password aluno, atribua todos os privilégios
como se fosse root.
Introdução ao sistema de bases de dados MySQL
A administração do MySQL inclui várias tarefas:



Criação e remoção de bases de dados;
Criação e remoção de utilizadores;
Definição de privilégios dos utilizadores relativamente às bases de dados.
1
Posicione-se na linha de comandos, botão iniciar menu executar digite command.com
Para aceder à base de dados mysql poderemos usar p comando:
mysql -u aluno -p
Depois da inserção da password (aluno) teremos acesso à shell mysql:
mysql>
 Para familiarizar-se com os comandos do mysql realize as seguintes
experiências.
 Poderemos consultar as bases de dados existentes:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql
|
| test
|
+----------+
2 rows in set (0.01 sec)
 Em seguida, deveremos seleccionar a base de dados mysql e poderemos listar
as tabelas que essa base possui:
mysql> use mysql;
Database changed
mysql> SHOW TABLES;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv
|
| db
|
| func
|
| host
|
| tables_priv
|
| user
|
+-----------------+
6 rows in set (0.00 sec)
 Poderemos fazer a consulta dos utilizadores do SGBD fazendo algo como:
mysql> select Host, User, Password from user;
+-----------+--------+-------------------------------------------+
| Host
| User
| Password
|
+-----------+--------+-------------------------------------------+
| localhost | root
| *67E60794AEBE1627808E96533CF0C146EA62F7D1 |
| localhost |
|
|
| %
|
|
|
+-----------+--------+-------------------------------------------+
3 rows in set (0.00 sec)
Verificamos que existem 3 utilizadores:
1. utilizador root (do MySQL, não do sistema), que apenas se poderá apenas
ligar da própria máquina (localhost) e terá de se autenticar usando uma
password;
2. um utilizador anónimo, que se poderá apenas ligar da própria máquina
(localhost) e que não precisa de password
3. um utilizador anónimo que poderá ligar-se de qualquer máquina e não precisa
de password
2
Note-se que os dois utilizadores anónimos não são o mesmo utilizador (a chave
desta relação é [Host,User]) e poderão ter privilégios diferentes de acesso ao
SGBD.
 Se agora consultarmos a tabela db da base de dados mysql, já obtemos:
mysql> select Host, Db, User from db;
+------+------+------+
| Host | Db
| User |
+------+------+------+
| %
| test |
|
+------+------+------+
1 row in set (0.00 sec)
 Outros comandos genéricos úteis a nível de administração:




SHOW STATUS; - estado do servidor MySQL
SHOW VARIABLES; - configuração do servidor MySQL e variáveis ambiente
SELECT version(); - consulta da versão do servidor MySQL
SELECT user(); - consulta do nome de utilizador que está a ser empregue no
acesso ao servidor.
3
Alguns comandos do mysql
1.1.Entar no mysql em modo root com todos os previlégios
mysql -u root –p
(no nosso caso substituir root por aluno)
1.2.Sair no mysql
Quit;
1.3. Mostrar as base de dados existentes
mysql> SHOW DATABASES;
1.4.Criar uma base de dados (ppbd)
mysql> CREATE DATABASE ppbd;
de seguida para puder usar a base de dados criada deve usar o comando:
use ppbd;
Acabamos de criar uma nova base de dados (ppbd) o que pode ser verificado por:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql
|
| ppbd
|
| test
|
+----------+
3 rows in set (0.00 sec)
Para remover a base de dados poderemos fazer:
1.5.Remover uma base de dados
mysql> DROP DATABASE ppbd;
1.6.Criar Utilizadores & Privilégios
Depois de criada uma base de dados ppbd poderemos agora criar um utilizador para a gestão completa
desta base de dados. Este procedimento pode ser realizado de duas formas:
mysql> GRANT ALL PRIVILEGES ON ppbd.*

TO 'aaa'@'localhost'

IDENTIFIED by 'aaapass'

WITH GRANT OPTION;
Com este comando acabamos de criar um novo utilizador com o nome aaa e com password aaapass e
fornecemos todos os privilégios sobre a base de dados ppbd. Em seguida teremos de requisitar ao
servidor MySQL que releia a tabela de privilégios através do comando:
mysql> FLUSH PRIVILEGES;
Podemos agora verificar que existe um novo utilizador na base de dados:
mysql> select Host,User,Password from user;
+-----------+----------+-------------------------------------------+
| Host
| User
| Password
|
+-----------+----------+-------------------------------------------+
| localhost | root
| *67E60794AEBE1627808E96533CF0C146EA62F7D1 |
| localhost | ppbdroot | *7DA31D5EFE0D49F7F40B0791AFC315F82058AB6C |
| localhost |
|
|
| %
|
|
|
+-----------+----------+-------------------------------------------+
4
4 rows in set (0.01 sec)
E podermos também consultar a tabela de privilégios para confirmar que o utilizador aaa possui todos
os privilégios sobre a base de dados ppbd:
mysql> select * from db;
+-----------+------+----------+-------------+-------------+-------------+------------+-------------+-----------+------------+
| Host
| Db
| User
| Select_priv | Insert_priv | Update_priv |
Delete_priv | Create_priv | Drop_priv | Grant_priv |
+-----------+------+----------+-------------+-------------+-------------+------------+-------------+-----------+------------+
| %
| test |
| Y
| Y
| Y
| Y
| Y
| Y
| N
|
| localhost | ppbd | ppbdroot | Y
| Y
| Y
| Y
| Y
| Y
| Y
|
+-----------+------+----------+-------------+-------------+-------------+------------+-------------+-----------+------------+
2 rows in set (0.00 sec)
Note-se que o utilizador ppbdroot possui todos os privilégios relativos à base de dados ppbd, ao
contrário do utilizador anónimo não possui todos os privilégios relativos à base de dados test. Note-se
também que ninguém possui privilégios sobre a base de dados mysql o que implica que só o root é que
poderá, nestas circunstâncias, criar novos utilizadores e atribuir globalmente privilégios.
Depois destas operações o utilizador aaa poderá realizar todas as operações sobre a base de dados
ppbd.
1.7.Remover Utilizadores & Privilégios
Retira os privilégios na base de dados mysql da tabela user ao utilizador aaa
mysql> revoke ALL on mysql.user

From 'aaa'@'localhost'
1.8.Alterar a password do uilizador
mysql> upadate user Set password=

Pawword (‘New_password’)

WHERE user=’user_name’;
Para que as alterações tenham efeito deve:
mysql> FLUSH PRIVILEGES;
1.9. Mostrar as tabelas
mysql> show tables;
1.10.Apagar tabelas
mysql> Drop Table nome_tabela;
1.11.Mostra os dados inseridos nas tabelas
mysql> Select * from nome_tabela;
1.12.Apagar um registo de uma tabela
mysql> Delete From tabela [where condição];
5
Exercicio
1.
2.
3.
4.
5.
Entrar no mysql como root (aluno).
Criar um utilizador com o seu nome e atribua todos os privilégios.
Sai do root e volte a entrar com o utilizador criado anteriormente.
Crie uma base de dados com o nome Vendas
Use a base de dados vendas para inserir as seguintes tabelas:
Clientes(CodCli,Nome, Morada );
Fornecedores(CodForn, Nome, Morada );
Artigos (CodArt,Artigo, P_Unit,CodForn, CodForn );
Encoms (NEnc,Data, CodCli, CodArt, Quant) ;
Dicas:
Create Table Clientes
 (CodCli Varchar (5) Primary Key,
 Nome Varchar (20),
 Morada Varchar (25) );
Para ver o resultado digite:
Mysql> describe clientes;
Create Table Fornecedores




(CodForn Varchar (5),
Nome Varchar (20),
Morada Varchar (25) );
Primary Key(CodForn));
Create Table Artigos





(CodArt Varchar (5) Primary Key,
Artigo Varchar (20),
P_Unit Float (10, 2),
CodForn Varchar (5) References
Fornecedores(CodForn) );
Create Table Encoms








(NEnc Int Auto_Increment,
Data Date,
CodCli Varchar (5) References
Clientes(CodCli),
CodArt Varchar (5) References
Artigos(CodArt),
Quant Integer) ,
Primary Key (NEnc));
6
6. Inserir dados nas tabelas:
use vendas
Insert into Clientes Values
("C111", "Antunes", "Aveiro"),
("C122", "Belmiro", "Braga"),
("C133", "Ludmila", "Lisboa"),
("C144", "Pereira", "Porto");
Insert Fornecedores Values
("F101", "Coimbrox", "Coimbra"),
("F102", "Lisbonix", "Lisboa"),
("F103", "Portulux", "Porto");
Insert Artigos Values
("A01", "Alicate X", "F101", 2.15),
("A07", "Alicate K", "F102", 2.75),
("M10", "Martelo T", "F103", 2.50),
("M14", "Martelo K", "F101", 3.50),
("S33", "Serra RRR", "F102", 5.00);
Insert Encoms Values
(1, "2011-12-02", "C111", "A01", 10),
(2, "2011-12-02", "C122", "A07", 20),
(3, "2011-12-03", "C133", "M10", 15),
(4, "2011-12-03", "C144", "M14", 10),
(5, "2011-12-04", "C133", "S33", 30),
(6, "2011-12-04", "C144", "A07", 10);
1. Indique o comando para visualizar os dados introduzidos na tabela clientes.
7
Resumo de comandos
Criar tabelas
create database vendas; // cria a base de dados
use vendas; // activa a base de dados
show tables; // lista as tabelas da base de dados activada
describe clientes; // apresenta a estrutura da tabela “clientes”
create table artigos
(codart varchar(5) Primary key,
artigo varchar(20),
p_unit Float(10,2),
codforn varchar(5) References fornecedores(codforn));
Cria a tabela artigos cuja chave primária é
codart e ainda inclui o campo artigo, p_unit
e chave externa é o codforn da tabel
fornecedores
ou
create table encoms
(nenc Int Auto_Increment,
data Date,
codcli varchar(5) References clientes(codcli),
codart varchar(5) References artigos(codart),
Quant Integer,
Primary key (nenc));
Inserir dados numa tabela
Insert into fornecedores (codforn, nome, morada) values
("F101","Empresa XX","R. das Flores, nº 33"),
("F102","Sociedade das Boas", "Av. Francisco 3, 22");
Insere vários dados na tabela fornecedores
Ou
Insert into encoms(nenc,data,codcli,codart,quant) values
(1,"2008-01-01","C10","A01",5),
(2,"2008-01-02","C10","A07",12),
(3,"2008-04-02","C11","A07",21),
(4,"2008-04-02","C22","A03",22);
Selecionar (visualizar) dados de uma tabela
select * from artigos;
Listar os artigos do fornecedor F102:
select * from artigos where codforn="F102";
Listar os artigos cujo preço unitário é superior a 2 €:
select * from artigos where p_unit>2;
Listar as encomendas efectuadas pelo cliente C10:
Select * from encoms where codcli="C10";
Listar apenas os códigos e as designações de todos os artigos:
select codart, artigo from artigos;
Listar o preço dos Alicates:
select * from artigos where artigo like "%Alicate%";
Listar os artigos por ordem decrescente de preço:
select * from artigos order by p_unit desc;
Listar todos os artigos já encomendados:
select distinct e.codart,a.artigo from encoms e,artigos a
where e.codart=a.codart;
Eliminar uma tabela
Eliminar tabela: DROP Table nome_da_tabela;
Alterar campos de uma tabela
Alterar uma tabela: ALTER Table nome_da_tabela
<tipo_de_alteração>;
Adicionar novo campo: ALTER Table artigos Add Quant Int;
Modificar tipo de campo: ALTER Table artigos Modify Quant Float;
Eliminar campo: ALTER Table artigos Drop Quant;
8
Apagar um registo numa tabela:
DELETE FROM tabela [WHERE condição];
mysql> delete from artigos where codart=“S33”;
muito cuidado com este comando
Alterar um registo numa tabela:
UPDATE tabela SET Nome_Campo1=<Expressão1>,
SET Nome_Campo2 =<Expressão2>…
[WHERE condição];
Mysql> update artigos
> set p_unit=5.50
> where codart=“S33”;
Consultas
SELECT <lista de campos>
FROM <lista de tabelas>
[WHERE <critérios de selecção>]
Quatro variantes de consultas SQL com comando SELECT:
9
Fotocopiei livro(150-167)
10
Download