Está en la página 1de 23

INSTITUTO TECNOLOGICO DE SALTILLO

Fundamentos de BD
Introducción al SQL

Primero que nada debemos de saber que significa SQL, por sus siglas en ingles
(Structured Query Language), Lenguaje de Consulta Estructurado, es un lenguaje
declarativo de acceso a bases de datos relacionales que permite especificar diversos
tipos de operaciones en éstas. Una de sus características es el manejo del álgebra y el
cálculo relacional permitiendo efectuar consultas con el fin de recuperar información de
interés de una base de datos, así como también hacer cambios sobre ella, agregando
información, modificándola o eliminándola.

SQL cuenta con dos lenguajes que nos permiten poder realizar nuestras actividades en
nuestra BD.

Lenguaje de definición de datos (LDD o DDL en ingles)

El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), se


encarga de la definición de la estructura de los objetos de la base de datos. Existen cuatro
operaciones básicas con las que podemos trabajar: CREATE, ALTER, DROP y
TRUNCATE.

Comando Descripción
CREATE Utilizado para crear nuevas usuarios, tablas, campos, constraints, etc.
DROP Empleado para eliminar usuarios, tablas, campos, constraints, etc.
ALTER Utilizado para modificar usuarios, las tablas agregando campos o cambiando
la definición de los campos. Los constraints, etc.
TRUNCATE Elimina el contenido de la tabla

Lenguaje de manipulación de datos (LMD o DML en ingles)

El lenguaje de definición de datos (en inglés Data Manipulation Language, o DML), es el


que nos permite manipular la base de datos: SELECT, INSERT, UPDATE y DELETE.

Comando Descripción
SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio
determinado

Página: 1 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.
UPDATE Utilizado para modificar los valores de los campos y registros especificados
DELETE Utilizado para eliminar registros de una tabla.

El SQL - DML nos proporciona cláusulas, dichas cláusulas son condiciones de


modificación utilizadas para definir los datos que desea seleccionar o manipular de la BD.
En otras palabras, las cláusulas nos permiten poner condiciones muy específicas para
realizar el UPDATE, DELETE o SELECT.

Cláusula Descripción
FROM Utilizada para especificar la tabla de origen de datos de la cual se van a
seleccionar los registros
WHERE Utilizada para especificar las condiciones que deben reunir los registros que se
van a seleccionar
GROUP Utilizada para separar los registros seleccionados en grupos específicos
BY
HAVING Utilizada para expresar la condición que debe satisfacer cada grupo
ORDER Utilizada para ordenar los registros seleccionados de acuerdo con un orden
BY específico

También contamos con los operadores lógicos, ya vistos en programación.

Operador Uso
Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si
AND
ambas son ciertas.
Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna
OR
de las dos es cierta.
NOT Negación lógica. Devuelve el valor contrario de la expresión.

Operadores de comparación, así como los que ya conocemos en los lenguajes de


programación que hemos visto en otras materias.

Operador Uso
< Menor que

Página: 2 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
> Mayor que
<> Distinto de
<= Menor ó Igual que
>= Mayor ó Igual que
= Igual que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE Utilizado en la comparación de un modelo o patrón
In Utilizado para especificar grupo específico de registros, indicando cuales son.

También contamos con unas funciones llamadas funciones de agregado, éstas se usan
dentro de una cláusula SELECT en grupos de registros para devolver un único valor que
se aplica a un grupo de registros.

Función Descripción
AVG Utilizada para calcular el promedio de los valores de un campo determinado
COUNT Utilizada para devolver el número de registros de la selección

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

MAX Utilizada para devolver el valor más alto de un campo especificado

MIN Utilizada para devolver el valor más bajo de un campo especificado

Como hemos dicho con anterioridad, nuestra herramienta de trabajo en esta materia es el
manejador de base de datos Oracle, debemos de saber cuales son los tipos de datos
permitidos y así poder definir de una manera más eficiente nuestra BD.

