Banco de Dados

Modelagem conceitual e SQL.

Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Banco de Dados por Mind Map: Banco de Dados

1. Modelagem Conceitual

1.1. I · Abordagem entidade-relacionamento

1.1.1. Entidade

1.1.1.1. São agrupamentos de dados de instâncias específicas

1.1.1.2. DICAS

1.1.1.2.1. entidade *estoque não existe

1.1.1.3. Representação

1.1.2. Relacionamento

1.1.2.1. conjunto de associações entre ocorrências de entidades

1.1.2.2. Cardinalidade

1.1.2.2.1. Máxima

1.1.2.2.2. Mínima

1.1.2.3. Binário

1.1.2.3.1. n:n, 1:n e 1:1

1.1.2.4. Relacionamento sem nome terá o mesmo formado pela concatenação das duas entidades. Ex: empregado-dependente

1.1.2.5. Auto-relacionamento

1.1.2.5.1. Apenas um entidade

1.1.2.6. Ternário

1.1.2.7. se for 1:1 pode ser omitida

1.1.2.8. Diagrama de ocorrências

1.1.2.9. Relacionamento identificador

1.1.2.9.1. quando uma entidade para ser identificada também necessita de informações da outra entidade

1.1.3. Atributo

1.1.3.1. Dado que é associodo a cada ocorrência de uma entidade ou de um relacionamento

1.1.3.2. pode possuir cardinalidade

1.1.3.3. relacionamentos também podem possuir

1.1.3.4. Atributo identificador

1.1.3.4.1. serve para distinguir uma entidade das outras

