Вы находитесь на странице: 1из 10

MANUAL SQL

CREAR BASE DE DATOS


CREATE DATABASE nombreDatabase;

CREAR TABLA
CREATE TABLE nombreTabla(
campo1 VARCHAR(50),
campo2 VARCHAR (50),
codigo INT
);

Crea tabla solo si no existe


CREATE TABLE IF NOT EXISTS nombre_tabla(campos);

VER ESTRUCTURA DE TABLA

Muestra los nombres y la informacin de cada uno de los campos de la tabla


DESC nombreTabla
INSERTAR (INSERT INTO)
La sentencia INSERT INTO se utiliza para insertar nuevas filas en una tabla.

Insertar datos especificando campos y valores


INSERT INTO nombreTabla (campo1, campo2,codigo) VALUES (valor1,valor2,0001);

Insertar datos a toda la tabla de forma consecutiva, no es necesario especificar columnas


INSERT INTO nombreTabla VALUES (valor1,valor2,0001);

IMPORTAR

My Sql
Importar un archivo csv delimitado por comas a una base de datos existente con la misma cantidad de
columnas, el archivo deber estar en la carpeta mysql/nombreBaseDeDatos.
LOAD DATA INFILE 'importar.csv' INTO TABLE nombreTabla FIELDS TERMINATED BY ','
ENCLOSED BY '"' LINES TERMINATED BY '\r\n';

PostgreSql
Importar un archivo csv delimitado por comas a una base de datos existente con la misma cantidad de
columnas, primero cambiamos la extensin del archivo a .txt el archivo deber estar en la carpeta
PostgreSQL\9.3\data.
COPY nombreTabla FROM 'importar.txt' USING DELIMITERS ','

MODIFICAR (ALTER)
La sentencia SQL ALTER se utiliza para aadir, eliminar o modificar columnas de una tabla.

Tabla
o Renombrar tabla
MySql
ALTER TABLE nombreTabla RENAME otroNombre;

PostgreSql

ALTER TABLE nombreTabla RENAME TO otroNombre;

Agregar columna
MySql
ALTER TABLE nombreTabla ADD COLUMN (nuevoCampo VARCHAR (30));

PostgreSql, MySql
ALTER TABLE nombreTabla ADD nuevoCampo VARCHAR (30);

Columna
o Modifica nombre, tipo_dato, restriccin de una columna (MySql)
ALTER TABLE nombreTabla
CHANGE nombreColumna newNombreColumna varchar(10) NOT NULL

Modifica tipo, dato y restriccin de una columna sin renombrarla(MySql)


ALTER TABLE nombreTabla MODIFY nombreColumna

BIGINT NOT NULL;

ELIMINAR (DELETE, DROP, TRUNCATE)

Delete
Borra una serie de filas de la tabla. Podemos usar una clasula WHERE para limitar las filas a borrar, a las que
cumplan una condicin.
o

Borrar datos tabla


DELETE* FROM nombreTabla

Borrar datos tabla, condicionado


DELETE FROM nombreTabla WHERE nombreTabla = valor

Drop
La sentencia DROP se utiliza para borrar definitivamente un ndice, tabla o base de datos.
o

Borrar tabla completa


DROP TABLE nombreTabla;

Borra base de datos


DROP DATABASE nombreTabla;

Eliminar columna
ALTER TABLE nombreTabla DROP COLUMN nombreColumna;

Truncate
Elimina todas las filas de la tabla sin borrar la tabla. Tambin resetea los contadores de auto incremento a 0.
No borra la tabla como tal, la llamada estructura, por lo que luego puede comenzar a hacer inserciones.
TRUNCATE TABLE nombretabla

ACTUALIZAR (UPDATE)
La sentencia UPDATE se utiliza para modificar valores en una tabla.

Actualiza un registro
UPDATE nombreTabla SET nombreCampo=nuevoValor WHERE condicin;

Actualiza varios registros a la vez


UPDATE nombreTabla SET columna1 = valor1, columna2 = valor2 WHERE condicin

CONSULTAS (SELECT)
La sentencia SELECT permite realizar consultas sobre la informacin almacenada en una base de datos.

Muestra todos los registros de la tabla


SELECT* FROM nombreTabla;

Mostrar valores no repetidos


SELECT DISTINCT campo FROM nombreTabla

Ordenar (order by)

ORDER BY se utiliza para ordenar los resultados de una consulta, segn el valor de la columna especificada,
puede ser de forma ascendente | descendente
SELECT nombreColumna(s) FROM nombreTabla ORDER BY nombreColumna(s) ASC|DESC

