Transact-SQL - inserindo dados. Noções básicas de T-SQL. DML Gravar dados na tabela sql

Neste artigo analisaremos, talvez, um dos mais importantes consultas SQL. isto consultas para adicionar e excluir registros de uma tabela de banco de dados. Porque, muitas vezes adicionar novos registros à tabela, e fazê-lo automaticamente, então este material deve ser estudado.

Para iniciar Consulta SQL para adicionar um novo registro a uma tabela:

INSERT INTO users (login, pass) values("TestUser", "123456")

Ao adicionar um registro, o primeiro comando é " INSIRA DENTRO DE", depois o nome da tabela na qual inserimos o registro. Em seguida vem os nomes dos campos que queremos preencher entre parênteses. E depois entre parênteses após a palavra " valores"começamos a listar os valores dos campos que selecionamos. Após executar essa consulta, um novo registro aparecerá em nossa tabela.

Às vezes necessário atualizar entrada da tabela, para isso existe o seguinte consulta SQL:

UPDATE users SET login = "TestUser2", pass="1234560" WHERE login="TestUser"

Essa consulta é mais complexa, pois possui o " ONDE", mas sobre isso um pouco mais baixo. Primeiro vem o comando" ATUALIZAR", depois o nome da tabela e depois " DEFINIR" descrevemos os valores de todos os campos que queremos alterar. Seria simples, mas surge a pergunta: " Qual entrada deve ser atualizada?". Para isso existe " ONDE". Neste caso, estamos atualizando o registro, o campo " Conecte-se"o que importa" TestUser". Observe que, se houver vários desses registros, tudo será atualizado! Isso é muito importante entender, caso contrário você corre o risco de perder sua planilha.

Vamos falar um pouco mais sobre ONDE". Além de verificações de igualdade simples, também existem desigualdades, bem como operações lógicas: E e OU.

UPDATE users SET login = "TestUser2", pass="1234560" WHERE id< 15 AND login="TestUser"

o consulta SQL atualizará esses registros Eu iria que são menos 15 E campo " Conecte-se"tem o significado" TestUser". Espero que você tenha descoberto o design" ONDE"porque é muito importante. Precisamente" ONDE" é usado quando buscando registros de tabelas, e essa é a tarefa mais usada ao trabalhar com bancos de dados.

E por fim, simples Consulta SQL para excluir registros de uma tabela:

DELETE FROM users WHERE login="TestUser2"

Após o comando " APAGAR DE" vai o nome da tabela na qual você deseja excluir os registros. A seguir, descrevemos a construção "ONDE". Se o registro atender às condições descritas, ele será excluído. Novamente, preste atenção, dependendo do número de registros que satisfaz a condição após " ONDE", qualquer número deles pode ser removido.

Nas seções anteriores, consideramos o trabalho de obtenção de dados de tabelas pré-criadas. Agora é hora de descobrir como podemos criar/excluir tabelas, adicionar novos registros e deletar os antigos. Para estes fins em SQL existem operadores como: CRIO- cria uma tabela ALTERAR- altera a estrutura da tabela, DERRUBAR- exclui uma tabela ou campo, INSERIR- adiciona dados à tabela. Vamos começar a conhecer este grupo de operadores do operador INSERIR.

1. Adicionando linhas inteiras

Como o nome sugere, o operador INSERIR usado para inserir (anexar) linhas a uma tabela de banco de dados. A adição pode ser feita de várias maneiras:

  • - adicionar uma linha completa
  • - adicionar parte de uma string
  • - adicionar resultados de consulta.

Portanto, para adicionar uma nova linha à tabela, precisamos especificar o nome da tabela, listar os nomes das colunas e especificar o valor para cada coluna usando a construção INSIRA DENTRO DE table_name (campo1, campo2 ...) VALORES (valor1, valor2...). Vejamos um exemplo.

INSERT INTO Sellers (ID, Address, City, Seller_name, Country) VALUES("6", "1st Street", "Los Angeles", "Harry Monroe", "EUA")

