Está en la página 1de 20

INTRODUO LINGUAGEM

T-SQL
Prof Rosana Traversa

A Linguagem SQL
Structured Query Language linguagem de
consulta estruturada a bancos de dados
Introduzida pela IBM (1970) e posteriormente
padronizada pelo ANSI (1986)
Linguagem no procedural
Utilizada por diversos SGBD como:
Access, MySql, Paradox, Oracle, SQLServer,
Informix, etc

A Linguagem SQL Estrutura

A linguagem SQL representa um conjunto de comandos responsveis


pela definio das tabelas, comandos de controle e, comandos de
manipulao dos dados em um S.G.B.D.
Os comandos so subdivididos em :
Comandos DDL (Data Definition Language) - Conjunto de
comandos responsveis pela criao, alterao e deleo da
estrutura das tabelas e ndices de um sistema.
Comandos DML (Data Manipulation Language) - Conjunto de
comandos responsveis pela consulta e atualizao dos dados
armazenados em um banco de dados.
Comandos DCL (Data Control Language) Subconjunto do DML,
oferece comandos para definir usurios e controlar seus acessos
aos dados.

A Linguagem SQL - DDL


Exemplos de comandos DDL:
CREATE DATABASE
CREATE TABLE
ALTER TABLE
DROP TABLE
CREATE INDEX
DROP INDEX

A Linguagem SQL - DDL exemplo


CREATE TABLE TABEMPREGADO (
NumeroEmp int NOT NULL primary key ,
NomeEmp varchar (30) NOT NULL ,
FuncaoEmp varchar (20) NULL ,
DepNume int NOT NULL ,
AdmEmp date NOT NULL ,
SalarioEmp decimal (10,2) NULL ,
ComissaoEmp decimal(10, 2) NULL
);

A Linguagem SQL - DCL


Os comandos DCL destinam-se a criar
usurios e a estabelecer o controle de
acesso aos dados.
GRANT
REVOKE
DENY

A Linguagem SQL - DML


Os comandos DML so responsveis pela manipulao
dos dados armazenados nas estruturas fsicas criadas
pelos comandos DDL.
INSERT
UPDATE
DELETE
SELECT

A Linguagem SQL
A linguagem SQL (atravs dos comandos
DML) facilita o estabelecimento de
critrios de seleo e busca que
satisfaam as necessidades da aplicao.
Exemplo:
SELECT nome FROM tabpessoas WHERE
idade > 18
AND
salario < 1000
AND sexo =F
Esta instruo pode ser traduzida por:

Selecione todos os NOMEs das mulheres presentes na tabela


TABPESSOAS que tenham IDADE superior 18 anos e SALRIO menor
que R$ 1.000,00

A Linguagem SQL
Se quisermos ver alm do nome outras
caractersticas como idade e salrio, que
modificaes devem ser feitas no comando
abaixo?
SELECT nome FROM tabpessoas WHERE
idade > 18
salario < 1000

AND

AND sexo =F
SELECT nome, idade, salario FROM tabpessoas
WHERE idade > 18 AND salario < 1000
AND sexo =F

Comando SELECT do SQL sintaxe


a construo mais largamente utilizada em programas (VB, Java, Etc.)

Funo: Selecionar um conjunto de registros em uma ou mais tabelas que