TIPO DE DATO CARÁCTER ISTICAS OBSERVACIONES

Entre 1 y 2000 bytes como máximo.


Cadena de caracteres Aunque se introduzca un valor más corto
CHAR
(alfanuméricos) de longitud fija que el indicado en el tamaño, se rellenará
al tamaño indicado.

Entre 1 y 4000 bytes como máximo. El


Cadena de caracteres de
VARCHAR2 tamaño del campo dependerá del valor
longitud variable
que contenga, es de longitud variable.

Admiten hasta 8 terabytes (8000 GB).


LOB (BLOG, CLOB, NCLOB, Permiten almacenar y manipular

Página: 3 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
BFILE) bloques grandes de datos no Una tabla puede contener varias columnas
estructurados (tales como texto, de tipo LOB.
imágenes, videos, sonidos, etc)
en formato binario o del carácter Soportan acceso aleatorio.

Las tablas con columnas de tipo LOB no


pueden ser replicadas.

Permite almacenar datos


BLOB Admiten hasta 8 terabytes
binarios no estructurados

CLOB Almacena datos de tipo carácter Admiten hasta 8 terabytes

Admiten hasta 8 terabytes.

NCLOB Almacena datos de tipo carácter


Guarda los datos según el juego de
caracteres Unicode nacional.

Admiten hasta 8 terabytes.


Almacena datos binarios no
estructurados en archivos del El administrador de la base de datos debe
sistema operativo, fuera de la asegurarse de que exista el archivo en
BFILE base de datos. Una columna disco y de que los procesos de Oracle
BFILE almacena un localizador tengan permisos de lectura para el
del archivo a uno externo que archivo.
contiene los datos

Se admiten hasta 38 dígitos de precisión y


son portables entre los diversos sistemas
en que funcione Oracle.

Para declarar un tipo de datos NUMBER


en un CREATE ó UPDATE es suficiente
con:

Almacena números fijos y en


NUMBER nombre_columna NUMBER
punto flotante

opcionalmente se le puede indicar la


precisión (número total de dígitos) y la
escala (número de dígitos a la derecha de
la coma, decimales, los cogerá de la
precisión indicada):

nombre_columna NUMBER (precision,

Página: 4 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
escala)

Si no se indica la precisión se tomará en


función del número a guardar, si no se
indica la escala se tomará escala cero.

Para no indicar la precisión y sí la escala


podemos utilizar:

nombre_columna NUMBER (*, escala)

Para introducir números que no estén el el


formato estándar de Oracle se puede
utilizar la función TO_NUMBER.

Almacena tipos de datos Es un tipo NUMBER que sólo almacena


FLOAT
numéricos en punto flotante números en punto flotante

El tipo de datos DATE almacena el año


(incluyendo el siglo), el mes, el día, las
horas, los minutos y los segundos
(después de medianoche).

Oracle utiliza su propio formato interno


para almacenar fechas.

Los tipos de datos DATE se almacenan en


campos de longitud fija de siete octetos
cada uno, correspondiendo al siglo, año,
mes, día, hora, minuto, y al segundo.
Almacena un punto en el tiempo
DATE
(fecha y hora)
Para entrada/salida de fechas, Oracle
utiliza por defecto el formato DD-MMM-
AA. Para cambiar este formato de fecha
por defecto se utiliza el parámetro
NLS_DATE_FORMAT.

Para insertar fechas que no estén en el


mismo formato de fecha estándar de
Oracle, se puede utilizar la función
TO_DATE con una máscara del formato:
TO_DATE (el “13 de noviembre de 1992”,
“DD del MES, YYYY”)

Página: 5 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
Tipo de datos abstracto. En Se asocia a un esquema XML para la
XMLType
realidad se trata de un CLOB. definición de su estructura.

Los tipos de datos más comunes son: VARCHAR (cadenas de texto variables no muy
grandes), DATE (fechas, horas), NUMBER o NUMERIC (números), BLOB (ficheros de
tipo Word, Excel, Access, video, sonido, imágenes, etc.) y CLOB (cadenas de texto muy
grandes).

