Está en la página 1de 6

LEGUAJE ESTANDAR DE SQL

1. INTRODUCCION

Las sentencias de SQL pueden dividirse en tres tipos:


a. Sublenguajes de divisin de datos (DDL) proporciona rdenes
para definir esquemas de relacin, eliminar relaciones, crear
ndices, y modificar esquemas de relacin.
b. Sublenjuaje de manipulacin de datos (DML):
c. Sublenjuaje de control de datos (DCL): incluye rdenes que
permite especificar controles de seguridad a los datos
almacenados como especificaciones de privilegios de acceso y
control de concurrencia.
d. Sublenjuaje precedural (PL): para la creacin de procedimientos
almacenados.
sentencia DDL

objetivo

alter procedure

recopilar un procedimiento almacenado

alter table

aadir o redefinir una columna

Analyze

Recoger estadsticas de rendimiento sobre los objetos de la


BD para utilizarlas en el optimizador basado en costos.

Create Table

crear una tabla

Create Index

crear un ndice

Drop Table

eliminar una tabla

Drop Index

eliminar un ndice

sentencias DCL

objetivo

Grant

conceder privilegios o papeles, a un usuario o a otro rol

Revoke

retirar los privilegios de un usuario o rol de la base de datos

Commit

confirmar como permanentes las modificaciones realizadas

Rollback

deshacer todas las modificaciones realizadas desde la


ltima confirmacin

Sentencias ML
insert

objetivo
aadir filas de datos a una tabla

Delete

eliminar filas de datos de una tabla

Update

modificar los datos de una tabla

Select

recuperar datos de una tabla

condiciones o criterios
descripcin
clausula
Sirven para especificar la tabla de la cual se van a
FROM
seleccionar los registros.
WHERE

Sirve para especificar las condiciones que deben


cumplir los registros que se van a seleccionar.

GROUP
BY

Sirve para especificar un criterio adicional por el que


agrupar los registros seleccionados.

HAVING

sirve para especificar las condicione que deben cumplir


cada grupo anterior

ORDEN
BY

sirve para ordenar los registros seleccionados de


acuerdo con el orden especificado

operadores lgicos
operador

descripcin

AND

Es el "y" lgico. Evala dos condiciones y devuelve un valor


de verdad solo si ambas son ciertas

OR

Es el "o " lgico. Evala las condiciones y devuelve un valor


de verdad si alguna de las dos es cierta.

NOT

Negacin lgica. Devuelve el valor contrario de la expresin.

operadores de comparacin
operad
descripcin
or
menor que
<
mayor que
>
distinto de
<>
menor o igual que
<=
mayor o igual que
>=
igual que
=
BETWE
utilizado para especificar un intervalo de valores
EN
utilizado para la comparacin de un modelo
LIKE
utilizado para especificar registros de una base de datos
IN

funciones de agregado
Funci
n

descripcin

Utilizada para calcular el promedio de los valores de un campo

AVG determinado
COUN Utilizada para devolver el devolver el nmero de registro de la
seleccin
T
SUM
MAX
MIN

Utilizada para devolver la suma de todos los valores de un campo


determinado
Utilizada para devolver el valor ms alto de un campo especifico
Utilizada para devolver el valor ms bajo de un campo especifico

consultas con predicado


descripcin
predicado
Devuelve
todos
los
campos
de la tabla
ALL
Devuelve un determinado nmero de registros de la tabla
TOP
DISTINCT
DISTINCT
ROW

Omite repeticiones de reg. cuyos campos seleccionados


coincida totalmente
Omite repeticiones de reg. Basndose en la totalidad del
registro y no solo en los campos seleccionados

LENGUAJE EN SQL SERVER


1. Consultas de seleccin bsica
SELECT campos FROM tabla
(devuelve la lista de campos de tabla)
SELECT nombre, telefono FROM clientes
(Devuelve una tabla temporal con los campos nombre y telefono de la tabla
clientes)

