Está en la página 1de 14

CURSO SQL SERVER

*CREACIÓN DE BASE DE DATOS

CREATE DATABASE NOMBREDEBASEDEDATOS


--F5 O EJECUTAR Y SE ACTUALIZA OBJECT EXPLORER--

*ELIMINACIÓN DE BASE DE DATOS

DROP DATABASE NOMBREDEBASEDEDATOS


--F5 O EJECUTAR Y SE ACTUALIZA OBJECT EXPLORER--

*CREACIÓN DE UNA TABLA DE DATOS

CREATE TABLE NOMBREDELATABLA


(
ID_USUARIO INT NOT NULL --CAMPO USUARIO---
NOMBRE VARCHAR (50) NOT NULL --CAMPO NOMBRE USUARIO--
)
--F5 O EJECUTAR Y SE ACTUALIZA OBJECT EXPLORER--

*ELIMINACIÓN DE UNA TABLA DE DATOS

DROP TABLE NOMBREDELATABLA


--F5 O EJECUTAR Y SE ACTUALIZA OBJECT EXPLORER--

*INSERCIÓN DE DATOS EN UNA TABLA

INSERT INTO NOMBREDETABLA VALUES (1, ‘JUAN’)


INSERT INTO NOMBREDETABLA VALUES (2, ‘ROSA’)
INSERT INTO NOMBREDETABLA VALUES (3, ‘PATRICIA’)
--F5 O EJECUTAR Y SE ACTUALIZA OBJECT EXPLORER--
Almacenam
Grupo Tipo de dato Intervalo iento
De -263 (-9.223.372.036.854.775.808) a 2 63 - 1
bigint 8 bytes
(9.223.372.036.854.775.807)
int De -231 (-2.147.483.648) a 231 - 1 (2.147.483.647) 4 bytes
15 15 
smallint De -2  (-32.768) a 2 - 1 (32.767) 2 bytes
tinyint De 0 a 255 1 byte
Tipo de datos entero que puede aceptar los valores 1,
bit 2 bytes
0 ó NULL
 p (precisión): el número total máximo de
dígitos decimales que se puede almacenar,
tanto a la izquierda como a la derecha del
separador decimal. La precisión debe ser un
valor comprendido entre 1 y la precisión
máxima de 38. La precisión predeterminada es
Numéricos 18.
exactos decimal,  s (escala): el número máximo de dígitos Precisión 1 -
numeric, decimales que se puede almacenar a la 9: 5 bytes
decimal (p, s) derecha del separador decimal. La escala debe
ser un valor comprendido entre 0 y p. Sólo es
posible especificar la escala si se ha
especificado la precisión. La escala
predeterminada es 0.

Con precisión máxima 1038 +1 y 1038 - 1


Tipos de datos que representan valores
monetarios o de moneda: de -
money 8 bytes
922.337.203.685,4775808 a
922.337.203.685,4775807
smallmoney De - 214,7483648 a 214,7483647 4 bytes
De - 1,79E+308 a -2,23E-308, 0 y de 2,23E-308 Depende del
Numéricos float a 1,79E+308 valor de n
aproximad
os De - 3,40E + 38 a -1,18E - 38, 0 y de 1,18E - 38
real 4 Bytes
a 3,40E + 38
Del 1 de enero de 1753 hasta el 31 de diciembre
datetime  
Fecha y de 9999
hora Del 1 de enero de 1900 hasta el 6 de junio de
smalldatetime  
2079
Caracteres no Unicode de longitud fija, con una
char (n) longitud de n bytes. n debe ser un valor entre 1 n bytes
y 8.000
Caracteres no Unicode de longitud
Cadenas de varchar (n) n bytes
variable. n indica que el tamaño de (aprox.)
caracteres almacenamiento máximo es de 231 - 1 bytes
En desuso, sustituido por varchar.
max bytes
text
Datos no Unicode de longitud variable con una longitud (aprox.)
máxima de 231 - 1 (2.147.483.647) caracteres
Cadenas de nchar (n) Datos de carácter Unicode de longitud fija, 2 * n bytes
caracteres con n caracteres. n debe estar comprendido
entre 1 y 4.000
Datos de carácter Unicode de longitud
2 * n bytes
nvarchar (n) variable. n indica que el tamaño máximo de + 2 bytes
almacenamiento es 231 - 1 bytes
unicode En desuso, sustituido por nvarchar.