Página: 6 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
SQL – DDL lenguaje de definición de datos, como ya sabemos, en el DDL contamos con
el comando CREATE.

CREATE: Este comando crea una estructura de datos dentro de la base de datos. Puede
ser una tabla, vista, índice, función, procedimiento o cualquier otro objeto que el motor de
la base de datos soporte, éste comando lo utilizamos en la unidad 1 para crear a los
usuarios.

Como creamos una tabla en nuestra BD?. Para ello haremos uso del comando
CREATE y la palabra TABLE, veamos la siguiente sintaxis y tratemos de aprender como
se escribe y que significa cada parte.

CREATE TABLE nombre_de_tabla


(
Campo_1 tipo_de_dato (Longitud en caso de que tenga) NOT NULL,
Campo_2 tipo_de_dato (Longitud en caso de que tenga) NOT NULL
);

Donde:

CREATE TABLE Comando para crear una tabla, debe de incluirse la palabra
TABLE
nombre_de_tabla Es el nombre de la tabla, se recomienda que sea relacionado a la
información que contendrá
( Requerido e indica el inicio de los campos que formarán la tabla.
campo1, campo2, Son los nombres de los campos que contiene la tabla, se
campoN recomienda que el nombre esté relacionado con lo que guardará
el campo.
tipo_de_dato Es el tipo de dato de cada uno de los campos de la tabla, si el
campo tiene longitud ésta se especifica entre paréntesis.
NOT NULL Si el campo requiere obligatoriamente de un valor, se le impone
las palabras NOT NULL, de ésta manera el DBMS restringe que
dicho campo se quede sin valor.
) Requerido e indica el fin de los campos que formarán la tabla o el

Página: 7 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
fin de la estructura de la tabla.
; Punto y como, es requerido e indica la terminación de la sentencia
para que el DBMS lo ejecute.

También podemos crear tablas a partir de tablas que ya existen en nuestra base de datos,
incluso si éstas tienen registros almacenados, el siguiente ejemplo ilustra como se hace.

Crear la tabla cp_sexos a partir de la tabla sexos

create table cp_sexos as select * from sexos;

Es importante que nuestras tablas cuenten con índices o llaves primarias. Pare evitar la
duplicidad de información en nuestra BD, para ello la sintaxis a emplear es la siguiente,
siempre y cuando se esté creando la tabla.

CREATE TABLE nombre_de_tabla


(
Campo_1 tipo_de_dato (Longitud en caso de que tenga) NOT NULL,
Campo_2 tipo_de_dato (Longitud en caso de que tenga) NOT NULL,
Constraint Nombre_Constraint Primary Key (campos_llave)
);

Si por alguna razón se tiene que modificar o alterar la estructura de una tabla, el DDL nos
provee del comando ALTER.

ALTER: Es un comando que permite modificar la estructura de un objeto. Se pueden


agregar/quitar campos a una tabla (siempre y cuando dichos campos no formen parte de
la llave primaria o la llave foránea), modificar el tipo de un campo, modificar la longitud de
un campo, agregar/quitar índices a una tabla, etc.

Sintaxis

ALTER TABLE nombre_de_tabla (ADD/MODIFY/DROP) campo tipo_dato;

Página: 8 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
Por ejemplo para agregar una columna a una tabla.

Agregar una columna llamada PESO a la tabla de ALUMNOS.

ALTER TABLE alumnos ADD peso varchar(10); Si la tabla ya tiene datos no se puede
condicionar el nuevo campo con NOT NULL, es decir, no se le puede escribir NOT NULL.

Para modificar (aumentar la longitud de un campo)

ALTER TABLE alumnos MODIFY e_mail varchar(15); Si se trata de hacer más


pequeña la longitud del campo y el campo tiene datos, en DBMS no permite la acción
porque éstos pueden verse afectados.