2. Ordenar registros
SELECT codigopostal, nombre, telefono FROM clientes GROUP BY nombre
(Devuelve una tabla temporal con los campos codigopostal, nombre, telfono
de la tabla clientes ordenados el nombre alfabticamente)
Se ordena por defecto para
a. Palabras: alfabticamente
b. Nmeros: menor a mayor
c. Fechas: mas antigua a la ms reciente
SELECT codigopostal, nombre, telefono FROM clientes GROUP BY
nombre, telefono
(Se ordenan por ms de un campo primero se ordena clientes, y despus el
telfono)
SELECT codigopostal, nombre, telefono FROM clientes GROUP BY nombre
DESC, TELEFONO ASC
(Devuelve una tabla temporal con los campos codigopostal, nombre, telfono
de la tabla clientes ordenados en nombre alfabticamente desde la Z a la A y el
telfono de menor a mayor)

Se ordena:
a. DESC ordena de manera contraria a la ordenacin por defecto ASC,
es decir descendente
b. Ordena de manera ascendente.

3. Consultas de seleccin
SELECT ALL FROM clientes
(Devuelve todos los valores es el valor por defecto tambin se al ALLse
remplaza por un *.)
SELECT TOP 10 nombre, apellido FROM clientes ORDER BY nota DESC
(Devuelve los 10 primeros valores de nombre y apellido, que tiene la mayor
nota, ya que fueron ordenados de manera descendente en funcin a nota)
SELECT TOP 10 PERCENT nombre, apellido FROM clientes ORDER BY nota
DESC
(Devuelve los 10 porciento de valores de nombre y apellido, que tiene la mayor
nota, ya que fueron ordenados de manera descendente en funcin a nota)
SELECT DISTINCT apellido FROM empleados
(Devuelve los registros que tiene apellidos diferentes de la tabla empleados)

DISTINCT: solo se fija en el contenido de los campos seleccionados,


como en el caso anterior solo de apellido
DISTINCTROW: devuelve valores diferentes de toda una tabla.

4.

SELECT DISTINCTROW apellido FROM empleados


(Devuelve los registros diferentes de toda la tabla empleados)
Alias (AS): cuando se requiere otorgar un nombre nuevo a alguna columna
determinada de una tabla.
SELECT apellido AS Empleado FROM empleados
(Cambia el nombre de apeliido por empleado de la tabla empleados)

5. Operadores lgicos
SELECT *FROM empleados WHERE edad>25 AND edad<50
(Devuelve todos los valores de la tabla empleados que tienen una edad entre
25 y 50)
SELECT *FROM empleados WHERE NOT estado='soltero'
(Devuelve la tabla de empleados que no estn solteros)
SELECT *FROM empleados WHERE (sueldo>100 AND sueldo<500) OR
(provincia='trujillo' AND estado='casado')
(Devuelve la tabla de empleados que o bien tienen un sueldo entre 100 y 500 o
son de Trujillo y casados)

6. Intervalo de valores (BETWEEN)


SELECT * FROM pedidos WHERE codigopostal BETWEEN 28000 AND 28999
(Devuelve todo los valores de de la tabla pedidos que tienen un codigo postal
entre 28000 y 28999)

7. Operador LIKE
SELECT * FROM empleados WHERE apellidos LIKE 'C%'
(Devuelve los valore de la tabla empleados, donde su apellido empieza con C)
SELECT * FROM empleados WHERE apellidos LIKE 'P[A-F]___'
(Devuelve los valore de la tabla empleados, donde su apellido empieza con P,
seguida de una letra de la A hasta la F, y de otros tres dgitos)
SELECT * FROM empleados WHERE apellidos LIKE '[A-E]*'

(Devuelve los valore de la tabla empleados, donde su apellido empieza con una
letra de A hasta la E y seguida de cualquier cadena)
8.

Operador IN: este campo devuelve los registros cuyos campos coinciden con
alguno de los valores mencionados en la lista dentro de IN.
SELECT * FROM pedidos WHERE provincia IN('trujillo', 'chepen',
'viru')
(Devuelve los valores de la tabla pedidos tal que la proviunca sea de trujillo,
viru o chepen)

