BD1 - SQL-Criando Banco de Dados e Tabelas flipbook
Linguagem SQLCriando Bancode Dados e TabelasSQL - Criando Banco de Dados e Tabelas17/12/2019 1
- Page 2 and 3: A Linguagem SQL• SQL - Structured
- Page 4 and 5: A Padronização• SQL-86 - primei
- Page 6 and 7: O Transact SQL• É uma linguagem
- Page 8 and 9: Instruções DML• As instruções
- Page 10 and 11: Tipos de Bancos de Dados• Cada SQ
- Page 12 and 13: Tipos de Bancos de Dados• MASTER:
- Page 14 and 15: Arquivos de um Banco de Dados• Lo
- Page 16 and 17: Criando um Banco de DadosSintaxe:CR
- Page 18 and 19: Criando um Banco de DadosExemplo 2:
- Page 20 and 21: Criando um Banco de Dados( NAME = P
- Page 22 and 23: Modificando um Banco de DadosSintax
- Page 24 and 25: Modificando um Banco de DadosExempl
- Page 26 and 27: Modificando um Banco de DadosExempl
- Page 28 and 29: Excluindo um Banco de DadosExemplo
- Page 30 and 31: Criando Tabelas• Ao criar uma tab
- Page 32 and 33: Tipos de Dados• Números inteiros
- Page 34 and 35: Tipos de Dados• Valores monetári
- Page 36 and 37: Tipos de Dados• Cadeia de caracte
- Page 38 and 39: Criando Tabelas• NULL | NOT NULL
- Page 40 and 41: Criando Tabelas - Restrições• A
- Page 42 and 43: Criando Tabelas - Foreign Key• É
- Page 44 and 45: Criando Tabelas - Check• É utili
- Page 46 and 47: Criando Tabelas - ExemplosBANCO DE
- Page 48 and 49: Modificando TabelasExemplo 1: Inser
- Page 50 and 51: Modificando TabelasExemplo 4: Exclu
Linguagem SQL
Criando Banco
de Dados e Tabelas
SQL - Criando Banco de Dados e Tabelas
17/12/2019 1
A Linguagem SQL
• SQL – Structured Query Language.
• Sua primeira versão recebeu o nome de SEQUEL - Structured
English Query Language.
• É uma linguagem declarativa, com o foco centrado no resultado,
onde:
• O usuário descreve o dado desejado, sem especificar como
obtê-lo;
• O SGBD determina o melhor procedimento para realizar essa
tarefa.
• Poupa tempo de programação, mas exige tempo para projeto.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 2
A Linguagem SQL
• Foi definida por D. D. Chamberlin e outros, nos laboratórios de
pesquisa da IBM em San Jose, California, em 1974, dentro do
projeto System R.
• Teve seus fundamentos no modelo relacional de E. F. Codd,
criado em 1970.
• Órgãos como ANSI (American National Standards Institute) e ISO
(International Organization for Standardization) adotaram a SQL
como o padrão oficial de linguagem em ambiente relacional.
• Existem vários dialetos SQL que adotam o padrão ANSI com
extensões proprietárias de cada fabricante.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 3
A Padronização
• SQL-86 - primeiro padrão da linguagem SQL, definido pelo ANSI
em 1986 e aceito pela ISO em 1987.
• SQL-89 - nova versão da linguagem, lançado pelo ANSI em 1989,
em que foram adicionados recursos importantes como chave
primária, chave estrangeira e valores nulos.
• SQL-92 - padrão ANSI aceito pela ISO, em 1992, também
conhecido como SQL-2. Alterações como domínios, tabelas
temporárias, novos tipos de junção (LEFT e RIGTH JOIN), cláusula
AS, valores únicos (UNIQUE), expressões na cláusula FROM, entre
outras, foram incluídas neste padrão.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 4
A Padronização
• SQL-99 – padrão ANSI aceito pela ISO em 1999, também
conhecido como SQL-3. Introduziu mudanças significativas como
novos tipos de dados complexos, consultas recursivas e
características de orientação a objetos, entre outras.
• SQL-2003 – é o padrão mais recente, criado em 2003, que
introduz, principalmente, recursos ligados ao uso de XML.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 5
O Transact SQL
• É uma linguagem de definição, manipulação e controle de dados,
definida pela Microsoft Corporation.
• As instruções Transact SQL são divididas em:
• Instruções DDL (Data Definition Language), que permitem
criar objetos do banco de dados;
• Instruções DML (Data Manipulation Language), que permitem
consultar e modificar dados;
• Instruções DCL (Data Control Language), que permitem definir
privilégios aos usuários.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 6
Instruções DDL
• As instruções DDL definem os objetos do banco de dados,
criando, alterando ou excluindo:
• o banco de dados e tabelas;
• os índices, procedures, triggers, views e outros objetos
• As instruções DDL são:
• CREATE <nome do objeto> - criar objetos
• ALTER <nome do objeto>
- alterar objetos
• DROP <nome do objeto> - excluir objetos
• O usuário deverá possuir as permissões apropriadas.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 7
Instruções DML
• As instruções DML recuperam informações ou alteram dados,
permitindo consultar, inserir, modificar e excluir dados.
• As instruções DML são:
• SELECT
- consultar dados
• INSERT - inserir dados
• UPDATE - alterar dados
• DELETE
- excluir dados
• O usuário deverá possuir as permissões apropriadas.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 8
Instruções DCL
• As instruções DCL alteram as permissões associadas aos usuários
do banco de dados.
• As instruções DCL são:
• GRANT
- adiciona permissão.
• DENY - nega permissão.
• REVOKE - remove uma permissão concedida
ou negada anteriormente.
• O usuário deverá possuir as permissões apropriadas.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 9
Tipos de Bancos de Dados
• Cada SQL Server possui dois tipos de bancos de dados:
• Bancos de dados de sistema: contêm informações sobre o
servidor. São utilizados pelo SQL Server para operar e
gerenciar o sistema.
• Bancos de dados de usuário: são criados pelos usuários para
armazenar seus dados.
• Quando o SQL Server é instalado, são criados os bancos de dados
de sistema e alguns bancos de dados de usuários, como
exemplos.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 10
Tipos de Bancos de Dados
Bancos de dados
do sistema
Banco de dados
do usuário
SQL - Criando Banco de Dados e Tabelas 17/12/2019 11
Tipos de Bancos de Dados
• MASTER: Registra toda a informação de nível de sistema para
uma instância do SQL Server.
• MSDB: É usado pelo SQL Server Agent para programar alertas e
trabalhos.
• MODEL: É usado como modelo de todos os bancos de dados
criados na instância do SQL Server. As modificações feitas neste,
banco de dados serão aplicadas a qualquer banco de dados
criados em seguida e que utilizem esse modelo.
• TEMPDB: É um espaço de trabalho para reter objetos
temporários ou conjuntos de resultados intermediários.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 12
Arquivos de um Banco de Dados
• Um banco de dados é composto por três tipos diferentes de
arquivos. São eles:
• Primário: o arquivo de dados primário contém as informações
de inicialização do banco de dados e ponteiros para os outros
arquivos do bd. Armazena os dados do usuário e objetos e
todo banco de dados possui um único arquivo desse tipo. Este
arquivo é criado com a extensão mdf.
• Secundário: Os arquivos de dados secundários são opcionais,
definidos pelo usuário e armazenam dados. São usados para
distribuir os dados em diversos arquivos, geralmente es discos
diferentes. Um banco de dados pode conter vários arquivos
desse tipo. Este arquivo é criado com a extensão ndf.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 13
Arquivos de um Banco de Dados
• Log: é o arquivo utilizado para guardar as informações
referentes ao registro das transações usadas fazer a
recuperação do banco de dados. Deve haver, pel omenos, um
arquivo de log para cada banco de dados. Este arquivo é
criado com a extensão ldf.
• Cada banco de dados deve utilizar, pelo menos, um arquivo de
dados Primário (extensão mdf) e um arquivo de Log (extensão
ldf).
• Também podem ser criados múltiplos arquivos de dados
Secondários (extensão ndf) e múltiplos arquivos de Log
(extensão ldf).
SQL - Criando Banco de Dados e Tabelas 17/12/2019 14
Criando um Banco de Dados
• Ao criar um banco de dados, poderão ser definidas as seguintes
opções para os arquivos de dados e de log:
• Nome e local dos arquivos;
• Tamanho inicial;
• Tamanho máximo;
• Taxa de crescimento.
• Se o banco de dados for criado sem essas especificações, ele terá
a mesma configuração do banco de dados Model.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 15
Criando um Banco de Dados
Sintaxe:
CREATE DATABASE nome do banco de dados
[ ON
(definição de parâmetros do arquivo de dados) ]
LOG ON
(definição de parâmetros do arquivo de log) ]
parâmetros
NAME = nome lógico
FILENAME = caminho e nome do arquivo
SIZE = tamanho inicial
MAXSIZE = tamanho máximo
FILEGROWTH = taxa de crescimento
SQL - Criando Banco de Dados e Tabelas 17/12/2019 16
Criando um Banco de Dados
Exemplo 1: Criar o banco de dados CLIENTES especificando apenas
o arquivo de dados.
CREATE DATABASE Clientes
ON
( NAME = Clientes_dat,
FILENAME = 'c:\dados\clientes.mdf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20 MB )
• O arquivo de log será criado de acordo com os parâmetros
definidos no banco de dados MODEL.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 17
Criando um Banco de Dados
Exemplo 2: Criar o banco de dados VENDAS especificando um
arquivo de dados e um arquivo de log.
CREATE DATABASE Vendas
ON
( NAME = Vendas_dat,
FILENAME = 'c:\dados\vendas.mdf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20 MB )
LOG ON
( NAME = Vendas_log,
FILENAME = 'c:\dados\vendas.ldf',
SIZE = 50 MB,
MAXSIZE = 5 GB,
FILEGROWTH = 20 MB )
SQL - Criando Banco de Dados e Tabelas 17/12/2019 18
Criando um Banco de Dados
Exemplo 3: Criar o banco de dados PRODUTOS especificando
múltiplos arquivos de dados e de log.
CREATE DATABASE Produtos
ON
( NAME = Produtos1_dat,
FILENAME = 'c:\dados\produtos1.mdf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20% ),
( NAME = Produtos2_dat,
FILENAME = 'c:\dados\produtos2.ndf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20% ),
SQL - Criando Banco de Dados e Tabelas 17/12/2019 19
Criando um Banco de Dados
( NAME = Produtos3_dat,
FILENAME = 'c:\dados\produtos3.ndf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20% )
LOG ON
( NAME = Produtos1_log,
FILENAME = 'c:\dados\produtos1.ldf',
SIZE = 50 MB,
MAXSIZE = 5 GB,
FILEGROWTH = 10% ),
( NAME = Produtos2_log,
FILENAME = 'c:\dados\produtos2.ldf',
SIZE = 50 MB,
MAXSIZE = 5 GB,
FILEGROWTH = 10% )
SQL - Criando Banco de Dados e Tabelas 17/12/2019 20
Verificando um Banco de Dados
• É possível exibir informações sobre os bancos de dados
existentes no servidor e seus parâmetros, através das seguintes
stored procedures do sistema:
• sp_helpdb
• fornece informações sobre todos os bancos de dados de um
servidor.
• sp_helpdb nome do banco de dados
• fornece informações sobre o banco de dados especificado.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 21
Modificando um Banco de Dados
Sintaxe:
ALTER DATABASE nome do banco de dados
ADD FILE especificação do arquivo de dados
| ADD LOG FILE especificação do arquivo de log
| REMOVE FILE nome lógico do arquivo
| MODIFY FILE especificação do arquivo
• O banco de dados que será modificado não poderá estar em uso.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 22
Modificando um Banco de Dados
Exemplo 1: Acrescentar um novo arquivo de dados ao banco de
dados CLIENTES.
ALTER DATABASE Clientes
ADD FILE
( NAME = Clientes_dat2,
FILENAME = 'c:\dados\clientes2.ndf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20 MB )
SQL - Criando Banco de Dados e Tabelas 17/12/2019 23
Modificando um Banco de Dados
Exemplo 2: Acrescentar um novo arquivo de log ao banco de dados
CLIENTES.
ALTER DATABASE Clientes
ADD LOG FILE
( NAME = Clientes_log2,
FILENAME = 'c:\dados\clientes2.ldf',
SIZE = 50 MB,
MAXSIZE = 5 GB,
FILEGROWTH = 20 MB )
SQL - Criando Banco de Dados e Tabelas 17/12/2019 24
Modificando um Banco de Dados
Exemplo 3: Acrescentar dois arquivos de dados ao banco de dados
PRODUTOS.
ALTER DATABASE Produtos
ADD FILE
( NAME = Produtos4_dat,
FILENAME = 'c:\dados\produtos4.ndf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20 MB ),
( NAME = Produtos5_dat,
FILENAME = 'c:\dados\produtos5.ndf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20 MB )
SQL - Criando Banco de Dados e Tabelas 17/12/2019 25
Modificando um Banco de Dados
Exemplo 4: Remover o arquivo produtos4.ndf do banco de dados
PRODUTOS.
ALTER DATABASE Produtos
REMOVE FILE produtos4.dat
Exemplo 5: Aumentar o tamanho do arquivo vendas.mdf do banco
de dados VENDAS para 200MB e o tamanho máximo para 20 GB.
ALTER DATABASE Vendas
MODIFY FILE
( NAME = 'Vendas_dat',
SIZE = 200 MB,
MAXSIZE = 20 GB )
SQL - Criando Banco de Dados e Tabelas 17/12/2019 26
Excluindo um Banco de Dados
Sintaxe:
DROP DATABASE nome do banco de dados
• A exclusão de um banco de dados remove do disco todos os
arquivos utilizados pelo banco de dados.
• O banco de dados que será excluído não poderá estar em uso.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 27
Excluindo um Banco de Dados
Exemplo 1: Excluir o banco de dados CLIENTES.
DROP DATABASE Clientes
Exemplo 2: Excluir os bancos de dados PRODUTOS e VENDAS
DROP DATABASE Produtos, Vendas
SQL - Criando Banco de Dados e Tabelas 17/12/2019 28
Criando Tabelas
• A criação das tabelas deverá ser feita de acordo com o dicionário
de dados, definido no esquema lógico.
• Ao criar tabelas, deverão ser definidos previamente:
• Nome, tamanho e tipo de dado de cada coluna;
• Chaves primárias, estrangeiras e candidatas;
• Colunas que aceitam valores nulos;
• Restrições de domínio para cada coluna;
• Restrições da tabela.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 29
Criando Tabelas
• Ao criar uma tabela deve-se observar as seguintes regras:
• O nome de uma tabela deverá ser único em um banco de
dados;
• Cada coluna deverá ser criada através da especificação do seu
nome, tipo e tamanho do dado que irá armazenar e,
opcionalmente, a permissão de valor assumir valores nulos e
restrições (constraints) impostas ao conteúdo;
• O nome de uma coluna deverá ser único dentro de cada
tabela podendo, entretanto, existir colunas com o mesmo
nome em tabelas diferentes.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 30
Criando Tabelas - Identificadores
• O identificador da tabela pode ter até 128 caracteres;
• O primeiro caractere deve ser uma letra ou #, ou _ (sublinhado):
• # - utilizado para tabelas temporárias locais;
• ## - utilizado para tabelas temporárias globais.
• Depois do primeiro caractere podem ser usados caracteres
alfanuméricos ou os símbolos #, $ e _ (sublinhado);
• Podem ser usados espaços em identificadores, mas para fazer
referência a esses objetos deve-se delimitar o nome por aspas
duplas ou colchetes.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 31
Tipos de Dados
• Números inteiros: bigint, int, smallint, tinyint
Tipo de dado Intervalo Armazenamento
bigint
int
de -2 63 (-9223372036854775808)
a 2 63-1 (-9223372036854775807)
de -2 31 (-2147483648)
a 2 31-1 (-2147483648)
8 bytes
4 bytes
smallint de -2 15 (-32768) a 2 15-1 (-32767) 2 bytes
tinyint de 0 a 255 1 byte
SQL - Criando Banco de Dados e Tabelas 17/12/2019 32
Tipos de Dados
• Números decimais: numeric(p[,s]) e decimal(p[,s])
Tipo de dado Intervalo Armazenamento
numeric
decimal
p
de -10 38 +1 a 10 38 -1 )
Armazenamento
1 – 9 5 bytes
10 – 19 9 bytes
20 – 28 13 bytes
29 - 38 17 bytes
variável
Depende de p
SQL - Criando Banco de Dados e Tabelas 17/12/2019 33
Tipos de Dados
• Valores monetários: money, smallmoney
Tipo de dado Intervalo Armazenamento
money
smallmoney
de -922.337.203.685.477,5808
a 922.337.203.685.477,5807
de -214.748,3648
a 214.748,3647
8 bytes
4 bytes
SQL - Criando Banco de Dados e Tabelas 17/12/2019 34
Tipos de Dados
• Valores de data: date, time, datetime, smalldatetime
Tipo de dado Intervalo Armazenamento
date data de 01/01/0001 a 31/12/9999 3 bytes
time de 00:00:00 a 23:59:29 5 bytes
datetime
smalldatetime
data de 01/01/1753 a 31/12/9999
hora de 00:00:00 a 23:59:29
data de 01/01/1900 a 06/06/2079
hora de 00:00:00 a 23:59:29
8 bytes
4 bytes
SQL - Criando Banco de Dados e Tabelas 17/12/2019 35
Tipos de Dados
• Cadeia de caracteres: char(n) e varchar(n)
Tipo de dado Intervalo Armazenamento
char(n)
varchar(n)
varchar(max)
string com comprimento fixo de
até 8000 caracteres
string com comprimento variável
de até 8000 caracteres
string com comprimento variável
de até 2 GB
até 8000 bytes
até 8000 bytes
até 2 GB
SQL - Criando Banco de Dados e Tabelas 17/12/2019 36
Criando Tabelas
Sintaxe:
CREATE TABLE nome da tabela
( nome_da_coluna tipo_de_dado [ tamanho [, decimais]]
[ NULL | NOT NULL ]
[ IDENTITY [(origem, incremento) ]] )
[ restrições de coluna ]
[ restrições de tabela ]
SQL - Criando Banco de Dados e Tabelas 17/12/2019 37
Criando Tabelas
• NULL | NOT NULL
• Indica se o atributo é opcional (NULL) ou obrigatório (NOT
NULL). Isso define se o valor do atributo deverá ser informado
no momento de inserir o dado. Se omitido, o valor default é
NULL.
• IDENTITY
• Indica que o atributo é um valor com auto-incremento.
• O seu valor não deverá ser informado nas operações de
inserção de dados.
• O valor inicial e o incremento da auto-numeração podem ser
definidos. Se omitido, o valor default é (1,1).
SQL - Criando Banco de Dados e Tabelas 17/12/2019 38
Criando Tabelas - Restrições
• Também chamadas de constraints, são condições que garantem
que valores válidos sejam inseridos nas colunas e que os
relacionamentos entre as tabelas sejam mantidos.
• Se dividem em:
• Restrição de coluna: quando a restrição se aplica a uma única
coluna da tabela.
• Restrição de tabela: quando a restrição faz referência a várias
colunas da tabela.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 39
Criando Tabelas - Restrições
• As constraints são:
• Primary Key
• Define uma chave primária.
• Foreign Key
• Define uma chave estrangeira.
• Unique
• Define uma chave candidata.
• Check
• Define uma restrição de domínio.
• Default
• Define um valor default para o atributo.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 40
Criando Tabelas - Primary Key
• É utilizada para definir a chave primária da tabela;
• Impede a inclusão de valores duplicados para a coluna;
• Cria um índice na coluna para melhorar o desempenho;
• Uma tabela pode conter apenas uma restrição PRIMARY KEY;
• Em uma chave primária composta, os nomes das colunas devem
ser separados por vírgulas e todas elas devem ser definidas como
NOT NULL.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 41
Criando Tabelas - Foreign Key
• É utilizada para definir uma chave estrangeira para a tabela;
• Todo valor não nulo introduzidos na coluna com uma restrição
FOREGN KEY deve existir na chave primária da tabela
referenciada;
• O número de colunas e tipos de dados das colunas especificadas
em uma restrição FOREIGN KEY devem coincidir com as colunas
da tabela referenciada.
• O nome de uma coluna com restrição FOREIGN KEY não precisa,
ter, necessariamente, o mesmo nome da coluna da chave
primária da tabela referenciada, mas deve possuir o mesmo tipo
de dado dessa tabela.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 42
Criando Tabelas - Unique
• É utilizada para definir a chave candidata da tabela;
• Impede a inclusão de valores duplicados para a coluna;
• Cria um índice na coluna para melhorar o desempenho.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 43
Criando Tabelas - Check
• É utilizada para definir restrições de domínio.
• Uma coluna pode possuir várias restrições CHECK e os critérios
podem incluir diversas expressões lógicas combinadas com AND
e OR. As restrições são validadas pela ordem da criação.
• Uma restrição CHECK de coluna não pode fazer referência a
outras colunas da tabela.
• Uma restrição CHECK de tabela pode fazer referência a outras
colunas da tabela, mas não pode referenciar colunas de outras
tabelas.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 44
Criando Tabelas - Default
• É utilizada para definir um valor padrão para uma coluna quando
esse valor não for especificado em um comando INSERT.
• Uma coluna contendo uma constraint DEFAULT deverá ser
definida como NULL. O valor default possui prioridade.
• Uma coluna pode ter apenas uma restrição DEFAULT.
• Uma restrição DEFAULT não pode fazer referência a outra coluna.
• O valor atribuído em uma restrição DEFAULT deve estar de
acordo com o tipo de dado da coluna.
• Uma restrição DEFAULT pode conter valores constantes ou
funções do sistema.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 45
Criando Tabelas - Exemplos
BANCO DE DADOS CONTPEDIDO
Esquema Conceitual
Esquema Lógico
Script SQL
SQL - Criando Banco de Dados e Tabelas 17/12/2019 46
Modificando Tabelas
Sintaxe:
ALTER TABLE nome_da_tabela
ALTER COLUMN nome_da_coluna novo_tipo_de_dado
[ NULL | NOT NULL ]
| ADD definição_da_coluna
| ADD CONSTRAINT definição_da_constraint
| DROP COLUMN nome_da_coluna
| DROP [ CONSTRAINT ] nome_da_constraint
SQL - Criando Banco de Dados e Tabelas 17/12/2019 47
Modificando Tabelas
Exemplo 1: Inserir a coluna cpf do tipo char(11) na tabela CLIENTES
do banco de dados COMPRAS.
USE Compras;
ALTER TABLE Clientes ADD cpf char(11);
Exemplo 2: Adicionar uma constraint CHECK na coluna cpf da tabela
CLIENTES do banco de dados COMPRAS, de modo que o tamanho
do campo seja de 11 caracteres.
USE Compras;
ALTER TABLE Clientes
ADD CONSTRAINT CK_Clientes_cpf CHECK (LEN(cpf)=11);
SQL - Criando Banco de Dados e Tabelas 17/12/2019 48
Modificando Tabelas
Exemplo 3: Inserir a coluna cpf do tipo char(11) na tabela CLIENTES
do banco de dados COMPRAS com uma constraint CHECK para
validar o tamanho com 11 dígitos e uma constraint UNIQUE para
definir o atributo como sendo uma chave candidata.
USE Compras;
ALTER DATABASE Clientes ADD cpf1 char(11)
CONSTRAINT CK_clientes_cpf CHECK (cpf LIKE '[1-9]
[1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9] ')
CONSTRAINT AK_clientes_cpf UNIQUE;
SQL - Criando Banco de Dados e Tabelas 17/12/2019 49
Modificando Tabelas
Exemplo 4: Excluir a coluna cpf da tabela CLIENTES do banco de
dados COMPRAS.
USE Compras;
ALTER TABLE Clientes DROP COLUMN cpf1;
/* Deu erro. É necessário primeiro excluir as
constrainst para depois excluir as tabelas.*/
ALTER TABLE Clientes
DROP CONSTRAINT CK_clientes_cpf1;
ALTER TABLE Clientes
DROP CONSTRAINT AK_clientes_cpf1;
ALTER TABLE Clientes DROP COLUMN cpf1;
SQL - Criando Banco de Dados e Tabelas 17/12/2019 50
Criando Usuários
• Para criar um usuário em um banco de dados do SQL Server é
necessário:
1. Criar uma conta de login;
• Um login representa uma permissão de acesso para o SQL
Server.
• Uma conta de login recebe a atribuição de um banco de
dados padrão.
• A atribuição de um banco de dados padrão não cria uma
conta de usuário nesse banco, mas define o contexto para
as ações que o usuário pode executar. Se omitido, o
banco de dados padrão será o master.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 51
Criando Usuários
2. Criar um usuário e mapeá-lo para o login criado
• O usuário representa a pessoa que poderá acessar o
banco de dados desejado.
• Após o mapeamento para o login é que o usuário
conseguirá se logar no SQL Server e entrar nos bancos de
dados desejados.,
• É necessário que o usuário tenha permissão para realizar
operações em cada um dos bancos de dados
SQL - Criando Banco de Dados e Tabelas 17/12/2019 52
Criando Usuários
3. Dar as permissões necessárias para o novo usuário.
• Definir quais as operações que o usuário pode executar
no banco de dados.
• Permissões da tabelas e views: controlam a execução das
instruções de SELECT, INSERT, UPDATE e DELETE em uma
tabela.
• Permissões de colunas: controlam a execução das
instruções de SELECT, UPDATE em colunas de uma tabela.
• Permissões de stored procedure: controlam a permissão
de executar stored procedures através do comando
EXECUTE.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 53
Criando uma Conta de Login
Sintaxe:
CREATE LOGIN nome_login WITH PASSWORD = 'password'
Exemplo 1: Criar um login chamado acesso1 com a senha 'teste'.
CREATE LOGIN acesso1 WITH PASSWORD = 'teste'
• É criada a conta de login chamada acesso1.
• Como não existe banco de dados associado a esta conta de login,
apenas o banco de dados master poderá ser acessado.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 54
Criando um Usuário
Sintaxe:
CREATE USER nome_usuario FROM login
Exemplo 1: Criar um usuário chamado 'user1' com o login 'acesso1'.
USE ContPedido;
CREATE USER user1 FROM login acesso1
• É criado o usuário user1 com acesso ao banco de dados que está em
uso.
• É necessário definir as permissões do usuário no banco de dados.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 55
Concedendo Permissão para uma Tabela
Sintaxe:
GRANT permissão ON tabela TO usuário
Exemplo 1: Conceder a permissão de SELECT na tabela cliente para
o usuário user1.
USE ContPedido;
GRANT SELECT ON cliente TO user1
• É concedida a permissão ao usuário user1 para executar o
comando SELECT na tabela cliente do banco de dados
ContPedido (está em uso).
SQL - Criando Banco de Dados e Tabelas 17/12/2019 56
Negando Permissão para uma Tabela
Sintaxe:
DENY permissão ON tabela TO usuário
Exemplo 1: Negar a permissão de SELECT na tabela cliente para o
usuário user1.
USE ContPedido;
DENY SELECT ON cliente TO user1
• É negada a permissão ao usuário user1 para executar o comando
SELECT da tabela cliente do banco de dados ContPedido (está
em uso).
SQL - Criando Banco de Dados e Tabelas 17/12/2019 57
Concedendo Permissão para uma Coluna
Sintaxe:
GRANT permissão ON tabela(coluna) TO usuário
Exemplo 1: Conceder a permissão de SELECT na coluna nome da
tabela cliente para o usuário user1.
USE ContPedido;
GRANT SELECT ON cliente(nome) TO user1
• É concedida a permissão ao usuário user1 para executar o
comando SELECT na coluna nome da tabela cliente do banco de
dados ContPedido (está em uso).
SQL - Criando Banco de Dados e Tabelas 17/12/2019 58
Copyright © 2019 Nilton Freire Santos.
Todos os direitos reservados.
SQL - Criando Banco de Dados e Tabelas 17/12/2019 59