Sei sulla pagina 1di 10

INCES MILITAR

Barquisimeto – Estado Lara

Fase: Desarrollo Web


Instructor: Kurt Vladimir Gude P.
SQL

Guía de Programación SQL

1. SQL – Lenguaje de Consulta Estructurado:


El lenguaje utilizado para comunicarse con una base de datos (BD) se llama Lenguaje de
Consulta Estructurado (Structured Query Language - SQL), el cual se ha consolidado como el lenguaje
estándar de las bases de datos relacionales.

Cada RDBMS (Sistema Manejador de Bases de Datos Relacionales) viene con una herramienta
de uso interactivo que permite al usuario ingresar sentencias SQL y pasarlas a la base de datos para su
ejecución.

2. Comandos por categoría:


El SQL tiene las siguientes partes:

2.1. Comandos DDL (Data Definition Language) - Lenguaje de Definición de Datos:


Proporciona comandos para definir los objetos de la base de datos. Ejemplo: Una base de datos,
una tabla o un índice. Los comandos de esta categoría son:
 CREATE
 ALTER
 DROP

2.2. Comandos DML (Data Manipulation Language) - Lenguaje de Manipulación de Datos:


Proporciona comandos para insertar, eliminar y modificar registros en la(s) tabla(s). Los
comandos de esta categoría son:
 INSERT
 DELETE
 UPDATE

2.3. Comandos DQL (Data Query Language) - Lenguaje de Consulta de Datos:


Proporciona comandos para recuperar datos desde tablas. El comando de esta categoría es:
 SELECT

2.4. Comandos DCL (Data Control Language) - Lenguaje de Control de Datos:


Proporciona comandos para manejar y controlar datos. Ayuda al administrador a controlar la
seguridad y los accesos a los datos. Los comandos de esta categoría son:
 GRANT
 REVOKE

1
3. Comandos SQL (usando MySQL Query Browser):
Para escribir comandos SQL utilizando el manejador de base de datos MySQL, se recomienda:

 Las palabras reservadas pueden ser escritas en mayúscula o minúscula.


 Se puede escribir un comando o instrucción en una o más líneas.
 En "MySQL Command Line" las instrucciones deben terminar con ";".
 En "MySQL Query Browser" las instrucciones pueden terminar con o sin ";".

1.- Mostrar la versión del servidor MySQL instalado:


SELECT VERSION()

2.- Mostrar la fecha actual del servidor:


SELECT CURRENT_DATE()
SELECT CURRENT_DATE //esta es otra forma

3.- Mostrar la hora actual del servidor:


SELECT CURRENT_TIME()
SELECT CURRENT_TIME //esta es otra forma

4.- Mostrar la fecha y la hora actual del servidor:


SELECT NOW()

5.- Mostrar los usuarios:


SELECT USER()

6.- Ejemplo de dos consultas (comandos) en una misma instrucción:


SELECT USER(), CURRENT_DATE

7.- Listar las Bases de Datos existentes en el servidor (a las que se tiene privilegio):
SHOW DATABASES

8.- Para conectarse a una Base de Datos (o cambiarse de BD):


CONNECT test //en este ejemplo el nombre de la Base de Datos es “test”
USE test //esta es otra forma

-------- o --------

4. Tipos de Datos:

4.1. NUMERICO ENTERO:


INTEGER o INT: Rango de -2 mil millones a +2 mil millones
Se puede especificar la cantidad de dígitos (MAXIMO 10):
INTEGER(4)
INT(5)

4.2. NUMERICO PUNTO FLOTANTE:


FLOAT o XREAL //de simple precisión
FLOAT(8,2)
DOUBLE //de doble precisión
DOUBLE(8,2)

4.3. TIPO FECHA:


DATE //(aaaa-mm-dd) (hasta el año 9999)
DATETIME //(aaaa-mm-dd hh:mm:ss) (hasta el año 9999)
TIME //(hh:mm:ss) (desde -838 horas a +838 horas)
YEAR //(tamaño 2 o 4) (desde 1901 a 2155)

2
4.4. TIPO CADENA:
CHAR(n) //cadena de longitud fija (desde 0 a 255 caracteres)
VARCHAR(n) //cadena de longitud variable (desde 0 a 255 caracteres)
TEXT(n) //consultas no sensibles a mayúscula y minúscula (desde 0 a 65535)
BLOB(n) //almacena datos binarios (imágenes, video)

