SlideShare una empresa de Scribd logo
Cheat sheet MySQL
By Daniel Gorena
Correr archivos SQL
SOURCE file_name.sql;
Comandos de inicio
mysql-ctl cli ejecutar el shell interactivo
mysql-ctl start iniciar MySQL
mysql-ctl stop detener MySQL
Manejo de bases de datos
SHOW DATABASES; Lista de DB
DROP DATABASE <tablename>; Borrar DB
USE <DB_name>; Selecciona la DB a usar
CREATE DATABASE <tablename>; Crea una BD
SELECT DATABASE(); Para saber que BD está en uso
Manejo de tablas
SHOW TABLES; muestra las tablas que hay en la BD
SHOW COLUMNS FROM <tablename>; muestra que columnas
tiene la tabla
DESC <tablename>; describe las columnas de la tabla
Create
CREATE TABLE <tablename>(
Col_name1 TIPO_DATO NOT NULL DEFAULT “valor * defecto”,
Col_name2 TIPO_DATO NOT NULL DEFAULT “valor * defecto”,
PRIMARY KEY (col_name)
);
*NOT NULL cuando se quiere dejar sin datos la celda.
*DEFAULT para dejar un valor por defecto si no se
incluye un dato para la celda.
*PRIMARY KEY crea la llave primaria de la tabla.
Read
SELECT*FROM <tablename>; visualiza toda la tabla
SELECT col_name1,col_name2,.. FROM<tablename>; solo
columnas especificadas
SELECT*FROM <tablename> WHERE col_name1=#; seleciona
datos que son iguales al número o dato especificado.
Update (reemplazar/actualizar valores)
UPDATE <tablename> AS colname = “Text” WHERE colname =
“Text”; cambia valores determinados por otros. Se pueden
tomar diferentes columnas.
Delete TENER CUIDADO YA QUE SI SE BORRAN LOS
DATOS NO SE RECUPERAN
DELETE FROM <tablename> WHERE col_name=x; borra datos
coincidentes con la secuencia lógica.
Tipos básicos de datos
Numéricos:
VARCHAR (#de
caracteres)
Una cadena de longitud variable hasta
65535.
CHAR Una variable de caracteres de longitud
fija.
TEXT Para almacenar cadenas de texto de
formato largo como artículos.
TINY
TEXTTINYTEXT
Se utiliza para almacenar cadenas
cortas de información. Almacena hasta
255 caracteres
MEDIUMTEXT Cadenas de texto más grandes como
documentos técnicos. 16MB de inf.
LONGTEXT Cadenas de texto extremadamente largas.
4GB de inf.
BLOB Estas son cadenas binarias que se
tratan como valores numéricos. Imágenes
y videos
Numéricas:
INT Se utiliza para almacenar un valor
entero entre -2147483648 a 2147483647,
o el doble sin signo
SMALLINT Entero pequeño / -32768 a 32767
TINYINT Entero pequeño / de -128 a 127
MEDIUMINT Entero pequeño/ de -8388608 a 8388607
BIGINT Entero grande
rango con signo es -2E63 a 2E63 -1
FLOAT Número de punto flotante de precisión
simple/ -3.402823466E + 38 a -
1.175494351E-38
DOUBLE Número de coma flotante de doble
precisión -1.7976931348623157E + 308 a
-2.2250738585072014E-308
DECIMAL Se utiliza para almacenar un valor
decimal exacto de coma fija. Número
máximo de dígitos es 65, Número máximo
de decimales es 30.
BIT Almacena valores de bits.
Fechas:
DATE Valor de fecha -AAAA-MM-DD
DATETIME Formato AAAA-MM-DD hh: mm: ss.
TIMESTAMP combinación de fecha y hora dentro del
rango 1970-01-01 00:00:00 UTC a 2038-
01-19 03:14:07 UTC, Usa menor espacio.
TIME Devuelve la hora actual.
Funciones de cadena
SELECT SUBSTRING('Hello World', 1, 4); para dividir una
cadena, desde la 1ª letra hasta la 4ª.
CONCAT (col1, “text”, col2); junta diferentes columnas y
cadenas de texto.
CONCAT_WS('text', col1,col2, ...) concatena varias
columnas, y entre ellas pone el mismo texto.
Corta las primeras 10 letras de una columna y le agrega
...
SELECT CONCAT
(SUBSTRING(title, 1, 10),
'...'
)AS 'short title'
FROM books;
SELECT REPLACE(col1, “texto a ser remplazado”, “texto
que reemplazara”); reemplaza partes de cadenas por
otras.
SELECT REVERSE('text'); devuelve el texto al revez.
SELECT CHAR_LENGTH('text');devuelve el numero de letras
de un texto.
SELECT UPPER('Hello World'); cambia texto a mayusculas
SELECT LOWER('Hello World'); cambia texto a minúsculas
Cheat sheet MySQL
By Daniel Gorena
Búsqueda, Selección y Consultas
SELECT DISTINCT col1,col2 FROM <tablename>; Muestra los
datos pero quitando los duplicados
SELECT col1,col2 FROM <tablename> LIMIT #; Muestra un
número limitado de filas. #,# se puede usar un rango
entre dos números.
SELECT col1 FROM <tablename> WHERE col LIKE “%text%”;
busca el texto en algún lugar de la columna col
*% busca cualquier texto antes o después del texto
*”_ _ _” busca un numero determinado de caracteres o
datos
Funciones agregadas
SELECT COUNT col1 FROM <tablename>; Cuenta los datos que
tiene una columna.
SELECT COUNT (DISTINCT col1) FROM <tablename>; Cuenta
los valores distintos que hay.
SELECT col1, col2 FROM <tablename> GROUP BY col1; agrupa
datos repetidos y los muestra como uno solo
SELECT col1,COUNT(*) FROM <tablename> GROUP BY col1;
cuenta el número de cada grupo de valores.
SELECT MIN(col1) FROM <tablename>; Selecciona el valor
mínimo de esa columna.
SELECT MAX(col1) FROM <tablename>; Selecciona el valor
mínimo de esa columna.
SELECT SUM(col) FROM <tablename>; suma de toda una
columna.
SELECT AVG(col) FROM <tablename>; promedio de toda una
columna.
La función HAVING se utiliza para incluir condiciones
con alguna función SQL del tipo SUM, MAX, COUNT
ORDER BY Ordena de menor a mayor o (DESC) viceversa
SubQueries
Devuelve el valor mínimo para compararlo a una columna y
muestra la fila que contenga el valor mínimo de la
columna. Valido también con valores máximos.
SELECT*FROM <tablename>
WHERE col1= (select MIN(col)
FROM <tablename>
);
*son algo más lentos que un query normal.
Min y Max junto con GROUP BY
Devuelve el mínimo de cada valor agrupado
SELECT
Col1,col2,
MIN(col3)
FROM <tablename>
GROUP BY col1,col2;
Funciones de tiempo
ADDDATE() Agrega valores de tiempo (intervalos) a
un valor de fecha
DATE_ADD() Agrega valores de tiempo (intervalos) a
un valor de fecha
DAY() Sinónimo de DAYOFMONTH()
DAYNAME() Devuelve el nombre del día de la semana
DAYOFMONTH() Devuelve el día del mes (0-31)
DAYOFWEEK() Devuelve el índice de días de la semana
del argumento
DAYOFYEAR() Devuelve el día del año (1-366)
NOW() Devuelve la fecha y hora actual
TIME() Extrae la parte de tiempo de la
expresión pasada
Formato de la fecha
DATE_FORMAT(fecha, “formato”); Devuelve la fecha con un
formato determinado.El formato debe ir especificado
entre comillas ej “%D %M %H”
%D Day of the month with English suffix
(0th, 1st, 2nd, 3rd, …)
%d Day of the month, numeric (00..31)
%H Hour (00..23)
%h Hour (01..12)
%i Minutes, numeric (00..59)
%M Month name (January..December)
%m Month, numeric (00..12)
%p AM or PM
%r Time, 12-hour (hh:mm:ss followed
by AM or PM)
%S Seconds (00..59)
%s Seconds (00..59)
%T Time, 24-hour (hh:mm:ss)
%W Weekday name (Sunday..Saturday)
%w Day of the week (0=Sunday..6=Saturday)
%Y Year, numeric, four digits
%y Year, numeric (two digits)
%% A literal % character
Operadores lógicos
AND, && Y
NOT, ! No
OR, || O
XOR Xor
Comparadores
> Mayor que
>= Mayor igual
< Menor que
<= Menor igual
<>, != Diferente de
= Igual
BETWEEN Vmin AND Vmax Valor entre
IN() Dentro del conjunto
NOT IN() Fuera del conjunto
Flujos de control
WHEN
Se usa para varios casos y acciones, no solo se
reemplaza con texto, pueden ser funciones también o
declaraciones
CASE
WHEN condición THEN “Texto”
WHEN condición_2 THEN “Texto” ...
ELSE “Texto”
END AS col
IF
En vez de texto se pueden poner funciones o
declaraciones.
IF condición THEN “Texto”
ELSEIF condición_2 THEN “Texto”...
ELSE “Texto”
END IF
WHILE
[begin_label:] WHILE condición DO
declaraciones
END WHILE [end_label]
Cheat sheet MySQL
By Daniel Gorena
Tablas relacionales
CREATE TABLE table_1(
id INT AUTO_INCREMENT PRIMARY KEY,
col_1 VARCHAR(100),
col_2 VARCHAR(100)
);
CREATE TABLE table_2(
id INT AUTO_INCREMENT PRIMARY KEY,
col_1 DATE,
table_1_id INT,
FOREIGN KEY(table_1_id) REFERENCES table_1(id)
ON DELETE CASCADE
);
Sentencias JOIN
Se usan para usar datos de dos tablas
Combinación interna (INNER JOIN)
Forma explícita
SELECT *
FROM empleado
INNER JOIN departamento
ON empleado.IDDepartamento
= departamento.IDDepartamento
Forma implícita
SELECT *
FROM empleado, departamento
WHERE empleado.IDDepartamento =
departamento.IDDepartamento
LEFT JOIN
SELECT *
FROM empleado
LEFT OUTER JOIN departamento
ON empleado.IDDepartamento
= departamento.IDDepartamento
LEFT JOIN excluyendo la intersección
SELECT *
FROM empleado
LEFT OUTER JOIN departamento
ON empleado.IDDepartamento =
departamento.IDDepartamento
WHERE departamento.IDDepartamento IS NULL
RIGHT OUTER JOIN o RIGHT JOIN
SELECT *
FROM empleado
RIGHT OUTER JOIN departamento
ON empleado.IDDepartamento =
departamento.IDDepartamento
Combinación completa (FULL OUTER JOIN)
SELECT *
FROM empleado
FULL OUTER JOIN departamento
ON empleado.IDDepartamento =
departamento.IDDepartamento
Conección entre JS Y MySQL (NODE)
Paso 1 instalar node
Install node
Paso 2 istalar interfase de mysql
npm install mysql
paso 3 Código para crear una aplicación en JS
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root', // your root username
database : 'join_us' // the name of your db
});
var q = 'SELECT CURTIME() as time, CURDATE() as date,
NOW() as now';
connection.query(q, function (error, results, fields) {
if (error) throw error;
console.log(results[0].time);
console.log(results[0].date);
console.log(results[0].now);
});
Paso 4 correr el archive js
node nombre_archivo.js
extra, código para imprimir en pantalla en js
console.log(“hola mundo”)
Activadores(triggers)
Se “disparan” cuando algo pasa con las bases de datos.
CREATE TRIGGER trigger_name
trigger_time trigger_event ON table_name FOR EACH ROW
BEGIN
...
END;
trigger_time trigger_event ON table_name
BEFORE INSERT photos
AFTER UPDATE users
DELETE

