Sei sulla pagina 1di 26

SQL

Clase terica 1

Material by @damiande | http://damiandeluca.com.ar


SQL Structured Query Language

Es un lenguaje de consulta estructurado que permite


indicar las operaciones que se realizarn sobre una
base de datos del tipo relacional.

Material by @damiande | http://damiandeluca.com.ar


Un poco de historia
y Los predecesores llegaron de la mano de
IBM en la dcada del 70 (SEQUEL)
y Su primera versin aparece en el ao 1986 y
se la conoce como SQL-86 o SQL1.
Es la primera publicacin realizada por ANSI (Instituto
Nacional Estadounidense de Estndares) y Confirmada
por ISO (Organizacin Internacional para la
Estandarizacin) en 1987.
y En 1992 surge una revisin mayor que se
conoce como SQL92 o SQL2.
y La ltima revisin es la 2008 (donde se
agregan algunas sentencias).
y Ms info en: http://es.wikipedia.org/wiki/SQL.

Material by @damiande | http://damiandeluca.com.ar


Bases de datos que soportan SQL
y Puede utilizarse con bases de datos
relacionales. Entre las que podemos
destacar:
MS Access
MS SQL Server
MySQL
PostgreSQL
Oracle

Material by @damiande | http://damiandeluca.com.ar


SQL (componentes)
y Comandos: existen para la creacin de una DB, Tabla o
Columna (CREATE, DROP o ALTER) y para la consulta y
ABM de datos (SELECT, INSERT, UPDATE y DELETE)
y Clausulas: son las condiciones que deben cumplirse para
realizar una operacin (FROM, WHERE, ORDER BY, etc.).
y Operadores: lgicos (AND, OR, etc.) y de comparacin
(mayor, menor igual, etc.).
y Funciones de agregado: se utilizan con SELECT para
trabajar sobre un grupo de registros. Por ejemplo: SUM,
MAX, MIN, COUNT, etc..
y Lectura recomendada:
http://www.desarrolloweb.com/articulos/tipos-de-sentencias-
sql.html

Material by @damiande | http://damiandeluca.com.ar


Creacin de una base de datos
desde SQL
y Si bien lo podemos hacer de manera
visual (como vimos en clases anteriores),
tambin podemos crear una base desde
SQL con la siguiente sintaxis:
CREATE DATABASE db_nombre
y Tambin se puede especificar que verifique si no
existe antes de crearla:
y CREATE DATABASE IF NOT EXISTS db_nombre

Material by @damiande | http://damiandeluca.com.ar


Creacin de una tabla desde SQL
y Para crear una tabla lo hacemos con CREATE de la siguiente
forma:
CREATE TABLE nombre_tabla
Ej: CREATE TABLE empleados
y Al crear la tabla tambin podremos crear los campos y
definir su tipo y algunas de sus caractersticas. Ej:
CREATE TABLE clientes
(
Nombre varchar(50),
Apellido varchar(50),
Direccion varchar(50),
Ciudad varchar(50),
Pais varchar(25)
)

Material by @damiande | http://damiandeluca.com.ar


Tambin se pueden definir otras
caractersticas al definir los campos
y Create Table pedidos
(
id_pedido INT(4) NOT NULL
AUTO_INCREMENT,
id_cliente INT(4) NOT NULL,
id_articulo INT(4)NOT NULL,
fecha DATE,
cantidad INT(4),
total INT(4)
)
y Ver ejemplos en:
http://www.conclase.net/mysql/curso/?cap=007
Material by @damiande | http://damiandeluca.com.ar
Especificar claves de una tabla
Al definir una columna de nuestra base
podemos definir:
nombre_col tipo [NOT NULL | NULL]
[DEFAULT valor_por_defecto]
[AUTO_INCREMENT] [[PRIMARY] KEY]
[COMMENT 'string']
Al definir una columna de nuestra base
podemos definir:
Ver ejemplos en:
http://www.conclase.net/mysql/curso/?cap=0
07a#007_defcreacion
Material by @damiande | http://damiandeluca.com.ar
Formato de Fechas
y Si utilizamos TIMESTAMP podemos insertar la
fecha y hora actual con CURRENT_TIMESTAMP.
Ver ms en:
http://dev.mysql.com/doc/refman/5.0/es/timestam
p-4-1.html.
y Tipos de Fecha y hora:
http://dev.mysql.com/doc/refman/5.0/es/date-and-
time-types.html.
http://dev.mysql.com/doc/refman/5.0/es/datetime.html
Para probar en XAMPP:
http://dev.mysql.com/doc/refman/5.0/es/date-and-
time-functions.html.

