A maior rede de estudos do Brasil

Grátis
32 pág.
Apostila SQLServer

Pré-visualização | Página 1 de 5

1 
Introdução à SQL 
 
O SQL (Structured Query Language), é um linguagem padrão usada para acesso a Banco 
de Dados. O conjunto de seus comandos permite-nos definir a estrutura dos dados no 
banco de dados relacional, acessar e manipular esses dados. Trata-se de uma linguagem 
não Procedural. Quando usamos o SQL, especificamos o que queremos fazer, e não como 
fazê-lo. É uma linguagem de fácil aprendizagem. 
SQL teve seu início em 1970, com E.F. Codd, que formulou os principios de um sistema 
relacional para manipulação de banco de dados e descreveu uma álgebra relacional para 
organizar os dados em tabelas. De lá para cá, a linguagem foi se aperfeiçoando e hoje 
existe um padrão desenvolvido pela American National Standards Institute (ANSI). Esse 
padrão tem sido a base para a maioria dos SQL's existentes atualmente no mercado. Cada 
fabricante inseriu novas funcionalidades em seu SQL, fazendo com que encontremos 
dezenas de versões de SQL. 
Apresentamos a seguir um visão geral da Arquitetura de um Sistema Gerenciador de 
Banco de Dados, para que possamos compreender do que se compõe a Linguagem SQL. 
 
Arquitetura SGBD 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Visão 
Externa 1 
Visão 
Externa n 
Esquema 
Conceitual 
Esquema 
Interno 
Nível Externo 
Nivel Conceitual 
Nível Interno 
Banco de Dados 
 
2 
 
 
1) Nível Interno. Descreve a estrutura física de armazenamento do Banco de Dados. O 
Esquema Interno usa um modelo de dados físico e descreve todos os detalhes do 
armazenamento de dados e caminhos de acesso ao Banco de Dados. 
 
2) Nível Conceitual. Descreve a estrutura de todo o Banco de Dados para os usuários. O 
Esquema Conceitual esconde os detalhes da estrutura física de armazenamento e se 
concentra em descrever as entidades, tipos de dados, relacionamentos, operações dos 
usuários e restrições. 
 
3) Nível Externo. Inclue um número de esquemas externos ou visões de usuários. Cada 
uma delas descreve uma parte do Banco de Dados que um grupo particular de usuários 
está interessado e esconde o resto do Banco de Dados aos demais usuários. 
 
 
Linguagens SGBD 
 
- Data Definition Language (DDL) - Para definir o esquema conceitual e o esquema 
interno. 
- View Definition Language (VDL) - Para definir as visões dos usuários e seus 
mapeamentos ao esquema conceitual. 
- Data Manipulation Language (DML) - Para manipular os dados de uma Base de 
Dados. (Consultar, Inserir, Excluir, Modificar). 
 
 
 
 
 
 
Definição de Dados em SQL 
 
SQL utiliza os termos tabela (table), linha (row), e coluna (column) para relação ou 
entidade, tupla e atributo, respectivamente. 
 
A Linguagem de Definição de Dados (DDL), permite executar tarefas como: 
- criar um objeto de banco de dados 
- excluir um objeto de banco de dados 
- alterar um objeto de banco de dados 
- conceder privilégios em um objeto de banco de dados 
- revogar privilégios de um objeto de banco de dados 
 
 
 
 
 
 SQL = ( DDL + VDL + DML ) 
 
3 
Conceitos utilizados em SQL 
 
 
Apresentamos alguns objetos e conceitos fundamentais no entendimento da linguagem 
SQL. 
 
- Banco de Dados (Database). É um conjunto de objetos SQL. Quando definimos um 
banco de dados, damos-lhe um nome para uma eventual coleção de tabelas e índices 
associados. 
 
- Tabela. Um banco de dados contém uma ou mais tabelas. Cada tabela tem um nome 
e contém um número específico de colunas e linhas (não ordenadas). 
 
- Índice. É um conjunto ordenado de ponteiros para os dados de uma tabela, 
armazenado separadamente da tabela. Cada índice é baseado nos valores dos dados de 
uma ou mais colunas de uma tabela. O índice visa melhorar a performance e também 
garantir a unicidade do dado (caso deseje). 
 
- Visão (View). É uma forma alternativa de representar os dados que existem em uma 
ou mais tabelas. Uma view pode Ter todas ou algumas colunas de uma ou mais 
tabelas. Pode-se também Ter views baseadas em outras views ou da combinação de 
views e tabelas. Ela se assemelha a uma tabela, com a única diferença, de que a view 
não existe fisicamente. Os seus dados estão armazenados nas tabelas nas quais elas se 
baseiam. 
 
- Junção (Join). Quando se deseja obter dados de mais de uma tabela, efetuamos a 
junção dessas tabelas. 
 
- Chave Primária (Primary Key). É uma columa ou grupo de colunas, cujo valor 
identifica cada linha da tabela. 
 
- Chave Estrangeira (Foreign Key). Colunas de tabelas que referenciam a chave 
primária de outra tabela. 
 
- Integridade Referencial. Quando definimos uma chave estrangeira, estamos 
definindo uma integridade referencial entre as tabelas envolvidas. 
 
- Catálogo do Sistema. Cada banco de dados tem um catálogo do sistema que contém 
tabelas do sistema. Essas tabelas contém informações sobre as tabelas, visões, 
colunas, índices, e privilégios de segurança do banco de dados. Em alguns SGBDs, 
esse catálogo é chamado de dicionário de dados. 
 
 
 
 
 
 
4 
Tipos de Dados (Datatypes) 
 
Tipos de Dados especifica que tipo de informação (caracteres, números, datas) a coluna 
de uma tabela pode armazenar e como esses dados serão armazenados. Abordaremos a 
seguir alguns tipos de dados encontrado no SQL da Microsoft. 
 
Binary [(n)] Qtde fixa de números binários 
Varbinary [(n)] Qtde variável de números binários 
Char [(n)] Qtde fixa de caracteres 
Varchar [(n)] Qtde variável de caracteres 
Datetime Data com precisão de HHMMSS e MS 
Smalldatetime Data com precisão de HHMMSS 
Decimal [(p[,s])] 
Numeric [(p[,s])] 
Valores numéricos, onde p é a qtde total incluindo a parte 
inteira e a parte decimal, e o s corresponde a parte decimal 
Tinyint Números inteiros. (-255 a +255) 
Smallint Númerso inteiros. (-32.767 à +32.767) 
Int Números inteiros. 
Money Valores monetários 
Smallmoney Valores monetários 
Text Textos 
Image Fotos e Imagens 
Bit, timestamp Tipos de dados especiais 
 
 
 
 
O usuário pode criar seu tipo de dado e armazená-lo no banco de dados para utilizá-lo na 
definição das colunas das novas tabelas. 
 
Exemplos: 
 
 EXEC sp_addtype cep, 'char(10)' 
 EXEC sp_addtype grandestring 'varchar(75)' 
 
 EXEC sp_droptype cep 
 
 
 
 
 
 
 
 
 
 
 
 
5 
Criação de Tabelas 
 
Para se criar tabelas dentro de um banco de dados, utilizamos a sentença CREATE 
TABLE. 
 
 CREATE TABLE [nome_banco.[dono_tabela]. ] nome_tabela 
 ( 
 [ nome_col propriedades_col [ constraint [constraint [ ... constraint]]] 
 | [ [ , ] constraint ]] 
 [ [ , ] [ próximo_nome_col | próxima_constraint] ... ] 
 ) 
 
 
 Nomes de colunas devem ser únicos dentro de uma mesma tabela 
 Toda coluna deve Ter um tipo de dado (datatype) 
 Pode-se definir até 2 bilhões de tabelas por banco de dados 
 Pode-se definir até 250 colunas por tabela 
 Um valor NULL indica a ausência de dados. NULL não é branco e nem zero. Por 
default, o SQL assume NOT NULL, para as colunas que não estão declaradas com 
NULL. Pode-se alterar esse default na configuração do SQL Server. 
 
 
Exemplos: 
 
CREATE TABLE empresa 
 ( cod_empresa int NOT NULL, 
 nome_empresa varchar(45) NOT NULL, 
 cgc char(14) NOT NULL, 
 dt_fundacao smalldatetime, 
 nro_funcionarios smallint ) 
 
 
 
 
CREATE TABLE funcionario 
 ( cod_func int, 
 nome_func varchar(45), 
 endereco varchar(50) NULL, 
 cidade varchar(30) NULL )