Más contenido relacionado

Similar a Cheat_MySQL.docx

CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQL
alexmerono
 
Comandos mysql
Comandos mysqlComandos mysql
Comandos mysql
Martin Soria
 
Material Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datos
liras loca
 
Sesión 4
Sesión 4Sesión 4
Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
Salvador Fernández Fernández
 
SQL.docx
SQL.docxSQL.docx
SQL.docx
Patricia Castro
 
Sql básico - compendio
Sql básico  - compendioSql básico  - compendio
Sql básico - compendio
Jose Diaz Silva
 
Portafolio 1 sql
Portafolio 1 sqlPortafolio 1 sql
Portafolio 1 sql
JuanKMillos
 
SENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVERSENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVER
DeysiDelgadoSeclen
 
Combinaciones avanzadas
Combinaciones avanzadasCombinaciones avanzadas
Combinaciones avanzadasShadai Black
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizBolivar Castillo
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
Adriana Escobar
 
comandos-mysql.pdf
comandos-mysql.pdfcomandos-mysql.pdf
comandos-mysql.pdf
GustavoRojasValdivia2
 
Comandos en consola de mysql desde el portal
Comandos en consola de mysql desde el portalComandos en consola de mysql desde el portal
Comandos en consola de mysql desde el portal
eavila5
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
José Toro
 