ALTER TABLE prueba DROP COLUMN nombre_columna; Para eliminar una columna
de una tabla, siempre y cuando no sea parte del PK o FK. Si la columna cuenta con datos,
éstos se perderán.

Para renombrar una tabla, es decir cambiarle el nombre a la tabla.

ALTER TABLE prueba RENAME TO pruebita;

Para renombrar una columna en una tabla, es decir cambiarle el nombre a una
columna de la tabla.

ALTER TABLE prueba RENAME COLUMN uno TO unito;

Nota: Si la tabla a la que se le agrega el campo ya tiene registros almacenados, el campo


o campos que se agreguen deberán de aceptar nulos, es decir, omitir el NOT NULL en la
sentencia ALTER. Posteriormente se le tiene que actualizar ese valor a esa columna.

Si al modificar la longitud del campo es menor que el texto que contengan los datos, no se
puede hacer el cambio, se marca el siguiente error.

ORA-01441: cannot decrease column length because some value is too big

También le podemos agregar la llave primaria a una tabla que ya esté creada, aunque hay
que tener en cuenta las siguientes consideraciones:
Página: 9 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx
INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
Si la tabla tiene datos, asegurarse que el dato contenido en el campo que se pretende sea
llave que no esté repetido.

ALTER TABLE Alumnos add (constraint pk_alumnos primary key (id_matricula));

ALTER TABLE Grupos add constraint foreign key (id_materia) reference Materias
(id_materia);

DROP: Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista,
índice, función, campo, procedimiento o cualquier otro objeto que el motor de la base de
datos soporte.

Eliminar una columna llamada PESO a la tabla de ALUMNOS.


alter table ALUMNOS drop column PESO;

Eliminar un CONSTRAINT de una tabla


ALTER TABLE clientes_c34a DROP CONSTRAINT nombre_constraint CASCADE;

ALTER TABLE alumnos DROP CONSTRAINT PK_nombre_constraint;

TRUNCATE: Este comando trunca todo el contenido de una tabla. La ventaja sobre el
comando DELETE, es que si se quiere borrar todo el contenido de la tabla, es mucho más
rápido, especialmente si la tabla es muy grande, la desventaja es que TRUNCATE solo
sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la
cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de
Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando
truncate borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.

Ejemplo TRUNCATE TABLE nombre_de_tabla;

Página: 10 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
Lenguaje de manipulación de datos (LMD o DML en ingles)

Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es


un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los
usuarios llevar a cabo las tareas de manipulación de los datos.

Una vez que nuestra base de datos ha sido implementada es requisito que le
alimentemos o almacenemos información, dado que ese es uno de los propósitos de la
misma. Para ello el SQL con el DML nos proporciona el comando INSERT.

Comando INSERT

Durante la manipulación de la información de la BD, se presentan situaciones en las


cuales nuestra base de datos tiene que ser afectada, es decir se tiene que escribir
información en una tabla. Una sentencia INSERT de SQL agrega uno o más registros a
una (y sólo una) tabla en una base de datos relacional.

Forma 1.

Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia
acortada, es decir a todos y cada uno de los campos se le asignará un valor, como se
puede observar, en esta forma los nombres de los campos no se escriben

INSERT INTO nombre_de_tabla


VALUES (''valor1'', [''valor2,...'']);

Donde:

INSERT INTO Requerido e indica al DBMS que se escribe o inserta un nuevo


registro en la tabla
nombre_de_tabla Nombre de la tabla a la que se le inserta el nuevo registro.
VALUES Requerida, indica al DBMS los valores a insertar.
(Valor1, Valor2) Entre paréntesis se escriben los valores, cada valor le debe de

Página: 11 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
corresponder a un campo de la tabla y se debe de respetar el orden
en que están los campos en la tabla.
; La sentencia se termina con punto y coma.

Ejemplo (asumiendo que número y nombre son las únicas columnas de la tabla llamada
sexos):

INSERT INTO sexos VALUES (1, ‘Mujer’);

NOTAS:
 Esta manera inserta valores a todas y cada una de las columnas de la tabla.
 Cada valor en la lista de valores, le corresponde a una columna de la tabla.
 No se requiere especificar los campos de la tabla.
 Los valores numéricos, se escriben de esa manera en que se hayan definido el tipo de
dato. 123 , 457. Si tiene decimales 22.50
 Los valores texto o fechas se ponen entre apostrofes.
 El formato para le fecha es 'dd/mm/yyyy' para español y ‘mm/dd/yyyy’ en inglés

Forma 2.

Cuando se especifican ciertos valores para ciertos campos de una tabla, es decir no a
todos los campos de la tabla se le asignará valor, como requisito, los campos que no
aceptan nulos se les debe de asignar valor, es decir aquellos que son NOT NULL
requieren de valor.

INSERT INTO nombre_de_tabla (campo1, campo2, campoN)


VALUES (valor_campo1, valor_campo2, valor_campoN);

Donde:

INSERT INTO Requerido e indica al DBMS que se escribe o inserta un nuevo


registro en la tabla

Página: 12 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
Nombre_de_tabla Nombre de la tabla a la que se le inserta el nuevo registro.
(campo1, campo2, Entre paréntesis de escriben los nombres de los campos que
campoN) requieren de valor y/o que se quiere que tengan valor, se deben de
separar por coma.
VALUES Requerida, indica al DBMS los valores a insertar.
(Valor1, Valor2) Entre paréntesis se escriben los valores, cada valor le debe de
corresponder a un campo de la tabla
; La sentencia se termina con punto y coma.

NOTAS:
 Esta forma del INSERT, inserta valores solo a los campos indicados
 Cada valor en la lista de valores, le corresponde a una columna de la lista de
columnas de la tabla.
 Se requiere especificar los campos de las tablas a los que se les quiere insertar valor.
 Los valores numéricos, se escriben de esa manera, 123 o 345, si tiene decimales
123.45
 Los valores texto o fechas se ponen entre apostrofes.
 El formato para le fecha es 'dd/mm/yyyy' en españo y en ingles ‘mm/dd/yyyy’
 Los campos que son NOT NULL, obligatoriamente se tienen que indicar, así como su
valor correspondiente.

Ejemplo:

INSERT INTO clientes (id_cliente, nombre, paterno, edad, sexo, telefono, e_mail, id_pais,
id_estado, id_ciuad, id_colonia)
VALUES (1, ‘Juanito’, 'García', 20, 1, '222222', 'correo', 1,1,1,1);

Otras formas

Copia de filas de otras tablas

Un INSERT también puede utilizarse para recuperar datos de otra tabla ya existente y con
registros, modificarla si es necesario e insertarla directamente en la tabla. Todo esto se
hace en una sola sentencia SQL que no implica ningún procesamiento intermedio en la

Página: 13 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
aplicación cliente. Un SUBSELECT se utiliza en lugar de la cláusula VALUES. Un ejemplo
se da a continuación.

INSERT INTO sexos_dos SELECT * FROM sexos;

INSERT INTO sexos_dos SELECT * FROM sexos WHERE id_sexo IN (1,2);

Página: 14 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD

Comando UPDATE

La información o datos almacenados en nuestra base de datos seguramente en algún


momento alguno de ellos deberán de ser cambiados, modificados o actualizados. Dichos
cambios los podemos hacer por medio del SQL – DML con el comando UPDATE.

Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de
registros existentes en una tabla.

Forma 1. Actualiza uno o más campos, pero de todos los registro. Esta forma actualiza el
valor del campo especificado y lo aplica a todos los registros de la tabla. Este caso es
poco usual.

UPDATE nombre_de_tabla SET nombre_de_campo = valor1;

Donde:

UPDATE Requerido, indica al DBMS que se actualiza o cambia un valor de


