Publicado el 10 de Mayo del 2017
1.476 visualizaciones desde el 10 de Mayo del 2017
496,1 KB
20 paginas
Creado hace 16a (17/09/2008)
Lenguaje SQL
1. Introducción al lenguaje SQL y la herramienta
SQL*PLUS
I. ¿Qué es SQL?
SQL (Structured Query Language, es decir, Lenguaje de consulta
estructurado) es un lenguaje de comunicación con una base de datos
diseñado para recuperar y gestionar los datos en sistemas de bases
de datos relacionales (RDBMS), además de permitir crear y modificar
elementos y objetos de una base de datos, así como establecer un
sistema de control de acceso.
Es un lenguaje ANSI, es decir standard, pero la mayoría de
fabricantes incluyen extensiones y funciones para gestionar sus
sistemas de bases de datos.
II. Elementos de SQL
SQL se compone de varios elementos:
• Sentencias - Seleccionan o modifican datos u objetos del
esquema, controlan el flujo de los programas, etc.
• Consultas - Recuperan datos en función de unos criterios.
• Expresiones - Generan valores escalares.
• Predicados - Especifican las condiciones que serán evaluadas.
• Cláusulas - Componen las sentencias. Opcionales en algunos
casos.
• Punto y coma: No es requerido en todos los RDBMS pero es el
estándar para indicar fin de la sentencia.
III.Sentencias SQL
SELECT - Recupera información de la base de datos.
DML (Lenguaje de manipulación de datos)
INSERT - Inserta nuevos registros en la base de datos.
UPDATE - Actualiza registros ya existentes.
DELETE - Borra registros.
MERGE - Realiza una combinación de datos según unas
condiciones
DDL (Lenguaje de definición de datos)
CREATE - Crea estructuras de datos (tablas, vistas, etc).
ALTER - Modifica estructuras de datos
DROP - Borra estructuras de datos.
RENAME - Renombra estructuras de datos.
TRUNCATE - Sirve para vaciar tablas.
Control de Transacciones
COMMIT - Confirma las operaciones DML.
ROLLBACK - Invalida las operaciones DML
SAVEPOINT - Introduce un punto de guardado para realizar
COMMIT y ROLLBACK localizados.
DCL (Lenguaje de control de datos)
GRANT - Otorga permisos a usuarios.
REVOKE - Quita permisos de los usuarios.
IV.SQL*PLUS
SQL*Plus es el cliente básico de acceso a una base de datos Oracle.
Permite realizar consultas y sentencias SQL que serán ejecutadas por
la base de datos en el servidor. Es posible ejecutar cualquier consulta
o programa PL/SQL que el servidor de Oracle pueda entender.
V.iSQL*PLUS
Es una versión que aparece a partir de la versión 9i de Oracle, es
muy similar al SQL*Plus, pero no requiere instalación en el cliente,
sino que se ejecuta desde un navegador web. Es necesario que el
servidor de la base de datos acepte peticiones para este programa,
normalmente se accede a través de la url http://ip-del-servidor:5560
2. Consultas SQL: Sentencia SELECT
La sentencia SELECT se utiliza para recuperar información de la
base de datos, y puede proyectar las columnas seleccionadas, es
decir, realizar un filtro sobre la tabla o tablas originales y recuperar
solamente datos de las columnas filtradas. También puede
seleccionar, es decir, filtrar los registros según varios criterios, o
realizar uniones, que recopilan datos de diferentes tablas a través de
una relación entre ellas.
Las cláusulas SELECT, que especifica las columnas o expresiones que
vamos a recuperar, y FROM , que indica la tabla de la que se
recuperan, son obligatorias.
SELECT - Lista las columnas a recuperar.
* - Selecciona todas las columnas
DISTINCT - Elimina duplicados
column | expression - selecciona la columna y/o expresión (pueden
ser varias) que se van a recuperar
alias - Indica la cabecera de cada una de las columnas o expresiones
FROM - La tabla que contiene las columnas
WHERE - Filtro de los registros a visualizar
condition(s) - Lista de condiciones de filtro.
Las sentencias SQL no son sensibles a mayúsculas o minúsculas
pero se recomienda escribir las palabras clave en mayúsculas y el
resto en minúsculas.
I.Seleccionar las columnas de una tabla
SELECT *
FROM viajero;
ID_VIAJE RO NOMBRE AP E LL IDO S
DIRE CCIO N
T EL EF O NO
F E CH A_ NACIMIE NT O
1
2
3
4
5
6
7
8
Alberto
Gómez
Sofia
Juan
Martínez
López
Marcos
Fernández
Marta
Pérez
Lorena
Hernández
Alba
Álvarez
Jose Luís
Suárez
Calle de la
Amapola 1
Calle de la Violeta
32
Calle de la
Margarita 21
Calle de la Rosa
10
Calle de la
Amapola 12
Calle de los
Girasoles 12
Calle de la Violeta
22
Calle de la
Margarita 1
93000001
01/01/50
93000071
01/08/75
93000039
31/03/89
93000068
31/08/77
93000003
09/03/85
93000088
25/08/80
93000079
20/10/82
93000033
30/05/58
Para seleccionar todas las columnas de una tabla se utiliza el * tras el
SELECT. Otra forma de hacerlo, sería ennumerar todas las columnas,
separadas por comas, de la tabla.
SELECT id_viajero, nombre, apellidos, direccion, telefono,
fecha_nacimiento
FROM viajero;
Para filtrar por columnas, tan solo hay que especificarlas separadas
por comas.
SELECT nombre, apellidos
FROM viajero;
NOMB RE AP ELL IDOS
Alberto
Sofia
Juan
Marcos
Marta
Lorena
Alba
Jose Luís
Damián
Julián
Gómez
Martínez
López
Fernández
Pérez
Hernández
Álvarez
Suárez
Rodríguez
Rodríguez
II.Expresiones aritméticas
Sirven para realizar cálculos sobre la información recuperada y
mostrar los resultados de los mismos, se pueden usar los
operadores aritméticos en cualquier cláusula de una sentencia SQL,
excepto en la cláusula FROM.
Los operadores aritméticos (ordenados por prioridad) son
* / + -
SELECT nombre, continente,
num_habitantes, num_habitantes + 10000
FROM pais;
NOMB RE CO NT INENT E NUM_ HAB ITANTES NUM _H AB ITAN TES+1 0 000
España
Portugal
Italia
Francia
Reino Unido
Alemania
Europa
Europa
Europa
Europa
Europa
Europa
46080737
10605870
59337888
60876136
60609153
82210000
Estados Unidos
América del Norte
302791280
Canadá
Méjico
América del Norte
33187800
América del Norte
107449525
46090737
10615870
59347888
60886136
60619153
82220000
302801280
33197800
107459525
188078227
188088227
América del Sur
Brasil
Los operadores tienen prioridad y se debe utilizar paréntesis para
forzar operaciones que se realizarían de forma diferente según su
prioridad.
2*(num_habitantes + 1000000)
SELECT nombre, num_habitantes, 2 *num_habitantes + 1000000,
FROM pais;
NUM_ HA
B ITANTE
2 * NUM _ HAB ITA NTES
2 * (NUM _ H AB IT ANTE S
NOM B RE
S
+1 0 00 0 00
+1 00 0 0 00 )
España
Portugal
Italia
Francia
46080737
10605870
59337888
60876136
Reino Unido
60609153
Alemania
82210000
Estados Unidos
302791280
33187800
107449525
188078227
Canadá
Méjico
Brasil
III.Valores nulos
93161474
22211740
119675776
122752272
122218306
165420000
606582560
67375600
215899050
377156454
94161474
23211740
120675776
123752272
123218306
166420000
607582560
68375600
216899050
378156454
El valor nulo se representa con null e implica la ausencia de valor
para una columna de una fila determinada. Es diferente del número 0
y del caracter espacio.
SELECT nombre, habitantes, clima
FROM lugar;
NOMB RE HAB ITANTE S CL IM A
Budapest
Osaka
Kyoto
Tibet
Shangai
Rajastán
Himalaya
Bombay
1696128
2629252
1464900
2740000
18403769
Subtropical
13691836
Tropical
Casablanca
2949805
Rabat
Operar valores nulos con expresiones aritméticas devolverá valores
nulos:
SELECT nombre, habitantes + 100000, clima
FROM lugar;
NOMB RE HAB IT ANTE S +1 0 00 0 0 CL IM A
Budapest
Osaka
Kyoto
Tibet
Shangai
Rajastán
Himalaya
Bombay
1796128
2729252
1564900
2840000
18503769
13791836
Casablanca
3049805
Rabat
Subtropical
Tropical
IV.Alias de columna
Los alias para las columnas sirven para renombrar la cabecera de una
columna devuelta por una consulta SQL.
Para utilizarlos, se sitúa el alias después de la columna o expresión
separado por un espacio, o se puede utilizar la palabra AS entre la
columna y el alias.
Si el nombre del alias contiene espacios, tiene caracteres especiales
(#, $, ...), o es sensible a mayúsculas/minusculas se debe
entrecomillar con comillas dobles (")
SELECT nombre AS "Nombre del Lugar", 2*(habitantes + 5000)
"Nueva Población" FROM lugar;
No mbr e Del Lug a r N uev a Po b la ció n
Budapest
Osaka
Kyoto
Tibet
Shangai
Rajastán
Himalaya
Bombay
Casablanca
Rabat
3402256
5268504
2939800
5490000
36817538
27393672
5909610
V.Operador de concatenación
El operador de concatenación || sirve para unir columnas o
expresiones entre sí y mostrarlas como una sola.
Es posible unir las columnas con cadenas de literales (entre comillas
simples) para formar frases o literales.
SELECT apellidos || ', ' || nombre AS "Nombre Completo",
nombre || ' vive en ' || direccion || ' y nació el '
|| fecha_nacimiento AS "Información"
FROM viajero;
No mbr e Co mpl eto
I nfo rma c ió n
Gómez,Alberto
Martínez,Sofia
López,Juan
Alberto vive en Calle de la Amapola 1 y nació el 01/01/50
Sofia vive en Calle de la Violeta 32 y nació el 01/08/75
Juan vive en Calle de la Margarita 21 y nació el 31/03/89
Fernández,Marcos
Marcos vive en Calle de la Rosa 10 y nació el 31/08/77
Pérez,Marta
Marta vive en Calle de la Amapola 12 y nació el 09/03/85
Hernández,Lorena
Lorena vive en Calle de los Girasoles 12 y nació el 25/08/80
Álvarez,Alba
Alba vive en Calle de la Violeta 22 y nació el 20/1
Comentarios de: Lenguaje SQL - 1. Introducción al lenguaje SQL y la herramienta SQL*PLUS (0)
No hay comentarios