atendam a uma determinada condio
Sintaxe:
SELECT {

{ [DISTINCT/DISTINCTROW ] <nome do campo>, ... }

ouu [, <nome-tabela>]
FROM <nome-tabela>

{ [WHERE <condio>]
[ORDER BY <nome-campo> [ASC / DESC]]
[GROUP BY <nome-coluna>] [HAVING <condio>] }
* mais opes....

Comando SELECT do SQL sintaxe

Detalhes da Sintaxe:
{ * }

Todos os campos da tabela

{ [DISTINCT/DISTINCTROW ] <nome do campo>,. } apenas os


valores distintos (diferentes)
FROM <nome-tabela> [, <nome-tabela>] Tabela(s) de origem

{ [WHERE <condio>] Critrio de seleo


[ORDER BY <nome-campo> [ASC / DESC]] Ordenao
[GROUP BY <nome-coluna>] [HAVING <condio>] }Grupamento

Condio where
SQL(cont.)
Condio Where
Diversos critrios podem ser combinados
atravs dos operadores lgicos AND/OR
Operadores condicionais
between ... and ...
in ( .... )
like
is null

Significado

entre dois valores ( inclusive )


lista de valores
com um padro de caracteres
usa-se combinado com %
um valor nulo

Exemplos
SELECT NomeEmp, SalarioEmp FROM TABEMPREGADO
WHERE SalarioEmp BETWEEN 500 AND
1000;
SELECT NomeEmp, DepNume FROM TABEMPREGADO
WHERE DepNume IN (10,30);
SELECT NomeEmp, FuncaoEmp
FROM
TABEMPREGADO
WHERE NomeEmp LIKE 'F
%';
SELECT NomeEmp, FuncaoEmp FROM
TABEMPREGADO
WHERE ComissaoEmp IS NULL;

Exemplos
SELECT NomeEmp, SalarioEmp, FuncaoEmp FROM
TABEMPREGADO WHERE SalarioEmp BETWEEN
700 AND 2000 AND ( FuncaoEmp =
'BALCONISTA' OR
FuncaoEmp =
'VENDEDOR' );
SELECT * FROM TABEMPREGADO
WHERE AdmEmp = 1980-01-01;
SELECT DISTINCT FuncaoEmp from
TABEMPREGADO
SELECT NomeEmp, SalarioEmp FROM
TABEMPREGADO
ORDER BY SalarioEmp DESC

Comando SELECT (cont.)


ALIAS
Um campo (coluna) pode assumir um apelido durante a consulta
Exemplos:
SELECT nome, numdep AS numero_departamento
FROM TABFUNC
SELECT mat AS Matricula, media AS Media Final FROM ALUNOS
* Se o apelido tiver espaos em branco ou caracteres especiais deve ser escrito
entre apstrofes

Comando SELECT (cont.)


ALIAS
O apelido tambm pode ser usado para nomear um
campo calculado
Exemplos:
SELECT nome, qtdd, preco, qtdd*preco AS Total FROM
TABPRODUTO
* Total um campo calculado! No existe na tabela TABPRODUTO

Comando SELECT do SQL


(cont.)

FUNES AGREGADAS:

Aplicam-se s tabelas como um todo, ou a grupos de


colunas (GROUP BY)
Retornam um valor resumo
COUNT (*/ [[DISTINCT] <nome-campo>] )
SUM ( <nome-campo>)
AVG ( <nome-campo>)
MAX ( <nome-campo>)
MIN ( <nome-campo>)

FUNES AGREGADAS Exemplos


SELECT AVG(SalarioEmp) FROM TABEMPREGADO;
SELECT MIN(SalarioEmp) FROM TABEMPREGADO;
SELECT MAX(SalarioEmp) FROM TABEMPREGADO;
SELECT SUM(SalarioEmp) FROM TABEMPREGADO;
SELECT DepNume as DEPTO, AVG(SalarioEmp) FROM
TABEMPREGADO GROUP BY DepNume;
SELECT DepNume, AVG(SalarioEmp) FROM TABEMPREGADO
GROUP BY DepNume HAVING COUNT(*) > 3;

Demais comandos DML Exemplos


INSERT INTO <nome_tabela> (<lista de campos>) VALUES (<lista
de valores>)
INSERT INTO TABDEPTO (DepNume, DepNome, DepLoca) VALUES
(70,PRODUCAO, RIO DE JANEIRO)
INSERT INTO TABALUNO (matricula, nome, nota) VALUES (16,
Francisco , 7.5)

UPDATE <nome_tabela> SET <campo>=<novo_valor> [WHERE


<condio>]
UPDATE TABFUNC SET BONUS =1000;
UPDATE TABEMPREGADO SET SalarioEmp = SalarioEmp* 1.2
WHERE
SalarioEmp < 1000;

Demais comandos DML Exemplos


DELETE FROM <nome_tabela> WHERE
<condio>
DELETE FROM TABEMPREGADO WHERE EmpNum
=1234;
DELETE FROM INATIVOS WHERE Datademisso <
1970-01-01

También podría gustarte