Agenda Consolidada

1) Como o SQL funciona de verdade

2) Linguagens do SQL (DDL, DML, DCL, TCL)

BEGIN;
UPDATE conta SET saldo = saldo - 100 WHERE id = 1;
UPDATE conta SET saldo = saldo + 100 WHERE id = 2;
COMMIT;

3) Performance e objetos de apoio

4) Segurança: SQL Injection

Evitar concatenação de strings em comandos SQL. Sempre usar parâmetros.

// Dapper seguro
var sql = "SELECT * FROM usuarios WHERE email = @Email";
var user = connection.QueryFirstOrDefault(sql, new { Email = email });

5) Dapper e integração com .NET

var sql = "INSERT INTO pedidos(cliente_id, total) VALUES(@ClienteId, @Total)";
connection.Execute(sql, pedido);

6) Além do ER: visão corporativa

7) NoSQL orientado a agregados

db.createCollection("pedidos", {
  validator: { $jsonSchema: { bsonType: "object", required: ["clienteId", "itens"] } }
});

8) Entregável da Aula 3