SlideShare una empresa de Scribd logo

Sql desde cero

S
shochino
1 de 14
Descargar para leer sin conexión
MySQL Ya desde CERO.

El tutorial está pensado para que pueda ser desarrollado por una persona que conoce muy poco de
programación. El objetivo de este sitio es poder aprender MySQL en forma sencilla viendo un
concepto teórico, luego algunos ejercicios resueltos y por último y lo más importante efectuar una
serie de ejercicios. Puede desarrollar los ejercicios en el sitio, probarlos y ver los resultados. Un
conocimiento profundo de MySQL nos facilitará el desarrollo de páginas dinámicas con PHP (PHP
Ya) que acceden a una base de datos MySQL.

1 - Introducción.

SQL, Structure Query Language (Lenguaje de Consulta Estructurado) es un lenguaje de
programacion para trabajar con base de datos relacionales como MySQL, Oracle, etc.

MySQL es un interpretador de SQL, es un servidor de base de datos.

MySQL permite crear base de datos y tablas, insertar datos, modificarlos, eliminarlos, ordenarlos,
hacer consultas y realizar muchas operaciones, etc., resumiendo: administrar bases de datos.

Ingresando instrucciones en la linea de comandos o embebidas en un lenguaje como PHP nos
comunicamos con el servidor. Cada sentencia debe acabar con punto y coma (;).

La sensibilidad a mayúsculas y minúsculas, es decir, si hace diferencia entre ellas, depende del
sistema operativo, Windows no es sensible, pero Linux si. Por ejemplo Windows interpreta
igualmente las siguientes sentencias:

       create database administracion;
       Create DataBase administracion;

Pero Linux interpretará como un error la segunda.

Se recomienda usar siempre minúsculas. Es más el sitio mysqlya.com.ar está instalado sobre un
servidor Linux por lo que todos los ejercicios deberán respetarse mayúsculas y minúsculas.

2 - show databases

Una base de datos es un conjunto de tablas.

Una base de datos tiene un nombre con el cual accederemos a ella.

Vamos a trabajar en una base de datos ya creada en el sitio mysqlya.com.ar, llamada
"administracion".

Para que el servidor nos muestre las bases de datos existentes, se lo solicitamos enviando la
instrucción:

      show databases;
Nos mostrará los nombres de las bases de datos, debe aparecer en este sitio "administracion".
Problema: Mostrar las bases de datos existentes en el servidor de base de datos del sitio
mysqlya.com.ar

show databases;
Nombre de la Base de datos existente en el servidor: administracion
Secuencia de comandos SQL ejecutados correctamente.

3 - Creación de una tabla y mostrar sus campos (create table - show tables -
describe - drop table)

Una base de datos almacena sus datos en tablas.
Una tabla es una estructura de datos que organiza los datos en columnas y filas; cada columna es un
campo (o atributo) y cada fila, un registro. La intersección de una columna con una fila, contiene un
dato específico, un solo valor.
Cada registro contiene un dato por cada columna de la tabla.
Cada campo (columna) debe tener un nombre. El nombre del campo hace referencia a la
información que almacenará.
Cada campo (columna) también debe definir el tipo de dato que almacenará.

    nombre         clave
   MarioPerez     Marito
  MariaGarcia      Mary
DiegoRodriguez z8080

Gráficamente acá tenemos la tabla usuarios, que contiene dos campos llamados:nombre y clave.
Luego tenemos tres registros almacenados en esta tabla, el primero almacena en el campo nombre el
valor "MarioPerez" y en el campo clave "Marito", y así sucesivamente con los otros dos registros.
Las tablas forman parte de una base de datos.
Nosotros trabajaremos con la base de datos llamada "administracion", que ya hemos creado en
el servidor mysqlya.com.ar.

Para ver las tablas existentes en una base de datos tipeamos:
     show tables;
Deben aparecer todas las tablas que han creado los visitantes al sitio mysqlya.com.ar

Al crear una tabla debemos resolver qué campos (columnas) tendrá y que tipo de datos almacenarán
cada uno de ellos, es decir, su estructura.

La tabla debe ser definida con un nombre que la identifique y con el cual accederemos a ella.
Creamos una tabla llamada "usuarios", tipeamos:

create table usuarios (
     nombre varchar(30),
     clave varchar(10)
);

Si intentamos crear una tabla con un nombre ya existente (existe otra tabla con ese nombre),
mostrará un mensaje de error indicando que la acción no se realizó porque ya existe una tabla con el
mismo nombre.
Para ver las tablas existentes en una base de datos tipeamos nuevamente:
show tables;
Ahora aparece "usuarios" entre otras que ya pueden estar creadas.

Cuando se crea una tabla debemos indicar su nombre y definir sus campos con su tipo de dato. En
esta tabla "usuarios" definimos 2 campos:

- nombre: que contendrá una cadena de hasta 30 caracteres de longitud,
            que almacenará el nombre de usuario y
- clave: otra cadena de caracteres de 10 de longitud, que guardará la clave de
         cada usuario.

Cada usuario ocupará un registro de esta tabla, con su respectivo nombre y clave.

Para ver la estructura de una tabla usamos el comando "describe" junto al nombre de la tabla:
     describe usuarios;

Aparece lo siguiente:

Field     Type        Null
=========================
nombre    varchar(30) YES
clave     varchar(10) YES

Esta es la estructura de la tabla "usuarios"; nos muestra cada campo, su tipo, lo que ocupa en bytes
y otros datos como la aceptación de valores nulos etc, que veremos más adelante en detalle.

Para eliminar una tabla usamos "drop table". Tipeamos:
     drop table usuarios;

Si tipeamos nuevamente:
      drop table usuarios;

Aparece un mensaje de error, indicando que no existe, ya que intentamos borrar una tabla
inexistente.

Para evitar este mensaje podemos tipear:
     drop table if exists usuarios;
En la sentencia precedente especificamos que elimine la tabla "usuarios" si existe.

Problema: Crear la tabla usuarios con los campos nombre y clave. Previamente borrar la tabla
usuarios si ya existe en el servidor. Finalmente mostrar la estructura de la tabla usuarios que
acabamos de crear.