un campo de la tabla.
Nombre_de_tabla Nombre de la tabla a la que se le quiere hacer el cambio.
SET Requerido, indica al DBMS que le ponga o le asigna
Nombre_de_campo Es el nombre del campo de la tabla a la que se le asigna un
nuevo valor. Si son dos o más campos a modificar, se escribe el
campo signo de igual, su valor y luego una coma y el siguiente
campo
Valor1 Es el nuevo valor que se le pondrá al campo indicado.

O bien si se requiere cambiar a dos o más campos el valor y asignarles el nuevo valor a
todos los registros se puede hacer de la siguiente forma.

UPDATE nombre_de_tabla
SET nombre_de_campo1 = valor1,
nombre_de_Campo2 = valor2;

Página: 15 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
Forma 2.

Cuando se requiere modificar, cambiar o actualizar el valor de un campo pero bajo un


criterio o condición específica, es decir de un solo registro o un pequeño grupo de
registros de la tabla, para ello usaremos la cláusula WHERE

UPDATE nombre_de_tabla
SET nombre_campo = Valor1
WHERE campo_llave = valor_campo_llave;

Donde:

UPDATE Requerido, indica al DBMS que se actualiza o cambia un valor de


un campo de la tabla.
Nombre_de_tabla Nombre de la tabla a la que se le quiere hacer el cambio.
SET Requerido, indica al DBMS que le ponga o le asigna
Nombre_de_campo Es el nombre del campo de la tabla a la que se le asigna un
nuevo valor.
Valor1 Es el nuevo valor que se le pondrá al campo indicado.
WHERE Cláusula requerida, indica al DBMS que la acción se hace bajo
un condición dada o bajo un criterio determinado.
Campo_llave Se recomienda que se use el nombre del campo o campos que
forman la llave primario o índice de la tabla así se garantiza que
se afecta solamente a un registro.
= Signo de igual, asi condicionamos la acción solo y solo si es igual
al valor.
Valor_campo_llave Valor de la llave primaria o índice.

En la cláusula WHERE se puede incluir más de una condición para ello se usan los
operadores lógicos AND y OR. Cuando usar uno o el otro? Pues hay que escuchar y
entender el requerimiento, si nos dicen aquellos alumnos de la carrera de sistemas y que
sean hombres, entonces usamos AND, si nos dicen, los alumnos que sean de sistemas o
que sean hombres, usamos el OR

Página: 16 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD

Si se requiere actualizar más de dos campos pero bajo un criterio o condición específica,
es decir de un solo registro de la tabla.

UPDATE nombre_de_tabla
SET campo1 = nuevo_valor1, campo2 = nuevo_valor2
WHERE campo_llave = valor_campo_llave;

En estos casos se recomienda que en la cláusula WHERE se use el campo o campos que
forman la llave primaria o índice de la tabla, ya que esto asegura que la afectación sea
sobre un solo registro y en caso de haber cometido un error es más fácil hacer la
corrección.

Forma 3.

Cuando se requiere modificar, cambiar o actualizar el valor de un campo pero bajo un


criterio o condición específica aplicando una consulta en la cláusula WHERE
(subconsultas) comparando el campo FK.

UPDATE nombre_de_tabla
SET nombre_campo = Valor1
WHERE campo_FK = (subconsulta);

Donde:

UPDATE Requerido, indica al DBMS que se actualiza o cambia un valor de


un campo de la tabla.
Nombre_de_tabla Nombre de la tabla a la que se le quiere hacer el cambio.
SET Requerido, indica al DBMS que le ponga o le asigna
Nombre_de_campo Es el nombre del campo de la tabla a la que se le asigna un
nuevo valor.
Valor1 Es el nuevo valor que se le pondrá al campo indicado.
WHERE Cláusula requerida, indica al DBMS que la acción se hace bajo

Página: 17 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
un condición dada o bajo un criterio determinado.
Campo_FK Se recomienda que se use el nombre del campo o campos que
forman la llave foránea de la tabla.
= Signo de igual, asi condicionamos la acción solo y solo si es igual
al valor.
(Subconsulta) Query de subconsultas donde se obtiene el valor guardado en el
campo PK de la tabla de donde se pide la condición.

