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

Documentos relacionados
Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

Banco de Dados I Introdução SQL

Linguagem SQL Restrições, Triggers e Views

A linguagem SQL

Prof. Dr. Joaquim Assunção Banco de Dados. SQL (parte 4) DDL Restrições

Tabelas. Banco de Dados I MySQL

Banco de Dados. Professora: Luciana Faria

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

Linguagem SQL (Parte II)

SQL (Tópicos) Structured Query Language

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

Utilizando o Postgres - comandos SQL para a manipulação de dados

Professor Leonardo Larback

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

SQL Linguagem de Definição de Dados

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

Bases de Dados. DDL Data Definition Language

Administração de Banco de Dados

Teste Exemplo Revisão da tentativa 1

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Importar e Exportar Dados

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Flávio Dantas

FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS. Prof. Erinaldo Sanches Nascimento

SQL. Linguagem de Definição de Dados (DDL) Tipos em SQL. Tipos Data/Tempo em SQL (cont.)

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

Marcos Alexandruk Marcos Alexandruk

Técni n c i as e L i L n i g n u g age g ns n p ara r Ba B nc n o d e D ados I ACCESS

A linguagem SQL

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

Instrução Create Table

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

SQL Básica. Andre Noel

Linguagem de Definição de Dados (DDL)

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

Triggers(Gatilhos) Tiago Alves de Oliveira

Banco de Dados. Linguagem SQL

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

MySql. Introdução a MySQL. Andréa Garcia Trindade

Bancos (Bases) de Dados

Transacções. Vitor Vaz da Silva

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Flickr, shindotv/ / BASES DE DADOS. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes

Rápida revisão do Modelo Relacional

Linguagem de Consulta Estruturada (SQL)

PHP INTEGRAÇÃO COM MYSQL PARTE 1

BCD29008 Banco de dados

Para criarmos um banco de dados no MySql, utilizamos à instrução:

Programação SQL. Introdução

Tarefa Orientada 8 Criação de tabelas

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

MySQL. Prof. César Melo. com a ajuda de vários

Aula 06 Sistemas Embarcados LT38C

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

Manipulação de Dados com SQL

SISTEMAS DE INFORMAÇÃO

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

Exemplos de Vistas SQL. Tipos em SQL. Linguagem de Definição de Dados (DDL) CREATE VIEW todososclientes As

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

SQL. Índices, views e restrições. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Mysql. Quanto mais informações você busca, mais você evolui. Vitor Ramos. Disciplina de Banco de Dados

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

BANCO DE DADOS GERENCIAL 1 A U L A 2

SQL. Autor: Renata Viegas

Múltiplas Tabelas. Disciplina de Banco de Dados

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Modelo Relacional + SQL (DDL) Material elaborado pela Prof. Karin Becker

IMPLEMENTAÇÃO DE BANCO DE DADOS

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

Fundamentos de Banco de Dados Postgre com Sql

Subsistema de Integridade Semântica

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Laboratório de Banco de Dados. Prof. Luiz Vivacqua.

Modelagem Física e SQL

Bases de Dados BDDAD. Oracle SQL Comandos. Nelson Freire (ISEP LEI-BDDAD 2017/18) 1/101

LAB 7 Cookies e Sessões em PHP

INSERT INTO shop VALUES (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),(3,'C',1.69), (3,'D',1.25),(4,'D',19.95);

Introdução ao PostgreSQL

Conexão com Banco de Dados, Inserção, exclusão e atualização de registros

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

Modelagem Física e SQL

Disciplina: Banco de Dados Tema: SQL Parte 2

Transcrição:

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

Objetivos de aprendizagem No 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.

Conteúdos 1. Criação, alteração e eliminação de tabelas e índices em SQL 1.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 dados 2.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

CREATE TABLE O 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.

TIPOS DE DADOS VER FOTOCÓPIA ENTREGUE NO MÓDULO 14

CREATE TABLE CONSTRAINT 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 );

ALTER TABLE CONSTRAINT DEFAULT Se a tabela já estiver criada, podemos definir posteriormente o DEFAULT para um determinado campo: ALTER TABLE Pessoa ALTER Cidade SET DEFAULT Lisboa Da mesma forma, podemos eliminar o DEFAULT: ALTER TABLE Pessoa ALTER Cidade DROP DEFAULT

CREATE TABLE CONSTRAINT 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.

CREATE TABLE CONSTRAINT 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 +----+---------+

CREATE TABLE CONSTRAINT 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.

CREATE TABLE CONSTRAINT 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.

CREATE TABLE CONSTRAINT 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.

ALTER TABLE CONSTRAINT UNIQUE Podemos ainda acrescentar a restrição UNIQUE após a criação da tabela. Exemplos: ALTER TABLE Trabalhador ADD UNIQUE (BI) ALTER TABLE Trabalhador ADD 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)

CREATE TABLE CONSTRAINT PRIMARY KEY A chave primária de uma tabela identifica univocamente cada registo nessa tabela. A chave primária tem de conter valores únicos e não pode conter valores NULL. Cada tabela apenas pode conter uma chave primária, no entanto esta pode ser composta por vários campos.

CREATE TABLE CONSTRAINT 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) )

CREATE TABLE CONSTRAINT 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) )

CREATE TABLE CONSTRAINT PRIMARY KEY Exemplo: No exemplo acima iremos ter um erro pois a chave primária não poderá ter 2 campos duplicados.

CREATE TABLE CONSTRAINT 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!

ALTER TABLE CONSTRAINT PRIMARY KEY Para definir a chave primária após a criação da tabela: ALTER TABLE Trabalhador ADD PRIMARY KEY (Id) ALTER TABLE Requisicao ADD CONSTRAINT pkreq PRIMARY KEY (IdSocio, IdLivro, data)

CREATE TABLE CONSTRAINT 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.

CREATE TABLE CONSTRAINT 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.

CREATE TABLE CONSTRAINT 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) )

CREATE TABLE CONSTRAINT 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)

CREATE TABLE CONSTRAINT 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

CREATE TABLE CONSTRAINT 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.

CREATE TABLE CONSTRAINT 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!

ALTER TABLE CONSTRAINT FOREIGN KEY Se se pretender adicionar a foreign key à posteriori: ALTER TABLE Livros ADD FOREIGN KEY (Id_autor) REFERENCES Autores(Id_autor) Para dar um nome à restrição e/ou definir a chave composta por vários campos: ALTER TABLE Livros ADD CONSTRAINT fklivro FOREIGN KEY (Id_autor) REFERENCES Autores(id_autor)

ALTER TABLE CONSTRAINT FOREIGN KEY Para eliminar a chave estrangeira: ALTER TABLE Livros DROP 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 comando SHOW CREATE TABLE nomeatabela.

INSERT INTO A 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

UPDATE A 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 ;

UPDATE Exemplo: UPDATE clientes SET nome = 'Rafael', email = 'contato@rlsystem.com.br' WHERE id = 1; Nesta situação apenas irá alterar os registos que tenham o campo id=1. UPDATE Comando para atualizar os dados SET o que será alterado WHERE condição para especificar os registos a alterar

UPDATE Conclusões Podemos 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.

DELETE Delete é 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.

DELETE Exemplo: 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

INDEXES Os indices são usados para encontrar rapidamente linhas que tenham 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

INDEXES Declaração que cria um indice, com base nos 10 primeiros caracteres do nome da coluna. CREATE INDEX part_of_name ON customer (name(10));

TRANSACTION Por 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ções permanentes; 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.

TRANSACTION Verificar autocommit Executar a seguinte consulta: select @@autocommit Se estiver a 1, significa que o autocommit está ativado. Alterar autocommit Set autocommit=0 Pode ser necessário reiniciar o serviço para ter efeito.

TRANSACTION Select * 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

TRANSACTION Select * 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

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ão forem 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 vai verificar se temos ou não privilégios suficientes para o conseguir.

PRIVILEGIOS E CONTROLO DE ACESSOS Privilege System Grant Tables (sistema para conceder privilégios a tabelas) O MySQL inclui várias tabelas onde são guardadas informações acerca das contas dos utilizadores e dos privilégios que cada um tem. Para manipular o conteúdo destas tabelas, vamos fazê-lo indiretamente atravé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

PRIVILEGIOS E CONTROLO DE ACESSOS Quando se modifica uma conta, deve-se verificar que as nossas alterações vão ter o efeito esperado. Para verificar os privilégios de uma conta 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'@'%'. Ou Current_user() @'%

PRIVILEGIOS E CONTROLO DE ACESSOS CREATE USER O hostname pode ser o nome do servidor ou um endereço IP O 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!

PRIVILEGIOS E CONTROLO DE ACESSOS GRANT Atenção que temos de ter privilégio para poder definir privilégios nas contas! 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