Você também pode alterar a ordem dos nomes das colunas, mas ao mesmo tempo precisa alterar a ordem dos valores no parâmetro VALORES.

2. Adicionando parte das linhas

No exemplo anterior, ao usar o operador INSERIR marcamos explicitamente os nomes das colunas da tabela. Usando essa sintaxe, podemos pular algumas colunas. Isso significa que você insere um valor para algumas colunas, mas não fornece valores para outras. Por exemplo:

INSERT INTO Sellers (ID, Cidade, Seller_name) VALUES("6", "Los Angeles", "Harry Monroe")

Neste exemplo, não especificamos um valor para duas colunas Morada e País. Você pode excluir algumas colunas da instrução INSIRA DENTRO DE, se permitir a definição da tabela. Neste caso, uma das seguintes condições deve ser atendida: esta coluna é definida como permitindo o valor NULO(a ausência de qualquer valor) ou na definição da tabela o valor padrão especificado. Isso significa que se nenhum valor for especificado, o valor padrão será usado. Se você pular uma coluna em uma tabela que não permite valores em suas linhas NULO e não tiver um valor padrão definido, o SGBD emitirá uma mensagem de erro e esta linha não será adicionada.

3. Adicionando dados selecionados

Nos exemplos anteriores, inserimos dados em tabelas escrevendo-os manualmente na consulta. No entanto, o operador INSIRA DENTRO DE nos permite automatizar esse processo se quisermos inserir dados de outra tabela. Para fazer isso, o SQL tem uma estrutura assim: INSERIR EM... SELECIONAR.... Esse design permite selecionar simultaneamente dados de uma tabela e inseri-los em outra. Suponha que temos outra tabela Vendedores_EU com uma lista de vendedores de nossos produtos na Europa e precisamos adicioná-los à tabela geral Vendedores. A estrutura dessas tabelas é a mesma (o mesmo número de colunas e os mesmos nomes), mas os dados são diferentes. Para fazer isso, podemos escrever a seguinte consulta:

INSERT INTO Sellers (ID, Address, City, Seller_name, Country) SELECTID, Endereço, Cidade, Nome_do_vendedor, País FROM Sellers_EU

Você precisa prestar atenção para que o valor das chaves internas não seja repetido (campo EU IRIA), caso contrário ocorrerá um erro. Operador SELECIONAR também pode incluir sugestões ONDE para filtrar dados. Deve-se notar também que o SGBD não presta atenção aos nomes das colunas contidas na instrução SELECIONAR, apenas a ordem de seu arranjo é importante para ela. Portanto, os dados na primeira coluna especificada que foi selecionada devido a SELECIONAR, será preenchido na primeira coluna da tabela de qualquer maneira Vendedores especificado após o operador INSIRA DENTRO DE, independentemente do nome do campo.

4. Copiando dados de uma tabela para outra

Muitas vezes, ao trabalhar com bancos de dados, torna-se necessário criar cópias de quaisquer tabelas para fins de backup ou modificação. Para fazer uma cópia completa de uma tabela em SQL, uma instrução separada é fornecida SELECIONE EM. Por exemplo, precisamos criar uma cópia da tabela Vendedores, você precisará escrever a solicitação da seguinte forma:

SELECT * INTO Sellers_new FROM Sellers

Ao contrário do projeto anterior INSERIR EM... SELECIONAR... quando os dados são adicionados a uma tabela existente, a construção copia os dados para a nova tabela. Pode-se dizer também que o primeiro constructo importa dados, enquanto o segundo constructo exporta. Ao usar a estrutura SELECIONE ... EM ... DE ... deve-se levar em conta o seguinte:

  • - você pode usar qualquer frase no operador SELECIONAR, como AGRUPAR POR e TENDO
  • - join pode ser usado para adicionar dados de várias tabelas
  • - os dados só podem ser adicionados a uma tabela, independentemente de quantas tabelas foram retiradas.

