Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Introdução aos comandos SQL


No mundo atual de crescente digitalização, big data e computação em nuvem, o gerenciamento de dados está entre as habilidades mais importantes que um engenheiro de software pode ter. Para isso, uma das ferramentas de banco de dados mais poderosas é o SQL.

SQL (Structured Query Language) é a linguagem de programação padrão usada para manipular objetos de estrutura de dados. Eles operam sobre dados contidos em um sistema de gerenciamento de banco de dados relacional (RDBMS). Alguns RDBMS conhecidos são MySQL e PostgreSQL.

Neste guia, você aprenderá sobre os subconjuntos da linguagem SQL e como usar alguns comandos SQL fundamentais, como SELECT , INSERT , UPDATE e DELETE .

Subconjuntos de SQL


A lista abaixo inclui os diferentes subconjuntos de idiomas de vários comandos SQL. Cada subconjunto tem sua própria função e propósito.
  • Linguagem de definição de dados (DDL):Isso permite que você crie, exclua e atualize as definições do esquema do banco de dados (ou seja, tabelas e índices), sem realmente manipular os dados nas tabelas do banco de dados.
  • Linguagem de consulta de dados (DQL):DQL é usado para recuperar dados do banco de dados usando o SELECT declaração.
  • Linguagem de manipulação de dados (DML):Esta sublinguagem permite a manipulação de dados no banco de dados usando o INSERT , UPDATE e DELETE declarações.

Este guia usa um banco de dados de exemplo para uma escola para demonstrar ainda mais os comandos SQL para cada subconjunto listado acima. O banco de dados da escola tem várias tabelas, para alunos, cursos, notas e assim por diante. A definição do Student A tabela contém colunas para o SSNumber do aluno , Firstname e Lastname , e a definição do CourseTaken tabela contém colunas para SSNumber , CourseId , NumericGrade , e YearTaken .

O exemplo pressupõe que há três alunos na escola, cada um dos quais completou dois cursos. Os dados de exemplo são mostrados na tabela abaixo:
SSNumber Sobrenome Nome CourseId NumericGrade Ano do ano
111111111 Smith João CSC101 98 2021
111111111 Smith João ENG101 95 2022
222222222 Jones Maria CSC101 100 2022
222222222 Jones Maria EEE101 75 2022
333333333 Hansen Roberto POL101 92 2021
333333333 Hansen Roberto SOC103 84 2022

Criar, alterar e descartar tabelas usando comandos SQL


Na linha de comando, use o CREATE TABLE comando seguido pelo nome da tabela e os dados da tabela. O comando abaixo cria o Student tabela.
CREATE TABLE Student (
  SSNumber CHAR(9) NOT NULL,
  LastName VARCHAR(30) NOT NULL,
  FirstName VARCHAR(20) NOT NULL
);

O parêntese inclui os dados da tabela, começando com uma coluna que rotula os dados de cada linha. A próxima coluna indica o tipo de dados que esta linha contém. CHAR indica um tipo de dados string de comprimento fixo e VARCHAR indica um tipo de dados de string de comprimento variável. Na coluna final, o NOT NULL O atributo garante que um registro não possa ser adicionado à tabela se algum dos NOT NULL colunas não têm dados associados a elas.
Observação O CREATE TABLE A instrução é delimitada com um ponto e vírgula à direita (;), embora seja possível que alguns sistemas de banco de dados relacionais comerciais possam não exigir esse delimitador.
Observação A menos que mencionado de outra forma, todos os comandos de banco de dados demonstrados neste guia funcionam bem tanto em MySQL e PostgreSQL .

Para criar o CourseTaken tabela, execute o seguinte comando:
CREATE TABLE CourseTaken (
  SSNumber CHAR(9) NOT NULL,
  CourseId CHAR(6) NOT NULL,
  NumericGrade INT NOT NULL
);

O YearTaken coluna é intencionalmente não incluída no CourseTaken table para demonstrar o uso do ALTER TABLE comando. Para adicionar o YearTaken coluna no CourseTaken tabela, você não precisa descartar o CourseTaken mesa inteiramente. Em vez disso, você pode usar o DDL ALTER TABLE comando. O comando a seguir altera o CourseTaken tabela adicionando a coluna ausente à tabela.
ALTER TABLE CourseTaken
  ADD (YearTaken INT NOT NULL);

O comando acima segue uma sintaxe semelhante à anterior. Requer o nome da tabela, bem como três argumentos:nome da linha, tipo de dados da linha e NOT NULL atributo. Se você deseja excluir o CourseTaken tabela inteiramente, emita o DDL DROP TABLE comando seguido pelo nome da tabela.
DROP TABLE CourseTaken;
Cuidado A eliminação de uma tabela exclui todos os dados da tabela.

Como inserir dados em uma tabela em SQL


Para inserir os dados na tabela, use o SQL INSERT INTO demonstração. Para chamar esse comando, forneça o nome da tabela e a lista de nomes de linha (entre parênteses) em que você deseja inserir os dados. Isto é seguido pelos VALUES palavra-chave e os valores reais (entre parênteses) que você deseja inserir. Os valores são inseridos nas linhas na ordem em que são chamados.
Observação
  • Os comandos SQL podem ser divididos em linhas. O final do comando SQL é delimitado por um ponto e vírgula (; ).
  • Os dados de caractere são delimitados por um apóstrofo de abertura e fechamento ( ), enquanto os dados numéricos não são.

O seguinte INSERT comandos inserem três linhas no Student tabela. Esses comandos usam vários INSERT declarações.
INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('111111111', 'Smith', 'John');

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('222222222', 'Jones', 'Mary');

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('333333333', 'Hansen', 'Robert');