Importante: Tengamos en cuenta que intentamos borrar la tabla como primer paso ya que otro
visitante al sitio de mysqlya.com.ar puede haberla creado anteriormente, inclusive haberla definido
con otros campos distintos. Pruebe luego de borrar el comando drop y vea que ocurre si trata de
crear una tabla ya existente en nuestra base de datos.

drop table if exists usuarios;

create table usuarios (
 nombre varchar(30),
clave varchar(10)
);

describe usuarios;

Field    Type          Null Key Default Extra
nombre varchar(30) YES
clave    varchar(10) YES

Secuencia de comandos SQL ejecutados correctamente.

4 - Carga de registros a una tabla y su recuperación (insert into – select)

Un registro es una fila de la tabla que contiene los datos propiamente dichos. Cada registro tiene un
dato por cada columna.

Recordemos como crear la tabla "usuarios":

create table usuarios (
     nombre varchar(30),
     clave varchar(10)
);

Al ingresar los datos de cada registro debe tenerse en cuenta la cantidad y el orden de los campos.
Ahora vamos a agregar un registro a la tabla:

insert into usuarios (nombre, clave) values ('MarioPerez','Marito');

Usamos "insert into". Especificamos los nombres de los campos entre paréntesis y separados por
comas y luego los valores para cada campo, también entre paréntesis y separados por comas.
La tabla usuarios ahora la podemos graficar de la siguiente forma:

Nombre                Clave
MarioPerez            Marito

Es importante ingresar los valores en el mismo orden en que se nombran los campos, si ingresamos
los datos en otro orden, no aparece un mensaje de error y los datos se guardan de modo incorrecto.

Note que los datos ingresados, como corresponden a campos de cadenas de caracteres se colocan
entre comillas simples. Las comillas simples son OBLIGATORIAS.

Para ver los registros de una tabla usamos "select":

select nombre,clave from usuarios;

Aparece un registro.
El comando "select" recupera los registros de una tabla. Luego del comando select indicamos los
nombres de los campos a rescatar.
Problema: Insertar tres registros en la tabla usuarios y luego mostrar todos los registros de la tabla.
Primeramente eliminamos la tabla, si existe:

drop table if exists usuarios;

Creamos la tabla:

create table usuarios (
  nombre varchar(30),
  clave varchar(10)
);

Insertamos 3 registros:

insert into usuarios(nombre,clave) values ('MarioPerez','Marito');
insert into usuarios(nombre,clave) values ('MariaGarcia','Mary');
insert into usuarios(nombre,clave) values ('DiegoRodriguez','z8080');

Para ver los registros ejecutamos el comando select:

select nombre,clave from usuarios;

(Aclaración:  Generalmente borraremos la tabla y luego la crearemos por si otro usuario del sitio
mysqlya.com.ar a modificado la tabla, para comprobar que no es necesario siempre hacer drop y
create puede borrar esas dos instrucciones y luego ejecutar sucesivamente varios insert y verá como
se van agregando los registros a la tabla. Tener en cuenta que cuando hacemos drop se borra la tabla
por completo, su estructura y los registros cargados hasta el momento)


nombre              clave
MarioPerez          Marito
MariaGarcia         Mary
DiegoRodriguez z8080


Secuencia de comandos SQL ejecutados correctamente.

Problema:
Trabaje con la tabla "agenda".
1- Elimine la tabla "agenda", si existe:
  drop table if exists agenda;

2- Cree una tabla llamada "agenda". Debe tener los siguientes campos:
   nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11):
create table agenda(
   nombre varchar(20),
   domicilio varchar(30),
   telefono varchar(11)
);

3- Visualice las tablas existentes para verificar la creación de "agenda".
show tables;

4- Visualice la estructura de la tabla "agenda".

describe agenda;

5- Ingrese los siguientes registros:

insert into agenda (nombre, domicilio, telefono) values ('Alberto Mores','Colon 123','4234567');
insert into agenda (nombre, domicilio, telefono) values ('Juan Torres','Avellaneda 135','4458787');

6- Seleccione y mustre todos los registros de la tabla:

select nombre, domicilio, telefono from agenda;

7- Elimine la tabla "agenda", si existe:

drop table if exists agenda;

8- Intente eliminar la tabla nuevamente, sin especificar "si existe":

drop table agenda;

5 - Típos de datos básicos de un campo de una tabla.

Ya explicamos que al crear una tabla debemos resolver qué campos (columnas) tendrá y que tipo de
datos almacenará cada uno de ellos, es decir, su estructura. Estos son algunos tipos de datos básicos:

     – varchar: se usa para almacenar cadenas de caracteres. Una cadena es una secuencia de
       caracteres. Se coloca entre comillas (simples): 'Hola'. El tipo "varchar" define una cadena de
       longitud variable en la cual determinamos el máximo de caracteres. Puede guardar hasta
       255 caracteres. Para almacenar cadenas de hasta 30 caracteres, definimos un campo de tipo
       varchar(30). Si asignamos una cadena de caracteres de mayor longitud que la definida, la
       cadena se corta. Por ejemplo, si definimos un campo de tipo varchar(10) y le asignamos la
       cadena 'Buenas tardes', se almacenará 'Buenas tar' ajustándose a la longitud de 10 caracteres.
–

     – integer: se usa para guardar valores numéricos enteros, de -2000000000 a 2000000000
       aprox. Definimos campos de este tipo cuando queremos representar, por ejemplo,
       cantidades.
–

     – - float: se usa para almacenar valores numéricos decimales. Se utiliza como separador el
       punto (.). Definimos campos de este tipo para precios, por ejemplo.

Antes de crear una tabla debemos pensar en sus campos y optar por el tipo de dato adecuado para
cada uno de ellos. Por ejemplo, si en un campo almacenaremos números enteros, el tipo "float"
sería una mala elección; si vamos a guardar precios, el tipo "float" es correcto, no así "integer" que
no tiene decimales.

