360 likes | 474 Views
Banco de dados. deposita. (1,1). (1,1). Cliente. Conta. CPF. Saldo. Valor. Data. Nome. Código. Revisão. Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. SQL.
E N D
deposita (1,1) (1,1) Cliente Conta CPF Saldo Valor Data Nome Código Revisão • Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo.
SQL • SQL é a linguagem padrão para se lidar com bancos de dados relacionais, e é aceita por quase todos os produtos existentes no mercado.
SQL - Domínio • char(n): Cadeia de caracteres de tamanho fixo. • varchar(n): Cadeia de caracteres de tamanho variável com comprimento máximo especificado. • int: Inteiro • smallint: Inteiro pequeno (ocupa metade do espaço do int). • numeric(p, d): Número de ponto fixo, com definição da precisão e número de casas decimais.
SQL - Domínio • Real: Números de ponto flutuante. • float(n): Número de ponto flutuante com precisão de no mínimo n dígitos. • Date: Datas, contendo ano, mês e dia. • Time: Hora do dia, em horas, minutos e segundos.
SQL – Criar BD • Comando utilizado para criar um determinado banco de dados no SGBD: • Sintaxe: create database nome_do_db; • Exemplo: create database teste; Criem um banco de dados com seu nome!
SQL – Remover o BD • Comando utilizado para remover determinado BD existente no SGBD: • Sintaxe: drop database nome_do_banco; Remova o BD com seu nome! Liste os bancos existentes!
SQL – Remover o BD • Crie novamente o banco de dados com seu nome! • Liste os bancos existentes!
SQL – Utilizar BD • Como em determinado SGBD podem existir diversos bancos, de diferentes características, com diferentes relações, etc. • É necessário selecionar o banco de dados que se deseja trabalhar, ou seja, é necessário se “conectar” ao banco desejado.
SQL – Utilizar BD • Comando utilizado para se “conectar” a um determinado banco de dados existente no SGBD: • Sintaxe: use nome_do_db; • Exemplo: use teste; Se conecte ao banco criado com seu nome!
SQL – Listar as tabelas do BD • Comando utilizado para listar as tabelas existentes em um determinado banco de dados do SGBD: • Sintaxe quando está conectado a um BD: show tables; • Sintaxe quando não está conectado a um BD: show tablesfromnome_do_BD;
SQL – Criação de tabela • Uma relação é definida usando comando CREATE TABLE. • Sintaxe: CREATE TABLE <relação> (<atributo> <domínio><regra do atributo>,..., <atributo> <domínio><regra do atributo>, <regras da tabela>); CREATE TABLE CLIENTE ( nome varchar(255), rgint, ufchar(2), nascimento date, tefefonechar(8), sexvarchar(255)); Crie esta tabela no banco de dados com seu nome!
SQL – Descrição de tabela • Sintaxe: describenome_tabela; • Exemplo: describe cliente;
SQL – Alteração de tabela • Sintaxe: ALTER TABLE <relação> ADD <atributo> <definição>; ALTER TABLE <relação> CHANGE <atributo_antigo> <novo_atributo> <definição> ALTER TABLE <relação> DROP <atributo>; • Exemplo: ALTER TABLE cliente ADD codigoint FIRST;ALTER TABLE cliente ADD cpfint;ALTER TABLE cliente DROP rg; ALTER TABLE cliente DROP uf; ALTER TABLE cliente CHANGE sex sexo char(1); Realize as modificações abaixo e veja como a tabela ficou!
SQL – Remoção de tabela • Uma relação é apagada através do comando DROP TABLE • Sintaxe: DROP TABLE <relação>; • Exemplo: DROP TABLE CLIENTE;
SQL – Regras para criação de tabelas • Podemos colocar restrições de integridade nas relações criadas: • Assegurar que alterações feitas no banco de dados não resultem em perda da consistência dos dados. • Utilizaremos as seguintes regras de integridade: • Restrição de nulo; • Restrição de integridade de entidade; • Restrições de chave; • Restrição de integridade referencial.
SQL - Regras • Restrição de nulo • Pode ser especificado se valor nulo pode ou não ser permitido. • No SQL, devemos colocar NOT NULL após o tipo do atributo. • Exemplo: CREATE TABLE CLIENTE (codigoint NOT NULL, ....);
SQL - Regras • Restrição de integridade de entidade • Nenhum valor de chave primária pode ser nulo. • Restrições de chave • Por definição, todos os elementos de um conjunto são distintos; • Conseqüentemente, todas as tuplas em uma relação devem também serem distintas; • Isto significa que não deve existir duas tuplas com a mesma combinação de valores para todos os atributos.
SQL - Regras • Quando definimos uma chave primária já garantimos que só haverá tuplas distintas na relação: • Logo garantimos a restrição de chave ao definirmos uma chave primária. • No SQL, definimos chave primária da seguinte forma: codigoint NOT NULL PRIMARY KEY É definido desta forma apenas na criação da tabela!
SQL - Regras CREATE TABLE CLIENTE ( codigoint NOT NULL PRIMARY KEY, nome varchar(255), cpfint, nascimento date, tefefonechar(8), sexo char(1));
SQL - Regras • Para chave primária normalmente utilizamos um parâmetro de auto incremento. CREATE TABLE alunos ( id_alu INT NOT NULL AUTO_INCREMENT,nome_alu VARCHAR( 100 ) NOT NULL,idade_alu INT NOT NULL,data_alu DATE NOT NULL,sexo CHAR(1) NOT NULL,PRIMARY KEY ( id_alu ) )
SQL - Regras • Para colocar um atributo como chave primária de uma tabela já existente utiliza-se o comando Altertable. • Sintaxe: ALTER TABLE tabela ADD PRIMARY KEY(atributo); Insira uma chave primária na tabela cliente
SQL - Regras • Para remover a chave primária de uma relação utiliza-se o comando Altertable. • Sintaxe: ALTER TABLE tabela DROP PRIMARY KEY; Remova a chave primária na tabela cliente Insira novamente a chave primária na tabela cliente
SQL - Regras • Chave candidata • UNIQUE cpfint NOT NULL UNIQUE ou UNIQUE (cpf) • Os atributos podem ser nulos. É definido desta forma apenas na criação da tabela!
SQL - Regras CREATE TABLE CLIENTE ( codigoint NOT NULL PRIMARY KEY, nome varchar(255), cpfint NOT NULL UNIQUE, nascimento date, tefefonechar(8), sexo char(1));
SQL - Regras CREATE TABLE CLIENTE ( codigoint NOT NULL PRIMARY KEY, nome varchar(255), cpfint NOT NULL, nascimento date, tefefonechar(8), sexo char(1), UNIQUE (cpf) );
SQL - Exemplo CREATE TABLE CLIENTE (codigoint NOT NULL PRIMARY KEY, nome varchar(30) NOT NULL, cpfint UNIQUE, nascimento date default ’0000-00-00’, tefefonechar(8) default null, sexo char(1));
SQL - Regras • Restrição de integridade referencial: • é especificada entre duas relações e é usada para manter a consistência entre tuplas das duas relações; • Informalmente, a restrição de integridade referencial diz que uma tupla da relação (R1), que refere-se a outra relação (R2), deve referir-se a uma tupla existente em R2 (chave estrangeira).
SQL - Regras • Restrição de integridade referencial • No SQL, definimos chave estrangeira da seguinte forma: • Sintaxe: FOREIGN KEY (atributo) REFERENCES tabela(atributo) É definido desta forma apenas na criação da tabela!
SQL - Regras CREATE TABLE COMPRA( codigoint NOT NULL PRIMARY KEY, cod_clienteint, data date, FOREIGN KEY (cod_cliente) REFERENCES cliente(codigo) ); Crie esta relação! Visualize a descrição desta relação!
SQL - Regras • ON DELETE • RESTRICT: • Exclusão de T1 falha se existem linhas em T2 combinando (padrão do SQL). • CASCADE: • Exclusão de T1 exclusão de todas as linhas de T2 que combinam. • SET NULL: • Exclusão de T1 colocar nulo nos atributos da chave estrangeira de cada tupla de T2 que combina. • SET DEFAULT: • Exclusão de T1 colocar valores default nos atributos da chave estrangeira de cada tupla de T2 que combina.
SQL - Regras • ON UPDATE • RESTRICT: • Alteração de T1 falha se existem linhas em T2 combinando (padrão do SQL). • CASCADE: • Alteração de T1 linhas que combinam em T2 também serão atualizadas. • SET NULL: • Alteração de T1 colocar nulo nos atributos da chave estrangeira de cada tupla de T2 que combina. • SET DEFAULT: • Alteração de T1 colocar valores default nos atributos da chave estrangeira de cada tupla de T2 que combina.
SQL - Regras Remover a tabela compra! CREATE TABLE PEDIDO(cod_pedidoint NOT NULL PRIMARY KEY,cod_clienteint,FOREIGN KEY (cod_cliente) REFERENCES cliente (codigo) ON DELETE SET NULL ON UPDATE CASCADE ); Criar a tabela pedido!
SQL - Regras • Para alterar as restrições impostas a uma tabela devemos fazer o seguinte comando: • Sintaxe: ALTER TABLE <tabela> ADD (<regra>); • Exemplo: ALTER TABLE cliente ADD PRIMARY KEY(cpf);
SQL - Regras • Caso já sido definido o mesmo tipo de restrições que queremos inserir na tabela, então devemos remover primeiro essas restrições • Sintaxe: ALTER TABLE <tabela> DROP <regra>; • Exemplo: ALTER TABLE cliente DROP PRIMARY KEY;
SQL - Regras • Para alterar as restrições impostas a uma coluna devemos fazer o seguinte comando: • Sintaxe: Altertable <tabela> MODIFY <nome_da_coluna> <tipo> <regra> • Exemplo: ALTER TABLE cliente MODIFY cpfint NOT NULL UNIQUE;