1. INDEX
2. CONTEÚDO
1. O que é Linguagem SQL
- Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é a linguagem de pesquisa declarativa padrão para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional. O SQL foi desenvolvido originalmente no início dos anos 70 nos laboratórios da IBM em San Jose, dentro do projeto System R, que tinha por objetivo demonstrar a viabilidade da implementação do modelo relacional proposto por E. F. Codd. O nome original da linguagem era SEQUEL, acrônimo para "Structured English Query Language" (Linguagem de Consulta Estruturada, em Inglês), vindo daí o facto de, até hoje, a sigla, em inglês, ser comumente pronunciada "síquel" ao invés de "és-kiú-él", letra a letra. No entanto, em português, a pronúncia mais corrente é letra a letra: "ésse-quê-éle". Veja mais...
- Bons tutoriais que encontrei na web.:
- Dicas:
- Não há diferença entre maiúsculas e minusculas como na linguagem c++.
- A linguagem é interpretada.
- Existe um padrão na linguagem sql chamado ansi sql ou sql 92, porém o mesmo não é seguido pelos fabricantes de banco de dados.
- O sql além de armazenar dados é possível fazer programas a serem executados ao incluir ou excluir ou alterar um registro das tabelas.
- O mysql não tem opção de depurar programas.
- Dicas de como depurar sql.
- Comparativo entre mysql x postgreSQL.
- MySQL UUID Smackdown: UUID vs. INT para chave primária
- Dicas de MySQL
- 🔝
2. Comandos SQL mais importantes
-
-
CREATE DATABASE - cria um novo banco de dados
-
Sintaxe:
CREATE DATABASE databasename;
-
Exemplo:
-
A seguinte instrução SQL cria um banco de dados chamado "testDB":
CREATE DATABASE testDB;
-
-
NOTA:
- Certifique-se de ter privilégios de administrador antes de criar qualquer banco de dados. Uma vez que um banco de dados é criado, você pode verificá-lo na lista de bancos de dados com o seguinte comando SQL:
SHOW DATABASES;
-
-
DROP DATABASE - A instrução DROP DATABASE é usada para eliminar um banco de dados SQL existente.
-
Sintaxe:
DROP DATABASE databasename;
-
Exemplo:
-
A seguinte instrução SQL elimina o banco de dados existente "testDB":
DROP DATABASE testDB;
-
-
NOTA:
-
Certifique-se de ter privilégios de administrador antes de descartar qualquer banco de dados. Uma vez que um banco de dados é descartado, você pode verificá-lo na lista de bancos de dados com o seguinte comando SQL: SHOW DATABASES;
SHOW DATABASES;
-
A instrução acima não funciona no prompt do banco de dados sqlite.
-
-
-
ALTER DATABASE - modifica um banco de dados
- Exemplo para alterar o CHARSET e COLLATION de um banco existente:
-
ALTER DATABASE `sua_base` CHARSET = Latin1 COLLATE = latin1_swedish_ci; //Não distingue letras minúsculas e maiúsculas e nem caracteres acentuados e com cedilha, ou seja, o registro que contém a palavra “Intuição” será retornado quando houver uma procura pela palavra “intúicao”.
-
ALTER DATABASE `sua_base` CHARSET = UTF8 COLLATE = utf8_general_ci; // Não há distinção entre letras maiúsculas e minúsculas. Buscando por “teste”, registros como “Teste” ou “TESTE” serão retornados.
-
- Exemplo para alterar o CHARSET e COLLATION de um banco existente:
-
A instrução DROP DATABASE é usada para eliminar um banco de dados SQL existente.
- Sintaxe:
-
DROP DATABASE databasename;
-
A seguinte instrução SQL elimina o banco de dados existente "testDB":
-
DROP DATABASE testDB;
-
-
- Sintaxe:
-
-
RECORDS
-
SELECT - A instrução SELECT é usada para selecionar dados de um banco de dados. Os dados retornados são armazenados em uma tabela de resultados, chamada de conjunto de resultados.
-
Sintaxe:
SELECT column1, column2, ... FROM table_name;
-
Exemplo:
-
Para selecionar todos os campos de uma tabela:
SELECT * FROM table_name;
-
-
-
UPDATE - A instrução UPDATE é usada para modificar os registros existentes em uma tabela.
-
Sintaxe:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
-
Exemplo:
- A instrução SQL a seguir atualiza o primeiro cliente (CustomerID = 1) com uma nova pessoa de contato e uma nova cidade.
UPDATE Customers SET ContactName='Alfred Schmidt', City='Frankfurt' WHERE CustomerID=1;
-
NOTA
- Tenha cuidado ao atualizar registros em uma tabela! Observe a cláusula WHERE na declaração UPDATE. A cláusula WHERE especifica quais registros devem ser atualizados. Se você omitir a cláusula WHERE, todos os registros da tabela serão atualizados!
-
-
DELETE - exclui dados de um banco de dados
- Sintaxe:
-
DELETE FROM table_name WHERE condition;
-
- A seguinte instrução SQL exclui o cliente "Alfreds Futterkiste" da tabela "Clientes":
-
DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';
-
- Sintaxe:
-
INSERT INTO - insere novos dados em um banco de dados
- Sintaxe:
-
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
-
- Se você estiver adicionando valores para todas as colunas da tabela, não será necessário especificar os nomes das colunas na consulta SQL. No entanto, certifique-se de que a ordem dos valores esteja na mesma ordem das colunas da tabela. A sintaxe INSERT INTO seria a seguinte:
-
INSERT INTO table_name VALUES (value1, value2, value3, ...);
-
- A seguinte instrução SQL insere um novo registro na tabela "Clientes":
-
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
-
- A seguinte instrução SQL insere 3 registros na tabela "books":
-
INSERT INTO books (title, author_id, isbn, year_pub) VALUES('The Trial', '1', '0805210407', '1995'), ('The Metamorphosis', '1', '0553213695', '1995'), ('America', '1', '0805210644', '1995');
-
- Sintaxe:
-
-
-
CREATE TABLE - cria uma nova tabela.
- Sintaxe:
-
CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, ....);
- O exemplo a seguir cria uma tabela chamada "Persons" que contém cinco colunas: PersonID, LastName, FirstName, Address e City:
-
CREATE TABLE Persons ( PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255));
-
-
- Sintaxe:
-
ALTER TABLE - modifica uma tabela
- Sintaxe para adicionar uma coluna a uma tabela:
-
ALTER TABLE table_name ADD column_name datatype;
-
- O seguinte SQL adiciona uma coluna "Email" à tabela "Customers":
-
ALTER TABLE Customers ADD Email varchar(255);
-
- Sintaxe para adicionar uma coluna a uma tabela:
-
DROP TABLE - exclui uma tabela
- A instrução DROP TABLE é usada para eliminar uma tabela existente em um banco de dados.
-
Sintaxe:
-
DROP TABLE table_name;
-
-
A seguinte instrução SQL elimina a tabela existente "Shippers":
-
DROP TABLE Shippers;
-
-
- A instrução DROP TABLE é usada para eliminar uma tabela existente em um banco de dados.
-
-
-
Observação: a sintaxe para criar índices varia entre os diferentes bancos de dados. Portanto: Verifique a sintaxe para criar índices em seu banco de dados.
-
-
CREATE INDEX - Cria um índice em uma tabela. Valores duplicados são permitidos:
-
Sintaxe:
-
CREATE INDEX index_name ON table_name (column1, column2, ...);
-
-
A instrução SQL abaixo cria um índice denominado "idx_lastname" na coluna "LastName" da tabela "Pessoas":
-
CREATE INDEX idx_lastname ON Persons (LastName);
-
-
Se quiser criar um índice em uma combinação de colunas, você pode listar os nomes das colunas entre parênteses, separados por vírgulas
-
CREATE INDEX idx_pname ON Persons (LastName, FirstName);
-
-
-
CREATE UNIQUE INDEX - Cria um índice exclusivo em uma tabela. Valores duplicados não são permitidos:
- Sintaxe:
-
CREATE UNIQUE INDEX index_name ON table_name (column1, column2, ...);
-
- Sintaxe:
-
DROP INDEX - A instrução DROP INDEX é usada para excluir um índice em uma tabela.
- Sintaxe:
-
ALTER TABLE table_name DROP INDEX index_name;
-
- Sintaxe:
-
-
-
-
Uma chave estrangeira é uma restrição que pode ser usada para impor a integridade dos dados. É composto por uma coluna (ou conjunto de colunas) em uma tabela chamada tabela filho, que faz referência a uma coluna (ou conjunto de colunas) em uma tabela chamada tabela pai. Se chaves estrangeiras são usadas, MariaDB executa algumas verificações para garantir que algumas regras de integridade sejam sempre aplicadas. Para uma explicação mais completa, consulte Bancos de dados relacionais: Chaves estrangeiras .
- As chaves estrangeiras (FOREIGN KEY) só podem ser usadas com mecanismos de armazenamento que as suportem. O InnoDB padrão e o PBXT obsoleto oferecem suporte a chaves estrangeiras.
- As tabelas particionadas não podem conter chaves estrangeiras e não podem ser referenciadas por uma chave estrangeira.
-
As chaves estrangeiras são criadas com CREATE TABLE ou ALTER TABLE . A definição deve seguir esta sintaxe:
-
[CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name, ...) REFERENCES tbl_name (index_col_name,...) [ON DELETE reference_option] [ON
reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT</pre>.
-
-
- Vamos ver um exemplo. Vamos criar uma tabela author e uma tabela book. Ambas as tabelas têm uma chave primária chamada author_id também possui uma chave estrangeira composta por um campo chamado author_id, que se refere à author chave primária. O nome da restrição de chave estrangeira é opcional, mas vamos especificá-lo porque queremos que ele apareça em mensagens de erro: fk_book_author.
-
CREATE TABLE author ( id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL ) ENGINE = InnoDB;
CREATE TABLE book ( id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, title VARCHAR(200) NOT NULL, author_id SMALLINT UNSIGNED NOT NULL, CONSTRAINT `fk_book_author` FOREIGN KEY (author_id) REFERENCES author (id) ON DELETE CASCADE ON UPDATE RESTRICT ) ENGINE = InnoDB;
-
- Vamos ver um exemplo. Vamos criar uma tabela author e uma tabela book. Ambas as tabelas têm uma chave primária chamada author_id também possui uma chave estrangeira composta por um campo chamado author_id, que se refere à author chave primária. O nome da restrição de chave estrangeira é opcional, mas vamos especificá-lo porque queremos que ele apareça em mensagens de erro: fk_book_author.
-