SQL é a linguagem de consulta estruturada. Foi criado especificamente para gerenciar e acessar dados mantidos em bancos de dados relacionais. O primeiro empreendimento comercial a usar SQL foi o Oracle, que ainda possui sua linguagem de consulta SQL * Plus como base de todo o seu sistema de gerenciamento de banco de dados relacional (RDMS).
Hoje, MySQL, SQL Server, SAP e Sybase usam SQL para acesso ao banco de dados. Neste guia, forneceremos a versão padrão dos comandos SQL, prestando atenção especial à implementação do Oracle no SQL * Plus.
ESCOLHA DO EDITOR: Recomendamos as ferramentas de gerenciamento de infraestrutura da SolarWinds para monitorar todas as suas ferramentas da Microsoft, incluindo o SQL Server. Você precisa de um conjunto de utilitários de monitoramento que possam interagir para cobrir todos os recursos que suportam seu banco de dados relacional.
Bancos de dados relacionais
SQL gerencia bancos de dados relacionais. Um banco de dados relacional contém tabelas separadas para reduzir a repetição de dados. O processo de decisão sobre os agrupamentos adequados de categorias de dados é chamado “normalização.Em alguns casos, as demandas de desempenho podem determinar que as tabelas funcionem melhor se não forem completamente normalizadas. Esse processo é chamado de “desnormalização” e é uma ocorrência rara.
Cada tabela precisa de uma coluna que identifique exclusivamente cada linha. Isso é chamado de “chave primária.As outras tabelas que podem ingressar nessa entidade devem conter uma referência à chave primária em cada registro. Essa referência é chamada de “chave estrangeira.” Tu Junte-se tabelas juntas, combinando a chave estrangeira em uma tabela com a chave primária em outra. Esta ação é executada com SQL. O Diagrama de Entidade-Relacionamento é uma referência útil quando você decide como estruturar sua instrução SQL.
Para acelerar o acesso, é normal colocar um índice em cada chave primária no banco de dados. Também é possível armazenar junções usadas com frequência para criar tabelas virtuais, chamadas “Visualizações.”
Mais um objeto de banco de dados é um desencadear. Este é um pedaço do SQL que é iniciado sempre que um valor é adicionado a uma coluna ou alterado. Um acionador atualizará os valores em uma coluna em uma tabela diferente ou em outras colunas na mesma tabela. Isso acontece se um valor for adicionado ou alterado na coluna na qual o gatilho é colocado. Também pode restringir os valores que podem ser inseridos em uma coluna.
DQL, DDL, DCL e DML
O SQL inclui quatro subconjuntos de comandos. Esses são Idioma de consulta de dados (DQL), Idioma da descrição dos dados (DDL), Linguagem de controle de dados (DCL) e Linguagem de Manipulação de Dados (DML).
Na maioria dos projetos, o Administrador de banco de dados (DBA) é o único membro da equipe que tem privilégios para usar DDL. Este grupo de comandos cria, altera e descarta tabelas, índices, acionadores e visualizações.
DML é usado para adicionar, alterar ou remover registros de tabelas no banco de dados. O acesso a essas funções SQL geralmente é restrito à equipe de suporte ou a membros seniores responsáveis da comunidade de usuários.
DQL é usado para gerar relatórios a partir do banco de dados. Esse subconjunto de comandos é usado pelos programadores e também pode ser disponibilizado aos usuários finais para que eles possam realizar suas próprias consultas..
O gerenciamento de privilégios do usuário é armazenado no mesmo banco de dados que os dados. No entanto, o acesso a essas tabelas geralmente é restrito ao DBA. O gerenciamento do acesso do usuário é implementado através de DCL.
Há um comando SQL útil que não se enquadra nas classificações de DQL, DDL, DCL ou DML. Isto é “descrever”, Que geralmente é implementado como DESC. Isso mostra a estrutura de um objeto no banco de dados. No caso de uma tabela, mostrará uma lista de colunas e o tipo de dados e tamanho de cada uma. Ele mostrará o SQL que criou uma exibição ou um acionador e mostrará as colunas envolvidas em um determinado índice.
Operadores relacionais
A teoria por trás dos bancos de dados relacionais foi definida por E. F. Codd em 1970. Dentro da definição de Codd, existe um requisito de uma ferramenta de consulta que deve implementar oito operações relacionais essenciais. Esses são:
- SELECT
- PROJETO
- JUNTE-SE
- PRODUTOS
- UNIÃO
- INTERSECT
- DIFERENÇA
- DIVIDIR
Você precisa dominar cada uma dessas operações para acessar efetivamente os dados de um banco de dados relacional. Estes são explicados abaixo.
SELECT
SELECT foi originalmente chamado RESTRINGIR. É a capacidade de extrair um registro ou um grupo de registros correspondentes de uma tabela no banco de dados. Além de ser uma operação teórica, SELECT é o nome do comando principal em qualquer implementação SQL. De fato, toda a recuperação de dados é executada com um SELECT. O comando é tão poderoso que pode ser modificado de várias maneiras. A maior parte do SQL que você precisará aprender são as “cláusulas” em uma instrução SELECT.
PROJETO
PROJECT é a capacidade de isolar uma coluna (ou “atributo”) em uma tabela. Isso sempre é implementado com uma instrução SELECT.
JUNTE-SE
JOIN vincula tabelas em um atributo comum. Você usa a chave estrangeira em uma tabela para corresponder aos valores da chave primária em outra tabela. O ato efetivamente unifica duas mesas temporariamente. Isso é implementado como uma cláusula em uma instrução SELECT. Uma junção entre duas tabelas excluirá automaticamente quaisquer registros que não apareçam nas duas tabelas de suporte. A “junção externa“Exibirá registros que não coincidem na outra tabela, deixando os campos que deveriam ter sido fornecidos pela outra tabela deixados em branco.
PRODUTOS
PRODUCT também é conhecido como “vezes.”Isso é implementado como uma instrução SELECT que extrai dados de duas tabelas, mas não especifica a junção entre elas. Na vida real, existem muito poucas razões práticas pelas quais alguém se apresentaria algumas vezes em duas mesas. Geralmente, é um sinal de aviso de que você escreveu mal uma cláusula JOIN. O resultado de um PRODUCT é que todos os registros qualificados em uma tabela correspondem a todos os registros qualificados na outra tabela. Portanto, se você criar uma instrução SELECT a partir de duas tabelas, cada uma com dez registros, os resultados serão um total de 100 registros.
UNIÃO
UNION é um operador comum na teoria dos conjuntos. Se você tiver dois conjuntos, a união combinará todos os membros dos dois conjuntos. A duplicação é removida dos resultados. No SQL, isso é implementado pelo OU Operador booleano.
INTERSECT
INTERSECT é o outro principal operador da teoria dos conjuntos. Se você tiver dois conjuntos, a interseção descreve os assuntos que são membros dos dois conjuntos. Qualquer assunto que seja membro de apenas um dos dois conjuntos é excluído dos resultados. No SQL, isso é implementado pelo E Operador booleano.
DIFERENÇA
DIFERENÇA também é conhecida como “menos”E na notação é representado pelo sinal de menos (“ – “). Existem várias maneiras de implementar uma DIFERENÇA. Pode ser criado incluindo um Boolean NÃO nos critérios de seleção e também pode ser implementado por um MENOS operador seguido por uma subconsulta.
DIVIDIR
DIVIDE é uma operação incomum que, como o PRODUCT, tem muito poucas aplicações práticas. O Codd considerava DIVIDE como o teste ácido de qualquer sistema relacional e sua ferramenta de consulta, portanto, toda implementação SQL inclui esse recurso apenas para se qualificar para o título “relacional”. Na realidade, você nunca o usará. A implementação de um DIVIDE exige uma série de subconsultas que alimentam um MENOS no Oracle SQL * Plus e um EXCETO operador em algumas outras implementações SQL, como SQL Server e PostgreSQL.
Operadores booleanos
George Boole era um matemático britânico que morreu em 1864. Ele inventou a álgebra booleana, que não tinha aplicação prática até os campos da informática e dos bancos de dados relacionais surgirem no final do século XX. A álgebra booleana é central para as operações do SQL – você só pode escrever a consulta SQL mais básica sem usar a lógica booleana. A lógica booleana também sustenta todos os mecanismos de pesquisa. Os principais operadores booleanos no SQL são:
- E
- OU
- NÃO
Outro britânico vitoriano peculiar que você precisa conhecer é Augustus de Morgan. Ele apresentou uma observação sobre a transformação na teoria dos conjuntos booleanos, da qual todo programador SQL precisa estar ciente. Isso significa que um NOT pode alterar o funcionamento de um AND e um OR. A versão curta é que você precisa ter cuidado com o uso de colchetes em suas declarações para evitar consequências indesejadas. Portanto, “e” e “ou” também devem ser considerados operadores booleanos importantes no SQL.
E
E implementa o INTERSECT na teoria dos conjuntos. Se você deseja extrair registros de um banco de dados que corresponda apenas a dois requisitos e não apenas a um desses critérios compostos, será necessário usar um AND. Por exemplo, você pode executar um negócio de sementes e seu banco de dados contém uma tabela que armazena todas as suas sementes com seus atributos. Um cliente liga e quer apenas begônias amarelas. Então, você pesquisaria em seu banco de dados espécie = “begônia” E cor = “amarelo” para obter o catálogo de sementes certo.
OU
OU fornece todos os membros de dois conjuntos – é a UNIÃO na teoria dos conjuntos. Portanto, no seu banco de dados semente, se você executou uma consulta: espécie = “begônia” OU cor = “amarelo”, você obteria resultados que incluíam rosas amarelas, begônia amarela, begônias cor de rosa e narcisos amarelos. Neste exemplo, begônias amarelas se qualificam duas vezes. Na teoria relacional, apenas um registro deve ser retornado. Felizmente, o SQL inclui o qualificador DISTINCT, então, digitando SELECIONE DISTINTA * DAS flores ONDE espécies = “begônia” OU cor = “amarelo”, esse registro de begônia amarela apareceria apenas uma vez.
NÃO
NÃO é fácil de entender. Exclui os resultados que a seguinte declaração produziria: AND NOT, OR NOT. Na prática, você quase nunca usará “OU NÃO” em uma consulta. Se o seu cliente de sementes quiser alguma cor da begônia que não seja o amarelo, você usaria espécies = “begônia” E NÃO cor = “amarelo” para selecionar produtos para oferecer.
Suportes
De acordo com a lei de De Morgan:
“A negação de uma disjunção é a conjunção das negações; e a negação de uma conjunção é a disjunção das negações “.
Em inglês simples, use colchetes com cuidado em sua instrução SQL ao incluir também um NOT para impedir que seus ANDs se transformem em ORs e vice-versa. As condições de bracketing juntas também podem reduzir seus critérios de seleção. Por exemplo, NÃO (espécie = “begônia” E cor = “amarelo”) é o mesmo que NÃO espécie = “begônia” OU NÃO cor = “amarelo”.
Extraindo registros
Implementações diferentes de SQL usam sintaxe diferente, mas neste guia, seguiremos o SQL * Plus da Oracle. A estrutura básica de uma seleção de dados SQL é:
SELECT
A PARTIR DE
usuário é uma parte importante da segurança do banco de dados e deve ser tratado com cuidado. Em resumo, SQL é uma linguagem poderosa e essencial para gerenciar e acessar dados em bancos de dados relacionais. É usado por muitas empresas e organizações em todo o mundo e é importante para os profissionais de TI terem conhecimento em SQL para serem bem-sucedidos em suas carreiras. A SolarWinds oferece ferramentas de gerenciamento de infraestrutura que podem ajudar a monitorar e gerenciar o SQL Server e outras ferramentas da Microsoft.