Sql ddl
Sql ddlSql ddl
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
JeanCarlosLozanoHern
 

Similar a Cheat_MySQL.docx (20)

CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQL
 
Comandos mysql
Comandos mysqlComandos mysql
Comandos mysql
 
Material Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datos
 
Sesión 4
Sesión 4Sesión 4
Sesión 4
 
Charla Mysql
Charla MysqlCharla Mysql
Charla Mysql
 
Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
 
Sql presentacion
Sql presentacionSql presentacion
Sql presentacion
 
SQL.docx
SQL.docxSQL.docx
SQL.docx
 
Sql básico - compendio
Sql básico  - compendioSql básico  - compendio
Sql básico - compendio
 
Portafolio 1 sql
Portafolio 1 sqlPortafolio 1 sql
Portafolio 1 sql
 
SENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVERSENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVER
 
Combinaciones avanzadas
Combinaciones avanzadasCombinaciones avanzadas
Combinaciones avanzadas
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
 
comandos-mysql.pdf
comandos-mysql.pdfcomandos-mysql.pdf
comandos-mysql.pdf
 
Comandos en consola de mysql desde el portal
Comandos en consola de mysql desde el portalComandos en consola de mysql desde el portal
Comandos en consola de mysql desde el portal
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
 
Mysql
MysqlMysql
Mysql
 