ntext (n) Datos Unicode de longitud variable con una 2 * n bytes


30
longitud máxima de 2  - 1 (1.073.741.823)
caracteres
Datos binarios de longitud fija con una longitud
binary (n) de n bytes, donde n es un valor que oscila entre n bytes
1 y 8.000
Datos binarios de longitud variable. n indica que
Cadenas varbinary (n) el tamaño de almacenamiento máximo es de n bytes
31
binarias 2  - 1 bytes
En desuso, sustituido por varbinary.
image  
Datos binarios de longitud variable desde 0 hasta
231 - 1 (2.147.483.647) bytes
Tipo de datos para las variables o para los
parámetros de resultado de los procedimientos
cursor almacenados que contiene una referencia a un  
cursor. Las variables creadas con el tipo de
datos cursor aceptan NULL
Tipo de datos que expone números binarios
únicos generados automáticamente en una base
timestamp de datos. El tipo de datos timestamp es 8 bytes
simplemente un número que se incrementa y no
conserva una fecha o una hora
Tipo de datos que almacena valores de varios
Otros tipos sql_variant tipos de datos aceptados en SQL Server,
 
de datos excepto text, ntext, image, timestamp y sql_vari
ant
Es un GUID (Globally Unique Identifier,
uniqueidentifier 16 bytes
Identificador Único Global)
Es un tipo de datos especial que se puede utilizar
para almacenar un conjunto de resultados para su
procesamiento posterior. table se utiliza
table  
principalmente para el almacenamiento temporal de
un conjunto de filas devuelto como el conjunto de
resultados de una función con valores de tabla
Almacena datos de XML. Puede almacenar
xml instancias de xml en una columna o una variable  
de tipo xml

*CONSULTA COMANDO SELECT

SELECT * FROM NOMBREDETABLA


SELECT ID_USUARIO, NOMBRE FROM NOMBREDETABLA
--F5 O EJECUTAR Y SE ACTUALIZA OBJECT EXPLORER—

*COMANDO WHERE
SELECT NOMBRE FROM NOMBREDETABLA WHERE ID_USUARIO=1
*ELIMINACIÓN DE REGISTROS
DELETE ELIMINA REGISTROS
EJEMPLO:
DELETE NOMBREDETABLA WHERE ID_ART = 13

*ELIMINACIÓNDE TABLAS
DROP ELIMINA LA ESTRUCTURA (TABLA)
EJEMPLO:
DROP TABLE NOMBREDETABLA
TRUNCATE ELIMINA REGISTROS (RESET DE REGISTROS INCLUSO AUTOINCREMENTALES)
EJEMPLO:
TRUNCATE TABLE (NOMBREDETABLA)

*OPERADORES RELACIONALES
= (Es igual a) Igual a

> (Mayor que) Mayor que


< (Menor que) Menor que
>= (Mayor o igual a) Mayor o igual que
<= (Menor o igual a) Menor o igual que

<> (No es igual a) No es igual a


!= (No es igual a) No es igual a (no es del estándar ISO)
!< (No menor que) No es menor que (no es del estándar ISO)
!> (no mayor que) No es mayor que (no es del estándar ISO)

*ACTUALIZAR REGISTROS
UPDATE NOMBREDETABLA SET NOMBRE= ‘JUAN’

WHERE ID_USUARIO = 5

*IDENTITY
- IDENTITY EMPIEZA EN 1 E INCREMENTA 1 POT DEFAULT
- NOPERMITE LA INTRODUCCIÓN O MODIFICACIÓN DEL CAMPO
- PERMITE LA REPETICIÓN
- SOLO PERMITE QUE UN SOLO CAMPO TENGA LA PROPIEDAD
IDENTITY
- RETOMA EL VALOR DEL ÚLTIMO REGISTRO
*MODIFICAR INICIO E INCREMENTO DE IDENTITY
(

ID_USUARIO INT IDENTITY (5,3) --INICIO EN 5 CON INCREMENTO DE 3 EN 3


NOMBRE VARCHAR(50) NOT NULL --CAMPO NOMBRE USUARIO--
)

*MOSTRAR INICIO DE IDENTITY


SELECT IDENT_SEED (‘NOMBREDETABLA’);
*MOSTRAR INCREMENTO DE IDENTITY
SELECT IDENT_SEED (‘NOMBREDETABLA’);
*ACTIVAR INSERCIÓN DE DATOS DE IDENTITY
SET IDENTITY_INSERT (‘NOMBREDETABLA’) ON;
INSERT INTO NOMBREDETABLA (ID_USUARIO, NOMBRE) VALUES (7,’LUIS’);