Numero de filas a mostrar


o SQL Server
SELECT TOP nmeroFilas PERCENT nombreColumna(s) FROM nombreTabla

MySql
SELECT nombreColumna(s) FROM nombreTabla LIMIT nmeroFilas

Oracle
SELECT nombreColumna(s) FROM nombreTabla

WHERE ROWNUM <= nmeroFilas

Like

El operador LIKE se utiliza en la clusula WHERE para buscar por un patrn.


o

Devuelve nombres que empiezan con AN


SELECT * FROM personas WHERE nombre LIKE AN%

Devuelve nombres que contienen AN


SELECT * FROM personas WHERE nombre LIKE %AN%

Devuelve nombres que empiezan con A|N


SELECT * FROM personas WHERE apellido1 LIKE [AN]%

In

El operador IN permite seleccionar mltiples valores en una clusula WHERE


Devuelve nombres que sean (juan|pedro|)
SELECT nombre FROM tabla WHERE nombre IN (juan, pedro, )

Entre (Between)
El operador BETWEEN se utiliza en la clusula WHERE para seleccionar valores entre un rango de datos.
o

Devuelve valores dentro de un rango

SELECT * FROM personas WHERE apellido BETWEEN CRUZ AND HUERTAS

Devuelve valores fuera de un rango


SELECT * FROM personas WHERE apellido NOT BETWEEN CRUZ AND HUERTAS

Alias
Un alias, es otra forma de llamar a una tabla o a una columna, y se utiliza para simplificar las sentencias SQL
cuando los nombre de tablas o columnas son largos o complicados.
o

Alias para una tabla


SELECT columna FROM nombretabla AS aliastabla

Alias para una columna


SELECT nombrecolumna AS aliascolumna FROM tabla

Join (unirse)

La sentencia SQL JOIN permite consultar datos de 2 o ms tablas, dichas tablas estarn relacionadas entre
ellas de alguna forma, a travs de alguna de sus columnas.
o

Unin simple

La sentencia SQL UNION es utilizada para acumular los resultados de dos sentencias SELECT, las
tablas deben tener el mismo nmero de columnas, con el mismo tipo de dato y en el mismo orden.
SELECT columna1, columna2 FROM tabla1
UNION
SELECT columna1, columna2 FROM tabla2

Inner join

La sentencia INNER JOIN combina cada fila de una tabla con cada fila de la otra tabla, seleccionado
aquellas filas que cumplan una determinada condicin.
SELECT * FROM tabla1 INNER JOIN tabla2 WHERE tabla1.columna1 =
tabla2.columna1

Left join

La sentencia LEFT JOIN combina los valores de la primera tabla con los valores de la segunda tabla.
Siempre devolver las filas de la primera tabla, incluso aunque no cumplan la condicin.
SELECT * FROM tabla1 LEFT JOIN tabla2 WHERE tabla1.columna1 =
tabla2.columna1

Right join

La sentencia RIGHT JOIN combina los valores de la segunda tabla con los valores de la primera tabla.
Siempre devolver las filas de la segunda tabla, incluso aunque no cumplan la condicin.
SELECT * FROM tabla1 RIGHT JOIN tabla2 WHERE tabla1.columna1 =
tabla2.columna1

Full join

La sentencia FULL JOIN combina los valores de la primera tabla con los valores de la segunda tabla.
Siempre devolver las filas de las dos tablas, aunque no cumplan la condicin.
SELECT * FROM tabla1 FULL JOIN tabla2 WHERE tabla1.columna1 =
tabla2.columna1

Select into(Respaldo)
La sentencia SQL SELECT INTO se utiliza para seleccionar datos de una tabla y copiarlos en otra tabla diferente,
puede ser en la misma o en otra base de datos. Es utilizada para hacer una copia de seguridad (backup) de
datos.
o

Guarda los datos seleccionados en una nueva tabla


SELECT columna1, columna2

INTO nuevatabla FROM tablaactual

Guarda los datos seleccionados en una nueva base de datos


SELECT * INTO nuevatabla [IN nuevabasedatos] FROM tablaactual

Utilizando where
SELECT * INTO personasBackup FROM personas WHERE nombre = ANTONIO

Utilizando join
SELECT personas.nombre, personas.apellido1, departamentos.departamento INTO
personasInformatica FROM personas INNER JOIN departamentos ON personas.dep
= INFORMATICA

Para My Sql
INSERT INTO tbl_temp2 (fld_id)
SELECT tbl_temp1.fld_order_id
FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;

Funciones de agregacin