Sql ddl
Sql ddlSql ddl
Sql ddl
 
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
 

Último

Estructuras b-sicas_ conceptos b-sicos de programaci-n.pdf
Estructuras b-sicas_  conceptos b-sicos de programaci-n.pdfEstructuras b-sicas_  conceptos b-sicos de programaci-n.pdf
Estructuras b-sicas_ conceptos b-sicos de programaci-n.pdf
edepjuanorozco
 
EXPERIENCIA PROYECTOS STARTUP JAVIER LASA
EXPERIENCIA PROYECTOS STARTUP JAVIER LASAEXPERIENCIA PROYECTOS STARTUP JAVIER LASA
EXPERIENCIA PROYECTOS STARTUP JAVIER LASA
Javier Lasa
 
Los derechos de autor y Ética Profesional
Los derechos de autor y Ética ProfesionalLos derechos de autor y Ética Profesional
Los derechos de autor y Ética Profesional
bgonzalezm20
 
fase 4-Estudio de la geometria analitica[1].pptx
fase 4-Estudio de la geometria analitica[1].pptxfase 4-Estudio de la geometria analitica[1].pptx
fase 4-Estudio de la geometria analitica[1].pptx
QuerubinOlayamedina
 
WordPress training basics - básicos de cómo enseñar WordPress
WordPress training basics - básicos de cómo enseñar WordPressWordPress training basics - básicos de cómo enseñar WordPress
WordPress training basics - básicos de cómo enseñar WordPress
Fernando Tellado
 