1.1.3.4.2. deve ser único, ou seja, não pode ser compartilhado por outras entidades ou relacionamentos(cada entidade deve possuir um único identificador

1.1.3.4.3. RELACIONAMENTO IDENTIFICADOR

1.1.3.4.4. pode ser usado em relacionamentos quando necessário

1.1.3.5. atriibuto tambem pode possuir cardinalidade

1.1.3.5.1. ela representa a quantidade de ocorrências desse atrtibuto na entidade a qual ele pertence

1.1.4. Generalização / Especialização

1.1.4.1. representado por um triângulo

1.1.4.2. atribui propriedades particulares

1.1.4.3. HERANÇA DE PROPRIEDADES

1.1.4.3.1. significa que cada ocorrência da entidade especializada possui, além de suas próprias propriedades( atributos, relacionamentos e generalizações/especializações ), também as propriedades da ocorrência da entidade genérica correspondente

1.1.4.4. TOTAL

1.1.4.4.1. para cada ocorrência da entidade genérica existe sempre um ocorrência correspondente em uma das entidades especializadas.

1.1.4.5. PARCIAL

1.1.4.5.1. nem toda ocorrência da entidade genérica possui uma ocorrência correspondente em uma entidade especializada.

1.1.4.6. EXCLUSIVA

1.1.4.6.1. significa que, em uma hierarquia de generalizações/especializações, uma ocorrência de entidade genérica é especificada apenas uma vez, nas folhas das árvores de generalizações/especializações

1.1.4.7. COMPARTILHADA

1.1.4.7.1. indica que em um hierarquia de generalização/especialização, uma ocorrência de entidade genérica pode aparecer em várias entidades nas folhas da árvore de generalização/especialização.

1.1.5. Entidade Associativa

1.1.5.1. permitir a associação de uma entidade a um relacionamento

1.2. II · Construção de modelos ER

1.2.1. 1 · Propriedades de modelos ER

1.2.1.1. um modelo ER é um modelo formal

1.2.1.1.1. necessário treinamento para entende-lo

1.2.1.2. modelos ER têm poder de expressão limitado

1.2.1.2.1. muitas propriedades desejáveis do banco de dados necessitam ser anotadas adicionalmente ao DER

1.2.1.2.2. RESTRIÇÃO DE INTEGRIDADE

1.2.1.2.3. Deixar só o que é importante no Banco de Dados

1.2.1.3. diferentes modelos podem ser equivalentes

1.2.1.3.1. EQUIVALÊNCIA entre modelos ER

1.2.2. 2 · Determinando contruções

1.2.2.1. não pode ser feita através da observação do objeto isoladamente, é necessário conhecer o contexto, isto é, o modelo dentro do qual o objeto aparece.

1.2.2.2. a recomendação geral é considerar a decisão por uma construção para modelar um objeto como sujeita à alteração durante a modelagem.

1.2.2.3. ATRIBUTO vs ENTIDADE RELACIONADA

1.2.2.3.1. Quando o atributo possuir vínculo com outras entidades ou características próprias, modela-lo como entidade. Caso contrário, apenas será um atributo como tipo ou cor.

1.2.2.3.2. Quando o conjunto de valores de um determinado objeto é fixo durante toda a vida do sistema, ele pode ser modelado como atributo, visto que o domínio de valore de um atributo é imutável.

1.2.2.3.3. Quando existem transações no sistemas, que alteram o conjunto de valores do objeto, o mesmo não deve ser modelado como atributo.

1.2.2.4. ATRIBUTO vs ESPECIALIZAÇÃO

1.2.2.4.1. uma espeicialização deve ser usada quando sabe-se que as classes especializadas de entidades possuem propriedades( atributos, relacionamento, generalizações, especializações ) particulares.

1.2.2.5. ENTIDADE RELACIONADA vs ESPECIALIZAÇÃO

1.2.2.5.1. para que uma entidade possa ser considereada especialização de outra, é necessário que ela herde o identificador da entidade genérica.

1.2.2.5.2. Um objeto somente pode ser tratado como especialização de outro quando o objeto especializado herda a chave primária do objeto genérico.

1.2.2.6. ATRIBUTOS OPCIONAIS E MULTIVALORADOS

1.2.2.6.1. tentar usar atributos obrigatórios e monovalorados

1.2.2.6.2. quando aparecer um atributo opcional, verficar se a modelagem por especialização não é mais eficiente

1.2.2.7. · Verificação do modelo

1.2.2.7.1. ser completo, correto e não conter redundância

1.2.2.7.2. Correto

1.2.2.7.3. Completo

1.2.2.7.4. Redundância

1.2.3. Verificação do modelo

1.2.4. Estabelecimento de padrões

1.2.5. Estratégias de Modelagem

1.3. Abordagem relacional

1.3.1. Composição de um banco de dodos relacional

1.3.2. Consultas sobre o banco de dados

1.4. PASSO-A-PASSO

1.4.1. 1 - Criar todas as entidades do diagrama

1.4.2. 2 - Inserir os devidos atributos de cada entidade

1.4.3. 3 - Identificar atributos e entidades duplicadas

1.4.4. 4 - Fazer um relacionamento entre a entidade duplicada( com atributo igual a outra entidade ) e o relacionamento com mesmo nome

1.4.5. 5 - Verificar se alguma entidade possui atributos que não se encaixam com ela mesma e posteriormente criar novas entidades com esses atributos

1.5. DICAS

1.5.1. Não faz sentido ter uma entidade em que algum dos atributos não se apliquem a todas as instâncias da entidade

1.5.2. Os atributos devem pertencer a entidade, dados que não forem da entidade não devem ser atributos da mesma

1.5.3. O modelo ER nada mais é do que um descrição abstrata das estruturas de banco de dados

2. SQL

2.1. Atalhos(aliases)

2.1.1. AS

2.1.1.1. é usado para renomear uma coluna ou uma tabela com um apelido

2.1.1.1.1. SELECT CustomerID AS ID, CustomerName AS Customer FROM Customers;

2.1.1.1.2. SELECT CustomerName AS Customer, ContactName AS [Contact Person] FROM Customers;

2.1.1.1.3. SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' + Country AS Address FROM Customers;

2.1.1.1.4. SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address FROM Customers;

2.1.1.1.5. SELECT o.OrderID, o.OrderDate, c.CustomerName FROM Customers AS c, Orders AS o WHERE c.CustomerName="Around the Horn" AND c.CustomerID=o.CustomerID;

2.2. Comandos

2.2.1. ADD

2.2.1.1. COLUMN

2.2.1.2. »

2.2.1.2.1. adicionando chave primaria com add continua com valor null

2.2.1.3. CONSTRAINT

2.2.2. ALTER TABLE

2.2.2.1. é utilizado para adicionar, deletar ou modificar colunas em uma tabela existente. Além disso podemos utilizá-lo para alterar definições de chave primária e estrangeira.

2.2.2.2. Posições

2.2.2.2.1. AFTER

2.2.2.2.2. FIRST

2.2.2.2.3. BEFORE

2.2.2.2.4. SECOND

2.2.2.2.5. THIRD

2.2.2.2.6. ...

2.2.2.2.7. LAST

2.2.2.3. ADD COLUMN

2.2.2.4. CHANGE

2.2.2.4.1. COLUMN

2.2.2.4.2. change column number project_id

2.2.2.5. MODIFY

2.2.2.5.1. pode mudar o tipo de dado da coluna

2.2.2.5.2. não pode ser usado para mudar a ordem das coluna

2.2.2.6. DROP

2.2.2.7. ADD

2.2.2.8. RENAME TO

2.2.3. AUTO_INCREMENT

2.2.3.1. auto se incrementa

2.2.3.2. por padrão é de 1 em 1 que ele se incrementa

2.2.3.3. ignora null

2.2.3.4. só pode ter 1 por tabela

2.2.4. CHANGE

2.2.4.1. alter table cliente

2.2.4.2. cliente change <nome1> <nome2>

2.2.5. COUNT

2.2.5.1. número total de resultados

2.2.5.2. COUNT(<variável>)

2.2.6. CREATE

2.2.6.1. CREATE DATABASE <nome> ;

2.2.6.2. create table Student ( StudentID CHAR (4), StudentName VARCHAR (30), grade CHAR(1), age INT, course VARCHAR(50), PRIMARY KEY (StudentID) );

2.2.7. DEFAULT

2.2.7.1. você já sabe

2.2.8. DROP

2.2.8.1. apaga a tabela

2.2.8.2. DROP TABLE <nome tabela>

2.2.9. Insert

2.2.9.1. Insere registros nas tabelas

2.2.9.2. INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway');

2.2.9.3. é possível inserir dados vazia em uma tabela, ai os valores ficam nulos

2.2.10. IS NULL / IS NOT NULL

2.2.11. MODIFY

2.2.11.1. MODIFY COLUMN <NOME><TIPO>;

2.2.12. NULL / NOT NULL

2.2.12.1. select * from <tal> where <tal2> is null;

2.2.12.2. deve ser comparado usando IS NULL, e não com > < ou <=, >=

2.2.13. RENAME TO

2.2.14. SELECT

2.2.14.1. Sintaxe

2.2.14.1.1. SELECT DATABASE();

2.2.14.1.2. SELECT [COLUMNS LIST] FROM [TABLE NAME] WHERE [CONDITION] ORDER BY [COLUMN NAME] [ASC|DESC]

2.2.14.2. Dicas

2.2.14.2.1. top 1,000 rows

2.2.14.2.2. Usado para selecionar dados de uma base de dados.

2.2.14.3. Comandos complementares

2.2.14.3.1. BETWEEN

2.2.14.3.2. DISTINCT

2.2.14.3.3. WHERE

2.2.14.3.4. 📚 DESC

2.2.14.3.5. LIKE

2.2.14.3.6. ORDER BY

2.2.14.3.7. LIMIT

2.2.14.3.8. IN / NOT IN

2.2.14.3.9. NOT

2.2.14.3.10. TOP

2.2.14.3.11. DATABASE()

2.2.15. SET

2.2.16. SHOW

2.2.16.1. SHOW DATABASES;

2.2.16.1.1. mostra todas as bases de dados

2.2.16.2. SHOW WARNINGS

2.2.16.2.1. mostra avisos

2.2.17. TRUNCATE

2.2.17.1. remove dados sem apagar a tabela

2.2.18. UPDATE

2.2.18.1. UPDATE employees SET Email = '[email protected]' WHERE empno = 3

2.2.18.2. SET

2.2.18.2.1. UPDATE nometabela set first_column = 'tal' ...

2.2.19. USE

2.2.19.1. USE <nome_da_base>

2.2.19.2. seleciona a base de dados

2.2.20. DELETE

2.2.20.1. DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';

2.2.20.2. apaga tabela inteiro

2.2.20.2.1. DELETE FROM table_name;

2.3. Comandos condicionais

2.3.1. IF EXISTS

2.3.2. BETWEEN

2.3.3. > OU <

2.3.4. =

2.4. Conceitos

2.4.1. Base de Dados

2.4.2. Banco de Dados

2.4.3. Tabelas

2.4.4. Chave primária

2.4.4.1. somente uma por tabela

2.4.4.2. coluna de identificação

2.4.5. Chave estrangeira

2.4.5.1. usada para linkar(ligar) duas tabelas diferentes

2.4.5.2. seu valor é igual a chave primária do tabela a qual liga

2.4.5.3. a tabela com a chave primária é chamada Referência(Reference) e a tabela com a chave estrangeira é chamada de tablea filha(Child)

2.4.5.4. uma tabela pode ter multiplas chaves estrangeiras

2.5. DICAS

2.5.1. SQL não é case-sensitive

2.5.1.1. NÃO USE ESPAÇOS

2.5.1.2. NÃO use CARACTERES ESPECIAIS

2.5.1.3. SEPARE os espaços com UNDERLINE( _ )

2.5.2. TODO COMANDO DO SQL TERMINA COM PONTO E VÍRGULA

2.5.3. Mesmo usando apenas uma tabela, se faz necessário a criação de um Banco de Dados para ela.

2.5.3.1. MOTIVO: acesso

2.5.4. não é possível ter tabelas que não estejam em bancos de dados

2.5.5. tabelas com os mesmos nomes podem ser criadas em pastas diferentes

2.5.6. quando você entra no mysql, voçê não está em nenhuma base de dados.

2.5.7. pode-se escapar apostrofos com barra invertida(\) ou com dois apostrofos('')

2.6. Funções

2.6.1. NOW()

2.6.1.1. obtém a data do sistema

2.6.1.2. Now()+INTERVAL 1 DAY

2.6.2. IN

2.6.2.1. IN ( select * from... )

2.6.3. UPPER() / LOWER()

2.6.4. MIN() / MAX()

2.6.4.1. SELECT MIN(column_name) FROM table_name WHERE condition;

2.6.5. COUNT()

2.6.5.1. retorna o número de linhas que cruzam com certo critério

2.6.5.2. SELECT COUNT(column_name) FROM table_name WHERE condition;

2.6.5.3. null não são contados

2.6.6. AVG()

2.6.6.1. retorna a média de determinada coluna

2.6.6.2. SELECT AVG(column_name) FROM table_name WHERE condition;

2.6.6.3. null não são contados

2.6.7. SUM()

2.6.7.1. retorna a soma

2.6.7.2. SELECT SUM(column_name) FROM table_name WHERE condition;

2.6.7.3. null não são contados

2.7. Normalização

2.7.1. CONSTRAINT

2.7.1.1. utilizado para adicionar regras específicas

2.7.2. PRIMARY KEY

2.7.2.1. primary key <<nome_do_campo>>

2.7.2.2. Regras

2.7.2.2.1. não pode ser repetida

2.7.2.2.2. não pode ser nula

2.7.2.2.3. precissa receber um valor quando um registro é inserido

2.7.2.2.4. deve ser compacta, isto é,sem informações extras

2.7.2.2.5. os valore da chave primária não podem ser modificados

2.7.2.3. Dicas

2.7.2.3.1. quando não for possível usar algum identificador como chave primária, deve-se criar um sintético(fictício)

2.7.3. FOREIGN KEY

2.7.3.1. foreign key(CPF) references clientes(CPF),

2.7.3.2. SET FOREIGN_KEY_CHECKS=0

2.7.3.2.1. desativa as retrições para o InnoDB

2.7.4. >>

2.7.4.1. uma chave estrangeira sempre refere-se a uma chave primária

2.7.4.2. uma tabela pode ter multiplas chaves estrangeiras

2.7.4.3. The INSERT command only operates on those rows of the child table for which corresponding rows exist in the parent table.

2.7.4.4. The DELETE command only operates on the rows from the parent table for which there are no corresponding records in the child table.

2.7.5. Regras

2.7.5.1. uma coluna com dados atômicos não pode ter vários valores do mesmo tipo de dado naquela coluna

2.7.5.2. uma tabela com dados atômicos não pode ter múltiplas colunas com o mesmo tipo de dado

2.7.6. 1 forma normal

2.8. Operadores

2.8.1. =

2.8.1.1. Equal

2.8.2. >

2.8.2.1. Greater than

2.8.3. <

2.8.3.1. Less than

2.8.4. >=

2.8.4.1. Greater than or equal

2.8.5. <=

2.8.5.1. Less than or equal

2.8.6. <> Not equal.

2.8.6.1. Note: In some versions of SQL this operator may be written as !=

2.8.7. BETWEEN

2.8.7.1. Between a certain range

2.8.8. LIKE

2.8.8.1. Search for a pattern

2.8.9. IN

2.8.9.1. To specify multiple possible values for a column

2.8.10. AND

2.8.11. NOT

2.8.12. IS

2.9. Tipos de Dados

2.9.1. blob

2.9.1.1. textos grandes

2.9.2. boolean

2.9.3. char

2.9.4. date

2.9.4.1. YYYY-MM-DD

2.9.5. datetime

2.9.5.1. YYYY-MM-DD HH-MM-SS

2.9.6. dec

2.9.7. enun

2.9.7.1. valor para uma lista definida

2.9.8. float

2.9.9. int

2.9.10. nvarchar

2.9.10.1. unicode

2.9.11. time

2.9.11.1. HH-MM-SS

2.9.12. varchar

2.9.12.1. max 255 character

2.9.13. year

2.9.13.1. YYYY

2.9.14. · Gráfico

2.9.14.1. ·

2.10. Tabelas

2.10.1. Regras para a criação de boas tabelas

2.10.1.1. 1. Pick your thing, the one thing you want your table to describe. 2. Make a list of the information you need to know about your one thing when you’re using the table. 3. Using the list, break down the information about your thing into pieces you can use for organizing your table.

2.11. Palavras reservadas

2.11.1. »

3. Legenda

3.1. amarelo

3.1.1. conceito

3.2. laranja

3.2.1. dicas

3.3. bordô

3.3.1. avisos

3.4. azul

3.4.1. interessante

3.5. verde

3.5.1. comando SQL

3.6. vermelho

3.6.1. Importante

4. Roteiro

4.1. 1 … Criando Bases de Dados

4.1.1. - criando bases de dados

4.1.2. - apagando bases de dados

4.1.3. - criando suas tabelas

4.1.4. - apagando suas tabelas

4.1.5. - tipo de básicos de dados

4.1.6. - usando bases de dados

4.2. 2 … Inserção de Dados

4.2.1. - Comando SELECT

4.2.2. - Inserindo dados em tabelas

4.2.3. - Inserindo múltiplos dados em tabelas

4.2.4. - Aviso sobre usar aspas na inserção

4.2.4.1. Escape as aspas com uma barra invertida: "Este texto contém \" aspas \ "ou 'Este texto contém \' aspas \ 'nele'

4.2.4.2. Aspas simples e duplas alternativas: "Este texto contém 'aspas' ou 'Este texto contém" aspas "'

4.2.5. - Aviso sobre SQL Warnings

4.2.5.1. SHOW WARNINGS

4.2.6. - valores nulos e não nulos

4.2.6.1. NULL | NOT NULL

4.2.7. - valores padrão

4.2.7.1. DEFAULT

4.2.8. - chave primária

4.2.8.1. Dica

4.2.8.1.1. I - AUTO INCREMMENT

4.2.9. - Restrições(Constraints)

4.3. 3 … Comandos CRUD ( Criar | Ler | Atualizar | Excluir )

4.3.1. Apelidos(aliases)

4.3.1.1. Exemplo

4.3.1.1.1. SELECT cat_id AS id, name FROM cats; SELECT name AS 'cat name', breed AS 'kitty breed' FROM cats; DESC cats;

4.3.2. Ler

4.3.2.1. - SELECT

4.3.2.2. - WHERE

4.3.3. Atualizar

4.3.3.1. - UPDATE

4.3.3.1.1. - SET

4.3.3.1.2. - WHERE

4.3.3.1.3. Exemplos

4.3.4. Deletar

4.3.4.1. - DELETE

4.3.4.2. a chave primária(id) não muda quando se deletam dados

4.3.4.3. Exemplo

4.3.4.3.1. DELETE FROM cats WHERE name='Egg'; SELECT * FROM cats; SELECT * FROM cats WHERE name='egg'; DELETE FROM cats WHERE name='egg'; SELECT * FROM cats; DELETE FROM cats; SELECT * FROM cats WHERE age=4; DELETE FROM cats WHERE age=4; SELECT * FROM cats WHERE age=4; SELECT * FROM cats; SELECT * FROM cats WHERE cat_id=age; DELETE FROM cats WHERE cat_id=age; DELETE FROM cats; SELECT * FROM cats;

4.4. 4 … Funções em Strings

4.4.1. Lendo arquivos

4.4.1.1. - SOURCE

4.4.2. Concatenando arquivos

4.4.2.1. - CONCAT

4.4.2.1.1. SELECT author_fname, author_lname FROM books; CONCAT(x,y,z) // from slides CONCAT(column, anotherColumn) // from slides CONCAT(author_fname, author_lname) CONCAT(column, 'text', anotherColumn, 'more text') CONCAT(author_fname, ' ', author_lname) CONCAT(author_fname, author_lname); // invalid syntax SELECT CONCAT('Hello', 'World'); SELECT CONCAT('Hello', '...', 'World'); SELECT CONCAT(author_fname, ' ', author_lname) FROM books; SELECT CONCAT(author_fname, ' ', author_lname) AS 'full name' FROM books; SELECT author_fname AS first, author_lname AS last, CONCAT(author_fname, ' ', author_lname) AS full FROM books; SELECT author_fname AS first, author_lname AS last, CONCAT(author_fname, ', ', author_lname) AS full FROM books; SELECT CONCAT(title, '-', author_fname, '-', author_lname) FROM books; SELECT CONCAT_WS(' - ', title, author_fname, author_lname) FROM books;

4.4.3. Substrings

4.4.3.1. - SUBSTRING

4.4.3.1.1. SELECT SUBSTRING('Hello World', 1, 4); SELECT SUBSTRING('Hello World', 7); SELECT SUBSTRING('Hello World', 3, 8); SELECT SUBSTRING('Hello World', 3); SELECT SUBSTRING('Hello World', -3); SELECT SUBSTRING('Hello World', -7); SELECT title FROM books; SELECT SUBSTRING("Where I'm Calling From: Selected Stories", 1, 10); SELECT SUBSTRING(title, 1, 10) FROM books; SELECT SUBSTRING(title, 1, 10) AS 'short title' FROM books; SELECT SUBSTR(title, 1, 10) AS 'short title' FROM books; SELECT CONCAT ( SUBSTRING(title, 1, 10), '...' ) FROM books; source book_code.sql SELECT CONCAT ( SUBSTRING(title, 1, 10), '...' ) AS 'short title' FROM books; source book_code.sql

4.4.4. Substituição

4.4.4.1. - REPLACE

4.4.4.1.1. SELECT REPLACE('Hello World', 'Hell', '%$#@'); SELECT REPLACE('Hello World', 'l', '7'); SELECT REPLACE('Hello World', 'o', '0'); SELECT REPLACE('HellO World', 'o', '*'); SELECT REPLACE('cheese bread coffee milk', ' ', ' and '); SELECT REPLACE(title, 'e ', '3') FROM books; -- SELECT -- CONCAT -- ( -- SUBSTRING(title, 1, 10), -- '...' -- ) AS 'short title' -- FROM books; SELECT SUBSTRING(REPLACE(title, 'e', '3'), 1, 10) FROM books; SELECT SUBSTRING(REPLACE(title, 'e', '3'), 1, 10) AS 'weird string' FROM books; Notes: - Use cmd + / (mac) or ctrl + / (pc) to comment out SQL in c9. - The REPLACE() function, as well as the other string functions, only change the query output, they don't affect the actual data in the database.

4.4.5. Inversão

4.4.5.1. - REPLACE

4.4.5.1.1. SELECT REVERSE('Hello World'); SELECT REVERSE('meow meow'); SELECT REVERSE(author_fname) FROM books; SELECT CONCAT('woof', REVERSE('woof')); SELECT CONCAT(author_fname, REVERSE(author_fname)) FROM books;

4.4.6. Tamanho

4.4.6.1. - CHAR_LENGHT

4.4.6.1.1. SELECT CHAR_LENGTH('Hello World'); SELECT author_lname, CHAR_LENGTH(author_lname) AS 'length' FROM books; SELECT CONCAT(author_lname, ' is ', CHAR_LENGTH(author_lname), ' characters long') FROM books; Resource: sql-format.com

4.4.7. Caixa

4.4.7.1. - UPPER/LOWER

4.4.7.1.1. SELECT UPPER('Hello World'); SELECT LOWER('Hello World'); SELECT UPPER(title) FROM books; SELECT CONCAT('MY FAVORITE BOOK IS ', UPPER(title)) FROM books; SELECT CONCAT('MY FAVORITE BOOK IS ', LOWER(title)) FROM books;

4.5. 5 … Refinando as buscas

4.5.1. - DISTINCT

4.5.1.1. SELECT author_lname FROM books; SELECT DISTINCT author_lname FROM books; SELECT author_fname, author_lname FROM books; SELECT DISTINCT CONCAT(author_fname,' ', author_lname) FROM books; SELECT DISTINCT author_fname, author_lname FROM books;

4.5.2. - ORDER BY

4.5.2.1. - DESC

4.5.2.2. - ASC

4.5.2.3. SELECT author_lname FROM books; SELECT author_lname FROM books ORDER BY author_lname; SELECT title FROM books; SELECT title FROM books ORDER BY title; SELECT author_lname FROM books ORDER BY author_lname DESC; SELECT released_year FROM books; SELECT released_year FROM books ORDER BY released_year; SELECT released_year FROM books ORDER BY released_year DESC; SELECT released_year FROM books ORDER BY released_year ASC; SELECT title, released_year, pages FROM books ORDER BY released_year; SELECT title, pages FROM books ORDER BY released_year; SELECT title, author_fname, author_lname FROM books ORDER BY 2; SELECT title, author_fname, author_lname FROM books ORDER BY 3; SELECT title, author_fname, author_lname FROM books ORDER BY 1; SELECT title, author_fname, author_lname FROM books ORDER BY 1 DESC; SELECT author_lname, title FROM books ORDER BY 2; SELECT author_fname, author_lname FROM books ORDER BY author_lname, author_fname;