-------- o --------

5. Comandos DDL (Lenguaje de Definición de Datos):

9.- Crear una Base de Datos llamada “mibase” (Este comando no conecta a la BD, solo la crea):
CREATE DATABASE mibase //este comando produce un mensaje de error si ya existe esa BD
CREATE DATABASE IF NOT EXISTS mibase //así, no produce mensaje de error si ya existe la BD

10.- Listar las Bases de Datos existentes en el servidor (a las que se tiene privilegio):
SHOW DATABASES

11.- Eliminar una Base de Datos llamada “mibase” y sus tablas (debe tener privilegio DROP sobre la BD):
DROP DATABASE mibase

12.- Crear una tabla llamada “Empleado” y definir las columnas que contiene:
CREATE TABLE Empleado (
idEmp INT NOT NULL PRIMARY KEY,
nombre VARCHAR(30),
sueldo DOUBLE)
ENGINE = INNODB

13.- Crear una Tabla con la estructura (columnas) igual a otra tabla:
CREATE TABLE Empleado2 LIKE Empleado

14.- Listar las tablas disponibles en la Base de Datos activa:


SHOW TABLES

15.- Mostrar información sobre la definición de una tabla (columnas, tipo, etc):
DESCRIBE Empleado //muestra las columnas: Field, Type, Null, Key, Default

SHOW COLUMNS FROM Empleado //esta es otra forma

16.- Mostrar el motor de almacenamiento usado en una tabla:


SHOW TABLE STATUS FROM mibase

17.- Crear una tabla con índices sobre una o varias columnas (se usa KEY o INDEX)
(Un índice permite valores repetidos, y admite NULL):
CREATE TABLE Estudiante (
idEst INT,
nombre VARCHAR(20),
apellido VARCHAR(20),
KEY (nombre) )

18.- Crear una tabla con índices únicos sobre una o varias columnas (se usa UNIQUE)
(Un índice único no permite valores repetidos, pero sí admite NULL):
CREATE TABLE Estudiante2 (
idEst INT,
nombre VARCHAR(20),
apellido VARCHAR(20),
UNIQUE (idEst) )

3
19. Crear una tabla con claves foráneas. Es obligatorio que la columna que contiene la definición de una
clave foránea esté indexada. Si no se hace, MySQL lo hará).
(En el ejemplo, la 2da tabla tiene una clave foránea):

CREATE TABLE Cliente (


idCliente INT NOT NULL,
nombre VARCHAR(30),
PRIMARY KEY (idCliente) )

CREATE TABLE Factura (


idFactura INT NOT NULL,
idCliente INT NOT NULL,
monto DOUBLE,
PRIMARY KEY (idFactura),
FOREIGN KEY (idCliente) REFERENCES Cliente(idCliente) ON
DELETE CASCADE )

20.- Cambiar la estructura de una tabla:


//Ejemplo: agregar una columna
ALTER TABLE Estudiante ADD COLUMN edad INT

// Ejemplo: agregar un índice


ALTER TABLE Estudiante ADD INDEX edad_Ind (edad)

// Ejemplo: eliminar una columna


ALTER TABLE Estudiante DROP COLUMN edad

21.- Eliminar una o más tablas:


DROP TABLE Factura, Cliente //elimina ambas tablas, si es que existen
DROP TABLE Estudiante //produce un mensaje de error si no existe esa BD
DROP TABLE IF EXISTS Municipios //no produce mensaje de error si no existe la BD

-------- o --------

6. Comandos DML (Lenguaje de Manipulación de Datos):

22.- Insertar datos en una tabla:


// Ejemplo: sin especificar los nombres de los campos:
INSERT INTO Empleado VALUES (1, 'Valentina', 4000)

// Ejemplo: especificando los nombres de los campos:


INSERT INTO Empleado (idEmp, nombre, sueldo) VALUES (2, 'Hans', 4500)

// Ejemplo: insertar varias filas (registros) en un mismo comando:


INSERT INTO Empleado VALUES
(3, 'Tamara', 5000),
(4, 'Vladimir', 3500)

