Ciências da computação dia 119
Índice estrutura de dados que permite queries mais velozes; não é necessário criar, mas para aumentar a perfomance, é recomendado; é criado automaticamente quando você seta alguma coluna como PK ou UNIQUE, pois devido ao seu formato, ele garante que os dados não sejam repetidos; Deixa mais rápido as pesquisas(queries), pois utilizam uma estrutura que já deixa os dados já organizados e linkados, como uma B-tree. Com isso, caso você não possua indices, ao fazer um select o mysql fará um FULL TABLE SCAN, ou seja, percorrerá todos os dados pegando aqueles que foram selecionados e filtrados; Não é necessário selecionar o índice manualmente, ao fazer um select o mysql vai automaticamente usar o índice, caso ele veja que será mais rápido; Você pode usar com cláusulas Where; Ao fazer um update, insert ou delete na table, o indice será atualizado também. CREATE [UNIQUE] INDEX name ON table(column); #O unique é usado geralmente para PK e UNIQUE columns, sendo assim, geralmente não é usado View Armazena uma query; Dados são gerados dinamicamente quando você faz uma query usando a view; Usado quando você possui uma query muito complexa que você precisa executar muitas vezes em diferentes momentos; Também pode ser usado como uma maneira de limitar o acesso a certas tabelas (em conjunto com as regras de acesso); Usado geralmente para select, mas pode ser usado para insert, update e delete também, basta tomar cuidados com muitas tables e funções de grupo; Representa uma espécie de visão/ponto de vista dos dados; Pode ser usado em conjunto com outras queries/cláusulas. CREATE [OR REPLACE] VIEW view_name as <query>; #para selecionar os dados da view SELECT * FROM view_name; Cláusulas WHERE BETWEEN retorna os dados que estão entre um intervalo; o valor menor precisa sempre vir antes. SELECT id FROM users WHERE id BETWEEN 10 AND 100; #com numeros SELECT insert_date FROM users WHERE insert_date BETWEEN '2005-01-04' AND '2022-01-03'; #com datas SELECT name FROM users WHERE name BETWEEN 'Ana' AND 'Joana'; #com strings LIKE busca por padrões em strings; possui dois caracteres de substituição (coringas): % substitui nenhum ou vários caracteres e _ substitui exatamente 1 caractere. SELECT name FROM users WHERE name LIKE '%Ana%'; #pega nomes que possuem Ana SELECT name FROM users WHERE name LIKE '_ia'; #pega nomes que possuem 3 letras e a primeira pode ser qualquer uma e as duas ultimas sao ia IN Filtra dados que estão em uma lista de valores. SELECT id FROM users WHERE id IN (1, 2, 3, 5); IS NULL pega os dados que são null; lembre-se que NULL é diferente de ’ ’ (vazio). SELECT title FROM movies WHERE gender IS NULL;