Count
Retorna la cantidad de datos seleccionados en un campo
o Count
Retorna el contador del nmero de valores no NULL en los registros recibidos por un
comando SELECT.
SELECT COUNT (columna) FROM tabla;

Count(*)
Retorna un contador del nmero de registros retornados, si contienen o no valores NULL
SELECT COUNT(*)

FROM tabla;

Ejemplo
SELECT estado, COUNT(status )
FROM integrantes

WHERE status = 'Activo'


GROUP BY estado
ORDER BY COUNT(status) DESC

Sum
Retorna la suma de los datos seleccionados en un campo
SELECT SUM (columna) FROM tabla;

Max
Retorna el valor mnimo contenido en los datos seleccionados
SELECT MAX (columna) FROM tabla;

Min
Retorna el valor mximo contenido en los datos seleccionados
SELECT MIN (columna) FROM tabla;

Avg
Retorna el promedio de los datos seleccionados en un campo
SELECT AVG (columna) FROM tabla;

Desviacin estndar (stddev)


Retorna la desviacin estndar de expr
SELECT STD(expr) FROM

nombreTabla

SELECT STDDEV(expr) FROM

nombreTabla

SELECT STDDEV_POP(expr) FROM

nombreTabla

Desviacin estndar de muestra (stddev_samp)


Retorna la desviacin estndar de muestra de expr
SELECT STDDEV_SAMP(expr) FROM

nombreTabla

Varianza (var_pop)
Retorna la varianza estndar de expr. Considera los registros como la poblacin completa, no como una
muestra, as que tiene el nmero de registros como denominador
SELECT VAR_POP(expr) FROM

nombreTabla

SELECT VARIANCE (expr) FROM

nombreTabla

Varianza de muestra (var_samp)


Retorna la varianza de muestra de expr
SELECT VAR_SAMP(expr) FROM

nombreTabla

CONSTRAINTS (Restricciones)
Las CONSTRAINTS son restricciones que se utilizan para limitar el tipo de dato que puede recibir una columna de una
tabla, se puede definir cuando creamos la tabla (CREATE TABLE) o posteriormente con la sentencia ALTER TABLE.

Not null

La restriccin NOT NULL sirve para especificar que esa columna siempre tiene que tener algn valor, no
puede estar vaca.
o

Al crear la tabla
CREATE TABLE nombreTabla ( campo1,campo2 NOT NULL,);

De una tabla existente (PostgreSql)


ALTER TABLE nombreTabla ALTER nombreColumna SET|DROP NOT NULL;

Modifica nombre, tipo_dato, restriccin de una columna (MySql)


ALTER TABLE nombreTabla
CHANGE nombreColumna nuevoNombreColumna nombreColumna NOT NULL

Unique
La restriccin UNIQUE validara que los valores de cada columna no se repitan, puede haber varias
restricciones UNIQUE en diferentes columnas de una tabla.

Agregar unique al crear una tabla


CREATE TABLE ejemplo
(
identificador int NOT NULL,
nombre varchar(255) NOT NULL,
UNIQUE (identificador));

Agregar unique a un campo existente


ALTER TABLE ejemplo ADD UNIQUE (columna);

Primary key
La columna definida como clave primaria (PRIMARY KEY) debe ser UNIQUE (valor nico) y NOT NULL (no
puede contener valores nulos) y cada tabla slo puede tener una clave primaria.
o

Agregar Primary Key con una o ms columnas al crear la tabla


MySql, PostgreSql
CREATE TABLE nombreTabla(campo1 int,campo2 int,
CONSTRAINT nombrePK PRIMARY KEY (campo1))

Oracle, SqlServer
CREATE TABLE personas
(
identificador int PRIMARY KEY,
PRIMARY KEY (identificador))

Agregar Primary Key a una columna existente


ALTER TABLE ejemplo ADD CONSTRAINT pk_unico PRIMARY KEY (unico)

Foreign key
La clave externa o FOREIGN KEY, es una o varias columnas, que sirven para sealar cual es la clave primaria
de otra tabla, de este modo la clave fornea solo podr tener valores que ya existan en la clave primaria de
la otra tabla y nicamente se creara si su referencia ya existe como clave primaria.
o

Agregar FOREIGN KEY al crear una tabla

MySql
CREATE TABLE nombreTabla (campo1, campo2,
FOREIGN KEY (campo1) REFERENCES nombreTabla (nombreColumna))

PostgreSql
CREATE TABLE nombreTabla (campo1, campo2, CONSTRAINT nombreFK FOREIGN
KEY(campo1) REFERENCES nombreTabla(nombreColumna))

