Diferencia entre revisiones de «Plantilla:PHP/SQL»

De WikiEducator
Saltar a: navegación, buscar
Línea 25: Línea 25:
 
Lenguaje para gestionar bases de datos '''relacionales''' cuyas '''''instrucciones o sentencias''''' especifican lo '''''qué''''' se quiere, no '''''cómo''''' se va a realizar}}
 
Lenguaje para gestionar bases de datos '''relacionales''' cuyas '''''instrucciones o sentencias''''' especifican lo '''''qué''''' se quiere, no '''''cómo''''' se va a realizar}}
 
====Lenguajes dentro de SQL====
 
====Lenguajes dentro de SQL====
'''''SQL''''' no es, como su nombre indica, solamente un lenguaje de consultas, si no que proporciona todas las instrucciones necesarias para '''''gestionar''''' una base de datos.<br />
+
'''''SQL''''' no es, como su nombre indica, solamente un lenguaje de consultas, sino que proporciona todas las instrucciones necesarias para '''''gestionar''''' una base de datos.<br />
 
'''''SQL'''''  incorpora tres tipos de lenguajes: de '''''Definición''', de '''''Control''''', de '''''Manipulación'''''.<br />
 
'''''SQL'''''  incorpora tres tipos de lenguajes: de '''''Definición''', de '''''Control''''', de '''''Manipulación'''''.<br />
Las instrucciones de '''''SQL'''''  se conocen como sentencias, y todas se caracterizan por que empiezan por una palabra reservada que identifica a qué lenguaje de los tres deque tiene '''''SQL''''' pertenece esa instrucción.<br />
+
Las instrucciones de '''''SQL'''''  se conocen como '''''sentencias''''', y todas se caracterizan por que empiezan por una palabra reservada que identifica a qué lenguaje de los tres que tiene '''''SQL''''' pertenece esa instrucción.<br />
 
{{MRM_Puntos clave|Title=Lenguajes SQL|
 
{{MRM_Puntos clave|Title=Lenguajes SQL|
 
;DDL
 
;DDL
Línea 41: Línea 41:
 
}}
 
}}
 
====Sentencias DDL====
 
====Sentencias DDL====
 +
<br />
 
{{MRM_Definicion|Title=Sentencias DDL|
 
{{MRM_Definicion|Title=Sentencias DDL|
 
;CREATE
 
;CREATE
Línea 61: Línea 62:
 
}}
 
}}
 
====Sentencias DCL====
 
====Sentencias DCL====
 +
<br />
 
{{MRM_Definicion|Title=Sentencias DCL|
 
{{MRM_Definicion|Title=Sentencias DCL|
 
;GRANT
 
;GRANT
Línea 78: Línea 80:
 
}}
 
}}
 
====Sentencias DML====
 
====Sentencias DML====
 +
<br />
 
{{MRM_Definicion|Title=Sentencias DML|
 
{{MRM_Definicion|Title=Sentencias DML|
 
;INSERT
 
;INSERT
Línea 102: Línea 105:
 
;SELECT
 
;SELECT
 
Es esta la sentencia estrella. Usando el álgebra relacional, permite recuperar un subconjunto de los datos de la base de datos. Esta sentencia devuelve un conjunto de tuplas  devueltas por la consulta. Normalmente va a devolverlo como un objeto dependiendo del lenguaje.
 
Es esta la sentencia estrella. Usando el álgebra relacional, permite recuperar un subconjunto de los datos de la base de datos. Esta sentencia devuelve un conjunto de tuplas  devueltas por la consulta. Normalmente va a devolverlo como un objeto dependiendo del lenguaje.
Dentro de esta '''sentencia''', se pueden encontrar 5 '''claúsulas''' de las cuales solo las dos primeras son obligatorias. Simplemente por recordarlas, ya que son contenido del módulo de primero de '''Bases de datos'''.
+
Dentro de esta '''sentencia''', se pueden encontrar 5 '''cláusulas''' de las cuales solo las dos primeras son obligatorias. Simplemente por recordarlas, ya que son contenido del módulo de primero de '''Bases de datos'''.
 
<source lang=SQL>
 
<source lang=SQL>
 
   SELECT  
 
   SELECT  
Línea 108: Línea 111:
 
   WHERE
 
   WHERE
 
   GROUP BY
 
   GROUP BY
  HAVING
+
  HAVING
  ORDER BY
+
(ORDER BY)
 
</source>
 
</source>
 
}}
 
}}
 +
*'''''Having''''' solo se usa como opción en el '''group by'''
 +
*'''''Order by''''' es un criterio de ordenación y no se considera como cláusula propiamente dicho, por eso la he puesto entre paréntesis.
 +
  
 