Este artigo é dedicado ao preenchimento de tabelas de banco de dados com dados, ou seja, estudaremos comandos SQL para inserção de novos registros. Deve-se dizer que escrever na mesa pode ser feito de duas maneiras:

Método número 1.
Vamos tentar adicionar uma nova entrada de país à tabela de países. A sintaxe para adicionar seria:
INSERT INTO table_name (field_1, field_2, ...) VALUES (Value_1, Value_2, ...); Com base em nossa estrutura de tabela, a consulta SQL seria:
INSERT INTO países (country_name, acronym_name) VALUES ("Rússia", "RU"); Foi assim que inserimos uma entrada sobre o país "Rússia" em nossa tabela. Tudo deve ser claro e simples aqui, o principal é observar cuidadosamente quais campos você especifica nos primeiros colchetes e escrever os valores nos segundos colchetes na mesma ordem.

Método número 2.
A segunda maneira, na minha opinião, é um pouco mais fácil, porque você vê o que e qual campo você atribui. Acredite, se a tabela tiver um grande número de colunas, é muito fácil confundir ou ignorar a ordem dos campos no primeiro e a ordem dos valores nos segundos colchetes. A sintaxe para o segundo método é:
INSERT INTO nome_da_tabela SET campo_1 = valor_1, campo_2 = valor_2, ... ; Vamos usar este exemplo para inserir algumas informações na placa pessoas, pois há mais campos, e a vantagem do segundo método será sentida imediatamente:
INSERT INTO people SET first_name="Ivan", last_name="Dulin", registration_date="2012-06-14", country="1"; Agora nossa tabela tem os seguintes dados:


Você provavelmente notou que não especificamos um valor para a idade, mas acabou sendo preenchido ... Isso mesmo - para este campo definimos o valor padrão para 25. Então agora nosso Ivan Dulin está listado no banco de dados com um idade de 25 anos. Pode não ser o melhor exemplo para definir um valor padrão para o campo de idade, mas você pode definir propriedades em campos como, por exemplo, a classificação do usuário do site ou o número de visualizações de página. Eles são inicialmente definidos como 0.

Você também deve prestar atenção ao formato de data no MySQL: YYYY-MM-DD. Se você não aderir a ela, suas entradas simplesmente não serão incluídas na tabela.

Como você pode ver, o campo profissão está preenchido como NULL, este é um valor vazio. para este campo.

Como complemento, considere o seguinte comando:
LOAD DATA INFILE LOCAL "D:\zapros.txt" INTO TABLE pessoas; O que você acha que fizemos agora?! E fizemos o seguinte: adicionamos dados à tabela pessoas de um arquivo request.txt, que está localizado na unidade D. As informações no arquivo devem ter a seguinte estrutura:


A estrutura de dados do arquivo deve atender aos seguintes requisitos:
  1. Cada nova entrada deve ser descrita em uma nova linha.
  2. Os dados devem ser especificados para absolutamente todos os campos. Como você pode ver, especificamos NULL para o campo id, porque temos auto-incremento, então o próprio MySQL irá inserir o valor desejado.
  3. Os campos são separados uns dos outros pelo caractere de tabulação (tecla Tab).
  4. As informações inseridas devem corresponder aos tipos de dados do campo específico. Ou seja, por exemplo, uma data no formato AAAA-MM-DD, um inteiro para inteiro, etc.
Assim, você aprendeu como inserir novos dados em suas tabelas de banco de dados. Para consolidar o material estudado, insira você mesmo os seguintes dados:

Tabela de profissões:

tabela de pessoas:

primeiro nome sobrenome era data de registro país profissão
Leonid Bilak 45 2012-06-20 2 1
Yuri Nazarov 22 2012-06-21 3 1
Tudo Savenko 25 2012-06-22 2 3
Irina Nikolaeva 31 2012-06-22 1 3

Certifique-se de adicionar essas entradas, pois precisaremos delas para estudar a instrução SELECT (selecionando informações do banco de dados), que consideraremos no próximo (quarto) artigo sobre aprendizado de consultas SQL.

As solicitações de alteração são usadas para adicionar (INSERT INTO), excluir (DELETE) e atualizar (UPDATE) registros em tabelas.

Comando INSERT INTO

O comando INSERT INTO pode ser usado para adicionar um ou mais registros ao final de uma tabela.

A sintaxe do comando INSERT INTO é a seguinte:
INSERT INTO Table_Name [(Field_Name)] VALUES (Data_Values);

Por exemplo, vamos colocar um registro na tabela "Grupos" contendo dados (1, BF-16a, 1, 1) nas colunas correspondentes (ID do Grupo, Nome, Curso, Semestre).

Para esta solicitação no formato:
INSERT INTO Grupos (GroupCode, Nome, Curso, Semestre) VALORES (1, BF-16a, 1, 1);
vamos inseri-lo no formulário de consulta executando o comando "Query Builder" na guia "Criar", no modo "Modo SQL" do menu Exibir.

Salvamos a consulta com o nome "Add_1_records". Como resultado, um objeto não relacionado aparecerá na "Área de Navegação" - "Add_1_records" (Fig.1.).


Arroz. 1.

Após salvar a consulta, você precisa executar esta consulta clicando no ícone "Executar". Como resultado da execução do comando “Add_1_records”, o primeiro registro aparecerá na tabela vazia (Fig. 2.)



Arroz. 2.

Comando ATUALIZAR

O comando UPDATE destina-se a modificar os registros já existentes nas colunas da tabela, o que permite atualizar os valores nas colunas da tabela.

A sintaxe do comando UPDATE é a seguinte:
UPDATE Table_Name SET Column_Name = New_Value WHERE Filter_Condition;

A cláusula SET especifica os nomes das colunas cujos dados precisam ser alterados. A cláusula WHERE é opcional, mas só pode apontar para as linhas das colunas (tabelas) que precisam ser atualizadas.

Vamos criar uma consulta para alterar um registro na tabela "Grupos" do banco de dados sql_training_st.mdb.

Por exemplo, vamos alterar uma entrada já existente para o primeiro id de campo-chave na coluna "Nome" da tabela "Grupos".

Solicite no formato:
UPDATE Grupos SET Name="BF-16b" WHERE ID=1;

Salvamos a consulta com o nome "Change_record_1". Como resultado, um objeto aparecerá na "Área de Navegação" - "Change_record_1" (Fig. 3.).



Arroz. 3.

Após salvar a consulta, você precisa executar esta consulta clicando no ícone "Executar". Como resultado da execução do comando Change_Record_1, aparecerá uma caixa de diálogo na qual você deve inserir o valor do parâmetro ID=1 e clicar em OK. Após estas ações na tabela "Grupos", a entrada no campo "Nome" mudará de BF-16a para BF-16b (Fig. 4.).



Arroz. quatro.

Comando DELETE

O comando DELETE foi projetado para remover registros de uma tabela.

Formato da solicitação para excluir registros:
DELETE FROM Table_Name WHERE Seleção_Condição;

Vamos criar uma consulta para alterar um registro na tabela "Grupos" do banco de dados sql_training_st.mdb.

Por exemplo, vamos excluir a entrada existente para o primeiro id de campo-chave em todas as colunas (campos) da tabela "Grupos".

Para esta solicitação no formato:
DELETE FROM Grupos WHERE ID=1;
create no formulário de consulta executando o comando "Query Designer" na guia "Create", no modo "SQL Mode" do menu View.

Salvamos a consulta com o nome "Delete_record_1". Como resultado, um objeto aparecerá na "Área de Navegação" - "Delete_record_1" (Fig. 5.).



Arroz. 5.

Após salvar a consulta, você precisa executar esta consulta clicando no ícone "Executar". Como resultado da execução do comando "Delete_record_1", aparecerá uma caixa de diálogo na qual você deve inserir o valor do parâmetro ID=1 e clicar em OK. Após essas etapas, uma caixa de diálogo "Confirmar a exclusão dos registros" será aberta. Após a confirmação na tabela "Grupos", os dados em todos os campos serão excluídos, ou seja, o registro é excluído (Fig. 6.).



Arroz. 6.

Ressalta-se que para excluir dados em campos específicos da tabela, é aconselhável utilizar o comando UPDATE e substituir os valores nos campos obrigatórios por Null. Se for necessário eliminar a tabela como um todo, deve-se usar a instrução DROP TABLE (a sintaxe da instrução é: DROP TABLE TableName;).

Vamos restaurar o primeiro registro na tabela "Grupos" executando o comando "Add_1_records", como resultado vamos restaurar o primeiro registro (Fig. 7.).



Arroz. 7.



O conteúdo do artigo
1. As consultas MySQL mais simples
2. Consultas SELECT simples
3. Consultas simples INSERT (nova entrada)
4. Consultas UPDATE simples (substituir, anexar)
5. Solicitações simples DELETE (excluir entrada)
6. Consultas DROP simples (excluir tabela)
7. Consultas complexas do MySQL
8. Consultas MySQL e variáveis ​​PHP

1. As consultas SQL mais simples

1. Listará TODAS as bases.

MOSTRAR bases de dados;
2. Lista TODAS as tabelas no banco de dados base_name.

SHOW tabelas em base_name;

2. Consultas SELECT simples (selecionar) ao banco de dados MySQL

SELECIONAR- uma consulta que seleciona dados já existentes do banco de dados. Você pode especificar certas opções de seleção para seleção. Por exemplo, a essência da solicitação em russo soa assim - SELECT tal e tal colunas FROM tal e tal tabela ONDE o parâmetro de tal e tal coluna é igual ao valor.

1. Seleciona TODOS os dados na tabela tbl_name.

SELECT * FROM nome_tabela;
2. Exibe o número de registros na tabela tbl_name.

SELECT contagem(*) FROM nome_tabela;
3. Seleciona (SELECT) da tabela (FROM) tbl_name limit (LIMIT) 3 registros, começando em 2.

SELECT * FROM nome_tabela LIMIT 2,3;
4. Seleciona (SELECT) ALL (*) registros da tabela (FROM) tbl_name e os classifica (ORDER BY) pelo campo id em ordem.

SELECT * FROM nome_tabela ORDER BY id;
5. Seleciona (SELECT) TODOS os registros da tabela (FROM) tbl_name e os ordena (ORDER BY) pelo campo id na ordem REVERSE.

SELECT * FROM nome_tabela ORDER BY id DESC;
6. Seleciona ( SELECIONAR) TODOS (*) registros de ( A PARTIR DE) tabelas usuários e classificá-los ( ORDENAR POR) no campo Eu iria em ordem crescente, limite ( LIMITE) os 5 primeiros registros.

SELECT * FROM users ORDER BY id LIMIT 5;
7. Seleciona todos os registros da tabela usuários, onde o campo fname corresponde ao valor Gena.

SELECT * FROM users WHERE fname="Gena";
8. Seleciona todos os registros da tabela usuários, onde o valor do campo fname começar com Ge.

SELECT * FROM users WHERE fname LIKE "Ge%";
9. Seleciona todos os registros da tabela usuários, Onde fname termina com n / D, e classifica as entradas em ordem crescente de valor Eu iria.

SELECT * FROM users WHERE fname LIKE "%na" ORDER BY id;
10. Seleciona todos os dados das colunas fname, lname Da mesa usuários.

SELECT fname, lname FROM usuários;

11. Digamos que você tenha um país em sua tabela de dados de usuário. Portanto, se você deseja exibir APENAS uma lista de valores ocorridos (para que, por exemplo, a Rússia não seja exibida 20 vezes, mas apenas uma), use DISTINCT. Ele deduzirá da massa de valores repetidos Rússia, Ucrânia, Bielorrússia. Então da mesa usuários colunas país TODOS os valores ÚNICOS serão exibidos

SELECT país DISTINTO DE usuários;
12. Seleciona TODOS os dados de linha da tabela usuários Onde era tem os valores 18,19 e 21.