9. Cuantificador existencial (EXISTS)


SELECT * FROM nombrepropietario, apellidopropietario FROM
propietario_antiguedades WHERE EXISTS(SELECT*FROM antiguedades
WHERE producto='silla')
(Devuelve los campos nombrepropietario y apeliidopropietario de la tabla
propietario_antiguedades tal que de la tabla antiguedades el producto sean
sillas)
Dan los valores de una tabla, que cuando se evala el EXISTS () no sea un
conjunto vaco.
10. Clausula WHERE: se usa para determinar los registros de las tablas
enumeradas en la clusula FROM que aparecern en los resultados de la
instruccin SELECT.
SELECT apellidos, salario FROM empleados WHERE salario>2000
(Devuelve los campos de apellidos y salario de la tabla empleadso de lo cuales
su salario es mayor a 2000)
11.
GROUP BY: combina los registros con valores idnticos en la lista de los
campos especificados, en un nico registro.
Sintaxis:
SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo
o La clusula WHERE, se utiliza para excluir las filas que no se desean
agrupar.
o La clusula HAVING para filtrar los registros una vez agrupados.

Ejemplo:
SELECT id_familia sum(stock)FROM productos GROUP BY id_familia
(Devuelve los valores de id_familia y la suma del estock corresponiente, que
tengan el id_familia igual)

12.
AVG: calcula la media aritmtica de un conjunto de valores
contenido en un campo especfico de una consulta.
Sintaxis: AVG (nombre del campo que se desea promediar)
SELECT AVG(gastos) AS promedio FROM pedidos WHERE
gastos>100
(Devuelve el promedio de los gastos mayores a 100, de la tabla pedidos y los
reporta en la nueva columna promedio)

13.
COUNT: calcula el nmero de registros devueltos por una
consulta.
Sintaxis: COUNT (nombre del campo que se desea contar)
SELECT COUNT(*) AS total FROM pedidos
(Devuelve en la columna total, las cantidades de todos los campos de la tabla
pedidos)

14.
MAX, MIN: devuelve el mnimo y mximo de un conjunto:
Sintaxis:
MIN (campo del cual se requiere su mnimo)
MAX (campo del cual se requiere su mximo)
SELECT MIN(GASTOS) AS elmin FROM pedido WHERE pais='peru'
(Devuelve el mnimo gasto de la tabla pedidos en las filas que el pais es peru, y
reporta en la columna elmin)
SELECT MAX(GASTOS) AS elmax FROM pedido WHERE pais='peru'
(Devuelve el mximo gasto de la tabla pedidos de las filas en el que el pas es
Per, y reporta en la columna elmax)

15.
SUM: devuelve la suma de los valores contenidos en el
campo especificado.
Sintaxis: SUM (campo que se quiere sumar)
SELECT SUM(preciounidad*cantidad) AS TOTAL FROM DetallePedido
(Devuelve la suma del producto de los campos preciounidad y cantidad de la
tabla DetallePedido y los reporta en la columna nueva columna TOTAL).

16.
Insertar registros
Sintaxis: INSERT INTO nombre_tabla (lista de columnas)
VALUES (listas de columnas insertar)
Ejemplo:
INSERT INTO Banco(codigo_banco,razon_banco)
VALUES ('111','BANCO DE CREDITO')

17.
Corregir errores:
Sintaxis: UPDATE campo SET campoAcambiar=nuevo valor
WHERE restriccin
UPDATE Departamentos SET nomb_departamento='OPERACIONES'
WHERE id_departamento='17A'
(Se cambia el nombre de departamento a OPERACIONES de la fila que si
id_departamento es igual a 17A)

NOTA: si no se especifica de que fila se cambiara el nombre,


el programa cambiara los nombres a toda la columna.
18.

Borrado de registros:

DELETE FROM PERSONA WHERE ci_persona='47283956'


(se borra el regitro de la tabla PERSONA donde el ci_persona es 47283956)