/* Os tipos de dados em bancos de dados ajudam a definir que tipo de informação será armazenada nas tabelas e garantem eficiência e precisão nas operações. Aqui está uma explicação detalhada dos principais tipos de dados usados em sistemas de banco de dados: 1. Tipos de Dados Numéricos Usados para armazenar valores numéricos que podem ser inteiros, decimais ou reais. -INTEGER ou INT: Armazena números inteiros sem casas decimais (ex.: 1, 42, -100). -SMALLINT: Similar a INTEGER, mas com valores menores, ideal para economizar espaço. -BIGINT: Para armazenar números inteiros muito grandes. -DECIMAL ou NUMERIC: Permite armazenar números com casas decimais precisas (ex.: 10.45, 300.99). Você pode definir a quantidade de dígitos (ex.: DECIMAL(5,2) onde 5 é o total de dígitos e 2 é o número após o ponto decimal). -FLOAT ou DOUBLE: Armazena números reais aproximados com casas decimais, usado quando precisão não é prioridade (ex.: 3.14159). ---------------------------------------------------------------------------------------------------------------------------- 2. Tipos de Dados de Texto Armazenam strings, como palavras ou frases. -CHAR(n): Armazena uma cadeia de caracteres de tamanho fixo. Por exemplo, CHAR(5) sempre ocupa 5 caracteres, mesmo que a string seja menor. -VARCHAR(n): Armazena cadeias de caracteres de tamanho variável (ex.: VARCHAR(100) armazena até 100 caracteres, sem ocupar espaço adicional para strings menores). -TEXT: Usado para armazenar textos longos como descrições ou artigos (ex.: comentários, biografias). ---------------------------------------------------------------------------------------------------------------------------- 3. Tipos de Dados de Data e Hora Usados para armazenar informações sobre datas, horas ou ambos. -DATE: Armazena apenas a data no formato YYYY-MM-DD (ex.: 2025-04-14). -TIME: Armazena apenas o horário no formato HH:MM:SS (ex.: 10:17:45). -DATETIME: Combina data e hora no formato YYYY-MM-DD HH:MM:SS (ex.: 2025-04-14 10:17:45). -TIMESTAMP: Similar ao DATETIME, mas com suporte a fusos horários. Muito usado para registrar eventos. -YEAR: Armazena apenas o ano no formato YYYY (ex.: 2025). ---------------------------------------------------------------------------------------------------------------------------- 4. Tipos de Dados Booleanos Representam valores verdadeiros ou falsos. -BOOLEAN ou BOOL: Armazena valores lógicos como TRUE ou FALSE. ---------------------------------------------------------------------------------------------------------------------------- 5. Tipos de Dados Binários Usados para armazenar dados em formato binário, como arquivos ou imagens. -BLOB: Armazena objetos binários grandes (Binary Large Object), usado para guardar arquivos como imagens, vídeos ou PDFs. ---------------------------------------------------------------------------------------------------------------------------- 6. Tipos Especiais Tipos específicos para necessidades particulares. -ENUM: Permite criar uma lista fixa de valores possíveis para uma coluna (ex.: ENUM('ativo', 'inativo')). -SET: Similar ao ENUM, mas permite que a coluna armazene vários valores ao mesmo tempo (ex.: SET('math', 'science', 'history')). -JSON: Usado para armazenar dados no formato JSON, ideal para aplicações modernas. ---------------------------------------------------------------------------------------------------------------------------- Exemplos Práticos -Escolhendo o Tipo Certo: Se você precisa armazenar nomes de usuários, use VARCHAR(50). Para a data de cadastro, escolha DATE. -Otimizando Dados: Utilize INTEGER para IDs e DECIMAL para valores monetários. TEXT é uma boa escolha para descrições longas. ---------------------------------------------------------------------------------------------------------------------------- */ -- Criação da tabela USUARIO para armazenar informações sobre os usuários da rede social. CREATE TABLE USUARIO ( id INT PRIMARY KEY, -- Identificador único de cada usuário. nome TEXT NOT NULL, -- Nome do usuário. email TEXT, -- Email único do usuário. senha TEXT NOT NULL -- Senha do usuário. ); -- Criação da tabela POSTAGEM para armazenar informações sobre as postagens feitas pelos usuários. CREATE TABLE POSTAGEM ( id INTEGER PRIMARY KEY, -- Identificador único de cada postagem. id_usuario INTEGER NOT NULL, -- ID do usuário que fez a postagem. conteudo TEXT NOT NULL, -- Conteúdo da postagem. data_postagem DATE NOT NULL -- Data da postagem. ); INSERT INTO USUARIO VALUES (1, 'Ana Silva', '[email protected]', 'senha123'); INSERT INTO USUARIO VALUES (2, 'Carlos Pereira', '[email protected]', 'seguro456'); INSERT INTO USUARIO VALUES (3, 'Mariana Costa', '[email protected]', 'confidencial789'); INSERT INTO USUARIO VALUES (4, 'João Almeida', '[email protected]', 'seguro999'); INSERT INTO USUARIO VALUES (5, 'Fernanda Lima', '[email protected]', 'senha789'); INSERT INTO USUARIO VALUES (6, 'Carlos Pereira', '[email protected]', 'seguro456'), (7, 'Mariana Costa', '[email protected]', 'confidencial789'); INSERT INTO POSTAGEM VALUES (1, 1, 'Adoro programação!', '2025-04-01'); INSERT INTO POSTAGEM VALUES (2, 2, 'SQL é muito útil!', '2025-04-02'); INSERT INTO POSTAGEM VALUES (3, 3, 'Hoje aprendi sobre tabelas!', '2025-04-03'); INSERT INTO POSTAGEM VALUES (4, 4, 'Acabei de criar meu perfil na rede!', '2025-04-15'); INSERT INTO POSTAGEM VALUES (5, 5, 'Explorando novas funcionalidades.', '2025-04-16'); -- Adicionar uma coluna de número de telefone na tabela USUARIO ALTER TABLE USUARIO ADD telefone TEXT; -- Adicionar uma coluna para indicar curtidas na tabela POSTAGEM ALTER TABLE POSTAGEM ADD curtidas INTEGER DEFAULT 0; -- Renomear a coluna 'senha' da tabela USUARIO para 'password' ALTER TABLE USUARIO RENAME COLUMN senha TO password; -- Renomear a coluna 'conteudo' da tabela POSTAGEM para 'mensagem' ALTER TABLE POSTAGEM RENAME COLUMN conteudo TO mensagem; -- Atualizar o número de telefone de Carlos na tabela USUARIO UPDATE USUARIO SET telefone = '(11) 98765-4321' WHERE id = 2; -- Atualizar o número de curtidas em uma postagem específica UPDATE POSTAGEM SET curtidas = 5 WHERE id = 1; -- Remover a coluna 'telefone' da tabela USUARIO ALTER TABLE USUARIO DROP COLUMN telefone; -- Remover a coluna 'curtidas' da tabela POSTAGEM ALTER TABLE POSTAGEM DROP COLUMN curtidas; -- Alterar o tipo de dado da coluna 'email' na tabela USUARIO para aumentar o tamanho do campo ALTER TABLE USUARIO MODIFY email VARCHAR(255); SELECT * FROM USUARIO; SELECT * FROM POSTAGEM;
Write, Run & Share MySQL queries online using OneCompiler's MySQL online editor and compiler for free. It's one of the robust, feature-rich online editor and compiler for MySQL. Getting started with the OneCompiler's MySQL editor is really simple and pretty fast. The editor shows sample boilerplate code when you choose language as 'MySQL' and start writing queries to learn and test online without worrying about tedious process of installation.
MySQL is a open-source, free and very popular relational database management system which is developed, distributed and supported by Oracle corporation.
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
....);
CREATE TABLE EMPLOYEE (
empId INTEGER PRIMARY KEY,
name TEXT NOT NULL,
dept TEXT NOT NULL
);
ALTER TABLE Table_name ADD column_name datatype;
INSERT INTO EMPLOYEE VALUES (0001, 'Dave', 'Sales');
TRUNCATE table table_name;
DROP TABLE table_name;
RENAME TABLE table_name1 to new_table_name1;
--Line1;
/* Line1,
Line2 */
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
Note: Column names are optional.
INSERT INTO EMPLOYEE VALUES (0001, 'Ava', 'Sales');
SELECT column1, column2, ...
FROM table_name
[where condition];
SELECT * FROM EMPLOYEE where dept ='sales';
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
UPDATE EMPLOYEE SET dept = 'Sales' WHERE empId='0001';
DELETE FROM table_name where condition;
DELETE from EMPLOYEE where empId='0001';
CREATE INDEX index_name on table_name(column_name);
CREATE UNIQUE INDEX index_name on table_name(column_name);
DROP INDEX index_name ON table_name;
Creating a View:
CREATE VIEW View_name AS
Query;
SELECT * FROM View_name;
ALTER View View_name AS
Query;
DROP VIEW View_name;
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW [trigger_order] trigger_body
/* where
trigger_time: { BEFORE | AFTER }
trigger_event: { INSERT | UPDATE | DELETE }
trigger_order: { FOLLOWS | PRECEDES } */
DROP TRIGGER [IF EXISTS] trigger_name;
CREATE PROCEDURE sp_name(p1 datatype)
BEGIN
/*Stored procedure code*/
END;
CALL sp_name;
DROP PROCEDURE sp_name;
SELECT * FROM TABLE1 INNER JOIN TABLE2 where condition;
SELECT * FROM TABLE1 LEFT JOIN TABLE2 ON condition;
SELECT * FROM TABLE1 RIGHT JOIN TABLE2 ON condition;
SELECT select_list from TABLE1 CROSS JOIN TABLE2;