--INCLUSO PERMITE DUPLICACIÓN

*DESACTIVAR INSERCIÓN DE DATOS DE IDENTITY


SET IDENTITY_INSERT (‘NOMBREDETABLA’) OFF;
AL UTILIZAR DELETE EN UNA TABLA CON PROPIEDAD IDENTITY SE
ELIMINAN TODOS LOS DATOS Y EL CONTEO AL INSERTARLOS SE UBÍCA EN
EL SIGUIENTE NÚMERO DESPUÉS DEL ÚLTIMO ELIMINADO.
AL UTILIZAR TRUNCATE EN UNA TABLA CON PROPIEDAD IDENTITY SE
ELIMINAN TODOS LOS DATOS Y EL CONTEO DE REINICIA.
* OPERADORES ARITMÉTICOS

+ Sumar : Operador de Suma y concatenación de Columnas.


- Restar : Operador de resta y también representa a números negativos. 
* Multiplicar : Operador de Multiplicación.
/ Dividir : Operador de División entera y fraccionaria.
% Módulo : Operador que Devuelve el resto de una división.

EJEMPLOS
SELECT PRECIO_VENTA – PRECIO_COMPRA FROM TABLAPRECIOS
SELECT PRECIO_VENTA * 12 FROM TABLAPRECIOS
UPDATE TABLAPRECIOS SET PRECIO_VENTA = PRECIO_VENTA +
(PRECIO_VENTA* 0.16) WHERE ID_ARTÍCULO = 2

*FUNCIONES DE AGREGADO
COUNT CUENTA NÚMEROS
SUM SUMA NÚMEROS
MAX MÁXIMO CADENAS Y NÚMEROS
MIN MÍNIMO CADENAS Y NÚMEROS
EJEMPLOS:
SELECT COUNT(NOMBRES) FROM EMPLEADOS
--CUENTA CUANTOS NOMBRES HAY EN LA TABLA EMPLEADOS.
SELECT SUM(PRECIO_VENTA) FROM ARTÍCULOS
--SUMA LA CANTIDAD TOTAL DE LOS PRECIOS DE VENTA DE LA TABLA
ARTÍCULOS.
SELECT MAX(PRECIO_COMPRA) FROM ARTÍCULOS
--MUESTRA EL VALOR MÁXIMO DE LOS PRECIOS DE COMPRA DE LA
TABLA ARTÍCULOS.
SELECT MIN(PRECIO_VENTA) FROM ARTÍCULOS
--MUESTRA EL VALOR MÍNIMO DE LOS PRECIOS DE VENTA DE LA
TABLA ARTÍCULOS.

*FUNCIONES DE MANEJO DE CADENAS


SELECT SUBSTRING (‘Hola a Todos’, 8,5)
MUESTRA Todos EN EL CAMPO SELECCIONADO; ES DECIR LOS 5
CARACTERES A PARTIR DEL CARÁCTER NÍMERO 8.
SELECT STR (‘123’)
MUESTRA 123 EN EL CAMPO SELECCIONADO.
SELECT STUFF(‘TUTORIALES HACKRO’, 12, 6, ‘MÉXICO’)
MUESTRA TUTORIALES MÉXICO, ES DECIR REEMPLAZA A PARTIR DEL
CARÁCTER 12 LOS SIGUIENTES 6 CARACTERES CON LA PALABRA
MÉXICO EN VEZ DE HACKRO.
SELECT LEN (‘TUTORIALES MÉXICO ’);
MUESTRA 17, ES DECIR LA CANTIDAD TOTAL DE CARACTERES DE LA
CADENA.
SELECT CHAR (167);
TRAE EL CARÁCTER CORRESPONDIENTE DE
CÓDIGO ASCII.
SELECT LOWER(‘TEXTO’);
CAMBIA EL TEXTO A MINÚSCULAS.
SELECT UPPER(‘TEXTO’);
CAMBIA EL TEXTO A MAYÚSCULAS.
SELECT LTRIM (‘ TEXTO ‘)
MUESTRA EL TEXTO ELIMINANDO LOS
ESPACIOS DE LA IZQUIERDA. TEXTO
SELECT RTRIM (‘ TEXTO ‘)
MUESTRA EL TEXTO ELIMINANDO LOS
ESPACIOS DE LA DERECHA. TEXTO
SELECT REPLACE (‘EL COLOR ES ROJO’, ‘ROJO’, ‘AZUL’)
ELCOLOR ES AZUL
REMPLAZA UNA CADENA DE CARACTERES POR OTRA.
SELECT REVERSE(‘DAVID’);
DIVAD
ESCRIBE CADENAS DE CARACTERES DE MANERA INVERSA.
SELECT PATHINDEX(‘%AZUL%’, ‘LA CASA AZUL’);
9
SEÑALA EL NÚMERO DE LA POSICIÓN DONDE INICIA LA
COINCIDENCIA.
SELECT REPLICATE(‘AZUL’,7);
AZUL AZUL AZUL AZUL AZUL AZUL AZUL
REPLICA LA CADENA DE CARACTERES LA CANTIDAD DE VECES
SEÑALADA.