Da mesma forma, você também pode inserir várias linhas na tabela em uma única consulta SQL, conforme mostrado abaixo:
INSERT INTO CourseTaken
(SSNumber, CourseId, NumericGrade, YearTaken)
VALUES
('111111111', 'CSC101', 98, 2021),
('111111111', 'ENG101', 95, 2022),
('222222222', 'CSC101', 100, 2022);
Observação
Você pode usar o INSERT INTO comando de forma semelhante no PostgreSQL para adicionar linhas à tabela. Certifique-se de que os valores correspondam à ordem das colunas na definição da tabela.
INSERT INTO student VALUES ('111111111', 'Smith', 'John');

Excluir dados de uma tabela


Para excluir dados de uma tabela, use o SQL DELETE FROM demonstração. Use o WHERE cláusula para especificar a condição e, se houver mais de uma condição, use o AND cláusula junto com WHERE .

Por exemplo, o comando a seguir exclui um registro do CourseTaken tabela com SSNumber 333333333 e CourseId POL101 .
Cuidado Se você omitir o WHERE cláusula, todos os registros da tabela são excluídos.
DELETE FROM CourseTaken WHERE SSNumber = '333333333' AND CourseId = 'POL101';

Comando SQL para atualizar dados em uma tabela


Para atualizar o registro existente em uma tabela, use o SQL UPDATE comando. O SET A cláusula é usada para definir (atualizar) um novo valor para uma coluna específica e o WHERE cláusula é usada para atualizar as linhas selecionadas.

Por exemplo, o comando a seguir atualiza o NumericGrade coluna do CourseTaken tabela para registros com SSNumber 222222222 e CourseId EEE101 .
UPDATE CourseTaken
SET NumericGrade = 95
WHERE SSNumber = '222222222' AND CourseId = 'EEE101';

Comando SQL para recuperar dados de uma tabela


O verdadeiro poder dos sistemas de banco de dados relacionais está em sua capacidade de recuperar informações em um esquema de várias tabelas, por meio do SQL SELECT comando e a capacidade de unir tabelas por meio de chaves comuns. Embora este guia introdutório não examine a criação de chaves e índices utilizando essas chaves, ele utiliza o SSNumber coluna de cada tabela como um veículo (chave) para relacionar (ou unir) as tabelas para gerar informações. Os exemplos a seguir fornecem diferentes casos de uso do SQL SELECT comando a partir da linha de comando.

Exemplo 1: Para buscar a lista de todos os alunos da escola.
SELECT * from Student;

Saída:
+-----------+----------+-----------+
| SSNumber  | LastName | FirstName |
+-----------+----------+-----------+
| 111111111 | Smith    | John      |
| 222222222 | Jones    | Mary      |
| 333333333 | Hansen   | Robert    |
+-----------+----------+-----------+


Exemplo 2: Para buscar a lista de todos os alunos e cursos que eles fizeram.
SELECT Student.SSNumber, Student.LastName,
       Student.FirstName, CourseTaken.CourseId
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber;

Saída:
+-----------+----------+-----------+----------+
| SSNumber  | LastName | FirstName | CourseId |
+-----------+----------+-----------+----------+
| 111111111 | Smith    | John      | CSC101   |
| 111111111 | Smith    | John      | ENG101   |
| 222222222 | Jones    | Mary      | CSC101   |
+-----------+----------+-----------+----------+
Observação No comando acima, as duas tabelas, Student e CourseTaken são unidos para recuperar as informações necessárias. Os nomes das colunas no SELECT e WHERE as cláusulas são prefixadas com seus nomes de tabela para maior clareza. No entanto, no caso do SSNumber coluna, somos obrigados a especificar os prefixos de nome de tabela apropriados, pois ambas as tabelas compartilham o mesmo nome de coluna. O FROM cláusula indica as tabelas que estão sendo usadas nesta consulta.

Exemplo 3: Recupere a lista de alunos com CourseId CSC101 e o ano em que fizeram este curso.
SELECT Student.LastName, Student.FirstName,
       CourseTaken.CourseId, CourseTaken.YearTaken
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.CourseId = 'CSC101';

Saída:
+----------+-----------+----------+-----------+
| LastName | FirstName | CourseId | YearTaken |
+----------+-----------+----------+-----------+
| Smith    | John      | CSC101   |      2021 |
| Jones    | Mary      | CSC101   |      2022 |
+----------+-----------+----------+-----------+


Exemplo 4: Recupere a lista de nomes de alunos, cursos realizados e notas recebidas, para aqueles que tiveram notas de curso acima de 90 .
SELECT Student.LastName, Student.FirstName,
       CourseTaken.CourseId, CourseTaken.NumericGrade
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.NumericGrade > 90;

Saída:
+----------+-----------+----------+--------------+
| LastName | FirstName | CourseId | NumericGrade |
+----------+-----------+----------+--------------+
| Smith    | John      | ENG101   |           95 |
| Smith    | John      | CSC101   |           98 |
| Jones    | Mary      | CSC101   |          100 |
+----------+-----------+----------+--------------+

Observação O AND cláusula no comando acima permite filtrar os resultados por um teste de pontuação de nota condicional.

Conclusão


Este guia sobre comandos SQL é uma cartilha introdutória sobre como criar esquemas de banco de dados e manipular dados nesses bancos de dados. Embora os conceitos apresentados aqui sejam meramente superficiais em relação ao uso de sistemas de banco de dados relacionais, é um bom ponto de partida para comandos e conceitos básicos e essenciais.