EduLearnIAappde IAparatodosdisponible.pptx
EduLearnIAappde IAparatodosdisponible.pptxEduLearnIAappde IAparatodosdisponible.pptx
EduLearnIAappde IAparatodosdisponible.pptx
Elizabeth Mejia
 
Clases de Informática primaria para niños de colegios católicos
Clases de Informática primaria para niños de colegios católicosClases de Informática primaria para niños de colegios católicos
Clases de Informática primaria para niños de colegios católicos
mcavero2019
 
blog.pdf de coceptos de personalidad....
blog.pdf de coceptos de personalidad....blog.pdf de coceptos de personalidad....
blog.pdf de coceptos de personalidad....
JosvilAngel
 
ayuda en egresos exposición aps 1 grupal
ayuda en egresos exposición aps 1 grupalayuda en egresos exposición aps 1 grupal
ayuda en egresos exposición aps 1 grupal
jesusmedina766305
 
Presentación Arduino, proyecto colectivo
Presentación Arduino, proyecto colectivoPresentación Arduino, proyecto colectivo
Presentación Arduino, proyecto colectivo
juanlemus11122
 
Sistemas-de-Numeración-para-Primero-de-Secundaria.doc
Sistemas-de-Numeración-para-Primero-de-Secundaria.docSistemas-de-Numeración-para-Primero-de-Secundaria.doc
Sistemas-de-Numeración-para-Primero-de-Secundaria.doc
LuisEnriqueCarboneDe
 
FISICA IMPRIMIR MATERIAL ACADEMICO NIVEL SECUNDARIO
FISICA IMPRIMIR MATERIAL ACADEMICO NIVEL SECUNDARIOFISICA IMPRIMIR MATERIAL ACADEMICO NIVEL SECUNDARIO
FISICA IMPRIMIR MATERIAL ACADEMICO NIVEL SECUNDARIO
DarwinNestorArapaQui
 
estrategias de aprendizaje con ejemplos
estrategias de aprendizaje  con ejemplosestrategias de aprendizaje  con ejemplos
estrategias de aprendizaje con ejemplos
MarilinPaladines
 

Último (13)

Estructuras b-sicas_ conceptos b-sicos de programaci-n.pdf
Estructuras b-sicas_  conceptos b-sicos de programaci-n.pdfEstructuras b-sicas_  conceptos b-sicos de programaci-n.pdf
Estructuras b-sicas_ conceptos b-sicos de programaci-n.pdf
 
EXPERIENCIA PROYECTOS STARTUP JAVIER LASA
EXPERIENCIA PROYECTOS STARTUP JAVIER LASAEXPERIENCIA PROYECTOS STARTUP JAVIER LASA
EXPERIENCIA PROYECTOS STARTUP JAVIER LASA
 
Los derechos de autor y Ética Profesional
Los derechos de autor y Ética ProfesionalLos derechos de autor y Ética Profesional
Los derechos de autor y Ética Profesional
 
fase 4-Estudio de la geometria analitica[1].pptx
fase 4-Estudio de la geometria analitica[1].pptxfase 4-Estudio de la geometria analitica[1].pptx
fase 4-Estudio de la geometria analitica[1].pptx
 
WordPress training basics - básicos de cómo enseñar WordPress
WordPress training basics - básicos de cómo enseñar WordPressWordPress training basics - básicos de cómo enseñar WordPress
WordPress training basics - básicos de cómo enseñar WordPress
 
EduLearnIAappde IAparatodosdisponible.pptx
EduLearnIAappde IAparatodosdisponible.pptxEduLearnIAappde IAparatodosdisponible.pptx
EduLearnIAappde IAparatodosdisponible.pptx
 
Clases de Informática primaria para niños de colegios católicos
Clases de Informática primaria para niños de colegios católicosClases de Informática primaria para niños de colegios católicos
Clases de Informática primaria para niños de colegios católicos
 
blog.pdf de coceptos de personalidad....
blog.pdf de coceptos de personalidad....blog.pdf de coceptos de personalidad....
blog.pdf de coceptos de personalidad....
 