Problema:
Para almacenar información de los libros de una librería necesitamos los siguientes campos:
 -titulo, cadena de caracteres de 40 de longitud,

Más contenido relacionado

La actualidad más candente

Comandos mysql
Comandos mysqlComandos mysql
Comandos mysqlpolar
 
MySQL. Tutorial Básico
MySQL. Tutorial BásicoMySQL. Tutorial Básico
MySQL. Tutorial BásicoJosu Orbe
 
Comandos de configuracion vfp
Comandos de configuracion vfpComandos de configuracion vfp
Comandos de configuracion vfphmosquera
 
Creación de tablas y relaciones en MySQL y wamp server
Creación de tablas y relaciones en MySQL y  wamp serverCreación de tablas y relaciones en MySQL y  wamp server
Creación de tablas y relaciones en MySQL y wamp serverJair Ospino Ardila
 
Control jtable con base de datos
Control jtable con base de datosControl jtable con base de datos
Control jtable con base de datosPatricia Reyna
 
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez HGuía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez HJosé Ricardo Tillero Giménez
 
Guía 02. Consultas MySQL sobre una tabla - José J Sánchez H
Guía 02. Consultas MySQL sobre una tabla - José J Sánchez HGuía 02. Consultas MySQL sobre una tabla - José J Sánchez H
Guía 02. Consultas MySQL sobre una tabla - José J Sánchez HJosé Ricardo Tillero Giménez
 
Control JTable con base de datos.pdf
Control JTable con base de datos.pdfControl JTable con base de datos.pdf
Control JTable con base de datos.pdfJhiZzelh T Cz
 
Crear base de datos mysql command
Crear base de datos mysql commandCrear base de datos mysql command
Crear base de datos mysql commandLouis Jhosimar
 
Guía 01. Lenguaje DDL. Manipulación del MySQL - José J Sánchez H
Guía 01. Lenguaje DDL. Manipulación del MySQL - José J Sánchez HGuía 01. Lenguaje DDL. Manipulación del MySQL - José J Sánchez H
Guía 01. Lenguaje DDL. Manipulación del MySQL - José J Sánchez HJosé Ricardo Tillero Giménez
 
4. sql (autoguardado)
4. sql (autoguardado)4. sql (autoguardado)
4. sql (autoguardado)felpe33
 

La actualidad más candente (17)

Comandos mysql
Comandos mysqlComandos mysql
Comandos mysql
 
Práctica SQL en MYSQL
Práctica SQL en MYSQLPráctica SQL en MYSQL
Práctica SQL en MYSQL
 
MySQL. Tutorial Básico
MySQL. Tutorial BásicoMySQL. Tutorial Básico
MySQL. Tutorial Básico
 
Comandos de configuracion vfp
Comandos de configuracion vfpComandos de configuracion vfp
Comandos de configuracion vfp
 
Creación de tablas y relaciones en MySQL y wamp server
Creación de tablas y relaciones en MySQL y  wamp serverCreación de tablas y relaciones en MySQL y  wamp server
Creación de tablas y relaciones en MySQL y wamp server
 
Control jtable con base de datos
Control jtable con base de datosControl jtable con base de datos
Control jtable con base de datos
 
Cei 304 office
Cei 304   officeCei 304   office
Cei 304 office
 
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez HGuía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
 
Guía 02. Consultas MySQL sobre una tabla - José J Sánchez H
Guía 02. Consultas MySQL sobre una tabla - José J Sánchez HGuía 02. Consultas MySQL sobre una tabla - José J Sánchez H
Guía 02. Consultas MySQL sobre una tabla - José J Sánchez H
 
Manual de Oracle Sql
Manual de Oracle SqlManual de Oracle Sql
Manual de Oracle Sql
 
Control JTable con base de datos
Control JTable con base de datosControl JTable con base de datos
Control JTable con base de datos
 
Control JTable con base de datos.pdf
Control JTable con base de datos.pdfControl JTable con base de datos.pdf
Control JTable con base de datos.pdf
 
Comandos mysql
Comandos mysqlComandos mysql
Comandos mysql
 
Crear base de datos mysql command
Crear base de datos mysql commandCrear base de datos mysql command
Crear base de datos mysql command
 
Parte 08 my sql
Parte 08 my sqlParte 08 my sql
Parte 08 my sql
 
Guía 01. Lenguaje DDL. Manipulación del MySQL - José J Sánchez H
Guía 01. Lenguaje DDL. Manipulación del MySQL - José J Sánchez HGuía 01. Lenguaje DDL. Manipulación del MySQL - José J Sánchez H
Guía 01. Lenguaje DDL. Manipulación del MySQL - José J Sánchez H
 
4. sql (autoguardado)
4. sql (autoguardado)4. sql (autoguardado)
4. sql (autoguardado)
 

Destacado

Maniobra Heimlich
Maniobra HeimlichManiobra Heimlich
Maniobra Heimlichguest06b63b
 
Mecanica respiratoria
Mecanica respiratoriaMecanica respiratoria
Mecanica respiratoriasusanaleyes
 
REDUZINDO OS CONFLITOS ENTRE ENGENHARIA E SUPRIMENTOS INTEGRANDO AS ÁREAS COM...
REDUZINDO OS CONFLITOS ENTRE ENGENHARIA E SUPRIMENTOS INTEGRANDO AS ÁREAS COM...REDUZINDO OS CONFLITOS ENTRE ENGENHARIA E SUPRIMENTOS INTEGRANDO AS ÁREAS COM...
REDUZINDO OS CONFLITOS ENTRE ENGENHARIA E SUPRIMENTOS INTEGRANDO AS ÁREAS COM...Sienge
 
Compostagem iii
Compostagem iiiCompostagem iii
Compostagem iiiask4u
 
Intoxicacion por opiaseos
Intoxicacion por opiaseosIntoxicacion por opiaseos
Intoxicacion por opiaseosarcevi
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1guestff935
 
Presentacion Nerea,Jasmina,Irene Y Marina
Presentacion Nerea,Jasmina,Irene Y MarinaPresentacion Nerea,Jasmina,Irene Y Marina
Presentacion Nerea,Jasmina,Irene Y MarinaJasIre
 