SELECT ‘TUTORIALES’+ SPACE(4) + ‘MÉXICO’


TUTORIALES MÉXICO
AGREGA LOS ESPACIOS SEÑALADOS ENTRE CADENAS DE
CARACTERES.

*ORDER BY
SELECT * FROM PAPELERIA10 ORDER BY DESCRIPCIÓN

ORDENA LA TABLA SEGÚN EL CAMPO SEÑALADO EN ORDEN ALFABÉTICO O


NUMÉRICO SEGÚN SEA EL CASO. PUEDE SER ASCENDENTE O
DESCENDENTE.
SELECT * FROM PAPELERIA10 ORDER BY COSTO DESC
SELECT * FROM PAPELERIA10 ORDER BY DESCRIPCIÓN ASC
SELECT * FROM PAPELERIA10 ORDER BY MARCA, COSTO

*OPERADORES LÓGICOS NOT, AND, OR


EJEMPLOS:
SELECT * FROM PAPELERIA10 WHERE NOT MARCA = 'BARRILITO'

SELECT * FROM PAPELERIA10 WHERE MARCA ='BARRILITO' AND COSTO < 35


SELECT * FROM PAPELERIA10 WHERE MARCA ='BARRILITO' OR MARCA ='ZEBRA'

*IS NULL Y BETWEEN


CAMPOS NULOS.
EJEMPLOS:
SELECT * FROM PAPELERIA10 WHERE INVENTARIO IS NULL

SELECT * FROM PAPELERIA10 WHERE COSTO BETWEEN 20 AND 45

*OPERADORES LIKE, NOT LIKE.


EL OPERADOR LIKE NOS DETECTA CADENAS DE CARACTERES.
EJEMPLO:
SELECT * FROM PAPELERIA10 WHERE MARCA LIKE '%ZEBRA%'
SELECT * FROM PAPELERIA10 WHERE MARCA LIKE 'ES%' /*QUE EMPIECE CON ES*/
SELECT * FROM PAPELERIA10 WHERE MARCA LIKE '%ITO' /*QUE TERMINE CON ITO*/
SELECT * FROM PAPELERIA10 WHERE MARCA LIKE '%_EBRA%' /*COMODÍN DE LETRAS*/

EL OPERADOR NOT LIKE NOS DETECTA CADENAS DE CARACTERES.


EJEMPLO:
SELECT * FROM PAPELERIA10 WHERE MARCA NOT LIKE '%ZEBRA%'

*ALIAS
EJEMPLO:
SELECT SUM(COSTO) AS 'COSTO_ZEBRA' FROM PAPELERIA10

WHERE MARCA ='ZEBRA'

*GROUP BY
LA CLÁUSULA GROUP BY ES UN COMANDO EN SQL QUE PERMITE AGRUPAR FILAS
QUE TIENEN LOS MISMOS VALORES.

EJEMPLO:
SELECT MARCA, SUM(COSTO) AS TOTAL_MARCA FROM PAPELERIA10
GROUP BY MARCA

*HAVING

LA CLÁUSULA HAVING EN SQL ESPECIFICA QUE UNA INSTRUCCIÓN SELECT


DE SQL SOLO DEBE DEVOLVER FILAS DONDE LOS VALORES AGREGADOS
CUMPLEN LAS CONDICIONES ESPECIFICADAS.
COMO LA CLÁUSULA WHERE NO SE PUEDE UTILIZAR CON FUNCIONES SQL
DEL TIPO SUM, MAX, ENTONCES SE UTILIZA EN SU LUGAR, HAVING.
EJEMPLO:
SELECT MARCA, SUM(COSTO) FROM PAPELERIA10
GROUP BY MARCA
HAVING SUM(COSTO)<100