Material by @damiande | http://damiandeluca.com.ar


Establecer formato de fecha
y Es posible utilizar la funcin
DATE_FORMAT para establecer el
formato de fecha.
y Tabla de formato:
http://conclase.net/mysql/curso/?sqlfun=DATE
_FORMAT
http://www.blog.inguille.com/?p=70.
y Tal vez esta pgina nos ayude con este
trabajo y nos muestre la sintaxis:
http://www.mysqlformatdate.com/
Material by @damiande | http://damiandeluca.com.ar
ALTER
y Permite modificar la estructura de una tabla
existente. Por ejemplo, se pueden aadir o
eliminar columnas, crear y destruir ndices,
cambiar el tipo de una columna existente o
renombrar columnas o la propia tabla.
Tambin es posible modificar el comentario
y el tipo de la tabla.
y Ver ms en:
http://mysql.conclase.net/curso/?sqlsen=ALT
ER_TABLE.
Material by @damiande | http://damiandeluca.com.ar
Insertar (INSERT)
y INSERT INTO permite agregar uno o varios registros a una
tabla. Inserta filas en una tabla creada previamente.
y La sintaxis es:
INSERT INTO Table1
VALUES (value1, value2, value3)
INSERT INTO Table1 (Column1, Column2,
Column3)
VALUES (Value1, Value2, Value3)
y Ejemplo:
INSERT INTO Customers (FirstName, LastName)
VALUES ('Peter', 'Hunt')
y Insert tambin puede responder a opciones de prioridad:
http://conclase.net/mysql/curso/?sqlsen=INSERT.

Material by @damiande | http://damiandeluca.com.ar


Mostrar los datos
y SQL nos ofrece opciones para recuperar
los datos y poder mostrarlos.
y Es importante comprender que no
siempre mostraremos todos los datos de
una DB, sin siquiera de una tabla.
Podremos filtrar columnas y tambin
registros, segn lo que necesitemos
mostrar.

Material by @damiande | http://damiandeluca.com.ar


Seleccin (SELECT)
y Permite recuperar la informacin guardada
en una tabla. La sintaxis y lgica bsica de
recuperacin es:
y SELECT Campos FROM Tabla
y Ver ejemplos bsicos en.
http://en.wikipedia.org/wiki/Select_%28SQL%29
http://www.w3schools.com/sql/sql_syntax.asp
http://www.w3schools.com/sql/sql_select.asp
Para probarlo en vivo:
x http://www.w3schools.com/sql/sql_tryit.asp
Material by @damiande | http://damiandeluca.com.ar
UPDATE
y Actualiza campos de filas existentes de una
tabla incorporando nuevos valores.
y La clusula SET permite especificar las
columnas a modificar y los valores que
deben tomar.
y Si se especifica WHERE permite indicar qu
filas deben ser actualizadas.
y Ejemplo:
y UPDATE tbl_name
SET col_name1=expr1
WHERE where_definition

Material by @damiande | http://damiandeluca.com.ar


DELETE
y Permite borrar registros de una tabla.
y Se define de la siguiente forma:
DELETE FROM nombre_tabla
WHERE condicion
y Ver ejemplo:
http://www.w3schools.com/Sql/sql_delete
.asp.

Material by @damiande | http://damiandeluca.com.ar