Aconchego uma necessidade tornado realidade
Aconchego uma necessidade tornado realidadeAconchego uma necessidade tornado realidade
Aconchego uma necessidade tornado realidadeAna Melo
 
Infografías volcanes
Infografías volcanesInfografías volcanes
Infografías volcanespierjavier
 
CóMo OíMos
CóMo OíMosCóMo OíMos
CóMo OíMosgemaayl
 

Destacado (20)

Portinari
PortinariPortinari
Portinari
 
Maniobra Heimlich
Maniobra HeimlichManiobra Heimlich
Maniobra Heimlich
 
Administración de Riesgos
Administración de RiesgosAdministración de Riesgos
Administración de Riesgos
 
Mecanica respiratoria
Mecanica respiratoriaMecanica respiratoria
Mecanica respiratoria
 
REDUZINDO OS CONFLITOS ENTRE ENGENHARIA E SUPRIMENTOS INTEGRANDO AS ÁREAS COM...
REDUZINDO OS CONFLITOS ENTRE ENGENHARIA E SUPRIMENTOS INTEGRANDO AS ÁREAS COM...REDUZINDO OS CONFLITOS ENTRE ENGENHARIA E SUPRIMENTOS INTEGRANDO AS ÁREAS COM...
REDUZINDO OS CONFLITOS ENTRE ENGENHARIA E SUPRIMENTOS INTEGRANDO AS ÁREAS COM...
 
Compostagem iii
Compostagem iiiCompostagem iii
Compostagem iii
 
Intoxicacion por opiaseos
Intoxicacion por opiaseosIntoxicacion por opiaseos
Intoxicacion por opiaseos
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
A ría de vigo
A ría de vigoA ría de vigo
A ría de vigo
 
E:\Multimedia
E:\MultimediaE:\Multimedia
E:\Multimedia
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Presentacion Nerea,Jasmina,Irene Y Marina
Presentacion Nerea,Jasmina,Irene Y MarinaPresentacion Nerea,Jasmina,Irene Y Marina
Presentacion Nerea,Jasmina,Irene Y Marina
 
Propuesta Lista 1
Propuesta Lista 1Propuesta Lista 1
Propuesta Lista 1
 
Aconchego uma necessidade tornado realidade
Aconchego uma necessidade tornado realidadeAconchego uma necessidade tornado realidade
Aconchego uma necessidade tornado realidade
 
Infografías volcanes
Infografías volcanesInfografías volcanes
Infografías volcanes
 
Top 10 java pdf
Top 10 java pdfTop 10 java pdf
Top 10 java pdf
 
Grupos de Rap
Grupos de RapGrupos de Rap
Grupos de Rap
 
Reflexión pedagogica en torno a las TIC
Reflexión pedagogica en torno a las TICReflexión pedagogica en torno a las TIC
Reflexión pedagogica en torno a las TIC
 
CóMo OíMos
CóMo OíMosCóMo OíMos
CóMo OíMos
 
Slides Boas-Vindas
Slides Boas-VindasSlides Boas-Vindas
Slides Boas-Vindas
 

Similar a Sql desde cero

Material Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datosliras loca
 
Modulo de programacion sql unidad II
Modulo de programacion sql   unidad IIModulo de programacion sql   unidad II
Modulo de programacion sql unidad IIfiremas
 
Comandos y funciones sql postgres
Comandos y funciones sql postgresComandos y funciones sql postgres
Comandos y funciones sql postgresHIPOLITO GRULLON
 
ManualPracticoSQL.pdf
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdfJenny29068
 
04 Primeros pasos con my sql
04 Primeros pasos con my sql04 Primeros pasos con my sql
04 Primeros pasos con my sqltoniserna
 
MySQL - SQL.pdf
MySQL - SQL.pdfMySQL - SQL.pdf
MySQL - SQL.pdfkabern
 
MySQL.pdf
MySQL.pdfMySQL.pdf
MySQL.pdfkabern
 
Manual practico para sql ingieneria de sistemas
Manual practico para sql ingieneria de sistemas  Manual practico para sql ingieneria de sistemas
Manual practico para sql ingieneria de sistemas Crhis
 
Manual practico SQL
Manual practico SQLManual practico SQL
Manual practico SQLAna Aguirre
 
Comandos basicos para bases de datos
Comandos basicos para bases de datosComandos basicos para bases de datos
Comandos basicos para bases de datosClau Doria
 

Similar a Sql desde cero (20)

Clase 2 El lenguaje DDL de SQL
Clase 2 El lenguaje DDL de SQLClase 2 El lenguaje DDL de SQL
Clase 2 El lenguaje DDL de SQL
 
Material Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datos
 
Modulo de programacion sql unidad II
Modulo de programacion sql   unidad IIModulo de programacion sql   unidad II
Modulo de programacion sql unidad II
 
Comandos y funciones sql postgres
Comandos y funciones sql postgresComandos y funciones sql postgres
Comandos y funciones sql postgres
 
ManualPracticoSQL.pdf
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdf
 
MANUAL
MANUALMANUAL
MANUAL
 
Mysql
MysqlMysql
Mysql
 
Mysql
MysqlMysql
Mysql
 
04 Primeros pasos con my sql
04 Primeros pasos con my sql04 Primeros pasos con my sql
04 Primeros pasos con my sql
 
MySQL
MySQLMySQL
MySQL
 
MySQL
MySQLMySQL
MySQL
 
MySQL - SQL.pdf
MySQL - SQL.pdfMySQL - SQL.pdf
MySQL - SQL.pdf
 
MySQL.pdf
MySQL.pdfMySQL.pdf
MySQL.pdf
 
Manual practico para sql ingieneria de sistemas
Manual practico para sql ingieneria de sistemas  Manual practico para sql ingieneria de sistemas
Manual practico para sql ingieneria de sistemas
 
Manual practico SQL
Manual practico SQLManual practico SQL
Manual practico SQL
 
Manual practicosql
Manual practicosqlManual practicosql
Manual practicosql
 
