Bancos de Dados Fundação Educacional de Oliveira - FEOL

Slides:



Advertisements
Apresentações semelhantes
Aula – Comandos SQL no MYSQL Prof. Francisco Olivar Junior
Advertisements

Tópicos em Banco de Dados
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Banco de Dados Prof. Antonio.
SQL Renata Viegas.
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados Prof.: Bruno Rafael de Oliveira Rodrigues.
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados SQL TRIGGERS (Gatilhos)
Projeto e Organização de BD
Visões Marilde Santos.
Maurício Edgar Stivanello
SGBD.
Sistema Gerenciador de Banco de Dados SGBD
Sistema Gerenciador de Banco de Dados SGBD
Restrições de Integridade
Introdução à Engenharia da Computação
SCC Bancos de Dados e Suas Aplicações
INSTITUTO FEDERAL FARROUPILHA
Sistemas de Informação
SQL Structured Query Language
Bancos de Dados – SQL – parte 1
Banco de dados Profª Kelly Medeiros.
SQL Server 2012 Introdução a Modelagem de Dados
Banco de Dados Aplicado ao Desenvolvimento de Software
Sistema de Gerenciamento de Pessoas e Projetos
SQL Server 2012 Tipos de Dados e Tabelas
Tipos de Linguagens do Banco de Dados
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Flávio Dantas.
SQL Server 2012 Integridade de Dados
Tipos de dados.
Banco de Dados PostgreSQL.
Desenvolvendo um script SQL
Linguagem SQL.
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
Banco de dados.
Linguagem de Definição de Dados
Criação de Tabelas. CREATE TABLE nome_da_tabela ( >>. >> ) Ex.: SQL SERVER 2008 CREATE TABLE pessoa ( CPF VARCHAR(11) NOT NULL, NOME VARCHAR(100) NOT.
Baseado no material do Professor Raul Paradeda
Definições de Esquemas, Restrições básicas e buscas
Microsoft SQL Server 2008 SPARSE. Para que serve? –Otimiza o espaço de armazenamento de colunas com valores NULL.
Banco de dados O que é MySQL Criar bando de dados
SQL Server Tipos de dados numéricos. TipoIntervalo de valoresEspaço de armazenamento tinyint0 a 2551 byte smallint a bytes int
SEGUNDA FASE / S2B MIC PERNAMBUCO
SCC Bancos de Dados e Suas Aplicações
Contatos Gladimir Catarino
Curso de Análise e Desenvolvimento de Sistemas Projeto de Banco de Dados Marcelo da Silveira Siedler.
Banco de Dados I I Comandos SQL
NOTA DE AULA SQL.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
SQL (Structured Query Language)
Automação Comercial Faculdade Estácio Radial Prof. Paulo Alipio Alves de Oliveira 2010.
Modelo Relacional Marcelo Mendes Manaus – 2015.
Daniel Paulo Constantes ou Literais Caracteres – deve ser utilizado aspas simples ‘Marco Antonio da Silva’ Para utilizar o caractere.
Daniel Paulo Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados.
Aula 3 – Conceitos de banco de dados relacionais
Banco de Dados Maria Augusta (Magu).
Módulo 2: Criando tipos de dados e tabelas. Visão geral do módulo Criando tipos de dados Criando tabelas Criando tabelas particionadas.
Linguagem de definição de dados - SQL
Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Professor: reno nooblath
1 Programação de Banco de Dados José Antônio da Cunha George Azevedo da Silva.
2/6/2016 José Antônio da Cunha - CEFET - RN1 Programação de Banco de Dados Funções.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 4 SQL básica.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
BANCO DE DADOS Araújo Lima Out / 2017 Araújo.
Transcrição da apresentação:

Bancos de Dados Fundação Educacional de Oliveira - FEOL 5º Período – Sistemas de Informação Profa. Andrea Alves 1

Relacionamentos Relacionamento entre tabelas 1 : 1 Aluno e Matrícula (um aluno só pode ter um número de matricula e um número de matrícula só pode pertencer a um aluno.) 2

Relacionamentos Relacionamento do Tipo Um para Vários: (1:N) Este é, com certeza, o tipo de relacionamento mais comum entre duas tabelas. Uma das tabelas (o lado um do relacionamento) possui um campo que é a Chave Primária e a outra tabela (o lado vários) se relaciona através de um campo cujos valores relacionados podem se repetir várias vezes. Considere o exemplo entre a tabela Clientes e Pedidos. Cada Cliente somente é cadastrado uma única vez na tabela de Clientes (por isso o campo Código do Cliente, na tabela Clientes, é uma chave primária, indicando que não podem ser cadastrados dois clientes com o mesmo código), portanto a tabela Clientes será o lado um do relacionamento. Ao mesmo tempo cada cliente pode fazer diversos pedidos, por isso que o mesmo Código de Cliente poderá aparecer várias vezes na tabela Pedidos: tantas vezes quantos forem os pedidos que o Cliente tiver feito. Por isso que temos um relacionamento do tipo Um para Vários entre a tabela Clientes e Pedidos, através do campo Código do Cliente, indicando que um mesmo Cliente pode realizar diversos (vários) pedidos. 3

Criando Tabelas CREATE TABLE Cursos ( Codcurso int not null, Nomecurso char(30) not null, PRIMARY KEY (codcurso) ) Ou Codcurso int primary key,

Criando Tabelas Nomeando a Constraint CREATE TABLE curso ( Codcurso int CONSTRAINT PK_aluno PRIMARY KEY, Desccurso nvarchar(17) )

Criando Tabelas com chaves estrangeiras CREATE TABLE Aluno ( Codaluno int primary key identity, {auto-incremento} Nomealuno char(30) not null, {não permite valores nulos} codcurso int references cursos, {criando chave estrangeira} endaluno char (50) )

Criando Tabelas com chaves estrangeiras CREATE TABLE fornecedor ( CODIGO INTEGER NOT NULL, NOME VARCHAR(40) NOT NULL, TIPO INTEGER NOT NULL, PRIMARY KEY (CODIGO) ); CREATE TABLE CLIENTE2 ( CODIGOCLIENTE INTEGER NOT NULL, codigofornec integer not null, ENDERECO VARCHAR(70), CIDADE VARCHAR(40), UF CHAR(2) DEFAULT 'BA', DATANASCIMENTO DATEtime, DATACADASTRO DATEtime, constraint pk_cliente2 PRIMARY KEY (CODIGOCLIENTE), constraint fk_cli_fornec FOREIGN KEY (codigofornec) REFERENCES fornecedor (CODIGO)

Definindo campos Valores duplicados Podem existir situações onde o valor armazenado em um atributo de um registro deve ser único em relação a todos os registros da tabela. Isto é, não pode haver dois registros com o mesmo valor para um determinado atributo. Para implementar esta restrição de integridade deve-se utilizar a cláusula UNIQUE após a especificação de uma coluna.

Definindo campos create table Funcionario (codfunc int primary key identity, CPFfunc int UNIQUE, {só aceita valores únicos) endfunc char(40), )

Definindo campos Valores default Pode-se definir um valor padrão para uma coluna acrescentando à sua definição a cláusula DEFAULT. Esta cláusula permite substituir automaticamente os valores nulos por um valor inicial desejado.

Definindo campos create table cliente1 (codcli int primary key identity nomecli char(30) NOT NULL, sexocli char(1), CPFcli int UNIQUE, endcli char(40), cidadecli char(20) DEFAULT ‘Maceio’ {se deixar nulo, o valor padrão é maceió} )

Definindo campos Valores inválidos Para que o valor de um atributo fique restrito a um conjunto de valores, utiliza-se a cláusula CHECK. A finalidade da cláusula CHECK é especificar uma condição, isto é, uma limitação de integridade.

Definindo campos create table cliente2 ( codcli int primary key identity, nomecli char(30) NOT NULL, sexocli char(1) CHECK(sexo IN (‘M’, ‘F’)), CPFcli int UNIQUE, endcli char(40), cidadecli char(20) DEFAULT ‘Maceio’ )

Inserindo registros na tabela insert into cursos values ('Sistemas' ) Ou Insert into cursos (cod_curso, nome_curso) Values (1 , ‘Sistemas’)

Bancos de Dados - Revisão 15

Bancos de Dados - Revisão Relacionamento do Tipo Vários para Vários: (M:N) Este tipo de relacionamento "aconteceria" em uma situação onde em ambos os lados do relacionamento os valores poderiam se repetir. Vamos considerar o caso entre Produtos e Pedidos. Posso ter Vários Pedidos nos quais aparece um determinado produto, além disso vários Produtos podem aparecer no mesmo Pedido. Esta é uma situação em que temos um Relacionamento do Tipo Vários para Vários. 16

Alterando tabelas Incluindo um campo ALTER TABLE CLIENTE2 ADD EMAIL VARCHAR(30); /* Excluindo um campo */ ALTER TABLE CLIENTE2 DROP column cidade

Mudando características das colunas ALTER TABLE tb_mae alter column REGION vARCHAR(26)not null Mudando o tipo do campo ALTER TABLE CLIENTE2 alter column endereco nVARCHAR(80) not null;

Comando UpDate O comando UPDATE permite alterar os valores existentes existentes nos campos de uma (única) tabela. Update table_name Set column_name1 = data_value1 [Where search_condition] • table_name pode ser o nome de uma tabela de base ou de uma view actualizável. • A cláusula SET especifica uma ou mais colunas a serem atualizadas. • A cláusula WHERE é opcional: - Se omitida, as colunas indicadas são atualizadas para todas as linhas da tabela. - Se especificada, somente as linhas que satisfazem a search_condition são atualizadas. • Os data_value(s) devem ser compatíveis com os tipos de dados das colunas correspondentes. Update Departamento Set Local = ‘Fundão’ Where DepNum = 13

Comando Delete O comando DELETE permite apagar linhas de uma (única) tabela. Delete From table_name [Where search_condition] • table_name pode ser o nome de uma tabela de base ou de uma view atualizável. • A cláusula WHERE é opcional: - Se omitida, todas as linhas da tabela são apagadas da tabela (a tabela não é apagada). - Se especificada, somente as linhas que satisfazem a search_condition são apagadas. Delete Departamento Where DepNum = 13

Tipos de dados TINYINT: Valores numéricos inteiros variando de 0 até 256 SMALLINT: Valores numéricos inteiros variando de –32.768 até 32.767 INT: Valores numéricos inteiros variando de -2.147.483.648 até 2.147.483.647 * BIGINT: Valores numéricos inteiros variando de –92.23.372.036.854.775.808 até 9.223.372.036.854.775.807 BIT: Somente pode assumir os valores 0 ou 1. Utilizado para armazenar valores lógicos. DECIMAL(I,D) e NUMERIC(I,D): Armazenam valores numéricos inteiros com casas decimais utilizando precisão. I deve ser substituído pela quantidade de dígitos total do número e D deve ser substituído pela quantidade de dígitos da parte decimal (após a vírgula). DECIMAL e NUMERIC possuem a mesma funcionalidade, porém DECIMAL faz parte do padrão ANSI e NUMERIC é mantido por compatibilidade. Por exemplo, DECIMAL(8,2) armazena valores numéricos decimais variando de – 999999,99 até 999999,99 Lembrando sempre que o SQL Server internamente armazena o separador decimal como ponto (.) e o separador de milhar como vírgula (,). Essas configurações INDEPENDEM de como o Windows está configurado no painel de controle e para DECIMAL E NUMERIC, somente o separador decimal (.) é armazenado

Tipos de dados SMALLMONEY: Valores numéricos decimais variando de -214.748,3648 até 214.748,3647 MONEY: Valores numéricos decimais variando de -922.337.203.685.477,5808 até 922.337.203.685.477,5807 REAL: Valores numéricos aproximados com precisão de ponto flutuante, indo de -3.40E + 38 até 3.40E + 38 FLOAT: Valores numéricos aproximados com precisão de ponto flutuante, indo de -1.79E + 308 até 1.79E + 308 ( é maior) SMALLDATETIME: Armazena hora e data variando de 1 de janeiro de 1900 até 6 de junho de 2079. A precisão de hora é armazenada até os segundos. DATETIME: Armazena hora e data variando de 1 de janeiro de 1753 até 31 de Dezembro de 9999. A precisão de hora é armazenada até os centésimos de segundos.

Tipos de dados VARCHAR(N): Armazena N caracteres (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo é preenchido. TEXT: Armazena caracteres (até 2.147.483.647) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que 2.147.483.647, o resto do campo não é preenchido. Procure não utilizar este tipo de dado diretamente, pois existem funções específicas para trabalhar com este tipo de dado. NVARCHAR(N): Armazena N caracteres (até 4.000) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo não é preenchido.

Tipos de dados NTEXT: Armazena caracteres (até 1.073.741.823) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que 1.073.741.823, o resto do campo não é preenchido. Procure não utilizar este tipo de dado diretamente, pois existem funções específicas para trabalhar com este tipo de dado. BINARY(N): Armazena N (até 8.000 bytes) dados no formato binário. Se a quantidade de dados binários armazenados no campo for menor que o tamanho total especificado em N, o resto do campo é preenchido com espaços em branco. Procure não utilizar este tipo de dado diretamente, pois existem funções específicas para trabalhar com este tipo de dado. VARBINARY(N): Armazena N (até 8.000 bytes) dados no formato binário. Se a quantidade de dados binários armazenados no campo for menor que o tamanho total especificado em N, o resto do campo não é preenchido. Procure não utilizar este tipo de dado diretamente, pois existem funções específicas para trabalhar com este tipo de dado.

Tipos de dados * SQL_VARIANT: Permite o armazenamento de todos os tipos de dados em uma mesmo campo de uma tabela com exceção dos tipos TEXT, NTEXT, TIMESTAMP e SQL_VARIANT TIMESTAMP: Este tipo de dado permite a geração automática de uma valor binário para um campo de uma tabela do SQL Server. Cada tabela pode possuir somente um campo com o tipo de dadoTIMESTAMP. Para o tipo de dado TIMESTAMP, devemos ou criar um DEFAULT para seu valor padrão ou passar NULL para este campo em uma instrução INSERT, pois o banco de dados automaticamente gerará um valor binário para esta coluna. UNIQUEIDENTIFIER: Este tipo de dado deve ser utilizado para a criação de um identificar global para uma coluna de uma tabela. Também podemos possuir somente um campo como tipo UNIQUEIDENTIFIER por tabela. Este identificador deve ser utilizado quando temos certeza absoluta que nenhum valor para o campo deve ser repetido. Para alimentar o conteúdo deste campo, devemos preferencialmente utilizar a função NEWID() que retornar um identificador no formato desde tipo.

SGBD II Banco de Dados: Empresa Tabelas: Funcionário Departamento Dependentes

SGBD II Funcionário 1 João Mendes Rua joao 25 1 2006-01-10 1500 Cod _func Nome_func Endereço_func cod_ depto data_ adm salaintt (nvarchar (50)) (nvarchar(50)) (int FK) (smalldatetime) (money) 1 João Mendes Rua joao 25 1 2006-01-10 1500 2 Patricia Avelar Rua C. Branco 1 2009-06-21 2750 3 Silvia Pacheco Rua Bias Fortes 2 1958-06-16 1674 4 Eduardo Silva Rua J. Caruso 2 1999-06-05 2782 5 Tirso Brother Rua Parametro 3 1996-06-01 4562 6 Marly Alves Rua Centenario 3 2007-06-02 6520 7 Paulo Miou Rua Bernardes 4 2006-06-04 2952 8 Simone Alves Rua Pisa 4 1995-06-11 1475 9 Elaine Vivar Rua P. Cardoso 2 2002-06-05 2462 10 Fabio Silva Rua Luiz 16 1 2001-06-10 1469 11 Cristina Maia Rua Pavaroti 3 1996-06-16 3600 12 José Ferreira Rua das Almas 4 2007-06-16 4250

SGBD II Departamento Cod_depto int (PK) nome_depto (Nvarchar (20)) 1 Perfumaria 2 Informática 3 Livraria 4 Alimentação

SGBD II 1 1 Sandra filha 2 1 Eduarda filha 3 2 Tatiane Filha Dependentes Cod_dependente int (pk) cod_funcionario int (FK) nome_dependente (nvarchar(50)) grau_parentesco (nvarchar (15)) 1 1 Sandra filha 2 1 Eduarda filha 3 2 Tatiane Filha 4 2 Pedro filho 5 3 Patricia filha 6 4 Marcia filha 7 5 Maria filha 8 5 Pietra filha 9 6 Alenara filha 10 7 Guilherme filho 11 7 Gustavo filho 12 9 Silvana filha 13 10 Joanita filha 14 10 Fernanda filha 15 10 Henrique filho 16 11 Aparecida filha 17 12 Fabricio filho

SGBD II create database Prova create table Departamento ( Cod_Depto int Primary Key, Nome_Depto nvarchar(20) ) create table Funcionario( Cod_Func int Primary Key, Nome_Func nvarchar (50), Endereco_Func nvarchar(50), Cod_Depto int references Departamento, Data_Adm smalldatetime, Salario money create table Dependentes( Cod_Dependente int Primary Key, Cod_Funcionario int references Funcionario, Nome_Dependente nvarchar(50), Grau_Parentesco nvarchar (15)

SGBD II insert into Departamento values (1,'Perfumaria') insert into Departamento values (2,'Informática') insert into Departamento values (3,'Livraria') insert into Departamento values (4,'Alimentação') insert into Funcionario values (1,'João Mendes','Rua joao 25',1,'2006-01-10',1500) insert into Funcionario values (2,'Patricia Avelar','Rua C. Branco',1,'2007-06-21',2750) insert into Funcionario values (3,'Silvia Pacheco','Rua Bias Fortes',2,'1958-06-16',1674) insert into Funcionario values (4,'Eduardo Silva','Rua J. Caruso',2,'1999-06-05',2782) insert into Funcionario values (5,'Tirso Brother','Rua Parametro',3,'1996-06-01',4562) insert into Funcionario values (6,'Marly Alves','Rua Centenario',3,'2007-06-02',6520) insert into Funcionario values (7,'Paulo Miou','Rua Bernardes',4,'2006-06-04',2952) insert into Funcionario values (8,'Simone Alves','Rua Pisa',4,'1995-06-11',1475) insert into Funcionario values (9,'Elaine Vivar','Rua P. Cardoso',2,'2002-06-05',2462) insert into Funcionario values (10,'Fabio Silva','Rua Luiz 16',1,'2001-06-10',1469) insert into Funcionario values (11,'Cristina Maia','Rua Pavaroti',3,'1996-06-16',3600) insert into Funcionario values (12,'José Ferreira','Rua das Almas',4,'2007-06-16',4250)

SGBD II insert into Dependentes values (1,1,'Sandra','filha') insert into Dependentes values (2,1,'Eduarda','filha') insert into Dependentes values (3,2,'Tatiane','filha') insert into Dependentes values (4,2,'Pedro','filho') insert into Dependentes values (5,3,'Patricia','filha') insert into Dependentes values (6,4,'Márcia','filha') insert into Dependentes values (7,5,'Maria','filha') insert into Dependentes values (8,5,'Pietra','filha') insert into Dependentes values (9,6,'Alenara','filha') insert into Dependentes values (10,7,'Guilherme','filho') insert into Dependentes values (11,7,'Gustavo','filho') insert into Dependentes values (12,9,'Silvana','filha') insert into Dependentes values (13,10,'Joanita','filha') insert into Dependentes values (14,10,'Fernanda','filha') insert into Dependentes values (15,10,'Henrique','filho') insert into Dependentes values (16,11,'Aparecida','filha') insert into Dependentes values (17,12,'Fabrício','filho')

Exercícios Crie e popule as tabelas anteriores. Exclua o campo data_adm da tabela de funcionário alter table funcionario drop column data_adm Altere o tipo de dado do campo nome da tabela departamento para varchar (40) not null alter table departamento alter column descr varchar(40) not null

Exercícios Inclua um campo chamado RG na tabela de funcionários. Alter table funcionarios add rg varchar (20) Altere o endereço do funcionário João Mendes. Update funcionarios Set endereco = ‘ Rua das margaridas, sem numero’ Where nome_func = ‘João Mendes’ Exclua os dependentes do funcionário de código 2. Delete from dependentes Where cod_func = 2