SELECT * FROM usuários WHERE idade EM (18,19,21);
13. Seleciona o valor MÁXIMO era na mesa usuários. Ou seja, se você tiver o valor mais alto na tabela era(da idade inglesa) for 55, então o resultado da consulta será 55.

SELECT max(idade) FROM usuários;
14. Selecione os dados da tabela usuários por campos nome e era ONDE era assume o menor valor.

SELECT nome, min(idade) FROM usuários;
15. Selecione os dados da tabela usuários no campo nome ONDE Eu iria NÃO IGUAL A 2.

SELECT nome FROM usuários WHERE id!="2";

3. Consultas simples de INSERT (nova entrada)

INSERIR– uma consulta que permite inserir INICIALMENTE um registro no banco de dados. Ou seja, cria um NOVO registro (linha) no banco de dados.

1. Faz uma nova entrada na tabela usuários, em campo nome insere Sergey, e no campo era insere 25. Assim, uma nova linha com os valores fornecidos é adicionada à tabela. Se houver mais colunas, as restantes permanecerão vazias ou com valores padrão.

INSERT INTO usuários (nome, idade) VALUES ("Sergey", "25");

4. Consultas UPDATE simples no banco de dados MySQL

ATUALIZAR- uma consulta que permite SUBSTITUIR valores de campo ou ADICIONAR algo a uma linha já existente no banco de dados. Por exemplo, existe uma string pronta, mas o parâmetro age precisa ser sobrescrito nela, pois mudou ao longo do tempo.

1. Tabela usuários era torna-se 18.

UPDATE usuários SET idade = "18" WHERE id = "3";
2. Tudo é o mesmo da primeira requisição, apenas mostra a sintaxe da requisição, onde dois ou mais campos são sobrescritos.
Mesa usuários WHERE id é o valor de 3 campos era faz 18 anos e país Rússia.

UPDATE usuários SET idade = "18", país = "Rússia" WHERE id = "3";

5. Consultas simples DELETE (remover registro) no banco de dados MySQL

EXCLUIRé uma consulta que remove uma linha de uma tabela.

1. Remove uma linha de uma tabela usuários ONDE Eu iriaé igual a 10.

DELETE FROM usuários WHERE id = "10";

6. Consultas DROP simples (excluir tabela) ao banco de dados MySQL

DERRUBARé uma consulta que exclui uma tabela.

1. Exclui a tabela inteira nome_tbl.

DROP TABLE nome_tabela;

7. Consultas complexas de banco de dados MySQL

Consultas curiosas que até usuários experientes podem usar

SELECT id,name,country FROM users,admins WHERE TO_DAYS(NOW()) - TO_DAYS(registration_date)<= 14 AND activation != "0" ORDER BY registration_date DESC;
Esta consulta complexa SELECTs colunas id, nome, país EM TABELAS usuários, administradores ONDE data de registro(data) não superior a 14 dias e ativação NÃO IGUAL 0 , Ordenar por data de registro na ordem inversa (novo no início).

UPDATE usuários SET idade = "18+" WHERE idade = (SELECT idade FROM usuários WHERE masculino = "homem");
A imagem acima é um exemplo do chamado consulta em consulta em SQL. Atualize a idade entre os usuários para 18+, onde o sexo é masculino. Não recomendo esse tipo de solicitação. Por experiência pessoal, direi que é melhor criar vários separados - eles serão resolvidos mais rapidamente.

8. Consultas de banco de dados MySQL e PHP

Em consultas MySQL em uma página PHP, você pode inserir variáveis ​​como valores de comparação e assim por diante. Alguns exemplos

1. Seleciona todos os registros da tabela usuários, onde o campo fname corresponde ao valor da variável $nome.

SELECT * FROM users WHERE fname="$name";
2. Tabela usuários WHERE id é o valor de 3 campos era altera o valor da variável $age.

UPDATE usuários SET idade = "$idade" WHERE id = "3";

Atenção! Se você estiver interessado em algum outro exemplo, escreva uma pergunta nos comentários!