</div>
 
</div>

Revisión de 23:41 6 mar 2017

SQL

SQL es un lenguaje de consultas estructuradas o Structured Query Language. Es un lenguaje de 4º generación donde el programador o usuario del lenguaje especifica lo qué quiere, pero no establece el procedimiento a seguir para conseguirlo, no dice cómo ha de hacer el sistema para conseguirlo


Icon casestudy.gif
Lenguaje no procedural Vs lenguaje procedural)
Con lenguaje no procedural (tipo SQL)
Dime todos los empleados de más de 45 años
o 
SELECT *
FROM empleados
WHERE edad>45;

Lenguaje procedural (tipo php o java)

Abre la tabla empelados
Lee desde el primer registro hasta el último (Bucle)
     Verifica si ese empleado tiene mas de 45 
     Si es así añádelo a la lista de resultado
Muestra la lista de resultado




Icon define.gif
SQL

Lenguaje para gestionar bases de datos relacionales cuyas instrucciones o sentencias especifican lo qué se quiere, no cómo se va a realizar


Lenguajes dentro de SQL

SQL no es, como su nombre indica, solamente un lenguaje de consultas, sino que proporciona todas las instrucciones necesarias para gestionar una base de datos.
SQL incorpora tres tipos de lenguajes: de Definición, de Control, de Manipulación.
Las instrucciones de SQL se conocen como sentencias, y todas se caracterizan por que empiezan por una palabra reservada que identifica a qué lenguaje de los tres que tiene SQL pertenece esa instrucción.


Icon key points.gif

Lenguajes SQL

DDL
Lenguaje de definición de datos.
Las sentencias de este lenguajes permite crear nuevos elementos en la base de datos como usuarios, tablas, índices, etc.
DCL
Lenguaje de control de datos
Las sentencias de este lenguaje permite gestionar permisos sobre los elementos y acciones sobre la consistencia de los datos
DML
Lenguaje de manipulación de datos
Sin duda son las instrucciones o sentencias mas utilizadas en un Gestor
Con ellas podemos manipular lo que se conoce como la extensión o contenido de la base de datos. Es decir actuar sobre las tuplas (insertar, modificar y borrar), y consultar


Sentencias DDL



Icon define.gif
Sentencias DDL
CREATE
CREATE DATABASE usuarios;
CREATE TABLE usuario(
       password VARCHAR(200),
       nombre varchar2(40)
);
DROP
DROP TABLE usuario;
ALTER
ALTER TABLE usuarios ADD direccion VARCHAR(20);



Sentencias DCL



Icon define.gif
Sentencias DCL
GRANT
para asignar privilegios
 GRANT ALL ON DATABASE.* TO 'manuel'@'localhost'
 #Asigna todos los privilegios sobre las tablas 
 #de la base de datos 'database' 
 # al usuario 'manuel'
REVOKE
Elimina privilegios asignados
COMMIT
Confirma una transacción de manera permanente en la base de datos
ROLLBACK
Desace todos los cambios en la base de datos desde la ultima transacción confirmada


Sentencias DML



Icon define.gif
Sentencias DML
INSERT
Inserta tuplas en una tabla
Esta acción pude devolver algún tipo de valor booleano indicando se se ha insertado o no la tupla
INSERT INTO usuarios (nombre, password) 
VALUES("manuel", "password_no_segura");
DELETE
Borra tuplas (0 o más) de una o más tablas
DELETE FROM usuarios WHERE nombre="manuel";
UPDATE
Actuliza tuplas (0 o más) de una o más tablas
Las dos últimas sentencias (UPDATE Y DELETE) suelen devolver un entero.
Este valor indica el número de tuplas actualizadas o borradas (0 o n)
Un error se detalla con el valor (-1 o false).
UPDATE usuarios SET nombre="alicia" WHERE nombre="manolo";
SELECT

Es esta la sentencia estrella. Usando el álgebra relacional, permite recuperar un subconjunto de los datos de la base de datos. Esta sentencia devuelve un conjunto de tuplas devueltas por la consulta. Normalmente va a devolverlo como un objeto dependiendo del lenguaje. Dentro de esta sentencia, se pueden encontrar 5 cláusulas de las cuales solo las dos primeras son obligatorias. Simplemente por recordarlas, ya que son contenido del módulo de primero de Bases de datos.

  SELECT 
  FROM
  WHERE
  GROUP BY
   HAVING
 (ORDER BY)


  • Having solo se usa como opción en el group by
  • Order by es un criterio de ordenación y no se considera como cláusula propiamente dicho, por eso la he puesto entre paréntesis.