*DISTINCT
ELIMINA REPETICIONES DE PALABRAS O NÚMEROS EN UNA CONSULTA.
EJEMPLO:
SELECT DISTINCT MARCA FROM PAPELERIA10 ORDER BY MARCA
SELECT SUM(DISTINCT COSTO) FROM PAPELERIA10

*TOP
LA SENTENCIA SQL TOP SE UTILIZA PARA ESPECIFICAR EL NÚMERO DE
FILAS A MOSTRAR EN EL RESULTADO, SE PUEDE USAR EN ORDEN
ASCENDENTE Y DESCENDENTE.
SELECT TOP 7 * FROM PAPELERIA10 ORDER BY DESCRIPCIÓN

SELECT TOP 3 * FROM PAPELERIA10 ORDER BY COD_ART DESC

*GENERACION DE SCRIPT

SE SELECCIONA LA BDD INCLUYENDO TODOS LOS OBJETOS.


INCLUYENDO DATOS EN EL SCRIPT

SE GENERA EL ARCHIVO
Y SE FINALIZA.

*CREACIÓN DE COPIA DE SEGURIDAD.


SE LE DA UN DESTINO PARA DEPOSITAR LA COPIA DE SEGURIDAD Y UN
NOMBRE CON LA EXTENSION .BAK.
PARA RESTAURAR EL ARCHIVO .BAK SE SELECCIONA RESTAURAR BASE DE
DATOS Y LE INGRESAMOS LA LOCALIZACIÓN DEL ARCHIVO.BAK A
RESTAURAR DESDE UN DISPOSITIVO SELECCIONANDO EL NOMBRE DE LA
NUEVA BDD EN DONDE SE HABRÁ DE RESTAURAR.

*JOIN
JOIN ES EL PROCESO DE TOMAR DATOS DE VARIAS TABLAS Y
COLOCARLOS EN UNA VISTA GENERADA MEDIANTE EL SELECT.
INNER JOIN ES LA OPCIÓN PREDETERMINADA, ESTABLECE LA UNIÓN DE
DOS TABLAS EN UNA COLUMNA COMÚN, SOLO RETORNARAN LOS DATOS
QUE COINCIDAN EN AMBAS TABLAS.

LEFT JOIN ESTE TIPO DE UNIÓN  DEVUELVE TODAS LAS FILAS DE LA TABLA
DE LA IZQUIERDA, Y LAS FILAS COINCIDENTES DE LA TABLA DE LA
DERECHA.
RIGTH JOIN ESTE TIPO DE UNIÓN DEVUELVE TODAS LAS FILAS DE LA TABLA
DE LA DERECHA, Y LAS FILAS COINCIDENTES DE LA TABLA DE LA
IZQUIERDA.

*RENOMBRAR COLUMNA DE UNA TABLA CON DATOS.


Como vemos en el script tenemos una tabla con 4 campos, pero observemos el
campo apellidooa, claramente hay un error, lo correcto debería ser apellidopa, en este caso,
podremos pensar que lo más fácil es borrar la tabla y volverla a crear, lo cual es correcto,
pero si la tabla ya tiene datos o existen llaves foráneas que hagan referencia a ésta tabla, no
será tan fácil borrarla, lo que deberíamos hacer será utilizar el procedimiento que el sistema
nos provee para eso.

EXEC sp_rename 'dbo.PERSONA.apellidooa', 'apellidopa', 'COLUMN'; 

Como vemos existe el stored procedure de sistema llamado sp_rename, el cual recibe 3


argumentos, el primero es el nombre de la tabla y el campo que se desea cambiar, el segundo
es el nombre nuevo que tendrá y el tercero es el tipo de objeto que se va a cambiar de
nombre, en este caso es una columna. En otro post veremos este procedure mas a detalle, por
ahora basta con sabe que mediante este procedimiento rápido se puede cambiar el nombre de
una columna. Eso sí, nos advertirá que aunque se cambie el nombre de la columna, hay que
cambiar los querys o procedimientos que manden llamar a esa columna, pues quedarán con el
nombre viejo, por lo que nos muestra el siguiente mensaje

Caution: Changing any part of an object name could break scripts and stored procedures.

También podría gustarte