Agregar FOREIGN KEY una tabla existente

Agregar Foreign Key


ALTER TABLE ADD FOREIGN KEY (dep) REFERENCES departamentos(dep)

Agregar Foreign Key mltiple, para varias columnas


ALTER TABLE ADD CONSTRAINT fkpersonas FOREIGN KEY (dep) REFERENCES
departamentos(dep)

Borrar Foreign Key

MySql
ALTER TABLE personas DROP FOREIGN KEY dep

Oracle, Sql Server


ALTER TABLE personas DROP CONSTRAINT dep

Check
La restriccin CHECK se utiliza para limitar el rango de valores que puede tener una columna.
o

Agregar check al crear tabla

MySql
CREATE TABLE departamentos ( dep int NOT NULL, departamento
varchar(255), CHECK (dep>0) )

Oracle, SqlServer
CREATE TABLE departamentos ( dep int NOT NULL CHECK (dep>0)
departamento varchar(255), )

Agregar check a campo existente

My Sql
ALTER TABLE departamentos ADD CHECK (dep>0)

Oracle, Sql Server


ALTER TABLE departamentos ADD CONSTRAINT ckdepart CHECK (dep>0)

Default
La restriccin DEFAULT se utiliza para establecer un valor por defecto a una columna.
o

Agregar

Mysql
ALTER TABLE nombreTabla ALTER columna DEFAULT 'valor'

Oracle, Sql Server, AccessS


ALTER TABLE pedidos ALTER COLUMN fecha SET DEFAULT 'valor'

Borrar

Mysql
ALTER TABLE nombre_tabla ALTER nombre_columna DROP DEFAULT

Oracle, Sql Server, Access


ALTER TABLE nombre_tabla ALTER COLUMN nombre_columna DROP DEFAULT

AUTO INCREMENT
AUTO INCREMENT permite generar un nmero nico cuando insertamos un nuevo registro en la tabla.
Se utiliza para tener una clave primaria de una tabla mediante la generacin automtica de un nmero secuencial.

Al crear tabla
CREATE TABLE nombreTabla (campo int NOT NULL AUTO_INCREMENT)

Tabla existente sin clave primaria


ALTER TABLE nombreTabla ADD nombreColumna INT NOT NULL AUTO_INCREMENT ,
ADD PRIMARY KEY ( nombreColumna ) ;

Agregar auto_increment a clave primaria


ALTER TABLE nombreTabla
CHANGE nombreColumna nombreColumna

INT NOT NULL AUTO_INCREMENT;

Quitar auto_increment a clave primaria


ALTER TABLE nombreTabla CHANGE nombreColumna nombreColumna

INT NOT NULL;

NDICES (INDEX)
Un ndice sirve para buscar datos rpidamente, y no tener que recorrer toda la tabla secuencialmente en busca
alguna fila concreta.

Index simple
CREATE INDEX nombreindice

ON nombretabla (nombrecolumna)

Index no duplicado
CREATE UNIQUE INDEX nombreindice

ON nombretabla (nombrecolumna)

Index sobre varias columnas


CREATE INDEX nombreindice

DESHACER CAMBIOS (ROLLBACK)


START TRANSACTION;
Cdigo_sql_a_deshacer;
ROLLBACK;
SAVEPOINT identifier

ON nombretabla (nombrecolumna, nombrecolumna,)

ROLLBACK TO SAVEPOINT identifier

USUARIOS

Crear un usuario
CREATE USER nombre@localhost INDENTIFIED BY password

Asignar permisos
GRANT SELECT, INSERT, CREATE, UPDATE, DROP
ON base(s)*_de_datos.tablas(s)*
TO usuario@localhost;

Eliminar usuario

TIPO DE DATOS
INT

TIPO
NUMERICO

FLOAT

NUMERICO

BOOLEAN
DATE
DATETIME
TIME
YEAR
CHAR
VARCHAR
TEXT

NUMERICO
FECHA
FECHA Y HORA
HORA
AO
CADENA DE TEXTO
CADENA DE TEXTO
CADENA DE TEXTO

VALOR
-2147483648 hasta 2147483647
INT(3) entero con 3 digitos
FLOAT(5,2) cinco dgitos enteros y dos
decimales
TRUE, FALSE
YYYY-MM-DD
YYYY-MM-DD HH:MM:SS
HH:MM:SS
YYYY

OPERADORES
AND
OR
=
>
>=
<
<=
<>, !=

Condicin1 AND condicin2


Condicin1 OR condicin2

Вам также может понравиться