Manual practico SQL
Manual practico SQLManual practico SQL
Manual practico SQL
 
Manual practico-sql
Manual practico-sqlManual practico-sql
Manual practico-sql
 
Comandos basicos para bases de datos
Comandos basicos para bases de datosComandos basicos para bases de datos
Comandos basicos para bases de datos
 
Expocicion sabado
Expocicion sabadoExpocicion sabado
Expocicion sabado
 

Sql desde cero

  • 1. MySQL Ya desde CERO. El tutorial está pensado para que pueda ser desarrollado por una persona que conoce muy poco de programación. El objetivo de este sitio es poder aprender MySQL en forma sencilla viendo un concepto teórico, luego algunos ejercicios resueltos y por último y lo más importante efectuar una serie de ejercicios. Puede desarrollar los ejercicios en el sitio, probarlos y ver los resultados. Un conocimiento profundo de MySQL nos facilitará el desarrollo de páginas dinámicas con PHP (PHP Ya) que acceden a una base de datos MySQL. 1 - Introducción. SQL, Structure Query Language (Lenguaje de Consulta Estructurado) es un lenguaje de programacion para trabajar con base de datos relacionales como MySQL, Oracle, etc. MySQL es un interpretador de SQL, es un servidor de base de datos. MySQL permite crear base de datos y tablas, insertar datos, modificarlos, eliminarlos, ordenarlos, hacer consultas y realizar muchas operaciones, etc., resumiendo: administrar bases de datos. Ingresando instrucciones en la linea de comandos o embebidas en un lenguaje como PHP nos comunicamos con el servidor. Cada sentencia debe acabar con punto y coma (;). La sensibilidad a mayúsculas y minúsculas, es decir, si hace diferencia entre ellas, depende del sistema operativo, Windows no es sensible, pero Linux si. Por ejemplo Windows interpreta igualmente las siguientes sentencias: create database administracion; Create DataBase administracion; Pero Linux interpretará como un error la segunda. Se recomienda usar siempre minúsculas. Es más el sitio mysqlya.com.ar está instalado sobre un servidor Linux por lo que todos los ejercicios deberán respetarse mayúsculas y minúsculas. 2 - show databases Una base de datos es un conjunto de tablas. Una base de datos tiene un nombre con el cual accederemos a ella. Vamos a trabajar en una base de datos ya creada en el sitio mysqlya.com.ar, llamada "administracion". Para que el servidor nos muestre las bases de datos existentes, se lo solicitamos enviando la instrucción: show databases; Nos mostrará los nombres de las bases de datos, debe aparecer en este sitio "administracion".
  • 2. Problema: Mostrar las bases de datos existentes en el servidor de base de datos del sitio mysqlya.com.ar show databases; Nombre de la Base de datos existente en el servidor: administracion Secuencia de comandos SQL ejecutados correctamente. 3 - Creación de una tabla y mostrar sus campos (create table - show tables - describe - drop table) Una base de datos almacena sus datos en tablas. Una tabla es una estructura de datos que organiza los datos en columnas y filas; cada columna es un campo (o atributo) y cada fila, un registro. La intersección de una columna con una fila, contiene un dato específico, un solo valor. Cada registro contiene un dato por cada columna de la tabla. Cada campo (columna) debe tener un nombre. El nombre del campo hace referencia a la información que almacenará. Cada campo (columna) también debe definir el tipo de dato que almacenará. nombre clave MarioPerez Marito MariaGarcia Mary DiegoRodriguez z8080 Gráficamente acá tenemos la tabla usuarios, que contiene dos campos llamados:nombre y clave. Luego tenemos tres registros almacenados en esta tabla, el primero almacena en el campo nombre el valor "MarioPerez" y en el campo clave "Marito", y así sucesivamente con los otros dos registros. Las tablas forman parte de una base de datos. Nosotros trabajaremos con la base de datos llamada "administracion", que ya hemos creado en el servidor mysqlya.com.ar. Para ver las tablas existentes en una base de datos tipeamos: show tables; Deben aparecer todas las tablas que han creado los visitantes al sitio mysqlya.com.ar Al crear una tabla debemos resolver qué campos (columnas) tendrá y que tipo de datos almacenarán cada uno de ellos, es decir, su estructura. La tabla debe ser definida con un nombre que la identifique y con el cual accederemos a ella. Creamos una tabla llamada "usuarios", tipeamos: create table usuarios ( nombre varchar(30), clave varchar(10) ); Si intentamos crear una tabla con un nombre ya existente (existe otra tabla con ese nombre), mostrará un mensaje de error indicando que la acción no se realizó porque ya existe una tabla con el mismo nombre. Para ver las tablas existentes en una base de datos tipeamos nuevamente:
  • 3. show tables; Ahora aparece "usuarios" entre otras que ya pueden estar creadas. Cuando se crea una tabla debemos indicar su nombre y definir sus campos con su tipo de dato. En esta tabla "usuarios" definimos 2 campos: - nombre: que contendrá una cadena de hasta 30 caracteres de longitud, que almacenará el nombre de usuario y - clave: otra cadena de caracteres de 10 de longitud, que guardará la clave de cada usuario. Cada usuario ocupará un registro de esta tabla, con su respectivo nombre y clave. Para ver la estructura de una tabla usamos el comando "describe" junto al nombre de la tabla: describe usuarios; Aparece lo siguiente: Field Type Null ========================= nombre varchar(30) YES clave varchar(10) YES Esta es la estructura de la tabla "usuarios"; nos muestra cada campo, su tipo, lo que ocupa en bytes y otros datos como la aceptación de valores nulos etc, que veremos más adelante en detalle. Para eliminar una tabla usamos "drop table". Tipeamos: drop table usuarios; Si tipeamos nuevamente: drop table usuarios; Aparece un mensaje de error, indicando que no existe, ya que intentamos borrar una tabla inexistente. Para evitar este mensaje podemos tipear: drop table if exists usuarios; En la sentencia precedente especificamos que elimine la tabla "usuarios" si existe. Problema: Crear la tabla usuarios con los campos nombre y clave. Previamente borrar la tabla usuarios si ya existe en el servidor. Finalmente mostrar la estructura de la tabla usuarios que acabamos de crear. Importante: Tengamos en cuenta que intentamos borrar la tabla como primer paso ya que otro visitante al sitio de mysqlya.com.ar puede haberla creado anteriormente, inclusive haberla definido con otros campos distintos. Pruebe luego de borrar el comando drop y vea que ocurre si trata de crear una tabla ya existente en nuestra base de datos. drop table if exists usuarios; create table usuarios ( nombre varchar(30),
  • 4. clave varchar(10) ); describe usuarios; Field Type Null Key Default Extra nombre varchar(30) YES clave varchar(10) YES Secuencia de comandos SQL ejecutados correctamente. 4 - Carga de registros a una tabla y su recuperación (insert into – select) Un registro es una fila de la tabla que contiene los datos propiamente dichos. Cada registro tiene un dato por cada columna. Recordemos como crear la tabla "usuarios": create table usuarios ( nombre varchar(30), clave varchar(10) ); Al ingresar los datos de cada registro debe tenerse en cuenta la cantidad y el orden de los campos. Ahora vamos a agregar un registro a la tabla: insert into usuarios (nombre, clave) values ('MarioPerez','Marito'); Usamos "insert into". Especificamos los nombres de los campos entre paréntesis y separados por comas y luego los valores para cada campo, también entre paréntesis y separados por comas. La tabla usuarios ahora la podemos graficar de la siguiente forma: Nombre Clave MarioPerez Marito Es importante ingresar los valores en el mismo orden en que se nombran los campos, si ingresamos los datos en otro orden, no aparece un mensaje de error y los datos se guardan de modo incorrecto. Note que los datos ingresados, como corresponden a campos de cadenas de caracteres se colocan entre comillas simples. Las comillas simples son OBLIGATORIAS. Para ver los registros de una tabla usamos "select": select nombre,clave from usuarios; Aparece un registro. El comando "select" recupera los registros de una tabla. Luego del comando select indicamos los nombres de los campos a rescatar.
  • 5. Problema: Insertar tres registros en la tabla usuarios y luego mostrar todos los registros de la tabla. Primeramente eliminamos la tabla, si existe: drop table if exists usuarios; Creamos la tabla: create table usuarios ( nombre varchar(30), clave varchar(10) ); Insertamos 3 registros: insert into usuarios(nombre,clave) values ('MarioPerez','Marito'); insert into usuarios(nombre,clave) values ('MariaGarcia','Mary'); insert into usuarios(nombre,clave) values ('DiegoRodriguez','z8080'); Para ver los registros ejecutamos el comando select: select nombre,clave from usuarios; (Aclaración: Generalmente borraremos la tabla y luego la crearemos por si otro usuario del sitio mysqlya.com.ar a modificado la tabla, para comprobar que no es necesario siempre hacer drop y create puede borrar esas dos instrucciones y luego ejecutar sucesivamente varios insert y verá como se van agregando los registros a la tabla. Tener en cuenta que cuando hacemos drop se borra la tabla por completo, su estructura y los registros cargados hasta el momento) nombre clave MarioPerez Marito MariaGarcia Mary DiegoRodriguez z8080 Secuencia de comandos SQL ejecutados correctamente. Problema: Trabaje con la tabla "agenda". 1- Elimine la tabla "agenda", si existe: drop table if exists agenda; 2- Cree una tabla llamada "agenda". Debe tener los siguientes campos: nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11): create table agenda( nombre varchar(20), domicilio varchar(30), telefono varchar(11) ); 3- Visualice las tablas existentes para verificar la creación de "agenda".
  • 6. show tables; 4- Visualice la estructura de la tabla "agenda". describe agenda; 5- Ingrese los siguientes registros: insert into agenda (nombre, domicilio, telefono) values ('Alberto Mores','Colon 123','4234567'); insert into agenda (nombre, domicilio, telefono) values ('Juan Torres','Avellaneda 135','4458787'); 6- Seleccione y mustre todos los registros de la tabla: select nombre, domicilio, telefono from agenda; 7- Elimine la tabla "agenda", si existe: drop table if exists agenda; 8- Intente eliminar la tabla nuevamente, sin especificar "si existe": drop table agenda; 5 - Típos de datos básicos de un campo de una tabla. Ya explicamos que al crear una tabla debemos resolver qué campos (columnas) tendrá y que tipo de datos almacenará cada uno de ellos, es decir, su estructura. Estos son algunos tipos de datos básicos: – varchar: se usa para almacenar cadenas de caracteres. Una cadena es una secuencia de caracteres. Se coloca entre comillas (simples): 'Hola'. El tipo "varchar" define una cadena de longitud variable en la cual determinamos el máximo de caracteres. Puede guardar hasta 255 caracteres. Para almacenar cadenas de hasta 30 caracteres, definimos un campo de tipo varchar(30). Si asignamos una cadena de caracteres de mayor longitud que la definida, la cadena se corta. Por ejemplo, si definimos un campo de tipo varchar(10) y le asignamos la cadena 'Buenas tardes', se almacenará 'Buenas tar' ajustándose a la longitud de 10 caracteres. – – integer: se usa para guardar valores numéricos enteros, de -2000000000 a 2000000000 aprox. Definimos campos de este tipo cuando queremos representar, por ejemplo, cantidades. – – - float: se usa para almacenar valores numéricos decimales. Se utiliza como separador el punto (.). Definimos campos de este tipo para precios, por ejemplo. Antes de crear una tabla debemos pensar en sus campos y optar por el tipo de dato adecuado para cada uno de ellos. Por ejemplo, si en un campo almacenaremos números enteros, el tipo "float" sería una mala elección; si vamos a guardar precios, el tipo "float" es correcto, no así "integer" que no tiene decimales. Problema: Para almacenar información de los libros de una librería necesitamos los siguientes campos: -titulo, cadena de caracteres de 40 de longitud,
  • 7. -autor, cadena de caracteres de 30 de longitud, -editorial, caracteres de 15 de longitud, -precio, valor numérico con decimales y -cantidad, valor numérico entero. Al crear la tabla, entonces, elegimos el tipo de dato más adecuado para cada campo: create table libros( titulo varchar(40), autor varchar(20), editorial varchar(15), precio float, cantidad integer ); Vemos la estructura de la tabla: describe libros; Ingresamos algunos registros: insert into libros (titulo,autor,editorial,precio,cantidad) values ('El aleph','Borges','Emece',45.50,100); insert into libros (titulo,autor,editorial,precio,cantidad) values ('Alicia en el pais de las maravillas','Lewis Carroll','Planeta',25,200); insert into libros (titulo,autor,editorial,precio,cantidad) values ('Matematica estas ahi','Paenza','Planeta',15.8,200); Veamos los registros cargados: select * from libros; Tengamos en cuenta que es lo mismo escribir: select * from libros; que select codigo,titulo,autor,precio from libros; Es una forma resumida de indicar que seleccione todos los campos de la tabla. Problema: Un videoclub que alquila películas en video almacena la información de sus películas en una tabla llamada "peliculas"; para cada película necesita los siguientes datos: -nombre, cadena de caracteres de 20 de longitud, -actor, cadena de caracteres de 20 de longitud, -duración, valor numérico entero. -cantidad de copias: valor entero. 1- Elimine la tabla, si existe: drop table if exists peliculas; 2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo: create table peliculas( nombre varchar(20),
  • 8. actor varchar(20), duracion integer, cantidad integer ); 3- Vea la estructura de la tabla: describe peliculas; 4- Ingrese los siguientes registros: insert into peliculas (nombre, actor, duracion, cantidad) values ('Mision imposible','Tom Cruise',120,3); insert into peliculas (nombre, actor, duracion, cantidad) values ('Mision imposible 2','Tom Cruise',180,2); insert into peliculas (nombre, actor, duracion, cantidad) values ('Mujer bonita','Julia R.',90,3); insert into peliculas (nombre, actor, duracion, cantidad) values ('Elsa y Fred','China Zorrilla',90,2); 5- Muestre todos los registros: select * from peliculas; 6 - Recuperación de algunos campos (select) Hemos aprendido cómo ver todos los registros de una tabla: select * from libros; El comando "select" recupera los registros de una tabla. Con el asterisco (*) indicamos que seleccione todos los campos de la tabla que nombramos. Podemos especificar el nombre de los campos que queremos ver separándolos por comas: select titulo,autor,editorial from libros; En la sentencia anterior la consulta mostrará sólo los campos "titulo", "autor" y "editorial". En la siguiente sentencia, veremos los campos correspondientes al título y precio de todos los libros: select titulo,precio from libros; Para ver solamente la editorial y la cantidad de libros tipeamos: select editorial,cantidad from libros; Problema: Trabajamos con la tabla "libros" que almacena los datos de los libros de una librería. Eliminamos la tabla, si existe: drop table if exists libros; Creamos la tabla "libros": create table libros( titulo varchar(20), autor varchar(30), editorial varchar(15), precio float, cantidad integer );
  • 9. Veamos la estructura de la tabla: describe libros; Ingresamos algunos registros: insert into libros (titulo,autor,editorial,precio,cantidad) values ('El aleph','Borges','Emece',45.50,100); insert into libros (titulo,autor,editorial,precio,cantidad) values ('Alicia en el pais de las maravillas','Lewis Carroll','Planeta',25,200); insert into libros (titulo,autor,editorial,precio,cantidad) values ('Matematica estas ahi','Paenza','Planeta',15.8,200); Para ver todos los campos de una tabla tipeamos: select * from libros; Con el asterisco (*) indicamos que seleccione todos los campos de la tabla. Para ver solamente el título, autor y editorial de todos los libros especificamos los nombres de los campos separados por comas: select titulo,autor,editorial from libros; La siguiente sentencia nos mostrará los títulos y precios de todos los libros: select titulo,precio from libros; Para ver solamente la editorial y la cantidad de libros tipeamos: select editorial,cantidad from libros; 7 - Recuperación de registros específicos (select - where) Hemos aprendido cómo ver todos los registros de una tabla: select nombre, clave from usuarios; El comando "select" recupera los registros de una tabla. Detallando los nombres de los campos separados por comas, indicamos que seleccione todos los campos de la tabla que nombramos. Existe una cláusula, "where" que es opcional, con ella podemos especificar condiciones para la consulta "select". Es decir, podemos recuperar algunos registros, sólo los que cumplan con ciertas condiciones indicadas con la cláusula "where". Por ejemplo, queremos ver el usuario cuyo nombre es "MarioPerez", para ello utilizamos "where" y luego de ella, la condición: select nombre, clave from usuarios where nombre='MarioPerez'; Para las condiciones se utilizan operadores relacionales (tema que trataremos más adelante en detalle). El signo igual(=) es un operador relacional. Para la siguiente selección de registros especificamos una condición que solicita los usuarios cuya clave es igual a 'bocajunior': select nombre, clave from usuarios where clave='bocajunior'; Si ningún registro cumple la condición establecida con el "where", no aparecerá ningún registro.
  • 10. Problema: Trabajamos con nuestra tabla "agenda". 1- Eliminamos "agenda", si existe: drop table if exists agenda; 2- Creamos la tabla, con los siguientes campos: nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11). create table agenda( nombre varchar(20), domicilio varchar(30), telefono varchar(11), ); 3- Visualice la estructura de la tabla "agenda".(describe). describe agenda; 4- Ingrese los siguientes registros: 'Alberto Mores','Colon 123','4234567', 'Juan Torres','Avellaneda 135','4458787', 'Mariana Lopez','Urquiza 333','4545454', 'Fernando Lopez','Urquiza 333','4545454'. insert into agenda (nombre,domicilio,telefono) values ( 'Alberto Mores','Colon 123','4234567'); insert into agenda (nombre,domicilio,telefono) values ( 'Juan Torres','Avellaneda 135','4458787'); insert into agenda (nombre,domicilio,telefono) values ( 'Mariana Lopez','Urquiza 333','4545454'); insert into agenda (nombre,domicilio,telefono) values ( 'Fernando Lopez','Urquiza 333','4545454'); 5- Seleccione todos los registros de la tabla. (select). select * from agenda; 6- Seleccione el registro cuyo nombre sea 'Juan Torres'. select nombre from agenda where nombre='Juan Torres'; 7- Seleccione el registro cuyo domicilio sea 'Colon 123'. select domicilio,from agenda where domicilio='Colon 123'; 8- Muestre los datos de quienes tengan el teléfono '4545454'. select telefono,from agenda where telefono='4545454'; 9- Elimine la tabla "agenda".
  • 11. drop table agenda; 8 - Operadores Relacionales = <> < <= > >= Hemos aprendido a especificar condiciones de igualdad para seleccionar registros de una tabla; por ejemplo: select titulo,autor,editorial from libros where autor='Borges'; Utilizamos el operador relacional de igualdad. Los operadores relacionales vinculan un campo con un valor para que MySQL compare cada registro (el campo especificado) con el valor dado. Los operadores relacionales son los siguientes: = igual <> distinto > mayor < menor >= mayor o igual <= menor o igual Podemos seleccionar los registros cuyo autor sea diferente de 'Borges', para ello usamos la condición: select titulo,autor,editorial from libros where autor<>'Borges'; Podemos comparar valores numéricos. Por ejemplo, queremos mostrar los libros cuyos precios sean mayores a 20 pesos: select titulo,autor,editorial,precio from libros where precio>20; También, los libros cuyo precio sea menor o igual a 30: select titulo,autor,editorial,precio from libros where precio<=30; Problema: Borramos la tabla libros si existe drop table if exists libros; La creamos con la siguiente estructura: create table libros( titulo varchar(20), autor varchar(30), editorial varchar(15), precio float ); Por primera vez definimos un campo de tipo float. Agregamos registros a la tabla: insert into libros (titulo,autor,editorial,precio) values ('El aleph','Borges','Planeta',12.50); insert into libros (titulo,autor,editorial,precio) values
  • 12. ('Martin Fierro','Jose Hernandez','Emece',16.00); insert into libros (titulo,autor,editorial,precio) values ('Aprenda PHP','Mario Molina','Emece',35.40); insert into libros (titulo,autor,editorial,precio) values ('Cervantes','Borges','Paidos',50.90); Note que al ingresar valores numéricos (en este caso float) no se utilizan comillas y para el separador de decimales se usa el punto(.). Seleccionamos todos los registros: select titulo, autor,editorial,precio from libros; Seleccionamos los registros cuyo autor sea diferente de 'Borges': select titulo,autor,editorial,precio from libros where autor<>'Borges'; Seleccionamos los registros cuyo precio supere los 20 pesos: select titulo,autor,editorial,precio from libros where precio>20; Seleccionamos los libros cuyo precio es menor o igual a 30: select titulo,autor,editorial,precio from libros where precio<=30; Note que al comparar valores numéricos (en este caso de tipo float) no se utilizan comillas. 9 - Borrado de registros de una tabla (delete) Para eliminar los registros de una tabla usamos el comando "delete": delete from usuarios; La ejecución del comando indicado en la línea anterior borra TODOS los registros de la tabla. Si queremos eliminar uno o varios registros debemos indicar cuál o cuáles, para ello utilizamos el comando "delete" junto con la clausula "where" con la cual establecemos la condición que deben cumplir los registros a borrar. Por ejemplo, queremos eliminar aquel registro cuyo nombre de usuario es 'Leonardo': delete from usuarios where nombre='Leonardo'; Si solicitamos el borrado de un registro que no existe, es decir, ningún registro cumple con la condición especificada, no se borrarán registros, pues no encontró registros con ese dato. Problema: Trabajamos con la tabla "usuarios". Eliminamos la tabla, si existe: drop table if exists usuarios; Creamos la tabla: create table usuarios ( nombre varchar(30), clave varchar(10) ); Ingresamos algunos registros:
  • 13. insert into usuarios (nombre, clave) values ('Leonardo','payaso'); insert into usuarios (nombre, clave) values ('MarioPerez','Marito'); insert into usuarios (nombre, clave) values ('Marcelo','River'); insert into usuarios (nombre, clave) values ('Gustavo','River'); Queremos eliminar el registro cuyo nombre de usuario es 'Leonardo': delete from usuarios where nombre='Leonardo'; Veamos el contenido de la tabla: select nombre,clave from usuarios; Queremos eliminar los registros cuya clave es 'River': delete from usuarios where clave='River'; Veamos el contenido de la tabla: select nombre,clave from usuarios; Eliminemos todos los registros: delete from usuarios; Veamos el contenido de la tabla: select nombre,clave from usuarios; 10 - Modificación de registros de una tabla (update) Para modificar uno o varios datos de uno o varios registros utilizamos "update" (actualizar). Por ejemplo, en nuestra tabla "usuarios", queremos cambiar los valores de todas las claves, por "RealMadrid": update usuarios set clave='RealMadrid'; Utilizamos "update" junto al nombre de la tabla y "set" junto con el campo a modificar y su nuevo valor. El cambio afectará a todos los registros. Podemos modificar algunos registros, para ello debemos establecer condiciones de selección con "where". Por ejemplo, queremos cambiar el valor correspondiente a la clave de nuestro usuario llamado 'MarioPerez', queremos como nueva clave 'Boca', necesitamos una condición "where" que afecte solamente a este registro: update usuarios set clave='Boca' where nombre='MarioPerez'; Si no encuentra registros que cumplan con la condición del "where", ningún registro es afectado. Las condiciones no son obligatorias, pero si omitimos la cláusula "where", la actualización afectará a todos los registros. También se puede actualizar varios campos en una sola instrucción:
  • 14. update usuarios set nombre='MarceloDuarte', clave='Marce' where nombre='Marcelo'; Para ello colocamos "update", el nombre de la tabla, "set" junto al nombre del campo y el nuevo valor y separado por coma, el otro nombre del campo con su nuevo valor.