Structured Query Language: diferenças entre revisões
Linha 223: | Linha 223: | ||
<p align="justify">Na cláusula WHERE utilizam-se operadores relacionais que permitem estabelecer relações entre os elementos, sendo o seu resultado um valor lógico <i>TRUE</i> ou <i>FALSE</i>.</p> | <p align="justify">Na cláusula WHERE utilizam-se operadores relacionais que permitem estabelecer relações entre os elementos, sendo o seu resultado um valor lógico <i>TRUE</i> ou <i>FALSE</i>.</p> | ||
{| class="wikitable" style="width:100%; | {| class="wikitable" style="width:100%; | ||
Linha 262: | Linha 261: | ||
| TRUE | | TRUE | ||
|- | |- | ||
|} | |||
<p align="justify">Na cláusula WHERE utilizam-se também operadores lógicos.</p> | |||
{| class="wikitable" style="width:100%; | |||
! Operador | |||
! Exemplo | |||
|+Tabela 8 - Operadores Lógicos | |||
|- | |||
| AND | |||
| Cond4 AND Cond2 | |||
|- | |||
| OR | |||
| Cond4 OR Cond2 | |||
|- | |||
| NOT | |||
| NOT Condição | |||
|} | |} | ||
Revisão das 10h40min de 5 de abril de 2017
Structured Query Language | |
---|---|
Sigla | SQL |
Aplicações | Armazenar, consultar, alterar informação de uma base de dados |
Conceitos relacionados | Bases de Dados, Manipulação de Dados |
Structured Query Language, usualmente conhecido por SQL, é uma linguagem para criar e manipular bases de dados relacionais. [1] De um modo simples, uma empresa precisa de guardar e consultar informação. Por exemplo, um banco precisa de guardar informação relativamente aos utilizadores, ao valor existente nas contas, às transações efetuadas, etc. Para efetuar essas ações são utilizadas bases de dados que fornecem funcionalidades para adicionar, modificar e consultar de forma a obter resultados através de 'Querys' (pedidos à base de dados) em SQL.
Introdução
A sigla SQL denomina Structured Query Language ou, em português, Linguagem de Consulta Estruturada é uma linguagem para interação com Bases de Dados Relacionais. Não constitui uma linguagem completa para o desenvolvimento de aplicações sendo a sua principal função a de suportar a definição, manipulação e controlo dos dados numa base de dados [1]. É uma linguagem de alto nível pois, apenas se tem que dizer ao sistema o que fazer e não como, nem onde o tem de realizar.
Base de Dados
De uma forma muito simplista, pode-se afirmar que uma base de dados consiste numa coleção de dados estruturados, organizados e armazenados de forma persistente sendo que é necessário que os dados tenham algum tipo de significado e organização [2].
O Sistema Gestor de Bases de Dados (SGBD) é uma aplicação informática que fornece a interface entre os dados que são armazenados fisicamente na base de dados e o utilizador. É o SGBD que vai fornecer o conjunto completo de serviços para acesso à informação da base de dados utilizando, para isso, uma linguagem que permita a realização dessas operações: o SQL [3].
Nem todos os sistemas que gerem as bases de dados usam a linguagem SQL. No entanto, o SQL é usado na grande maioria dos sistemas atualmente disponíveis e naqueles que adotam o modelo relacional [2]. Este modelo, de uma forma resumida, baseia-se no princípio em que todos os dados estão guardados em tabelas tendo em conta as relações entre os atributos. Toda a sua definição é teórica e baseada na lógica de predicados e na teoria dos conjuntos cobrindo os três aspetos que qualquer SGBD deveria cobrir relativamente aos dados: estrutura, integridade e manipulação [1] [2] [3].
Para descrever os dados e as suas estruturas numa base de dados relacional usam-se os seguintes termos/conceitos (Fig. 1) [1] [4]:
- Tabela (ou Relação): Conjunto de linhas do mesmo tipo, onde não existem linhas repetidas nem significado na ordem das linhas da tabela.
- Coluna (ou Atributo): Identificada por um nome e com um único valor por linha sendo que é constituída por um conjunto de dados do mesmo tipo.
- Linha (ou Tuplo): Conjunto de valores válidos, tal que cada linha tem um valor para cada coluna, e onde todas as linhas de uma tabela têm as mesmas colunas.
- Campo: Correspondem a uma informação de uma tabela. Os campos devem ser designados como um determinado tipo de dados, seja texto, data ou hora, número,…
- Chave Primária (PK): É a identificação de uma ou várias colunas de uma tabela. O valor da chave primária identifica unicamente uma linha de uma tabela.
- Chave Estrangeira (FK): É uma ou mais colunas na tabela tal que os seus valores são valores da chave primária de outra.
Após o entendimento dos conceitos principais de uma base de dados, é agora possível a compreensão das operações que podem ser realizadas com recurso a SQL.
De seguida, é possível observar três tabelas que representam uma entidade/pessoa e servem para armazenar informação. A tabela Médico guarda informação como: o código (chave primária), o nome, a idade, a especialidade e a sua cidade. A tabela Paciente tem o número de utente, o nome, a idade, a cidade e a doença pela qual se deslocou ao hospital. Já na tabela Consulta pode-se visualizar a relação existente entre estas duas entidades: o Médico e o Paciente tendo, como chaves estrangeiras o código do médico e o número do paciente. Além disso, contêm ainda a data e hora da consulta, a sala onde se realizou e a doença diagnosticada ao paciente.
Código | Nome | Idade | Especialidade | Cidade |
---|---|---|---|---|
12687871 | Alberto Caiero | 36 | Ortopedia | Braga |
14372844 | Bernardo Soares | 36 | Oncologia | Lisboa |
14429875 | Ricardo Reis | 51 | Cardiologia | Porto |
16918243 | Álvaro de Campos | 48 | Pediatria | Lisboa |
Nº de Utente | Nome | Idade | Cidade |
---|---|---|---|
15567721 | Joana Aguiar | 12 | Maia |
13221376 | Pedro Santos | 79 | Braga |
12851320 | Inês Silva | 53 | Setúbal |
CodMedico | NumPaciente | Data | Hora | Doença | Sala |
---|---|---|---|---|---|
14429875 | 13221376 | 21/03/2017 | 16:30 | Trombose | B1.154 |
12687871 | 12851320 | 30/01/2017 | 09:45 | Joanete | A3.058 |
16918243 | 15567721 | 22/02/2017 | 18:15 | Gripe | L5.133 |
História do SQL
A sigla SQL denomina Structured Query Language ou, em português, Linguagem de Consulta Estruturada é uma linguagem para interação com Bases de Dados
Operações que podem ser realizadas
A linguagem SQL permite utilizar diferentes operações que são entendidas como standard reduzindo as incompatibilidades entre os sistemas e evitando que sejam utilizadas arquiteturas proprietárias que implicam maiores custos de desenvolvimento e maior esforço financeiro e humano por parte dos intervenientes.
Segundo Luís Dama [2], através de SQL é possível:
" - Criar, alterar e remover todas as componentes de uma Base de Dados, como tabelas, view, índices, etc;”
" - Inserir, Alterar, Apagar dados;”
" - Interrogar a Base de Dados;”
" - Controlar o acesso dos utilizadores à Base de Dados e as operações a que cada um deles pode ter acesso;”
" - Obter a garantia da consistência e integridade dos dados.”
Assim pode-se subdividir a linguagem SQL em três sublinguagens:
- DML: Data Manipulation Language (SELECT, INSERT, UPDATE, DELETE, etc)
- DDL: Data Definition Language (CREATE, ALTER, DROP, etc)
- DCL: Data Controle Language (GRANT, REVOKE, etc)
CREATE TABLE
O comando CREATE TABLE é utilizado para a criação de tabelas sendo a sintaxe básica do comando a seguinte:
CREATE TABLE nome_tabela { coluna_1 tipo_col1 [NOT NULL], coluna_2 tipo_col2 [NOT NULL] }
Onde:
- CREATE TABLE indica o comando para criação da tabela;
- nome_tabela é o nome dado à tabela que está a ser criada;
- coluna1, coluna2 é o nome das colunas de nome_tabela;
- tipo_col1, tipo_col2 é o tipo de dados das colunas coluna1 e coluna2;
- NOT NULL é opcional sendo que indica que o valor NULL não é permitido na coluna em questão.
Aliado ao uso do comando CREATE TABLE, encontra-se também o INSERT INTO que serve para inserir valores numa certa tabela tal como é possível observar no exemplo seguinte.
Ex: CREATE TABLE Médico (Código INTEGER PRIMARY KEY, Nome TEXT, Idade INTEGER, Especialidade TEXT, Cidade TEXT);
INSERT INTO Médico VALUES (14429875, "Ricardo Reis", 51, "Cardiologia", "Porto" );
SELECT e FROM
O comando SELECT permite selecionar as colunas que se situam após a cláusula, da tabela ou tabelas que se seguem à cláusula FROM.
SELECT Nome FROM Médico
Com a execução desta query, o resultado esperado será uma listagem de todos os Nomes existentes na tabela Médico.
Nome |
---|
Alberto Caeiro |
Bernardo Soares |
Ricardo Reis |
Álvaro de Campos |
NOTA: No caso de se pretender selecionar todas as colunas da tabela opta-se pela utilização do * que irá substituir a seleção manual de cada uma das colunas.
No que diz respeito à ordenação das colunas selecionadas, deve-se numerar pela ordem que se pretende:
SELECT Idade, Nome, Código FROM Médico
Idade | Nome | Código |
---|---|---|
36 | Alberto Caeiro | 12687871 |
36 | Bernardo Soares | 14372844 |
51 | Ricardo Reis | 14429875 |
48 | Álvaro de Campos | 16918243 |
WHERE
O comando WHERE permite restringir o número de linhas selecionadas, utilizando sempre em consonância as cláusulas SELECT e FROM.
SELECT Nome FROM Médico WHERE Cidade = Porto
Nome |
---|
Ricardo Reis |
Na cláusula WHERE utilizam-se operadores relacionais que permitem estabelecer relações entre os elementos, sendo o seu resultado um valor lógico TRUE ou FALSE.
Operador | Descrição | Exemplo | Resultado |
---|---|---|---|
= | Igual a | 4=2 | FALSE |
< | Menor que | 4<2 | FALSE |
> | Maior que | 4>2 | TRUE |
<= | Menor ou igual que | 4<=2 | FALSE |
> | Maior ou igual que | 4>=2 | TRUE |
<> | Diferente | 4!=2 | TRUE |
Na cláusula WHERE utilizam-se também operadores lógicos.
Operador | Exemplo |
---|---|
AND | Cond4 AND Cond2 |
OR | Cond4 OR Cond2 |
NOT | NOT Condição |
Referências
- ↑ 1,0 1,1 1,2 1,3 Silva, Libório. SQL Avançado. Lisboa : Editorial Presença, 1998. ISBN 972-23-1306-1
- ↑ 2,0 2,1 2,2 2,3 Damas, Luís. SQL. Lousã : FCA - Editora de Informática, 2005. ISBN 978-972-722-443-2
- ↑ 3,0 3,1 Date, C. J. SQL e Teoria Relaciona. Brasil : O'REILLY novatec, 2015. ISBN 978-85-7522-433-5.
- ↑ Michael J. Donahoo, Gregory David Speegle. SQL: Practical Guide for Developers. San Francisco : Morgan Kaufmann Publishers, 2005. ISBN 0-12-220531-6