ayuda en egresos exposición aps 1 grupal
ayuda en egresos exposición aps 1 grupalayuda en egresos exposición aps 1 grupal
ayuda en egresos exposición aps 1 grupal
 
Presentación Arduino, proyecto colectivo
Presentación Arduino, proyecto colectivoPresentación Arduino, proyecto colectivo
Presentación Arduino, proyecto colectivo
 
Sistemas-de-Numeración-para-Primero-de-Secundaria.doc
Sistemas-de-Numeración-para-Primero-de-Secundaria.docSistemas-de-Numeración-para-Primero-de-Secundaria.doc
Sistemas-de-Numeración-para-Primero-de-Secundaria.doc
 
FISICA IMPRIMIR MATERIAL ACADEMICO NIVEL SECUNDARIO
FISICA IMPRIMIR MATERIAL ACADEMICO NIVEL SECUNDARIOFISICA IMPRIMIR MATERIAL ACADEMICO NIVEL SECUNDARIO
FISICA IMPRIMIR MATERIAL ACADEMICO NIVEL SECUNDARIO
 
estrategias de aprendizaje con ejemplos
estrategias de aprendizaje  con ejemplosestrategias de aprendizaje  con ejemplos
estrategias de aprendizaje con ejemplos
 

Cheat_MySQL.docx

  • 1. Cheat sheet MySQL By Daniel Gorena Correr archivos SQL SOURCE file_name.sql; Comandos de inicio mysql-ctl cli ejecutar el shell interactivo mysql-ctl start iniciar MySQL mysql-ctl stop detener MySQL Manejo de bases de datos SHOW DATABASES; Lista de DB DROP DATABASE <tablename>; Borrar DB USE <DB_name>; Selecciona la DB a usar CREATE DATABASE <tablename>; Crea una BD SELECT DATABASE(); Para saber que BD está en uso Manejo de tablas SHOW TABLES; muestra las tablas que hay en la BD SHOW COLUMNS FROM <tablename>; muestra que columnas tiene la tabla DESC <tablename>; describe las columnas de la tabla Create CREATE TABLE <tablename>( Col_name1 TIPO_DATO NOT NULL DEFAULT “valor * defecto”, Col_name2 TIPO_DATO NOT NULL DEFAULT “valor * defecto”, PRIMARY KEY (col_name) ); *NOT NULL cuando se quiere dejar sin datos la celda. *DEFAULT para dejar un valor por defecto si no se incluye un dato para la celda. *PRIMARY KEY crea la llave primaria de la tabla. Read SELECT*FROM <tablename>; visualiza toda la tabla SELECT col_name1,col_name2,.. FROM<tablename>; solo columnas especificadas SELECT*FROM <tablename> WHERE col_name1=#; seleciona datos que son iguales al número o dato especificado. Update (reemplazar/actualizar valores) UPDATE <tablename> AS colname = “Text” WHERE colname = “Text”; cambia valores determinados por otros. Se pueden tomar diferentes columnas. Delete TENER CUIDADO YA QUE SI SE BORRAN LOS DATOS NO SE RECUPERAN DELETE FROM <tablename> WHERE col_name=x; borra datos coincidentes con la secuencia lógica. Tipos básicos de datos Numéricos: VARCHAR (#de caracteres) Una cadena de longitud variable hasta 65535. CHAR Una variable de caracteres de longitud fija. TEXT Para almacenar cadenas de texto de formato largo como artículos. TINY TEXTTINYTEXT Se utiliza para almacenar cadenas cortas de información. Almacena hasta 255 caracteres MEDIUMTEXT Cadenas de texto más grandes como documentos técnicos. 16MB de inf. LONGTEXT Cadenas de texto extremadamente largas. 4GB de inf. BLOB Estas son cadenas binarias que se tratan como valores numéricos. Imágenes y videos Numéricas: INT Se utiliza para almacenar un valor entero entre -2147483648 a 2147483647, o el doble sin signo SMALLINT Entero pequeño / -32768 a 32767 TINYINT Entero pequeño / de -128 a 127 MEDIUMINT Entero pequeño/ de -8388608 a 8388607 BIGINT Entero grande rango con signo es -2E63 a 2E63 -1 FLOAT Número de punto flotante de precisión simple/ -3.402823466E + 38 a - 1.175494351E-38 DOUBLE Número de coma flotante de doble precisión -1.7976931348623157E + 308 a -2.2250738585072014E-308 DECIMAL Se utiliza para almacenar un valor decimal exacto de coma fija. Número máximo de dígitos es 65, Número máximo de decimales es 30. BIT Almacena valores de bits. Fechas: DATE Valor de fecha -AAAA-MM-DD DATETIME Formato AAAA-MM-DD hh: mm: ss. TIMESTAMP combinación de fecha y hora dentro del rango 1970-01-01 00:00:00 UTC a 2038- 01-19 03:14:07 UTC, Usa menor espacio. TIME Devuelve la hora actual. Funciones de cadena SELECT SUBSTRING('Hello World', 1, 4); para dividir una cadena, desde la 1ª letra hasta la 4ª. CONCAT (col1, “text”, col2); junta diferentes columnas y cadenas de texto. CONCAT_WS('text', col1,col2, ...) concatena varias columnas, y entre ellas pone el mismo texto. Corta las primeras 10 letras de una columna y le agrega ... SELECT CONCAT (SUBSTRING(title, 1, 10), '...' )AS 'short title' FROM books; SELECT REPLACE(col1, “texto a ser remplazado”, “texto que reemplazara”); reemplaza partes de cadenas por otras. SELECT REVERSE('text'); devuelve el texto al revez. SELECT CHAR_LENGTH('text');devuelve el numero de letras de un texto. SELECT UPPER('Hello World'); cambia texto a mayusculas SELECT LOWER('Hello World'); cambia texto a minúsculas
  • 2. Cheat sheet MySQL By Daniel Gorena Búsqueda, Selección y Consultas SELECT DISTINCT col1,col2 FROM <tablename>; Muestra los datos pero quitando los duplicados SELECT col1,col2 FROM <tablename> LIMIT #; Muestra un número limitado de filas. #,# se puede usar un rango entre dos números. SELECT col1 FROM <tablename> WHERE col LIKE “%text%”; busca el texto en algún lugar de la columna col *% busca cualquier texto antes o después del texto *”_ _ _” busca un numero determinado de caracteres o datos Funciones agregadas SELECT COUNT col1 FROM <tablename>; Cuenta los datos que tiene una columna. SELECT COUNT (DISTINCT col1) FROM <tablename>; Cuenta los valores distintos que hay. SELECT col1, col2 FROM <tablename> GROUP BY col1; agrupa datos repetidos y los muestra como uno solo SELECT col1,COUNT(*) FROM <tablename> GROUP BY col1; cuenta el número de cada grupo de valores. SELECT MIN(col1) FROM <tablename>; Selecciona el valor mínimo de esa columna. SELECT MAX(col1) FROM <tablename>; Selecciona el valor mínimo de esa columna. SELECT SUM(col) FROM <tablename>; suma de toda una columna. SELECT AVG(col) FROM <tablename>; promedio de toda una columna. La función HAVING se utiliza para incluir condiciones con alguna función SQL del tipo SUM, MAX, COUNT ORDER BY Ordena de menor a mayor o (DESC) viceversa SubQueries Devuelve el valor mínimo para compararlo a una columna y muestra la fila que contenga el valor mínimo de la columna. Valido también con valores máximos. SELECT*FROM <tablename> WHERE col1= (select MIN(col) FROM <tablename> ); *son algo más lentos que un query normal. Min y Max junto con GROUP BY Devuelve el mínimo de cada valor agrupado SELECT Col1,col2, MIN(col3) FROM <tablename> GROUP BY col1,col2; Funciones de tiempo ADDDATE() Agrega valores de tiempo (intervalos) a un valor de fecha DATE_ADD() Agrega valores de tiempo (intervalos) a un valor de fecha DAY() Sinónimo de DAYOFMONTH() DAYNAME() Devuelve el nombre del día de la semana DAYOFMONTH() Devuelve el día del mes (0-31) DAYOFWEEK() Devuelve el índice de días de la semana del argumento DAYOFYEAR() Devuelve el día del año (1-366) NOW() Devuelve la fecha y hora actual TIME() Extrae la parte de tiempo de la expresión pasada Formato de la fecha DATE_FORMAT(fecha, “formato”); Devuelve la fecha con un formato determinado.El formato debe ir especificado entre comillas ej “%D %M %H” %D Day of the month with English suffix (0th, 1st, 2nd, 3rd, …) %d Day of the month, numeric (00..31) %H Hour (00..23) %h Hour (01..12) %i Minutes, numeric (00..59) %M Month name (January..December) %m Month, numeric (00..12) %p AM or PM %r Time, 12-hour (hh:mm:ss followed by AM or PM) %S Seconds (00..59) %s Seconds (00..59) %T Time, 24-hour (hh:mm:ss) %W Weekday name (Sunday..Saturday) %w Day of the week (0=Sunday..6=Saturday) %Y Year, numeric, four digits %y Year, numeric (two digits) %% A literal % character Operadores lógicos AND, && Y NOT, ! No OR, || O XOR Xor Comparadores > Mayor que >= Mayor igual < Menor que <= Menor igual <>, != Diferente de = Igual BETWEEN Vmin AND Vmax Valor entre IN() Dentro del conjunto NOT IN() Fuera del conjunto Flujos de control WHEN Se usa para varios casos y acciones, no solo se reemplaza con texto, pueden ser funciones también o declaraciones CASE WHEN condición THEN “Texto” WHEN condición_2 THEN “Texto” ... ELSE “Texto” END AS col IF En vez de texto se pueden poner funciones o declaraciones. IF condición THEN “Texto” ELSEIF condición_2 THEN “Texto”... ELSE “Texto” END IF WHILE [begin_label:] WHILE condición DO declaraciones END WHILE [end_label]
  • 3. Cheat sheet MySQL By Daniel Gorena Tablas relacionales CREATE TABLE table_1( id INT AUTO_INCREMENT PRIMARY KEY, col_1 VARCHAR(100), col_2 VARCHAR(100) ); CREATE TABLE table_2( id INT AUTO_INCREMENT PRIMARY KEY, col_1 DATE, table_1_id INT, FOREIGN KEY(table_1_id) REFERENCES table_1(id) ON DELETE CASCADE ); Sentencias JOIN Se usan para usar datos de dos tablas Combinación interna (INNER JOIN) Forma explícita SELECT * FROM empleado INNER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento Forma implícita SELECT * FROM empleado, departamento WHERE empleado.IDDepartamento = departamento.IDDepartamento LEFT JOIN SELECT * FROM empleado LEFT OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento LEFT JOIN excluyendo la intersección SELECT * FROM empleado LEFT OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento WHERE departamento.IDDepartamento IS NULL RIGHT OUTER JOIN o RIGHT JOIN SELECT * FROM empleado RIGHT OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento Combinación completa (FULL OUTER JOIN) SELECT * FROM empleado FULL OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento Conección entre JS Y MySQL (NODE) Paso 1 instalar node Install node Paso 2 istalar interfase de mysql npm install mysql paso 3 Código para crear una aplicación en JS var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'root', // your root username database : 'join_us' // the name of your db }); var q = 'SELECT CURTIME() as time, CURDATE() as date, NOW() as now'; connection.query(q, function (error, results, fields) { if (error) throw error; console.log(results[0].time); console.log(results[0].date); console.log(results[0].now); }); Paso 4 correr el archive js node nombre_archivo.js extra, código para imprimir en pantalla en js console.log(“hola mundo”) Activadores(triggers) Se “disparan” cuando algo pasa con las bases de datos. CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW BEGIN ... END; trigger_time trigger_event ON table_name BEFORE INSERT photos AFTER UPDATE users DELETE