Comando DELETE

Eliminar, dar de baja, borrar, depurar, cuantas veces hemos escuchado estas palabras,
pues bien a la información o datos almacenados en nuestra base de datos seguramente
en algún momento hay de depurarla por alguna razón. Para poder realizar esta actividad
el SQL – DML con el comando DELETE nos permite cumplir con ello.

El DELETE de SQL borra cero o más registros existentes en una tabla,

Forma 1.

Borrar todos los registros de una tabla.

DELETE FROM nombre_de_tabla; En la vida real, esta forma de liminar información es


nula. Paraqué cargar datos y luego eliminarlos todos?

Donde:

DELETE FROM Requerido, indica al DBMS que se eliminen registros de la tabla.


Nombre_de_tabla Nombre de la tabla a la que se le quiere eliminar registros.

Ésta forma es muy delicada y peligrosa, borra todos los registros que se encuentren en la
tabla.

Página: 18 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
Forma 2.

DELETE FROM nombre_de_tabla WHERE campo_FK = (subconsultas);

Donde:

DELETE FROM Requerido, indica al DBMS que se eliminen registros de la tabla.


Nombre_de_tabla Nombre de la tabla a la que se le quiere eliminar registros.
WHERE Cláusula requerida, indica al DBMS que la acción se hace bajo
un condición dada o bajo un criterio determinado.
Campo_FK Se recomienda que se use el nombre del campo o campos que
forman la llave foránea de la tabla.
(subconsultas) Query de subconsultas donde se obtiene el valor guardado en el
campo PK de la tabla de donde se pide la condición.

Al igual que el UPDATE, en la cláusula WHERE se pueden poner más de una condición.
La subconsulta, al final de cuentas es una consulta en la tabla PAPÁ porque el campo_FK
es el campo que establece la relación y es la llave foránea, entonces se puede hacer la
consulta en la tabla papá y el valor encontrado lo usamos en el UPDATE o DELETE en su
cláusula WHERE.

Por ejemplo, si se pide dar de baja a los alumnos de la carrera de sistemas, primero no
sabemos cuál es el ID de la carrera, por lo tanto tenemos que hacer:

select id_carrera from carreras where descripción = ‘Sistemas’;


Suponemos que su id = 2

Entonces ya podemos hacer el DELETE


Delete from alumnos where id_carrera = 2;

Si usamos la subconsulta, el DELETE quedaría así:


Delete from alumnos
where id_carrera = (select id_carrera where descripción = ‘Sistemas’);

Página: 19 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
Comando SELECT

Hemos usado las palabras consultar, listar, obtener, recuperar, leer, seleccionar
información o datos almacenados en nuestra base de datos, y si guardamos información
en ella, es obvio que la tengamos que consultar.

Para poder realizar esta actividad el SQL – DML con el comando SELECT nos permite
cumplir con ello.

Podemos recuperar información de un o varias tablas a la vez.

Sintaxis básica. Recuperando todos los registros y todas las columnas de una tabla. En
la vida real ésta consulta poco te sirve y lo más seguro es que nunca lo hagas.

SELECT * FROM Nombre_de_Tabla;

Donde:

SELECT Estatuto para consultar, palabra clave indica al DBMS que se


requiere recuperar algo.
* Comodín, indica todos los campos que formen el registro y todos los
registros de la tabla.
FROM Cláusula requerida, indica al DBMS la fuente de donde se
recuperan los datos (tablas).
Nombre_de_tabla Es el nombre de la tabla de donde se requiere recuperar la
información.

Si la consulta a realizar está condicionada por algún valor o criterio específico que la haga
recuperar uno o un conjunto de registros en necesario incluir la cláusula WHERE.

SELECT *
FROM Nombre_de_Tabla
WHERE campo_llave = valor_campo_llave;

Página: 20 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
Si se requiere recuperar solo algunos campos de la tabla en lugar del comodín se
especifican los campos que se requiere recuperar.

SELECT nombre_campo1, nombre_campo2, nombre_campo3


FROM Nombre_de_Tabla
WHERE campo_llave = valor_campo_llave;

Donde:

SELECT Estatuto para consultar, palabra clave indica al DBMS que se


requiere recuperar algo.
nombre_campo1, Lista de nombres de campos a recuperar que formen el registro.
nombre_campo2,
nombre_campo3
FROM Cláusula requerida, indica al DBMS la fuente de donde se
recuperan los datos (tablas).
Nombre_de_tabla Es el nombre de la tabla de donde se requiere recuperar la
información.
WHERE Cláusula requerida, indica al DBMS que la acción se hace bajo un
condición dada o bajo un criterio determinado.
Campo_llave Se recomienda que se use el nombre del campo o campos que
forman la PK de la tabla, se garantiza que afecta a un registro.
= Signo de igual, así condicionamos la acción solo y solo si es igual al
valor.
Valor_campo_llave Valor de la llave primaria o índice.

Cuando se incluyen dos o más tablas en la consulta, se deben de especificar los nombres
de dichas tablas en la cláusula FROM e incluir obligatoriamente la cláusula WHERE
donde establecemos la relación que hay entre las tablas involucradas y como ya sabemos
las relaciones las establecen los PK = FK.

SELECT nombre_campo1, nombre_campo2, nombre_campo3


FROM Nombre_de_Tabla1, nombre_de_tabla2

Página: 21 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
WHERE nombre_de_tabla1.campo_llave = nombre_de_tabla2.valor_llave_foranea;

Donde:

SELECT Estatuto para consultar, palabra clave indica


al DBMS que se requiere recuperar algo.
nombre_campo1, nombre_campo2, Lista de nombres de campos a recuperar que
nombre_campo3 formen el registro.
FROM Cláusula requerida, indica al DBMS la fuente
de donde se recuperan los datos (tablas).
Nombre_de_tabla1 Es el nombre de tablas de donde se requiere
Nombre_de_tabla1 recuperar la información.
WHERE Cláusula requerida, indica al DBMS que la
acción se hace bajo un condición dada o bajo
un criterio determinado.
Nombre_de_tabla1.Campo_llave Se recomienda que sean los campos que
forman la llave primaria de la tabla.
= Signo de igual, asi condicionamos la acción
solo y solo si es igual al valor.
Nombre_de_tabla2.Valor_llave_foranea Se recomienda que sean los campos de la
llave foránea de la tabla, ya que son los que
relacionan a las tablas

Importante, si no se pone en la cláusula WHERE las relaciones entre las distintas tablas
que se involucren en la consulta, se producirá el efecto del producto cartesiano,
multiplicando los N registros de una tabla por los N registros de la otra tabla. Cuando se
incluyen dos o más tablas en la consulta, los campos de las tablas que relaciona a éstas,
se deben de incluir en la cláusula WHERE, igualando dichas columnas en dicha cláusula.

Si los nombres de los campos entre las diferentes tablas se llaman de igual manera, es
necesario que se identifique a que tabla le corresponde cada campo y anteponerle el
nombre de la tabla.

Página: 22 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx


INSTITUTO TECNOLOGICO DE SALTILLO
Fundamentos de BD
Una modalidad o función agregada es la ORDER BY, la cual permite ordenar un resultado
de manera que lo puedes ordenar de Mayor a Menor (desc = descendente, en inglés
descending) o de Menor a Mayor (asc = ascendente, en inglés ascending).

Este ordenamiento puede aplicar en un campo o en varios campos, en caso de aplicar lo


último, los campos se separan por comas.

Por ejemplo ordenar la lista de carreras en orden alfabético.

Select descripcion from carreras order by descripcion asc;

Página: 23 Ing. José Gallegos Martínez. E-mail: jose.gm@saltillo.tecnm.mx

También podría gustarte