psi linguagem de manipulação de dados · linguagem de definição de dados ... id_autor da tabela...

45
PSI Linguagem de Definição de dados Módulo 15

Upload: vuongkien

Post on 13-Dec-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

PSILinguagem de Definição

de dadosMódulo 15

Page 2: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

Objetivos de aprendizagemNo final deste módulo os alunos devem ter adquirido conhecimentos, procedimentos e atitudes que lhe permitam:▪Criação, alteração e eliminação de tabelas e índices em SQL;▪Criação e eliminação de tabelas;▪Alteração de tabelas;▪Criação e eliminação de índices;▪Conceito de transação;▪Privilégios e controlo de acessos.

Page 3: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

Conteúdos1. Criação, alteração e eliminação de tabelas e índices em SQL1.1. Criação de tabelas (comando CREATE TABLE)1.2. Alteração de tabelas (comando ALTER TABLE)1.3. Criação de índices (comando CREATE INDEX)1.4. Eliminação de tabelas e índices (comandos DROP TABLE e DROP INDEX)

2. Atualização de dados2.1. Inserção de linhas (comando INSERT INTO)2.2. Alteração de valores nas linhas (comando UPDATE)2.3. Eliminação de linhas (comando DELETE FROM)

3. Conceito de transação (comandos COMMIT e ROLLBACK)