Operadores lgicos
y Se declaran de la siguiente forma: <expresin1> operador <expresin2>
y AND: Significa "y" en ingls. Dadas 2 condiciones nos devuelve verdadero si ambas son
ciertas.
y OR: Significa "o" en ingls. Dadas 2 condiciones nos devuelve verdadero si alguna es cierta
(o si ambas son ciertas).
y NOT: significa negacin. Nos devuelve el valor contrario de la expresin dada.
y XOR: hace unadisyuncin lgica exclusiva. Es un o exclusivo. Bsicamente si los 2
valores comparados son verdaderos o ambos son falsos devuelve falso. En caso
contrario devuelve verdadero. Si hacemos ratones XOR gatos", traer las coincidencias
donde se encuentre uno u otro, pero no si se cumplen las dos o ninguna de las dos.
y EQV: se utiliza para expresiones y busca que los dos valores sean idnticos (igualdad
lgica). Si los dos son iguales (2 falsos o 2 verdaderos) devuelve verdadero. Caso contrario
devuelve falso.
y IMP: es una implicacin lgica ("Si... entonces..."). Si la primera expresin es verdadera el
resultado ser el mismo de la segunda expresin (verdadero, falso o null). Si la primera
expresin es Falso, el resultado ser siempre verdadero. Si la primera expresin es null, el
resultado ser null, salvo que la segunda expresin sea verdadera, en cuyo caso ser
verdadero.

y Ver tabla en: http://www.asptutor.com/sql/sql3.asp.

Material by @damiande | http://damiandeluca.com.ar


Menor / Mayor / Igual
y < Menor que
y > Mayor que
y <> Distinto de
y <= Menor Igual que
y >= Mayor Igual que
y = Igual que

y Ver ejemplos de uso:


http://www.programacion.com/articulo/vbscr
ipt_230/3.
Material by @damiande | http://damiandeluca.com.ar
WHERE
y Significa Dnde.
y Permite especificar la condicin que debe cumplir la/s fila/s a
recuperar.
y En SQL puede utilizarse para seleccionar o para borrar.
y Admite operadores lgicos.
y Ej:
SELECT patente,
marca,
modelo,
color,
numero_kilometros,
FROM tablaAutos
WHERE patente = AAA-125'
OR patente = EEE-152' ;
y Ver ejemplos en:
http://en.wikipedia.org/wiki/Where_%28SQL%29.

Material by @damiande | http://damiandeluca.com.ar


ORDER BY
y Significa Ordenar por.
y Ofrece el resultado ordenado por las
columnas especificadas. El orden puede ser
ASC (ascendente) o DESC (descendente).
Valor predeterminado: ASC.
y Para utilizar ORDER BY, debemos especificar
el nombre de la columna o su nmero de
orden.
y Ver ejemplo:
http://www.aulaclic.es/sql/t_2_2.htm.

Material by @damiande | http://damiandeluca.com.ar


GROUP BY
y Permite especificar la agrupacin que se
tendrn los datos. Se emplea junto con las
con funciones agregadas.
y Group by permite elegir las columnas por
las que vamos a agrupar.
y Ejemplo:
http://www.alejandrox.com/2007/04/grou
p-by-y-having-en-sql/

Material by @damiande | http://damiandeluca.com.ar


HAVING
y Permite indicar una condicin que debe
cumplirse para los datos. Es similar a
WHERE pero para un conjunto de
resultados devueltos por la consulta. Se
aplica junto a GROUP BY y la condicin
debe estar referida a los campos
contenidos en ella.
y Ejemplo:
http://en.wikipedia.org/wiki/Having_%28S
QL%29.
Material by @damiande | http://damiandeluca.com.ar
Intervalos
y Los intervalos se definen con BETWEEN
(entre).
y Ejemplo en: http://sql.1keydata.com/es/sql-
between.php.

Material by @damiande | http://damiandeluca.com.ar


IN
y Nos devuelve los registros cuyo campo
indicado coincide con los de una lista
dada. Tambin puede trabajar con NOT.
Por ejemplo Not In(valor1, valor2, . . .)
y Ejemplo: http://sql.1keydata.com/es/sql-
in.php.

Material by @damiande | http://damiandeluca.com.ar


Funciones de Agregado
y Trabajan con un SELECT en grupos de registros.
y AVG: permite calcular el promedio de los valores
de un campo.
y COUNT: devuelve el nmero de registros de la
seleccin.
y SUM: devuelve la suma de todos los valores de
un campo .
y MAX: devuelve el valor ms alto de un campo.
y MIN: devuelve el valor ms bajo de un campo.

Material by @damiande | http://damiandeluca.com.ar

Potrebbero piacerti anche