Guia de SQL: Comandos DDL, DML e Consultas Avançadas
Classificado em Eletrônica
Escrito em em
português com um tamanho de 6,17 KB
1) Criação de Banco de Dados
Comando: CREATE DATABASE dbfatura
Configurações:
ON (NAME = 'fatura_data',
FILENAME = 'C:\db\fatura.mdf',
SIZE = 30MB,
MAXSIZE = 100MB,
FILEGROWTH = 20%)
LOG ON (NAME = 'fatura_log',
FILENAME = 'C:\db\fatura.log',
SIZE = 9MB,
MAXSIZE = 30MB,
FILEGROWTH = 20%)
2) Criação de Tabela
Comando: CREATE TABLE tabcli (
Codcli INT, CONSTRAINT pk_tabcli PRIMARY KEY,
Nomecli CHAR(30), CONSTRAINT chk_nome CHECK (Nomecli <> ''),
Endcli CHAR(30),
Cidcli CHAR(30),
Uf_cli CHAR(2) DEFAULT 'SP',
Cpfcli CHAR(10),
RG_cli CHAR(10)
)
Definições:
- DDL: Definição de Dados.
- DML: Manipulação e Controle de Dados (Incluir, Alterar, Excluir).
- SQL: Linguagem de Consulta Estruturada.
Dada uma estrutura de Integridade Referencial (IR), a integridade é referenciada pelo banco de dados, diferentemente da arquitetura de Inteligência Artificial (AI), onde o programador deve controlar esta integridade.
Inclusão de Linhas (INSERT)
Sintaxe:
INSERT INTO nome_tabela VALUES (vlr1, 'txt2', vlr3, ...);// Valores para todas as colunas.INSERT INTO nome_tabela (col1, col2, ...) VALUES (vlr1, 'txt2', ...);// Somente nas colunas definidas; as demais não podem ser chaves e devem aceitar valores nulos.INSERT INTO nome_tabela (SELECT ... FROM ... WHERE ...);// Incluir informações resultantes de uma consulta.
Atualização de Linhas (UPDATE)
Sintaxe: UPDATE nome_tabela SET nome_col = novo_valor WHERE condição;
Atenção: Se a cláusula WHERE for omitida, todas as linhas serão atualizadas.
Condições:
- Simples: nome_da_coluna = (ou <, >, <>, >=, <=) valor ou texto.
- Composta: Uso de operadores lógicos
AND(interseção restritiva) eOR(união abrangente). - Prioridade: Pode-se utilizar parênteses
()para priorizar a execução da condição mais interna para a mais externa.
Funções e Operadores
DDL: Linguagem de Definição de Dados | DML/DCL: Linguagem de Manipulação e Controle de Dados | SQL: Structured Query Language (Linguagem padrão para consulta).
Funções de Conversão: Ex: CONVERT(datetime, '03/09/2009', 103).
Intervalo: BETWEEN valor_inicial AND valor_final (inclusive os termos).
Texto/Contexto: Uso de LIKE com o coringa %.
LIKE 'texto%': Inicia com o texto.LIKE '%texto': Termina com o texto.LIKE '%texto%': Contém o texto no contexto.
Sintaxe da Consulta (SELECT)
Estrutura:SELECT [colunas, expressões, funções] FROM [tabelas] WHERE [condição das linhas] GROUP BY [colunas de agrupamento] HAVING [condição do grupo] ORDER BY [colunas de ordenação]
Expressões: Qualquer operação envolvendo colunas e valores fixos. Ex: salario * 1.1.
Funções Disponíveis:
- Texto:
STR(col)(converte para texto),SUBSTRING(col, inicio, tamanho),UPPER(col)(maiúsculas),LOWER(col)(minúsculas),RTRIM(col)(remove espaços à direita),LTRIM(col)(remove espaços à esquerda),LEN(col)(tamanho da string). - Numérica:
SQRT(col)(raiz quadrada),ABS(col)(valor absoluto),SIN(col)(seno),CAST(col AS NUMERIC)(converte para número). - Data:
DATEPART(parte, col),DATEADD(parte, valor, col),DATEDIFF(parte, col1, col2),GETDATE()(data/hora atual).
Partes da data: DD (dia), MM (mês), YY (ano), DW (dia da semana), HH (hora), MI (minuto), SS (segundo), MS (milissegundo), QQ (trimestre).
Ordenação e Agrupamento:
- ORDER BY:
ASC(padrão ascendente) ouDESC(decrescente). - Funções de Agrupamento:
SUM(col)(soma),AVG(col)(média),MAX(col)(máximo),MIN(col)(mínimo),COUNT(col)(contagem de linhas). - Conceitos: Colunas no
SELECTque não são funções de agrupamento devem estar noGROUP BY. Não é possível exibir valores individuais e agrupados simultaneamente na mesma expressão.
Exemplo: SELECT numfat, datfat, vlrfat FROM tabfat WHERE vlrfat > 5000 ORDER BY vlrfat DESC;
Sub-consultas (Sub-query)
Baseia-se na teoria dos conjuntos e obedece a uma hierarquia de execução. Os dados da consulta inferior (interna) são passados como uma lista para a consulta superior (externa).
Exemplo: SELECT nomdep FROM tabdep WHERE coddep IN (SELECT coddep FROM tabfun);
As sub-consultas podem consumir menos recursos e possuir melhor desempenho que o JOIN em determinadas situações. Possuem estrutura de execução vertical.
JOIN - Junção de Tabelas
Sintaxe: SELECT t1.coluna, t2.coluna FROM tabela1 t1 INNER JOIN tabela2 t2 ON t1.coluna = t2.coluna WHERE [condição] ORDER BY [coluna];
O JOIN é necessário quando se deseja mostrar informações de tabelas distintas simultaneamente. Possui uma estrutura de execução horizontal e reconhecimento de tabelas/colunas. Exemplo: Descrição dos produtos vendidos no primeiro semestre de 2009.