4. Privilégios e controlo de acessos (comandos GRANT e REVOKE

Page 4: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLEO comando SQL CREATE TABLE permite criar uma tabela.

Exemplo simples:

CREATE TABLE exemplo (id INT,nome VARCHAR(100));

Esta tabela com o nome ‘exemplo’ tem 2 campos: id e nome:▪id é um campo numérico;▪Nome é uma String.

Page 5: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

TIPOS DE DADOS

VER FOTOCÓPIA ENTREGUE NO MÓDULO 14

Page 6: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT DEFAULT

Nas tabelas no Mysql, cada coluna tem que conter um valor (incluindo o NULL). Podemos definir aquando a criação da tabela, que caso não seja inserido um valor para determinado campo, então irá ser atribuído um valor pré-definido.

CREATE TABLE exemplo (id INT,morada VARCHAR(50),Localidade VARCHAR(20) DEFAULT ‘Lisboa’);

Page 7: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

ALTER TABLECONSTRAINT DEFAULT

Se a tabela já estiver criada, podemos definir posteriormente o DEFAULT para um determinado campo:

ALTER TABLE PessoaALTER Cidade SET DEFAULT ‘Lisboa‘

Da mesma forma, podemos eliminar o DEFAULT:

ALTER TABLE PessoaALTER Cidade DROP DEFAULT

Page 8: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT AUTO_INCREMENT

Utiliza-se o auto_increment numa chave primária para criar uma coluna que incrementa automaticamente um valor em cada nova inserção na tabela.

Page 9: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT AUTO_INCREMENT

CREATE TABLE animais (id INT NOT NULL AUTO_INCREMENT, nome CHAR(30) NOT NULL, PRIMARY KEY (id) );

INSERT INTO animais (nome) VALUES (‘cão'),(‘gato'),('pinguim'), (‘baleia‘);

SELECT * FROM animais;

+----+---------+ | id | name+----+---------+ | 1 | cão | 2 | gato | 3 | pinguim | 4 | baleia +----+---------+

Page 10: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT UNIQUE

Tem o objetivo de identificar univocamente cada registo da tabela, evitando assim que dois registos tenham valores iguais numa determinada coluna.

A Chave Única fornece a garantia de exclusividade para uma coluna.

Podemos aplicar a chave única a um conjunto de colunas.

Page 11: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT UNIQUE

Exemplo:CREATE TABLE Trabalhador(

Id int NOT NULL,Apelido varchar(255) NOT NULL,Nome varchar(255),Morada varchar(255),Cidade varchar(255),BI varchar (13),UNIQUE(BI)

)Neste exemplo, queremos que não seja possível 2 trabalhadores terem o mesmo BI.

Page 12: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT UNIQUE

Exemplo:CREATE TABLE Trabalhador(

Id int NOT NULL,Apelido varchar(255) NOT NULL,Nome varchar(255),Morada varchar(255),Cidade varchar(255),BI varchar (13),CONSTRAINT unqTrab UNIQUE(nome,apelido)

)Neste exemplo, queremos que não seja possível 2 trabalhadores terem o mesmo nome e apelido.

Page 13: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

ALTER TABLECONSTRAINT UNIQUE

Podemos ainda acrescentar a restrição UNIQUE após a criação da tabela.

Exemplos:ALTER TABLE TrabalhadorADD UNIQUE (BI)

ALTER TABLE TrabalhadorADD CONSTRAINT unqTrab UNIQUE (nome, apelido)

Para retirar uma restrição UNIQUE:ALTER TABLE Trabalhador DROP INDEX unqTrab;(O MySQL considera a restrinção UNIQUE como sendo um index)

Page 14: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT PRIMARY KEY

A chave primária de uma tabela identifica univocamente cada registonessa tabela.A chave primária tem de conter valores únicos e não pode conter valoresNULL.Cada tabela apenas pode conter uma chave primária, no entanto esta pode ser composta por vários campos.

Page 15: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT PRIMARY KEY

Exemplo:

CREATE TABLE Trabalhador(Id int NOT NULL,Apelido varchar(255) NOT NULL,Nome varchar(255),Morada varchar(255),Cidade varchar(255),BI varchar (13),PRIMARY KEY (id)

)

Page 16: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT PRIMARY KEY

Exemplo: Chave composta

CREATE TABLE Requisicao(IdSocio int NOT NULL,IdLivro int NOT NULL,data date NOT NULL,CONSTRAINT pkReq PRIMARY KEY (IdSocio, IdLivro, data)

)

Page 17: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT PRIMARY KEY

Exemplo:

No exemplo acima iremos ter um erro pois a chave primária não poderá ter 2 campos duplicados.

Page 18: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT PRIMARY KEY

Exemplo:

Aqui não iremos ter erro pois, como a chave primária é composta pelos campos nome e estado, a cidade é igual mas o estado não.Haveria problema sim, se ambos os valores cidade e estado fossem iguais em 2 registos!

Page 19: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

ALTER TABLECONSTRAINT PRIMARY KEY

Para definir a chave primária após a criação da tabela:

ALTER TABLE TrabalhadorADD PRIMARY KEY (Id)

ALTER TABLE RequisicaoADD CONSTRAINT pkReq PRIMARY KEY (IdSocio, IdLivro, data)

Page 20: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT FOREIGN KEY

O papel da chave estrangeira é manter uma referência a um registo presente noutra tabela.

A chave estrangeira de uma tabela está relacionada com a chave primária de outra tabela.

Page 21: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT FOREIGN KEY

Exemplo:Temos uma tabela livros e uma tabela autores.

Um autor pode escrever vários livros e um livro pode ser escrito somente por um determinado autor.

O relacionamento entre estas 2 tabelas vai ser feito com base num campo em comum id_autor.

Todas as vezes que o valor do campo id_autor na tabela livros for igual ao valor do campo id_autor na tabela autores nós estaremos a criar uma relação autor-livro.

Page 22: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT FOREIGN KEY

CREATE TABLE autores(id_autor INT UNSIGNED NOT NULL auto_increment,nome varchar(45) NOT NULL,email varchar(45) NOT NULL,PRIMARY KEY(id_autor)

)CREATE TABLE livros(id_livro INT UNSIGNED NOT NULL AUTO_INCREMENT,titulo VARCHAR(45) NOT NULL,id_autor INT UNSIGNED NOT NULL,PRIMARY KEY(id_livro)

)

Page 23: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT FOREIGN KEY

Supõe-se que excluímos um registo na tabela autores e, que o campo id_autor da tabela livros guardava uma referência para o autor excluído.

Teremos uma violação da integridade referencial!

A chave estrangeira é usada para evitar situações que possam destruir as ligações entre as tabelas.

A chave estrangeira também evita que sejam inseridos dados inválidos na coluna da chave estrangeira (os dados têm de existir na tabela relacionada)

Page 24: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT FOREIGN KEY

CREATE TABLE livros(id_livro INT UNSIGNED NOT NULL AUTO_INCREMENT,titulo VARCHAR(45) NOT NULL,id_autor INT UNSIGNED NOT NULL,PRIMARY KEY(id_livro),FOREIGN KEY(id_autor)

REFERENCES autores(id_autor)ON DELETE CASCADE

)Ou se se pretender dar um nome à restrição:CONSTRAINT fkLivro FOREIGN KEY(id_autor)

REFERENCES autores(id_autor) ON DELETE CASCADE

Page 25: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT FOREIGN KEY

FOREIGN KEY(id_autor) REFERENCES autores(id_autor)ON DELETE CASCADE

ON DELETE CASCADE significa que, se se apagar ou alterar uma linha (registo) na tabela pai, irá automaticamente apagar ou alterar as linhas correspondentes na tabela filha, isto com base nos campos em que se estabelece o relacionamento.

Page 26: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

CREATE TABLECONSTRAINT FOREIGN KEY

FOREIGN KEY(id_autor) REFERENCES autores(id_autor)ON DELETE SET NULL

ON DELETE SET NULL significa que, se se apagar ou alterar uma linha (registo) na tabela pai, irá ser colocado automaticamente o valor NULL no campo chave estrangeira nas linhas correspondentes na tabela filha, atenção que a chave estrangeira na tabela filha não pode ser NOT NULL!

Page 27: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

ALTER TABLECONSTRAINT FOREIGN KEY

Se se pretender adicionar a foreign key à posteriori:

ALTER TABLE LivrosADD FOREIGN KEY (Id_autor) REFERENCES Autores(Id_autor)

Para dar um nome à restrição e/ou definir a chave composta por várioscampos:

ALTER TABLE LivrosADD CONSTRAINT fkLivroFOREIGN KEY (Id_autor) REFERENCES Autores(id_autor)

Page 28: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

ALTER TABLECONSTRAINT FOREIGN KEY

Para eliminar a chave estrangeira:

ALTER TABLE LivrosDROP FOREIGN KEY fkLivro

Quando se cria uma chave estrangeira sem dar explicitamente um nome à restrição, internamente é criada uma designação. Para saber qual é a restrição, de forma a poder eliminar a chave estrangeira, usar o comandoSHOW CREATE TABLE nomeatabela.

Page 29: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

INSERT INTOA função INSERT INTO serve para inserir dados na tabela já existente.

Exemplo: INSERT INTO Clientes (NomeClientes, NomeContacto, Endereço, Cidade, CodPostal, Pais)

VALUES ('Carmo',‘Luis Santos',‘Av Liberdade n100',’Lisboa',‘1234-123',‘Portugal');

O que significa que se fizermos uma consulta à tabela Clientes iremos ter uma linha com os dados agora inseridos:

NomeClientes| NomeContacto| Endereço | Cidade| CodPostal |Pais…Carmo Luis Santos Av Liberdade n100 Lisboa 1234-123 Portugal

Page 30: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

UPDATEA sintaxe do UPDATE é bastante parecida à sintaxe do INSERT mas o comando UPDATE é usado para alterar informações na base de dados em vez de as inserir.

UPDATE nome_da_tabela SET campo1 = valor1, campo2 = valor2, …;

Exemplo:Considera a tabela clientes, que entre outros campos tem o campo nome.

A seguinte instrução irá alterar todos os registos da tabela:

UPDATE clientes SET nome = 'Rafael’;

Page 31: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

UPDATEExemplo:UPDATE clientes SET nome = 'Rafael', email = '[email protected]' WHERE id = 1;

Nesta situação apenas irá alterar os registos que tenham o campo id=1.

UPDATE – Comando para atualizar os dadosSET – o que será alteradoWHERE – condição para especificar os registos a alterar

Page 32: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

UPDATEConclusõesPodemos alterar um, vários ou todos os registos da tabela.

É importante ter em mente que se não se usar a cláusula WHERE, o comando vai alterar todos os registos da tabela.

Na cláusula WHERE, podemos usar várias combinações de condições (AND/OR) para definir os registos a serem alterados. Exemplo: Podemos alterar todos registos com a data inferior a hoje e (AND) que a hora seja maior que 10 horas.

Podemos alterar um ou mais campos da tabela, para isto, basta depois do 'valor novo do campo', adicionar uma vírgula.

Page 33: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

DELETEDelete é instrução em SQL, que remove um ou mais registos de uma tabela. Pode ser definido um subconjunto de registos para a exclusão usando uma condição, caso contrário, todos os registos serão removidos.

Page 34: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

DELETEExemplo:Considera a tabela CLIENTES com os seguintes registos: +----+----------+-----+-----------+----------+

| ID | NAME | AGE | ADDRESS | SALARY |

+----+----------+-----+-----------+----------+

| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |

| 2 | Khilan | 25 | Delhi | 1500.00 |

| 3 | kaushik | 23 | Kota | 2000.00 |

DELETE FROM Clientes WHERE ID = 2;

Irá apagar um cliente, cuja identificação é 2:+----+----------+-----+-----------+----------+

| ID | NAME | AGE | ADDRESS | SALARY |

+----+----------+-----+-----------+----------+

| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |

| 3 | kaushik | 23 | Kota | 2000.00 |

Page 35: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

INDEXESOs indices são usados para encontrar rapidamente linhas quetenham um valor especifico numa coluna.

Sem a existência de um index, o MySQL começa pela 1.ª linha e vai ler a tabela completa à procura das linhas(registos) que pretende.

Alguns indexes :PRIMARY KEY, UNIQUE, INDEX, e FULLTEXT

Page 36: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

INDEXESDeclaração que cria um indice, com base nos 10 primeiroscaracteres do nome da coluna.

CREATE INDEX part_of_name ON customer (name(10));

Page 37: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

TRANSACTIONPor defeito, MySQL é executado num modo em que ao se executar as declarações que modifiquem uma tabela, o MySQL armazena essa alteração diretamente no disco tornando-as permanente.(modo autocommit ativo)

Declarações a usar:START TRANSACTION: começa uma nova transação;COMMIT: realiza a transação em curso, tornando as alteraçõespermanentes;ROLLBACK: desfaz a transação atual, cancelando as suas alterações;SET autocommit: ativa ou desativa o modo de autocommit para a sessão em curso.

Page 38: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

TRANSACTIONVerificar autocommit

Executar a seguinte consulta:select @@autocommit

Se estiver a 1, significa que o autocommit está ativado.

Alterar autocommitSet autocommit=0

Pode ser necessário reiniciar o serviço para ter efeito.

Page 39: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

TRANSACTIONSelect * from clientes;

START TRANSACTION;

INSERT INTO clientes(nome,sobrenome) VALUES

('Teste‘,'Teste');

Select * from clientes; //vê-se a tabela com o novo elemento

ROLLBACK; //volta trás, desfazendo as ações

Select * from clientes; //vê-se a tabela

Page 40: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

TRANSACTIONSelect * from clientes;

START TRANSACTION;

INSERT INTO clientes(nome,sobrenome) VALUES

('Teste‘,'Teste');

Select * from clientes; //vê-se a tabela com o novo elemento

COMMIT; //Realiza as ações

Select * from clientes; //vê-se a tabela

Page 41: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

PRIVILEGIOS E CONTROLO DE ACESSOS

1.ª etapa: estabelecer uma ligação ao servidor

Se se conseguir conectar ao servidor , mas se os nossos privilegios nãoforem o que se está à espera, podemos verificar qual a conta que o servidor está a usar para nos autenticar.

Usar a seguinte função:mysql> SELECT CURRENT_USER();

Depois de estabelecer a conexão com o servidor entramos na 2.ª etapa de controlo de acessos.

Para cada pedido que quiser realizar através esta conexão, o servidor vaiverificar se temos ou não privilégios suficientes para o conseguir.

Page 42: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

PRIVILEGIOS E CONTROLO DE ACESSOSPrivilege System Grant Tables(sistema para conceder privilégios a tabelas)

O MySQL inclui várias tabelas onde são guardadas informações acercadas contas dos utilizadores e dos privilégios que cada um tem.

Para manipular o conteúdo destas tabelas, vamos fazê-lo indiretamenteatravés das declarações de gestão de contas (permitem definir contas e controlar os privilegios disponíveis para cada uma):

CREATE USER, GRANT, REVOKE

Page 43: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

PRIVILEGIOS E CONTROLO DE ACESSOS

Quando se modifica uma conta, deve-se verificar que as nossasalterações vão ter o efeito esperado. Para verificar os privilégios de umaconta usar a declaração SHOW GRANTS :

SHOW GRANTS FOR 'bob'@'pc84.example.com';

SHOW GRANTS FOR ‘userName’ @ ‘hostName’;

Se quisermos saber os privilégios da nossa conta usar:‘NossoUserName'@'%'.

OuCurrent_user() @'%‘

Page 44: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

PRIVILEGIOS E CONTROLO DE ACESSOSCREATE USER

O hostName pode ser o nome do servidor ou um endereço IPO nome 'localhost' indica o servidor local com IP '127.0.0.1‘

Criar um user sem password:

CREATE USER ‘aluno'@‘localhost’

Criar um user com password:CREATE USER ‘aluno2'@'localhost' IDENTIFIED BY 'minhaPW';

Atenção que temos de ter privilégio para poder criar contas!

Page 45: PSI Linguagem de Manipulação de dados · Linguagem de Definição de dados ... id_autor da tabela livros guardava uma referência para o autor excluído. ... Por defeito, MySQL

PRIVILEGIOS E CONTROLO DE ACESSOSGRANT

Atenção que temos de ter privilégio para poder definir privilégios nascontas!

O administrador da BD usa 1.º o CREATE USER para criar uma conta e depois o GRANT para definir os seus privilégios e caracteristicas.

Exemplo:CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass'; GRANT ALL ON db1.* TO 'jeffrey'@'localhost'; GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';

Acede ao site indicado e verifica e testa mais alguns privilégios.https://dev.mysql.com/doc/refman/5.1/en/grant.html#grant-privileges