23.- Actualizar o modificar el valor de un atributo (o columna) de un registro:


UPDATE Empleado
SET nombre = 'Nancy'
WHERE idEmp = 1

UPDATE Empleado
SET nombre = 'Pamela', sueldo = 5500
WHERE idEmp = 3

4
24.- Eliminar registros (o filas) de una tabla:
DELETE
FROM Empleado
WHERE idEmp = 3

// Ejemplo: eliminar registros de dos tablas:


DELETE Cliente, Factura
FROM Cliente, Factura
WHERE Cliente.idCliente = Factura.idCliente

-------- o --------

7. Comandos DQL (Lenguaje de Consulta de Datos):

25.- Mostrar la Base de Datos actual (en uso):


SELECT DATABASE()

26.- Listar las Bases de Datos existentes en el servidor (a las que se tiene privilegio):
SHOW DATABASES

27.- Hacer consultas de una o más tablas:


// Ejemplo: consultar todos los registros de una tabla:
SELECT * FROM Empleado

// Ejemplo: consultar los registros de una tabla (sin filas repetidas):


SELECT DISTINCT * FROM Empleado
// Ejemplo: Consultar algunas columnas de una tabla:
SELECT nombre, sueldo FROM Empleado

// Ejemplo: consultar los registros de una tabla que cumplan con una condición:
SELECT * FROM Empleado WHERE idEmp = 4

SELECT * FROM Empleado WHERE Sueldo > 4000

28.- Comando ORDER BY: Consultar registros ordenados por un campo:


// Ejemplo: Ordenados Ascendentemente:
SELECT * FROM Empleado
ORDER BY apellido, nombre

// Ejemplo: Ordenados Descendentemente:


SELECT * FROM Empleado
ORDER BY nombre DESC

29.- Comando LIMIT: Para limitar el número de filas a consultar:


SELECT * FROM Empleado WHERE sueldo >= 4500 LIMIT 2

30.- Operador IN: Para comparar un campo con varios valores:


SELECT * FROM Empleado WHERE nombre IN ('Sara', 'Vladimir', 'Hans')

SELECT * FROM Empleado


WHERE nombre = 'Sara' OR nombre = 'Vladimir' OR nombre='Hans'

31.- Operador BETWEEN: Para un Rango de datos:


SELECT * FROM Empleado
WHERE sueldo BETWEEN 4000 AND 4500

SELECT * FROM Empleado


WHERE sueldo >= 4500 AND sueldo <= 4500

5
32.- Operador IS: Utilizado para verificar si un campo es NULL o no:
SELECT * FROM Empleado
WHERE nombre IS NULL

SELECT * FROM Empleado


WHERE nombre IS NOT NULL

-------- o --------

8. Operadores Relacionales:
Hay seis operadores relacionales en SQL, como se muestra en la siguiente tabla:

Operador Descripción
= Igual
<> o != Diferente
>= Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que

9. Operadores Lógicos:
Los operadores lógicos permiten crear condiciones compuestas. Hay tres operadores lógicos en
SQL, como se muestra en la siguiente tabla:

Operador Descripción
NOT Negación
AND Y
OR O

------- o -------

10. Funciones Agregadas:

33.- Función COUNT: Para contar el número de registros de una tabla:


SELECT COUNT(*) FROM Empleado //retorna la cantidad total de registros
SELECT COUNT(*) FROM Empleado WHERE sueldo >= 4000 //cuenta algunos registros

34.- Función SUM: Para totalizar (o acumular) los valores de una columna:
SELECT SUM(sueldo) FROM Empleado //suma el sueldo de todos los registros
SELECT SUM(sueldo) FROM Empleado WHERE sueldo >= 4000 //suma algunos registros

35.- Función AVG: Retorna el promedio de los valores de una columna:


SELECT AVG(sueldo) FROM Empleado //retorna el sueldo promedio de todos los registros
SELECT AVG(sueldo) FROM Empleado WHERE sueldo = 4500 //promedia algunos registros

36.- Función MAX: Retorna el máximo valor de una columna:


SELECT MAX(sueldo) FROM Empleado //retorna el sueldo mayor de todos los registros
SELECT MAX(sueldo) FROM Empleado WHERE departamento = 'Informatica'

37.- Función MIN: Retorna el mínimo valor de una columna:


SELECT MIN(sueldo) FROM Empleado //muestra el sueldo menor de todos los registros
SELECT MIN(sueldo) FROM Empleado WHERE departamento = 'Presidencia'

------- o -------

6
11. Consultas multitablas:

38.- Crear las siguientes dos tablas:


CREATE TABLE Depto (
idDep INT NOT NULL,
nombreDep VARCHAR(30) )

CREATE TABLE Personal (


idPers INT NOT NULL PRIMARY KEY,
nombrePers VARCHAR(20),
salario DOUBLE,
idDep INT,
FOREIGN KEY (idDep) REFERENCES Depto(idDep) )

39.- Insertar los siguientes valores a las tablas:


INSERT INTO Depto VALUES
(1, 'Presidencia'),
(2, 'Informatica'),
(3, 'Administracion')

INSERT INTO Personal VALUES


(21, 'Jesus', 6000, 1),
(22, 'Vladimir', 7000, 2),
(23, 'Jose', 5000, 3),
(24, 'Valentina', 5000, 1),
(25, 'Hans', 8000, 2),
(26, 'Ernesto', 9000, 3)

40.- Comando CARTESIAN JOIN (Producto Cartesiano): Combina todas las filas de las dos tablas (Cada
fila de una tabla con cada fila de la otra tabla):
SELECT * FROM Personal, Depto

41.- Comando INNER JOIN (Composiciones internas):


SELECT * FROM Personal, Depto
WHERE Personal.idDep = Depto.idDep

SELECT * FROM Personal JOIN Depto


ON (Personal.idDep = Depto.idDep)

SELECT * FROM Personal INNER JOIN Depto


ON (Personal.idDep = Depto.idDep)

SELECT * FROM Personal JOIN Depto


USING (idDep)

------- o -------

Instructor: Vladimir Gude


Email: vladimirgude@yahoo.es
Barquisimeto - Estado Lara - Venezuela
Febrero - 2014

7
Práctica de MySQL (Ejercicios):

1.- Mostrar la versión del servidor MySQL instalado:


SELECT VERSION()

2.- Mostrar la fecha actual del servidor:


SELECT CURRENT_DATE()
SELECT CURRENT_DATE //esta es otra forma

3.- Mostrar la hora actual del servidor:


SELECT CURRENT_TIME()
SELECT CURRENT_TIME //esta es otra forma

4.- Mostrar la fecha y la hora actual del servidor:


SELECT NOW()

5.- Mostrar los usuarios:


SELECT USER()

6.- Ejemplo de dos consultas (comandos) en una misma instrucción:


SELECT USER(), CURRENT_DATE

7.- Crear una Base de Datos llamada “mibasededatos”:


CREATE DATABASE mibasededatos

CREATE DATABASE IF NOT EXISTS mibasededatos //esta es otra forma

8.- Listar las Bases de Datos existentes en el servidor:


SHOW DATABASES

9.- Seleccione la Base de Datos “mibasededatos”:


(Seleccione con doble clic la base de datos “mibasededatos” en el panel derecho de Query Browser)

10.- Mostrar la Base de Datos actual (en uso):


SELECT DATABASE()

11.- Crear una tabla llamada “Estudiante” con las siguientes columnas: cedula, nombre, dirección,
teléfono, email y sexo:
Nota: Recuerde seleccionar la base de datos “mibasededatos”

CREATE TABLE Estudiante (


cedula INT(8),
nombre VARCHAR(20),
direccion VARCHAR(40),
telefono VARCHAR(14),
email VARCHAR(35),
sexo CHAR(1) )

12.- Listar las tablas disponibles en la Base de Datos activa:


SHOW TABLES

13.- Crear la Tabla “Estudiante2” con la misma estructura (columnas) de la tabla “Estudiante”:
CREATE TABLE Estudiante2 LIKE Estudiante

14.- Listar las tablas disponibles en la Base de Datos activa:


SHOW TABLES

8
15.- Mostrar información sobre la definición de la tabla “Estudiante”:
DESCRIBE Estudiante

SHOW COLUMNS FROM Empleado //esta es otra forma

16.- Mostrar el motor de almacenamiento usado en las tablas de la BD “mibasededatos”:


SHOW TABLE STATUS FROM mibasededatos

17.- Cambiar la estructura de la tabla “Estudiante” agregando la columna “edad”:


ALTER TABLE Estudiante ADD COLUMN edad INT

18.- Cambiar la estructura de la tabla “Estudiante” eliminando la columna “email”:


ALTER TABLE Estudiante DROP COLUMN email

19.- Insertar seis o más registros en la tabla “Estudiante”:


// Ejemplo:
INSERT INTO Estudiante VALUES (11000,'Pamela','Calle 1','0416-5556677','F',15)
INSERT INTO Estudiante VALUES (12000,'Ernesto','Av. 20','0414-7775544','M',18)
//inserte más registros...

20.- Mostrar (consultar) los registros de la tabla “Estudiante”:


SELECT * FROM Estudiante

21.- Modificar a 20 la edad de Ernesto:


UPDATE Estudiante
SET edad = 20
WHERE nombre = 'Ernesto'

22.- Coloque el nombre “Valentina” al registro con cédula 11000000:


UPDATE Estudiante SET nombre = 'Valentina' WHERE cedula = 11000000

23.- Mostrar (consultar) los registros de la tabla “Estudiante”:


SELECT * FROM Estudiante

24.- Mostrar (consultar) todos los estudiantes:


SELECT * FROM Estudiante

25.- Mostrar (consultar) sólo las columnas cédula y nombre de la tabla “Estudiante”:
SELECT cedula, nombre FROM Estudiante

26.- Mostrar (consultar) el registro con cédula 12000000 de la tabla “Estudiante”:


SELECT * FROM Estudiante WHERE cedula = 12000000

27.- Mostrar (consultar) los registros de los mayores de edad de la tabla “Estudiante”:
SELECT * FROM Estudiante WHERE edad >= 18

28.- Mostrar (consultar) los estudiantes de sexo femenino:


SELECT * FROM Estudiante WHERE sexo = 'F'

29.- Mostrar (consultar) la edad del estudiante “Ernesto”:


SELECT edad FROM Estudiante WHERE nombre = 'Ernesto'

30.- Mostrar (consultar) los registros de la tabla “Estudiante” ordenados por nombre:
SELECT * FROM Estudiante ORDER BY nombre

31.- Mostrar (consultar) los registros de la tabla “Estudiante” en orden descendente por edad:
SELECT * FROM Estudiante ORDER BY edad DESC

32.- Mostrar los primeros dos registros de la tabla “Estudiante”:


SELECT * FROM Estudiante LIMIT 2
9
33.- Mostrar los estudiantes que tienen edad comprendida entre 18 y 21 años:
SELECT * FROM Estudiante WHERE edad BETWEEN 18 AND 21

SELECT * FROM Estudiante WHERE edad >= 18 AND edad <= 21

34.- Mostrar la cantidad de registros de la tabla “Estudiante”:


SELECT COUNT(*) FROM Estudiante

35.- Mostrar la cantidad de estudiantes menores de edad:


SELECT COUNT(*) FROM Estudiante WHERE edad < 18

36.- Mostrar la suma total de las edades:


SELECT SUM(edad) FROM Estudiante

37.- Mostrar la edad promedio de los estudiantes:


SELECT AVG(edad) FROM Estudiante

38.- Mostrar la edad promedio de los varones:


SELECT AVG(edad) FROM Estudiante WHERE sexo = 'M'

39.- Mostrar la edad mayor de los estudiantes:


SELECT MAX(edad) FROM Estudiante

40.- Mostrar la edad menor de los estudiantes de sexo femenino:


SELECT MIN(edad) FROM Estudiante WHERE sexo = 'F'

41.- Eliminar el registro que tiene cédula 12000000:


DELETE FROM Estudiante WHERE cedula = 12000000

42.- Eliminar la tabla “Estudiante”:


DROP TABLE Estudiante

DROP TABLE IF EXISTS Estudiante //esta es otra forma

43.- Eliminar la Base de Datos llamada “mibasededatos”:


DROP DATABASE mibasededatos

------- o -------

Instructor: Vladimir Gude


Email: vladimirgude@yahoo.es
Barquisimeto - Estado Lara - Venezuela
Febrero - 2014

10

Potrebbero piacerti anche