PDF de programación - Introducción a SQL - Bloque III (Prácticas)

Imágen de pdf Introducción a SQL - Bloque III (Prácticas)

Introducción a SQL - Bloque III (Prácticas)gráfica de visualizaciones

Publicado el 7 de Julio del 2017
1.269 visualizaciones desde el 7 de Julio del 2017
216,2 KB
38 paginas
Creado hace 13a (08/11/2010)
Introducción a SQL

Bloque III (Prácticas)

Informática Básica - Curso 2010/2011

Introducción al lenguaje SQL

Contenidos

– Introducción al lenguaje SQL
– Sentencia SELECT: lista SELECT, FROM, WHERE
– CREATE TABLE
– INSERT, DELETE y UPDATE

Bibliografía

– Beaulieu, A.: Aprende SQL. Anaya-O’Reilly. 2006.
– Rivero, E. y otros: Introducción al SQL para usuarios y

programadores. Thomson-Paraninfo. 2002.

Lenguaje SQL (I)

SQL (Structured Query Language)

– Lenguaje para acceder a los datos de un SGBD relacional

• Crear, consultar, y modificar datos

– Lenguaje estándar (ISO/IEC)

• Todos los SGBD relacionales utilizan este lenguaje
• Normalmente con pequeñas variaciones

– Evolución

• SEQUEL (Structured English Query Language). IBM System R
• SQL-86 o SQL1. ANSI e ISO. Revisado en 1989
• SQL-92, SQL:1999, SQL:2003, ...

Lenguaje SQL (II)

SQL (Structured Query Language)

– Data Manipulation Language (DML)

• SELECT: consultas sobre los datos
• INSERT: inserción de datos
• DELETE: borrados
• UPDATE: actualizaciones

– Data Definition Language (DDL)

• CREATE TABLE: creación de tablas
• DROP TABLE: eliminación de tablas
• …

Lenguaje SQL (y III)

Otros aspectos

– Posibilidad de incluir SQL en lenguajes como C, Java, Pascal, etc.
– Lenguaje declarativo, no procedural
– Aspectos de control (seguridad, transacciones, concurrencia, etc.)
– Lenguaje intuitivo para todo tipo de usuarios

Entorno de prácticas

PostgreSQL

– SGBD free & open source (www.postgresql.com)
– Servidor PostgreSQL instalado en “belesar.cc.fi.udc.es”
– Cliente “psql” en ordenadores de prácticas

Acceso desde laboratorios 0.3 y 0.4

– Login y password de servizos.udc.es
$ psql –d ib –h belesar –U “nombre.usuario” –W
ib=> SELECT * FROM emp;

Entorno de prácticas

Acceso desde laboratorio wifi 0.3W

– Acceso por escritorio remoto NoMachine-NX

• Host: cova01.cc.fic.udc.es (equipo de referencia)
• Login y password de servizos.udc.es

– Cliente “psql”: login y password de servizos.udc.es
$ psql –d ib –h belesar –U “nombre.usuario” –W
ib=> SELECT * FROM emp;

Instalación en Ubuntu

https://help.ubuntu.com/10.04/serverguide/C/postgresql.html

Cliente PSQL

Comandos básicos en “psql”

• Ver todas las tablas de la base de datos

Muestra los nombres de las tablas que hay en la base de datos.
ib=> \d

• Descripción de una tabla de la BD (ejemplo, “emp”)

Muestra todas las columnas de la tabla y el tipo de datos de cada una de ellas.
ib=> \d emp

• Salir de “psql” y volver al terminal

ib=> \q

Tablas de los ejemplos

Trabajamos sobre dos tablas de ejemplo:

• Empleados (tabla “emp”)

– Contiene datos de los empleados de una empresa
– Código de empleado, nombre, puesto de trabajo, código del

jefe, fecha de contratación, salario, comisión y código de
departamento

• Departamentos (tabla “dept”)

– Contiene datos de los departamentos de una empresa
– Código del departamento, nombre y localización

Tablas de los ejemplos

ib=> \d emp

Table “public.emp”

Column | Type

| Modifiers
----------+-----------------------+-----------

empno | numeric(4,0) | not null
ename | character varying(10) |
job | character varying(9) |
mgr | numeric(4,0) |
hiredate | date |
sal | numeric(7,2) |
comm | numeric(7,2) |
deptno | numeric(2,0) |

"emp_pkey" PRIMARY KEY, btree (empno)

Foreign-key constraints:

Indexes:

Referenced by:

"emp_deptno_fkey" FOREIGN KEY (deptno) REFERENCES dept(deptno) "emp_mgr_fkey"
FOREIGN KEY (mgr) REFERENCES emp(empno)

TABLE "emp" CONSTRAINT "emp_mgr_fkey" FOREIGN KEY (mgr) REFERENCES emp(empno)

Tablas de los ejemplos

ib=> SELECT * FROM emp;

| job

| sal | comm

| mgr | hiredate

empno | ename
| deptno
-------+--------+-----------+------+------------+---------+---------+--------
7839 | KING | PRESIDENT | | 1981-11-17 | 5000.00 | | 10
7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | | 20
7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | | 20
7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | | 20
7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | | 30
7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30
7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30
7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30
7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | | 10
7788 | SCOTT | ANALYST | 7566 | 1982-12-09 | 3000.00 | | 20
7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30
7876 | ADAMS | CLERK | 7788 | 1983-01-12 | 1100.00 | | 20
7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | | 30
7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | | 10

(14 rows)

Tablas de los ejemplos

ib=> \d dept
Table “public.dept”

Column | Type | Modifiers
--------+-----------------------+-----------
deptno | numeric(2,0) | not null
dname | character varying(14) |
loc | character varying(13) |

Indexes:

"dept_pkey" PRIMARY KEY, btree (deptno)

Referenced by: TABLE "emp" CONSTRAINT "emp_deptno_fkey" FOREIGN KEY (deptno)

REFERENCES dept(deptno)

ib=> SELECT * FROM dept;

| loc

deptno | dname
--------+------------+----------
10 | ACCOUNTING | NEW YORK
20 | RESEARCH | DALLAS
30 | SALES | CHICAGO
40 | OPERATIONS | BOSTON

(4 rows)

Tipos de datos

Cada columna de una tabla tiene un tipo de dato asignado, que determina los
valores posibles y las operaciones permitidas sobre esos valores.
• Tipos de datos numéricos

INTEGER o INT, SMALLINT
FLOAT, REAL, DOUBLE PRECISION
DECIMAL(m,n) o DEC(m,n) o NUMERIC(m,n)

• Tipos de datos alfanuméricos
CHAR(n) o CHARACTER(n)
VARCHAR(n)

• Tipos de datos temporales

DATE (YEAR, MONTH, DAY)
TIME (HOUR, MINUTE, SECOND)
TIMESTAMP

Valores nulos

Valores nulos
El valor nulo NULL representa la ausencia de información, o bien por desconocimiento
del dato, o bien porque no procede.
Debe diferenciarse de cualquier otro valor, entre ellos el valor 0 si se trata de un dato
numérico, y de la cadena de caracteres vacía, si es un tipo de dato de tipo carácter.
Una columna de una tabla podrá admitir valores nulos (NULL) o no (NOT NULL). Por
defecto admite nulos.

CREATE TABLE emp (

)

numeric(4,0) NOT NULL,
character varying(10) NOT NULL,
character varying(9),
numeric(4,0),

empno
ename
job
mgr
hiredate date,
sal numeric(7,2),
comm
numeric(7,2),
numeric(2,0)
deptno

Expresiones

Una expresión es la formulación de una secuencia de operaciones, o sea, una combinación
de operadores, operandos y paréntesis, que, cuando se ejecuta, devuelve un único valor
como resultado.
Los operandos pueden ser constantes, nombres de columna, funciones, otras expresiones y
otros elementos.
El tipo de dato de cada operando de una expresión debe ser el mismo. Si un operando es
nulo, el resultado también es nulo.
Operadores numéricos: + -
Operadores alfanuméricos: ||

* /

Ejemplos:

3
‘Casa’
‘A’ || ‘B’
ENAME
SAL * 1.5
SAL + COMM

SELECT

La sentencia SELECT permite seleccionar u obtener datos de una o
varias tablas.
Sintaxis completa (no veremos GROUP BY y HAVING):

SELECT [DISTINCT | ALL] {*|<expr1>,<expr2>],…}
FROM <tabla1>, <tabla2>
WHERE <condición_where>
GROUP BY <group_by_expr1>[,<group_by_expr2>,…]
HAVING <condición_having>
ORDER BY <expr_orderby1>[,<expr_orderby2>,…]

SELECT

El orden de ejecución de las cláusulas y la función de cada una es:
1. FROM (obligatoria)

Determina la tabla o tablas de las que se seleccionarán los datos.

2. WHERE (opcional)

Indica un predicado que expresa la condición que debe cumplir cada fila que interviene
en la consulta. Así la consulta se restringe a las filas que cumplen la condición.

3. SELECT (obligatoria)

Incluye los datos que se solicitan en la consulta, normalmente una o varias expresiones.
Alternativamente un * indica todas las columnas de las tablas involucradas. Si hubiese
filas repetidas, por defecto aparecen, pero no lo hacen si se incluye DISTINCT.

4. ORDER BY (opcional)

Permite determinar el criterio de ordenación de las filas de la tabla resultado. Sin ella
obtendremos las mismas filas, pero puede que en órdenes distintos, según la estrategia
seguida por el SGBD para extraer los datos.

SELECT

Primeros ejemplos
1. Obtener todos los datos de la tabla de empleados:

SELECT *
FROM emp;

2. Obtener los códigos y nombres de los empleados:

SELECT empno, ename
FROM emp;

3. Obtener todos los datos de la tabla de empleados, ordenando el resultado

por el nombre de los empleados:
SELECT *
FROM emp
ORDER BY ename;

Filas repetidas

Las filas repetidas se pueden eliminar del resultado con DISTINCT:
1. Obtener todos los puestos de trabajo.

SELECT job
FROM emp;

2. Obtener todos los puestos de trabajo, sin filas repetidas.

SELECT DISTINCT job
FROM emp;
En este caso las filas repetidas se eliminan del resultado final.
3. Obtener los puestos de trabajo y comisiones, sin filas repetidas.

SELECT DISTINCT job, comm
FROM emp;
DISTINCT se aplica al conjunto de todas las expresiones de SELECT (en este
caso a job y comm, no solo a job)

Predicados

Predicados elementales
Un predicado expresa una condición y como en BD relacionales existe una lógica de tres
valores, verdadero, falso y nulo, la evaluación de una condición puede ser TRUE, FALSE
o NULL.
Un predicado puede aparecer en una cláusula WHERE evaluando la condición de cada
fila de las tablas involucradas, de forma que sólo las filas que cumplen la condición
permanecen involucradas en la consulta, ignorando las restantes.
Los predicados más elementales son los de comparación, que comparan dos
expresiones según un operador de comparación, que puede ser:

< <= = != <> >= >

Algunos ejemplos…

Predicados

1. Obtener los códigos y nombres de los empleados que trabajan en el departamento 10:

SELECT em
  • Links de descarga
http://lwp-l.com/pdf4969

Comentarios de: Introducción a SQL - Bloque III (Prácticas) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad