You are on page 1of 134

practica 3:3 - Creacin de una tabla y mostrar sus campos (create table - show tab

les - describe - drop table)


Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.46-log MySQL Community Server (GPL)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database practica;
Query OK, 1 row affected (0.01 sec)
mysql> use practica;
Database changed
mysql> create table agenda(
-> nombre varchar(20),
-> domicilio varchar(30),
-> telefono varchar(11)
mysql> update agenda set nombre='juan jose'
-> where nombre='juan';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
mysql> select*from agenda;
+----------+-----------+----------------+----------+
| apellido | nombre
| domicilio
| telefono |
+----------+-----------+----------------+----------+
| morales | alberto | colon 123
| 4234567 |
| torres | juan jose | avellaneda 135 | 4458787 |
| lopez
| mariana | urquiza 333
| 4445566 |
| lopez
| jose
| urquizan 333 | 4445566 |
| peralta | susana
| gral. paz 1234 | 4123456 |
+----------+-----------+----------------+----------+
5 rows in set (0.00 sec)
-> );
Query OK, 0 rows affected (0.09 sec)
mysql> show table;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at
line 1
mysql> show tables;
+--------------------+
| Tables_in_practica |
+--------------------+
| agenda
|
+--------------------+
1 row in set (0.00 sec)
mysql> describe agenda;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |

+-----------+-------------+------+-----+---------+-------+
| nombre
| varchar(20) | YES |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
| telefono | varchar(11) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql>
4 - Carga de registros a una tabla y su recuperacin (insert into - select)
mysql> drop table agenda;
Query OK, 0 rows affected (0.00 sec)
mysql> show table;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at
line 1
mysql> show tables;
Empty set (0.00 sec)
mysql>
mysql> use practica;
Database changed
mysql> create table agenda(
-> nombre varchar(20),
-> domicilio varchar(30),
-> telefono varchar(11)
-> );
Query OK, 0 rows affected (0.06 sec)
mysql> describe agenda;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| nombre
| varchar(20) | YES |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
| telefono | varchar(11) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
mysql> insert into agenda(nombre,domicilio,telefono) values('alberto morales','c
olon 123','4234567');
Query OK, 1 row affected (0.02 sec)
mysql> insert into agenda(nombre,domicilio,telefono) values('juan torres','avell
aneda','135','4458787');
ERROR 1136 (21S01): Column count doesn't match value count at row 1
mysql> insert into agenda(nombre,domicilio,telefono) values('juan torres','avell
aneda 135','4458787');
Query OK, 1 row affected (0.01 sec)
mysql> select nombre,domicilio,telefono from agenda;
+-----------------+----------------+----------+
| nombre
| domicilio
| telefono |
+-----------------+----------------+----------+
| alberto morales | colon 123
| 4234567 |

| juan torres
| avellaneda 135 | 4458787 |
+-----------------+----------------+----------+
2 rows in set (0.00 sec)
mysql> select*from agenda;
+-----------------+----------------+----------+
| nombre
| domicilio
| telefono |
+-----------------+----------------+----------+
| alberto morales | colon 123
| 4234567 |
| juan torres
| avellaneda 135 | 4458787 |
+-----------------+----------------+----------+
2 rows in set (0.00 sec)
mysql> drop table agenda;
Query OK, 0 rows affected (0.01 sec)
mysql> show table;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at
line 1
mysql> show tables;
Empty set (0.01 sec)
mysql>
5 - Tpos de datos bsicos de un campo de una tabla.
mysql> drop table if exists peliculas;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> drop table if exists peliculas;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> usb practica;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'usb p
ractica' at line 1
mysql> use practica;
Database changed
mysql> create table peliculas(
-> nombre varchar(20),
-> actor varchar(20),
-> duracion integer,
-> cantidad integer
-> );
Query OK, 0 rows affected (0.38 sec)
mysql> describe peliculas;
+----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| nombre | varchar(20) | YES |
| NULL
|
|
| actor
| varchar(20) | YES |
| NULL
|
|
| duracion | int(11)
| YES |
| NULL
|
|
| cantidad | int(11)
| YES |
| NULL
|
|
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

mysql> insert into peliculas(nombre,actor,duracion,cantidad) values('mision impo


sible','tom cruise',120,3);
Query OK, 1 row affected (0.03 sec)
mysql> insert into peliculas(nombre,actor,duracion,cantidad) values('mision imp
osible2',',tom cruise',180,2);
Query OK, 1 row affected (0.01 sec)
mysql> insert into peliculas(nombre,actor,duracion,cantidad) values('mujer boni
ta','julia R',90,3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas(nombre,actor,duracion,cantidad) values('elsa y fre
d','china zorrilla',90,2);
Query OK, 1 row affected (0.34 sec)
mysql> select*from peliculas;
+-------------------+----------------+----------+----------+
| nombre
| actor
| duracion | cantidad |
+-------------------+----------------+----------+----------+
| mision imposible | tom cruise
|
120 |
3 |
| mision imposible2 | ,tom cruise
|
180 |
2 |
| mujer bonita
| julia R
|
90 |
3 |
| elsa y fred
| china zorrilla |
90 |
2 |
+-------------------+----------------+----------+----------+
4 rows in set (0.00 sec)
6 - Recuperacin de algunos campos (select)
mysql> drop table if exists peliculas;
Query OK, 0 rows affected (0.04 sec)
mysql> drop table peliculas;
ERROR 1051 (42S02): Unknown table 'peliculas'
mysql> drop tables peliculas;
ERROR 1051 (42S02): Unknown table 'peliculas'
mysql> drop table peliculas;
ERROR 1051 (42S02): Unknown table 'peliculas'
mysql> drop table peliculas;
ERROR 1051 (42S02): Unknown table 'peliculas'
mysql> drop table if exists peliculas;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> drop table peliculas;
ERROR 1051 (42S02): Unknown table 'peliculas'
mysql> show tables;
Empty set (0.00 sec)
mysql> use practica;
Database changed
mysql> create table peliculas(
-> titulo varchar(20),
-> actor varchar(20),
-> duracion integer,
-> cantidad integer
-> );
Query OK, 0 rows affected (0.01 sec)

mysql> describe peliculas;


+----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| titulo | varchar(20) | YES |
| NULL
|
|
| actor
| varchar(20) | YES |
| NULL
|
|
| duracion | int(11)
| YES |
| NULL
|
|
| cantidad | int(11)
| YES |
| NULL
|
|
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
mysql> insert into peliculas(titulo,actor,duracion,cantidad) values('mision impo
sible','tom cruise',120,3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas(titulo,actor,duracion,cantidad) values('mision impo
sible 2','tom cruise',180,2);
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas(titulo,actor,duracion,cantidad) values('mujer bonit
a','julia R',90,3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas(titulo,actor,duracion,cantidad) values('elsa y fred
','chita zorrilla',90,2);
Query OK, 1 row affected (0.35 sec)
mysql> select titulo,actor from peliculas;
+--------------------+----------------+
| titulo
| actor
|
+--------------------+----------------+
| mision imposible | tom cruise
|
| mision imposible | tom cruise
|
| mision imposible 2 | tom cruise
|
| mujer bonita
| julia R
|
| elsa y fred
| chita zorrilla |
+--------------------+----------------+
5 rows in set (0.00 sec)
mysql> select titulo,duracion from peliculas;
+--------------------+----------+
| titulo
| duracion |
+--------------------+----------+
| mision imposible |
120 |
| mision imposible |
120 |
| mision imposible 2 |
180 |
| mujer bonita
|
90 |
| elsa y fred
|
90 |
+--------------------+----------+
5 rows in set (0.00 sec)
mysql> select titulo,cantidad from peliculas;
+--------------------+----------+
| titulo
| cantidad |
+--------------------+----------+
| mision imposible |
3 |
| mision imposible |
3 |
| mision imposible 2 |
2 |
| mujer bonita
|
3 |
| elsa y fred
|
2 |

+--------------------+----------+
5 rows in set (0.02 sec)
7 - Recuperacin de registros especficos (select - where)
mysql> drop table if exists agenda;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> use practica;
Database changed
mysql> create table agenda(
-> nombre varchar(20),
-> domicilio varchar(30),
-> telefono varchar(11)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> describe agenda;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| nombre
| varchar(20) | YES |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
| telefono | varchar(11) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
mysql> insert into agenda(nombre,domicilio,telefono) values('alberto morales','c
olon 123','4234567');
Query OK, 1 row affected (0.00 sec)
mysql> insert into agenda(nombre,domicilio,telefono) values('juan torres','avell
aneda 135','4458787');
Query OK, 1 row affected (0.01 sec)
mysql> insert into agenda(nombre,domicilio,telefono) values('fernando lopez','ur
quia 333','4545454');
Query OK, 1 row affected (0.01 sec)
mysql> select*from agenda;
+-----------------+----------------+----------+
| nombre
| domicilio
| telefono |
+-----------------+----------------+----------+
| alberto morales | colon 123
| 4234567 |
| juan torres
| avellaneda 135 | 4458787 |
| fernando lopez | urquia 333
| 4545454 |
+-----------------+----------------+----------+
3 rows in set (0.00 sec)
mysql> select nombre from agenda;
+-----------------+
| nombre
|
+-----------------+
| alberto morales |
| juan torres
|
| fernando lopez |
+-----------------+
3 rows in set (0.00 sec)

mysql> select nombre from nombre where nombre='juan torrez';


ERROR 1146 (42S02): Table 'practica.nombre' doesn't exist
mysql> select nombre from agenda where nombre='juan torrez';
Empty set (0.00 sec)
mysql> select nombre from agenda where nombre='juan torres';
+-------------+
| nombre
|
+-------------+
| juan torres |
+-------------+
1 row in set (0.00 sec)
mysql> select domicilio from agenda where dolicilio='colon 123';
ERROR 1054 (42S22): Unknown column 'dolicilio' in 'where clause'
mysql> select domicilio from agenda where domicilio='colon 123';
+-----------+
| domicilio |
+-----------+
| colon 123 |
+-----------+
1 row in set (0.00 sec)
mysql> select telefono from agenda where telefono='4545454';
+----------+
| telefono |
+----------+
| 4545454 |
+----------+
1 row in set (0.00 sec)
8 - Operadores Relacionales = <> < <= > >=
mysql> use practica;
Database changed
mysql> create table articulo(
-> codigo integer,
-> nombre varchar(20),
-> descripcion varchar(30),
-> precio float,
-> cantidad integer
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> describe articulo;
+-------------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| codigo
| int(11)
| YES |
| NULL
|
|
| nombre
| varchar(20) | YES |
| NULL
|
|
| descripcion | varchar(30) | YES |
| NULL
|
|
| precio
| float
| YES |
| NULL
|
|
| cantidad
| int(11)
| YES |
| NULL
|
|
+-------------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)
mysql> insert into articulo(codigo,nombre,descripcion,precio,cantidad) values((1
,'impresora','Epson Stylus C45',400.80,20);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that

corresponds to your MySQL server version for the right syntax to use near '' at
line 1
mysql> insert into articulo(codigo,nombre,descripcion,precio,cantidad) values(1,
'impresora','Epson Stylus C45',400.80,20);
Query OK, 1 row affected (0.01 sec)
mysql> insert into articulo(codigo,nombre,descripcion,precio,cantidad) values(2,
'impresora','Epson Stylus C85',500,30);
Query OK, 1 row affected (0.00 sec)
mysql> insert into articulos (codigo, nombre, descripcion, precio,cantidad)
-> values (3,'monitor','Samsung 14',800,10);
ERROR 1146 (42S02): Table 'practica.articulos' doesn't exist
mysql> insert into articulo(codigo,nombre,descripcion,precio,cantidad) values(3,
'monitor','Samsung 14',800,10);
Query OK, 1 row affected (0.01 sec)
mysql> insert into articulo(codigo,nombre,descripcion,precio,cantidad) values(4,
'teclado','ingles Biswal',100,50);
Query OK, 1 row affected (0.01 sec)
mysql> select*from articulo;
+--------+-----------+------------------+--------+----------+
| codigo | nombre
| descripcion
| precio | cantidad |
+--------+-----------+------------------+--------+----------+
|
1 | impresora | Epson Stylus C45 | 400.8 |
20 |
|
2 | impresora | Epson Stylus C85 |
500 |
30 |
|
3 | monitor | Samsung 14
|
800 |
10 |
|
4 | teclado | ingles Biswal
|
100 |
50 |
+--------+-----------+------------------+--------+----------+
4 rows in set (0.00 sec)
mysql> select*from articulo;
+--------+-----------+------------------+--------+----------+
| codigo | nombre
| descripcion
| precio | cantidad |
+--------+-----------+------------------+--------+----------+
|
1 | impresora | Epson Stylus C45 | 400.8 |
20 |
|
2 | impresora | Epson Stylus C85 |
500 |
30 |
|
3 | monitor | Samsung 14
|
800 |
10 |
|
4 | teclado | ingles Biswal
|
100 |
50 |
+--------+-----------+------------------+--------+----------+
4 rows in set (0.00 sec)
mysql> select*from articulo
-> where precio>=500;
+--------+-----------+------------------+--------+----------+
| codigo | nombre
| descripcion
| precio | cantidad |
+--------+-----------+------------------+--------+----------+
|
2 | impresora | Epson Stylus C85 |
500 |
30 |
|
3 | monitor | Samsung 14
|
800 |
10 |
+--------+-----------+------------------+--------+----------+
2 rows in set (0.00 sec)
mysql> select nombre,descripcion,precio,cantidad from articulo
;
+---------+-------------+--------+----------+
| nombre | descripcion | precio | cantidad |
+---------+-------------+--------+----------+
| monitor | Samsung 14 |
800 |
10 |

+---------+-------------+--------+----------+
1 row in set (0.00 sec)
mysql> select nombre,descripcion from articulo where precio<>10
+-----------+------------------+
| nombre
| descripcion
|
+-----------+------------------+
| impresora | Epson Stylus C45 |
| impresora | Epson Stylus C85 |
| monitor | Samsung 14
|
+-----------+------------------+
3 rows in set (0.00 sec)
9 - Borrado de registros de una tabla (delete)
mysql> describe agenda;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| apellido | varchar(30) | YES |
| NULL
|
|
| nombre
| varchar(30) | YES |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
| telefono | varchar(11) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.11 sec)
mysql> select*from agenda;
Empty set (0.00 sec)
mysql> insert into agenda(apellido,nombre,domicilio,telefono) values('mores','a
lberto','colon 123','4234567');
Query OK, 1 row affected (0.03 sec)
mysql> insert into agenda(apellido,nombre,domicilio,telefono) values('torres','
juan','avellaneda 135','4458787');
Query OK, 1 row affected (0.02 sec)
mysql> insert into agenda(apellido,nombre,domicilio,telefono) values('lopez','m
aria','urquia 333','4545454');
Query OK, 1 row affected (0.00 sec)
mysql> insert into agenda(apellido,nombre,domicilio,telefono) values('peralta',
'susana','gral. paz 1234','4123456');
Query OK, 1 row affected (0.02 sec)
mysql> insert into agenda(apellido,nombre,domicilio,telefono) values('lopez','j
ose','urquia 333','4545454');
Query OK, 1 row affected (0.01 sec)
mysql> describe agenda;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| apellido | varchar(30) | YES |
| NULL
|
|
| nombre
| varchar(30) | YES |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
| telefono | varchar(11) | YES |
| NULL
|
|

+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> select*from agenda;
+----------+---------+----------------+----------+
| apellido | nombre | domicilio
| telefono |
+----------+---------+----------------+----------+
| mores
| alberto | colon 123
| 4234567 |
| torres | juan
| avellaneda 135 | 4458787 |
| lopez
| maria | urquia 333
| 4545454 |
| peralta | susana | gral. paz 1234 | 4123456 |
| lopez
| jose
| urquia 333
| 4545454 |
+----------+---------+----------------+----------+
5 rows in set (0.00 sec)
mysql> delete from agenda where nombre='juan';
Query OK, 1 row affected (0.02 sec)
mysql> select*from agenda;
+----------+---------+----------------+----------+
| apellido | nombre | domicilio
| telefono |
+----------+---------+----------------+----------+
| mores
| alberto | colon 123
| 4234567 |
| lopez
| maria | urquia 333
| 4545454 |
| peralta | susana | gral. paz 1234 | 4123456 |
| lopez
| jose
| urquia 333
| 4545454 |
+----------+---------+----------------+----------+
4 rows in set (0.00 sec)
mysql> delete from agenda where telefono='4545454';
Query OK, 2 rows affected (0.00 sec)
mysql> select*from agenda;
+----------+---------+----------------+----------+
| apellido | nombre | domicilio
| telefono |
+----------+---------+----------------+----------+
| mores
| alberto | colon 123
| 4234567 |
| peralta | susana | gral. paz 1234 | 4123456 |
+----------+---------+----------------+----------+
2 rows in set (0.00 sec)

10 - Modificacin de registros de una tabla (update)

mysql> use practica;


Database changed
mysql> select*from agenda;
+----------+---------+----------------+----------+
| apellido | nombre | domicilio
| telefono |
+----------+---------+----------------+----------+
| mores
| alberto | colon 123
| 4234567 |
| peralta | susana | gral. paz 1234 | 4123456 |
+----------+---------+----------------+----------+
2 rows in set (0.00 sec)
mysql> show tables;

+--------------------+
| Tables_in_practica |
+--------------------+
| agenda
|
| articulo
|
| peliculas
|
+--------------------+
3 rows in set (0.00 sec)
mysql> drop table agenda;
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+--------------------+
| Tables_in_practica |
+--------------------+
| articulo
|
| peliculas
|
+--------------------+
2 rows in set (0.00 sec)
mysql> use practica;
Database changed
mysql> create table agenda(
-> apellido varchar(30),
-> nombre varchar(20),
-> domicilio varchar(30),
-> telefono varchar(11)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> describe agenda;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| apellido | varchar(30) | YES |
| NULL
|
|
| nombre
| varchar(20) | YES |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
| telefono | varchar(11) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
mysql> insert into agenda(apellido,nombre,domicilio,telefono) values('morales','
alberto','colon 123','4234567');
Query OK, 1 row affected (0.00 sec)
mysql> insert into agenda(apellido,nombre,domicilio,telefono) values('torres','j
uan','avellaneda 135','4458787');
Query OK, 1 row affected (0.01 sec)
mysql> insert into agenda(apellido,nombre,domicilio,telefono) values('lopez','ma
riana','urquiza 333','4545454');
Query OK, 1 row affected (0.01 sec)
mysql> insert into agenda(apellido,nombre,domicilio,telefono) values('lopez','jo
se','urquizan 333','4545454');
Query OK, 1 row affected (0.01 sec)
mysql> insert into agenda(apellido,nombre,domicilio,telefono) values('peralta','
susana','gral. paz 1234','4123456');
Query OK, 1 row affected (0.01 sec)

mysql> select*from agenda;


+----------+---------+----------------+----------+
| apellido | nombre | domicilio
| telefono |
+----------+---------+----------------+----------+
| morales | alberto | colon 123
| 4234567 |
| torres | juan
| avellaneda 135 | 4458787 |
| lopez
| mariana | urquiza 333
| 4545454 |
| lopez
| jose
| urquizan 333 | 4545454 |
| peralta | susana | gral. paz 1234 | 4123456 |
+----------+---------+----------------+----------+
5 rows in set (0.00 sec)
mysql> update agenda set nombre='juan jose'
-> where nombre='juan';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select*from agenda;
+----------+-----------+----------------+----------+
| apellido | nombre
| domicilio
| telefono |
+----------+-----------+----------------+----------+
| morales | alberto | colon 123
| 4234567 |
| torres | juan jose | avellaneda 135 | 4458787 |
| lopez
| mariana | urquiza 333
| 4545454 |
| lopez
| jose
| urquizan 333 | 4545454 |
| peralta | susana
| gral. paz 1234 | 4123456 |
+----------+-----------+----------------+----------+
5 rows in set (0.00 sec)
mysql> update agenda set telefono='4445566'
-> where telefono='4545454';
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> select*from agenda;
+----------+-----------+----------------+----------+
| apellido | nombre
| domicilio
| telefono |
+----------+-----------+----------------+----------+
| morales | alberto | colon 123
| 4234567 |
| torres | juan jose | avellaneda 135 | 4458787 |
| lopez
| mariana | urquiza 333
| 4445566 |
| lopez
| jose
| urquizan 333 | 4445566 |
| peralta | susana
| gral. paz 1234 | 4123456 |
+----------+-----------+----------------+----------+
5 rows in set (0.00 sec)
mysql> update agenda set nombre='juan jose'
-> where nombre='juan';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
mysql> select*from agenda;
+----------+-----------+----------------+----------+
| apellido | nombre
| domicilio
| telefono |
+----------+-----------+----------------+----------+
| morales | alberto | colon 123
| 4234567 |
| torres | juan jose | avellaneda 135 | 4458787 |
| lopez
| mariana | urquiza 333
| 4445566 |
| lopez
| jose
| urquizan 333 | 4445566 |

| peralta | susana
| gral. paz 1234 | 4123456 |
+----------+-----------+----------------+----------+
5 rows in set (0.00 sec)
11 - Clave primaria.
mysql> use practica;
Database changed
mysql> create table libro(
-> codigo integer,
-> titulo varchar(20),
-> autor varchar(30),
-> editorial varchar(15),
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> describe libro;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| codigo
| int(11)
| NO | PRI | 0
|
|
| titulo
| varchar(20) | YES |
| NULL
|
|
| autor
| varchar(30) | YES |
| NULL
|
|
| editorial | varchar(15) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
4 rows in set (0.00 sec)
mysql> insert into libro(codigo,titulo,autor,editorial) values(1,'el leph','bor
es','planeta');
Query OK, 1 row affected (0.00 sec)
mysql> insert into libro(codigo,titulo,autor,editorial) values(2,'martin fierro
,'jose hernandez','emece');
Query OK, 1 row affected (0.00 sec)
mysql> insert into libro(codigo,titulo,autor,editorial) values(4,'cervante elqui
jote','borges','paidos');
Query OK, 1 row affected (0.00 sec)
mysql> insert into libro(codigo,titulo,autor,editorial) values(3,'aprende php','
mario molina','emece');
Query OK, 1 row affected (0.00 sec)
mysql> insert into libro(codigo,titulo,autor,editorial) values(5,'matematica est
as ahi','paenza','paidos');
Query OK, 1 row affected (0.00 sec)
mysql> select*from libro;
+--------+----------------------+----------------+-----------+
| codigo | titulo
| autor
| editorial |
+--------+----------------------+----------------+-----------+
|
1 | el leph
| borges
| planeta |
|
2 | martin fierro
| jose hernandez | emece
|
|
3 | aprende php
| mario molina | emece
|
|
4 | cervante elquijote | borges
| paidos
|

|
5 | matematica estas ahi | paenza
| paidos
|
+--------+----------------------+----------------+-----------+
5 rows in set (0.00 sec)
mysql> insert into libro(codigo,titulo,autor,editorial) values(6,'ecologia','mar
io molina','gamuza');
Query OK, 1 row affected (0.00 sec)
mysql> select*from libro;
+--------+----------------------+----------------+-----------+
| codigo | titulo
| autor
| editorial |
+--------+----------------------+----------------+-----------+
|
1 | el leph
| borges
| planeta |
|
2 | martin fierro
| jose hernandez | emece
|
|
3 | aprende php
| mario molina | emece
|
|
4 | cervante elquijote | borges
| paidos
|
|
5 | matematica estas ahi | paenza
| paidos
|
|
6 | ecologia
| mario molina | gamuza
|
+--------+----------------------+----------------+-----------+
6 rows in set (0.00 sec)
mysql> insert into libro(codigo,titulo,autor,editorial) values(7,'ecologia','men
dez mendez','paidos');
Query OK, 1 row affected (0.00 sec)
mysql> select*from libro;
+--------+----------------------+----------------+-----------+
| codigo | titulo
| autor
| editorial |
+--------+----------------------+----------------+-----------+
|
1 | el leph
| borges
| planeta |
|
2 | martin fierro
| jose hernandez | emece
|
|
3 | aprende php
| mario molina | emece
|
|
4 | cervante elquijote | borges
| paidos
|
|
5 | matematica estas ahi | paenza
| paidos
|
|
6 | ecologia
| mario molina | gamuza
|
|
7 | ecologia
| mendez mendez | paidos
|
+--------+----------------------+----------------+-----------+
7 rows in set (0.00 sec)
mysql> insert into libro(codigo,titulo,autor,editorial) values(7,'ecuaciones','m
endez camilla','chep','mendes');
ERROR 1136 (21S01): Column count doesn't match value count at row 1
mysql>
12 - Campo entero con autoincremento.

mysql> use practica;


Database changed
mysql> create table medicamentos(
-> codigo integer auto_increment,
-> nombre varchar(20),
-> laboratorio varchar(20),
-> precio float,

-> cantidad integer,


-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> describe medicamentos;
+-------------+-------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-------------+------+-----+---------+----------------+
| codigo
| int(11)
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20) | YES |
| NULL
|
|
| laboratorio | varchar(20) | YES |
| NULL
|
|
| precio
| float
| YES |
| NULL
|
|
| cantidad
| int(11)
| YES |
| NULL
|
|
+-------------+-------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad)
->
values('Sertal','Roche',5.2,100);
Query OK, 1 row affected (0.01 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad)
-> values('Buscapina','Roche',4.10,200);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad)
-> values('Amoxidal 500','Bayer',15.60,100);
Query OK, 1 row affected (0.00 sec)
mysql> select * from medicamentos;
+--------+--------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+--------------+-------------+--------+----------+
|
1 | Sertal
| Roche
|
5.2 |
100 |
|
2 | Buscapina
| Roche
|
4.1 |
200 |
|
3 | Amoxidal 500 | Bayer
| 15.6 |
100 |
+--------+--------------+-------------+--------+----------+
3 rows in set (0.00 sec)

mysql> select codigo,nombre,laboratorio,precio,cantidad


-> from medicamentos;
+--------+--------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+--------------+-------------+--------+----------+
|
1 | Sertal
| Roche
|
5.2 |
100 |
|
2 | Buscapina
| Roche
|
4.1 |
200 |
|
3 | Amoxidal 500 | Bayer
| 15.6 |
100 |
+--------+--------------+-------------+--------+----------+
3 rows in set (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Am
oxidal 500','Bayer',15.60,100);
Query OK, 1 row affected (0.01 sec)
mysql> describe medicamentos;
+-------------+-------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-------------+------+-----+---------+----------------+

| codigo
| int(11)
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20) | YES |
| NULL
|
|
| laboratorio | varchar(20) | YES |
| NULL
|
|
| precio
| float
| YES |
| NULL
|
|
| cantidad
| int(11)
| YES |
| NULL
|
|
+-------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
mysql> insert into medicamentos(codigo,nombre,laboratorio,precio,cantidad) value
s(12,'paracetamol 500','bago',1.90,200);
Query OK, 1 row affected (0.00 sec)
mysql> describe medicamentos;
+-------------+-------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-------------+------+-----+---------+----------------+
| codigo
| int(11)
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20) | YES |
| NULL
|
|
| laboratorio | varchar(20) | YES |
| NULL
|
|
| precio
| float
| YES |
| NULL
|
|
| cantidad
| int(11)
| YES |
| NULL
|
|
+-------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
mysql> select * from medicamentos;
+--------+-----------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-----------------+-------------+--------+----------+
|
1 | Sertal
| Roche
|
5.2 |
100 |
|
2 | Buscapina
| Roche
|
4.1 |
200 |
|
3 | Amoxidal 500
| Bayer
| 15.6 |
100 |
|
4 | Amoxidal 500
| Bayer
| 15.6 |
100 |
|
12 | paracetamol 500 | bago
|
1.9 |
200 |
+--------+-----------------+-------------+--------+----------+
5 rows in set (0.00 sec)
mysql> insert into medicamentos(nombre,laboratorio,precio,cantidad) values('baya
sperina','bayer',2.10,150);
Query OK, 1 row affected (0.00 sec)
mysql> select * from medicamentos;
+--------+-----------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-----------------+-------------+--------+----------+
|
1 | Sertal
| Roche
|
5.2 |
100 |
|
2 | Buscapina
| Roche
|
4.1 |
200 |
|
3 | Amoxidal 500
| Bayer
| 15.6 |
100 |
|
4 | Amoxidal 500
| Bayer
| 15.6 |
100 |
|
12 | paracetamol 500 | bago
|
1.9 |
200 |
|
13 | bayasperina
| bayer
|
2.1 |
150 |
+--------+-----------------+-------------+--------+----------+
6 rows in set (0.02 sec)
13 - Comando truncate table.
mysql> use practica;
Database changed
mysql> create table medicamentos(
-> codigo integer auto_increment,

-> nombre varchar(20),


-> laboratorio varchar(20),
-> precio float,
-> cantidad integer,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> describe medicamentos;
+-------------+-------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-------------+------+-----+---------+----------------+
| codigo
| int(11)
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20) | YES |
| NULL
|
|
| laboratorio | varchar(20) | YES |
| NULL
|
|
| precio
| float
| YES |
| NULL
|
|
| cantidad
| int(11)
| YES |
| NULL
|
|
+-------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
mysql> insert into medicamentos(nombre,laboratorio,precio,cantidad) values('ser
tal','roche',5.2,100);
Query OK, 1 row affected (0.02 sec)
mysql> insert into medicamentos(nombre,laboratorio,precio,cantidad) values('bus
capina','roche',4.10,200);
Query OK, 1 row affected (0.01 sec)
mysql> insert into medicamentos(nombre,laboratorio,precio,cantidad) values('amo
xilina 500','bayer',15.60,100);
Query OK, 1 row affected (0.00 sec)
mysql> describe medicamentos;
+-------------+-------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-------------+------+-----+---------+----------------+
| codigo
| int(11)
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20) | YES |
| NULL
|
|
| laboratorio | varchar(20) | YES |
| NULL
|
|
| precio
| float
| YES |
| NULL
|
|
| cantidad
| int(11)
| YES |
| NULL
|
|
+-------------+-------------+------+-----+---------+----------------+
5 rows in set (0.03 sec)
mysql> describe medicamentos;
+-------------+-------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-------------+------+-----+---------+----------------+
| codigo
| int(11)
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20) | YES |
| NULL
|
|
| laboratorio | varchar(20) | YES |
| NULL
|
|
| precio
| float
| YES |
| NULL
|
|
| cantidad
| int(11)
| YES |
| NULL
|
|
+-------------+-------------+------+-----+---------+----------------+
5 rows in set (0.03 sec)
mysql> delete from medicamentos;
Query OK, 3 rows affected (0.03 sec)

mysql> describe medicamentos;


+-------------+-------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-------------+------+-----+---------+----------------+
| codigo
| int(11)
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20) | YES |
| NULL
|
|
| laboratorio | varchar(20) | YES |
| NULL
|
|
| precio
| float
| YES |
| NULL
|
|
| cantidad
| int(11)
| YES |
| NULL
|
|
+-------------+-------------+------+-----+---------+----------------+
5 rows in set (0.02 sec)
mysql> insert into medicamentos(nombre,laboratorio,precio,cantidad) values('s
tal','roche',5.2,100);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos(nombre,laboratorio,precio,cantidad) values('a
xilina 500','bayer',15.60,100);
Query OK, 1 row affected (0.34 sec)
mysql> describe medicamentos;
+-------------+-------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-------------+------+-----+---------+----------------+
| codigo
| int(11)
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20) | YES |
| NULL
|
|
| laboratorio | varchar(20) | YES |
| NULL
|
|
| precio
| float
| YES |
| NULL
|
|
| cantidad
| int(11)
| YES |
| NULL
|
|
+-------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
mysql> select * from medicamentos;
+--------+---------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+---------------+-------------+--------+----------+
|
4 | sertal
| roche
|
5.2 |
100 |
|
5 | amoxilina 500 | bayer
| 15.6 |
100 |
+--------+---------------+-------------+--------+----------+
2 rows in set (0.00 sec)
mysql> truncate table medicamentos;
Query OK, 0 rows affected (0.05 sec)
mysql> insert into medicamentos(nombre,laboratorio,precio,cantidad) values('bus
capina','roche',4.10,200);
Query OK, 1 row affected (0.00 sec)
mysql> select * from medicamentos;
+--------+-----------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-----------+-------------+--------+----------+
|
1 | buscapina | roche
|
4.1 |
200 |
+--------+-----------+-------------+--------+----------+
1 row in set (0.00 sec)

14 - Valores null.
mysql> use practica;
Database changed
mysql> create table medicamentos(
-> codigo integer auto_increment,
-> nombre varchar(20),
-> laboratorio varchar(20),
-> precio float,
-> cantidad integer,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> describe medicamentos;
+-------------+-------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-------------+------+-----+---------+----------------+
| codigo
| int(11)
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20) | YES |
| NULL
|
|
| laboratorio | varchar(20) | YES |
| NULL
|
|
| precio
| float
| YES |
| NULL
|
|
| cantidad
| int(11)
| YES |
| NULL
|
|
+-------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
mysql> insert into medicamentos(nombre,laboratorio,precio,cantidad) values('ser
tal','roche',5.2,100);
Query OK, 1 row affected (0.02 sec)
mysql> insert into medicamentos(nombre,laboratorio,precio,cantidad) values('bus
capina','roche',4.10,200);
Query OK, 1 row affected (0.01 sec)
mysql> insert into medicamentos(nombre,laboratorio,precio,cantidad) values('amo
xilina 500','bayer',15.60,100);
Query OK, 1 row affected (0.00 sec)

mysql> select * from medicamentos where laboratorio is null;


+--------+----------+-------------+--------+----------+
| codigo | nombre | laboratorio | precio | cantidad |
+--------+----------+-------------+--------+----------+
|
5 | Amoxinil | NULL
|
25 |
120 |
+--------+----------+-------------+--------+----------+
1 row in set (0.00 sec)
mysql> select*from medicamentos where laboratorio='';
+--------+-------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-------------+-------------+--------+----------+
|
6 | Bayaspirina |
|
0 |
150 |
+--------+-------------+-------------+--------+----------+
1 row in set (0.00 sec)
mysql> select*from medicamentos where precio is null;
+--------+-----------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |

+--------+-----------+-------------+--------+----------+
|
2 | Buscapina | Roche
| NULL |
200 |
+--------+-----------+-------------+--------+----------+
1 row in set (0.00 sec)
mysql> select*from medicamentos where precio='0';
+--------+-------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-------------+-------------+--------+----------+
|
6 | Bayaspirina |
|
0 |
150 |
+--------+-------------+-------------+--------+----------+
1 row in set (0.01 sec)
mysql> insert into medicamentos (nombre,laboratorio,precio,cantidad) values(null
,'bayes',10.20,100);
ERROR 1048 (23000): Column 'nombre' cannot be null
mysql> insert into medicamentos (nombre,laboratorio,precio,cantidad) values(null
,'bayes',10.20,100);
ERROR 1048 (23000): Column 'nombre' cannot be null
mysql> insert into medicamentos (nombre,laboratorio,precio,cantidad) values(null
,'bayes',10.20,100);
ERROR 1048 (23000): Column 'nombre' cannot be null
mysql> select*from medicamentos;
+--------+------------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+------------------+-------------+--------+----------+
|
1 | Sertal compuesto | Roche
|
7.1 |
150 |
|
2 | Buscapina
| Roche
| NULL |
200 |
|
3 | Amoxidal 500
| Bayer
| 15.6 |
0 |
|
4 | Amoxidal jarabe | Bayer
|
25 |
120 |
|
5 | Amoxinil
| NULL
|
25 |
120 |
|
6 | Bayaspirina
|
|
0 |
150 |
+--------+------------------+-------------+--------+----------+
6 rows in set (0.00 sec)
mysql> select*from medicamentos where precio<>0;
+--------+------------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+------------------+-------------+--------+----------+
|
1 | Sertal compuesto | Roche
|
7.1 |
150 |
|
3 | Amoxidal 500
| Bayer
| 15.6 |
0 |
|
4 | Amoxidal jarabe | Bayer
|
25 |
120 |
|
5 | Amoxinil
| NULL
|
25 |
120 |
+--------+------------------+-------------+--------+----------+
4 rows in set (0.00 sec)
mysql> select*from medicamentos where precio is not null;
+--------+------------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+------------------+-------------+--------+----------+
|
1 | Sertal compuesto | Roche
|
7.1 |
150 |
|
3 | Amoxidal 500
| Bayer
| 15.6 |
0 |
|
4 | Amoxidal jarabe | Bayer
|
25 |
120 |
|
5 | Amoxinil
| NULL
|
25 |
120 |
|
6 | Bayaspirina
|
|
0 |
150 |
+--------+------------------+-------------+--------+----------+
5 rows in set (0.00 sec)
mysql> select*from medicamentos where laboratorio<>'';
+--------+------------------+-------------+--------+----------+

| codigo | nombre
| laboratorio | precio | cantidad |
+--------+------------------+-------------+--------+----------+
|
1 | Sertal compuesto | Roche
|
7.1 |
150 |
|
2 | Buscapina
| Roche
| NULL |
200 |
|
3 | Amoxidal 500
| Bayer
| 15.6 |
0 |
|
4 | Amoxidal jarabe | Bayer
|
25 |
120 |
+--------+------------------+-------------+--------+----------+
4 rows in set (0.00 sec)
mysql> select*from medicamentos where laboratorio is not null;
+--------+------------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+------------------+-------------+--------+----------+
|
1 | Sertal compuesto | Roche
|
7.1 |
150 |
|
2 | Buscapina
| Roche
| NULL |
200 |
|
3 | Amoxidal 500
| Bayer
| 15.6 |
0 |
|
4 | Amoxidal jarabe | Bayer
|
25 |
120 |
|
6 | Bayaspirina
|
|
0 |
150 |
+--------+------------------+-------------+--------+----------+
5 rows in set (0.00 sec)
mysql>

15 - Valores numricos sin signo (unsigned)


mysql> use practica;
Database changed
mysql> create table peliculas(
-> codigo integer unsigned auto_increment,
-> titulo varchar(40) not null,
-> actor varchar(20),
-> duracion integer unsigned,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.34 sec)
mysql> describe peliculas;
+----------+------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+----------+------------------+------+-----+---------+----------------+
| codigo | int(10) unsigned | NO | PRI | NULL
| auto_increment |
| titulo | varchar(40)
| NO |
| NULL
|
|
| actor
| varchar(20)
| YES |
| NULL
|
|
| duracion | int(10) unsigned | YES |
| NULL
|
|
+----------+------------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
17 - Tipos de datos (texto)

mysql> use practica;


Database changed
mysql> create table autos(
-> patente char(6),
-> marca varchar(20),

-> modelo char(4),


-> precio float unsigned,
-> primary key(patente)
-> );
Query OK, 0 rows affected (0.47 sec)
mysql> describe autos;
+---------+----------------+------+-----+---------+-------+
| Field | Type
| Null | Key | Default | Extra |
+---------+----------------+------+-----+---------+-------+
| patente | char(6)
| NO | PRI |
|
|
| marca | varchar(20)
| YES |
| NULL
|
|
| modelo | char(4)
| YES |
| NULL
|
|
| precio | float unsigned | YES |
| NULL
|
|
+---------+----------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
mysql> insert into autos (patente,marca,modelo,precio) values('ACD123','Fiat 1
28','1970',15000);
Query OK, 1 row affected (0.36 sec)
mysql> insert into autos (patente,marca,modelo,precio) values('ACG234','Renaul
t 11','1990',40000);
Query OK, 1 row affected (0.00 sec)
mysql> insert into autos (patente,marca,modelo,precio) values('BCD333','Peugeo
t 505','1990',80000);
Query OK, 1 row affected (0.00 sec)
mysql> insert into autos (patente,marca,modelo,precio) values('GCD123','Renaul
t Clio','1990',70000);
Query OK, 1 row affected (0.01 sec)
mysql> insert into autos (patente,marca,modelo,precio) values('BCC333','Renaul
t Megane','1998',95000);
Query OK, 1 row affected (0.00 sec)
mysql> insert into autos (patente,marca,modelo,precio) values('BVF543','Fiat 1
28','1975',20000);
Query OK, 1 row affected (0.00 sec)
mysql> select * from autos;
+---------+----------------+--------+--------+
| patente | marca
| modelo | precio |
+---------+----------------+--------+--------+
| ACD123 | Fiat 128
| 1970 | 15000 |
| ACG234 | Renault 11
| 1990 | 40000 |
| BCC333 | Renault Megane | 1998 | 95000 |
| BCD333 | Peugeot 505
| 1990 | 80000 |
| BVF543 | Fiat 128
| 1975 | 20000 |
| GCD123 | Renault Clio | 1990 | 70000 |
+---------+----------------+--------+--------+
6 rows in set (0.00 sec)
mysql> select* from autos where modelo='1990';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'model
o='1990'' at line 1
mysql> select * from autos where modelo='1990';
+---------+--------------+--------+--------+

| patente | marca
| modelo | precio |
+---------+--------------+--------+--------+
| ACG234 | Renault 11 | 1990 | 40000 |
| BCD333 | Peugeot 505 | 1990 | 80000 |
| GCD123 | Renault Clio | 1990 | 70000 |cre
+---------+--------------+--------+--------+
3 rows in set (0.00 sec)
mysql> select * from autos where precio>50000;
+---------+----------------+--------+--------+
| patente | marca
| modelo | precio |
+---------+----------------+--------+--------+
| BCC333 | Renault Megane | 1998 | 95000 |
| BCD333 | Peugeot 505
| 1990 | 80000 |
| GCD123 | Renault Clio | 1990 | 70000 |
+---------+----------------+--------+--------+
3 rows in set (0.00 sec)
mysql>
18 - Tipos de datos (numricos)
mysql> use practica;
Database changed
mysql> create table pedido(
-> numeropedido integer unsigned auto_increment,
-> nombre varchar(20),
-> tipo varchar(30),
-> precio float unsigned,
-> cantidad integer unsigned,
-> domicilio varchar(15),
-> primary key(numeropedido)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> describe pedido;
+--------------+------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+--------------+------------------+------+-----+---------+----------------+
| numeropedido | int(10) unsigned | NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20)
| YES |
| NULL
|
|
| tipo
| varchar(30)
| YES |
| NULL
|
|
| precio
| float unsigned | YES |
| NULL
|
|
| cantidad
| int(10) unsigned | YES |
| NULL
|
|
| domicilio
| varchar(15)
| YES |
| NULL
|
|
+--------------+------------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)
mysql>

20 - Valores por defecto.


mysql> use practica;
Database changed

mysql> create table peliculas(


-> codigo integer unsigned auto_increment,
-> titulo varchar(30) not null,
-> actor varchar(20),
-> duracion integer unsigned,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.08 sec)
mysql> describe peliculas;
+----------+------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+----------+------------------+------+-----+---------+----------------+
| codigo | int(10) unsigned | NO | PRI | NULL
| auto_increment |
| titulo | varchar(30)
| NO |
| NULL
|
|
| actor
| varchar(20)
| YES |
| NULL
|
|
| duracion | int(10) unsigned | YES |
| NULL
|
|
+----------+------------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
mysql> use practica;insert into peliculas (titulo,actor,duracion) values('Misio
n imposible','Tom Cruise',120);
Database changed
Query OK, 1 row affected (0.01 sec)
mysql> insert into peliculas (codigo,duracion) values(5,90);
ERROR 1364 (HY000): Field 'titulo' doesn't have a default value
mysql> insert into peliculas(codigo,duracion) values(5,90);
ERROR 1364 (HY000): Field 'titulo' doesn't have a default value
mysql> insert into peliculas (titulo,actor)
-> ('Harry Potter y la piedra filosofal','Daniel R.');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near ''Harr
y Potter y la piedra filosofal','Daniel R.')' at line 2
mysql> insert into peliculas (titulo,actor)
('Harry Potter y la piedra filoso
fal','Daniel R.');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near ''Harr
y Potter y la piedra filosofal','Daniel R.')' at line 1
mysql> insert into peliculas (titulo,actor,duracion) ('Harry Potter y la pied
ra filosofal','Daniel R.',120);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near ''Harr
y Potter y la piedra filosofal','Daniel R.',120)' at line 1
mysql> select* from peliculas;
+--------+------------------+------------+----------+
| codigo | titulo
| actor
| duracion |
+--------+------------------+------------+----------+
|
1 | Mision imposible | Tom Cruise |
120 |
+--------+------------------+------------+----------+
1 row in set (0.00 sec)
mysql>

21 - Valores invlidos.

mysql> use practica;


Database changed
mysql> create table empleados(
-> documento char(8) not null,
-> nombre varchar(30) not null,
-> domicilio varchar(30),
-> fechaingreso date not null,
-> fechanacimiento date,
-> primary key(documento)
-> );
Query OK, 0 rows affected (0.06 sec)
mysql> insert into empleado(documento,fechaingreso,fechanacimiento) values('2233
3444',20-10-2005',null);
'>
'> insert into empleado(documento,fechaingreso,fechanacimiento) values('2233
3444',20-10-2005',null);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '?20-1
0-2005',null);
insert into empleado(documento,fechaingreso,fechanacimiento' at line 1
mysql> select*from empleado;
ERROR 1146 (42S02): Table 'practica.empleado' doesn't exist
mysql> select*from empleados;
Empty set (0.00 sec)
mysql> insert into empleados (documento,fechaingreso,fechanacimiento) values('2
2333444',null,'2005-10-10');
ERROR 1364 (HY000): Field 'nombre' doesn't have a default value
mysql> insert into empleados (documento,fechaingreso,fechanacimiento) values (n
ull,'20-10-2005'11995);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '11995
)' at line 1
mysql>

22 - Atributo default en una columna de una tabla.


mysql> use practica;
Database changed
mysql> drop table pedido;
Query OK, 0 rows affected (0.04 sec)
mysql> describe pedido;
+--------------+------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+--------------+------------------+------+-----+---------+----------------+
| numeropedido | int(10) unsigned | NO | PRI | NULL
| auto_increment |
| nombre
| varchar(30)
| YES |
| NULL
|
|
| tipo
| varchar(20)
| YES |
| NULL
|
|
| precio
| float unsigned | YES |
| NULL
|
|
| cantidad
| int(10) unsigned | YES |
| NULL
|
|
| domicilio
| varchar(15)
| YES |
| NULL
|
|
+--------------+------------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)

mysql> insert into pedido (nombre,tipo,precio,cantidad,domicilio) values('piza',


'muzarela','4.00',3,'Sarmiento 235');
Query OK, 1 row affected (0.06 sec)
mysql> insert into pedido (tipo,precio,cantidad,domicilio)
','1.00',24,'Urquiza 296');
Query OK, 1 row affected (0.00 sec)

values('arabe

mysql> insert into pedido (nombre,tipo,domicilio)


values('empan
ada','saltea','Colon 309');
ERROR 1366 (HY000): Incorrect string value: '\xA4a' for column 'tipo' at row 1
mysql> insert into pedido (tipo,domicilio)
values('arabe
','San Martin 444');
Query OK, 1 row affected (0.03 sec)
mysql> insert into pedido (nombre,tipo,precio,domicilio)
,'especial','4.00','Avellaneda 395');
Query OK, 1 row affected (0.02 sec)

values('piza'

mysql> select*from pedido;


+--------------+--------+----------+--------+----------+----------------+
| numeropedido | nombre | tipo
| precio | cantidad | domicilio
|
+--------------+--------+----------+--------+----------+----------------+
|
1 | piza | muzarela |
4 |
3 | Sarmiento 235 |
|
2 | NULL | arabe
|
1 |
24 | Urquiza 296
|
|
3 | NULL | arabe
| NULL |
NULL | San Martin 444 |
|
4 | piza | especial |
4 |
NULL | Avellaneda 395 |
+--------------+--------+----------+--------+----------+----------------+
4 rows in set (0.00 sec)
23 - Atributo zerofill en una columna de una tabla.
mysql> use practica;
Database changed
mysql> show tables;
+--------------------+
| Tables_in_practica |
+--------------------+
| agenda
|
| articulo
|
| autos
|
| empleados
|
| libro
|
| medicamentos
|
| pedido
|
| peliculas
|
+--------------------+
8 rows in set (0.00 sec)
mysql> create table cuenta(
-> numero int(8) zerofill auto_increment,
-> documento char(8) not null,
-> nombre varchar(30),
-> saldo decimal(9,2),
-> primary key(numero)
-> );
Query OK, 0 rows affected (0.12 sec)

mysql> insert into cuenta (numero,documento,nombre,saldo) values(1234,'22333444


','Juan Perez',2000.60);
Query OK, 1 row affected (0.01 sec)
mysql> insert into cuenta (numero,documento,nombre,saldo) values(2566,'23333444
','Maria Pereyra',5050);
Query OK, 1 row affected (0.03 sec)
mysql> insert into cuenta (numero,documento,nombre,saldo) values(5987,'24333444
','Marcos Torres',200);
Query OK, 1 row affected (0.01 sec)
mysql> insert into cuenta (numero,documento,nombre,saldo) values(14434,'2533344
4','Ana Juarez',8000.60);
Query OK, 1 row affected (0.00 sec)
mysql> describe cuenta;
+-----------+--------------------------+------+-----+---------+----------------+
| Field

| Type

| Null | Key | Default | Extra

+-----------+--------------------------+------+-----+---------+----------------+
| numero

| int(8) unsigned zerofill | NO

| PRI | NULL

| auto_increment |

| documento | char(8)

| NO

| NULL

| nombre

| varchar(30)

| YES |

| NULL

| saldo

| decimal(9,2)

| YES |

| NULL

+-----------+--------------------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
mysql> select*from cuenta;
+----------+-----------+---------------+---------+
| numero | documento | nombre
| saldo |
+----------+-----------+---------------+---------+
| 00001234 | 22333444 | Juan Perez
| 2000.60 |
| 00002566 | 23333444 | Maria Pereyra | 5050.00 |
| 00005987 | 24333444 | Marcos Torres | 200.00 |
| 00014434 | 25333444 | Ana Juarez
| 8000.60 |
+----------+-----------+---------------+---------+
4 rows in set (0.00 sec)
mysql> insert into cuenta(numero,documento,nombre,saldo) values(-1234,'27333444'
,'luis duarte',2800);
ERROR 1264 (22003): Out of range value for column 'numero' at row 1
mysql> insert into cuentas (numero,documento,nombre,saldo) values(-1234,'273334
44','Luis Duarte',2800);
ERROR 1146 (42S02): Table 'practica.cuentas' doesn't exist
mysql>

24 - Columnas calculadas.

mysql> use practica;


Database changed
mysql> create table empleados(
-> nombre varchar(20),
-> documento char(8) not null,
-> sexo varchar(2),
-> domicilio varchar(20),
-> sueldo decimal(9,2) unsigned,
-> hijos integer,
-> primary key(documento)
-> );
Query OK, 0 rows affected (0.41 sec)
mysql> insert into empleados (nombre,documento,sexo,sueldo,hijos) values ('Juan
Perez','22333444','m',300,1);
Query OK, 1 row affected (0.01 sec)
mysql> insert into empleados (nombre,documento,sexo,sueldo,hijos) values ('Ana A
costa','21333444','f',400,2);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados (nombre,documento,sexo,sueldo,hijos) values ('Alber
to Lopez','24333444','m',600,0);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados (nombre,documento,sexo,sueldo,hijos) values ('Carlo
s Sanchez','30333444','m',550,3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados (nombre,documento,sexo,sueldo,hijos) values ('Maria
na Torres','23444555','f',600,1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados (nombre,documento,sexo,sueldo,hijos) values ('Marco
s Garcia','23664555','m',1500,2);
Query OK, 1 row affected (0.00 sec)
mysql> describe empleados;
+-----------+-----------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-----------------------+------+-----+---------+-------+
| nombre
| varchar(20)
| YES |
| NULL
|
|
| documento | char(8)
| NO | PRI | NULL
|
|
| sexo
| varchar(2)
| YES |
| NULL
|
|
| domicilio | varchar(20)
| YES |
| NULL
|
|
| sueldo
| decimal(9,2) unsigned | YES |
| NULL
|
|
| hijos
| int(11)
| YES |
| NULL
|
|
+-----------+-----------------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
mysql> select*from empleados;
+----------------+-----------+------+-----------+---------+-------+
| nombre
| documento | sexo | domicilio | sueldo | hijos |
+----------------+-----------+------+-----------+---------+-------+
| Ana Acosta
| 21333444 | f
| NULL
| 400.00 |
2 |
| Juan Perez
| 22333444 | m
| NULL
| 300.00 |
1 |
| Mariana Torres | 23444555 | f
| NULL
| 600.00 |
1 |
| Marcos Garcia | 23664555 | m
| NULL
| 1500.00 |
2 |
| Alberto Lopez | 24333444 | m
| NULL
| 600.00 |
0 |

| Carlos Sanchez | 30333444 | m


| NULL
| 550.00 |
3 |
+----------------+-----------+------+-----------+---------+-------+
6 rows in set (0.00 sec)
mysql> select nombre ,sueldo,sueldo+sueldo*1/10 from empleados;
+----------------+---------+--------------------+
| nombre
| sueldo | sueldo+sueldo*1/10 |
+----------------+---------+--------------------+
| Ana Acosta
| 400.00 |
440.000000 |
| Juan Perez
| 300.00 |
330.000000 |
| Mariana Torres | 600.00 |
660.000000 |
| Marcos Garcia | 1500.00 |
1650.000000 |
| Alberto Lopez | 600.00 |
660.000000 |
| Carlos Sanchez | 550.00 |
605.000000 |
+----------------+---------+--------------------+
6 rows in set (0.36 sec)
mysql> select nombre,sueldo,hijos,(200*hijos),sueldobasico+(200*hijos) from empl
eados;
ERROR 1054 (42S22): Unknown column 'sueldobasico' in 'field list'
mysql> select nombre,sueldo,hijos,(200*hijos),sueldo+(200*hijos) from empleados;
+----------------+---------+-------+-------------+--------------------+
| nombre
| sueldo | hijos | (200*hijos) | sueldo+(200*hijos) |
+----------------+---------+-------+-------------+--------------------+
| Ana Acosta
| 400.00 |
2 |
400 |
800.00 |
| Juan Perez
| 300.00 |
1 |
200 |
500.00 |
| Mariana Torres | 600.00 |
1 |
200 |
800.00 |
| Marcos Garcia | 1500.00 |
2 |
400 |
1900.00 |
| Alberto Lopez | 600.00 |
0 |
0 |
600.00 |
| Carlos Sanchez | 550.00 |
3 |
600 |
1150.00 |
+----------------+---------+-------+-------------+--------------------+
6 rows in set (0.00 sec)

25 - Funciones para el manejo de cadenas.


mysql> use practica;
Database changed
mysql> create table libros(
-> codigo int unsigned auto_increment,
-> titulo varchar(40) not null,
-> autor varchar(30),
-> editorial varchar(20),
-> precio decimal(5,2) unsigned,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> describe libros;
+-----------+-----------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------+-----------------------+------+-----+---------+----------------+
| codigo
| int(10) unsigned
| NO | PRI | NULL
| auto_increment |
| titulo
| varchar(40)
| NO |
| NULL
|
|
| autor
| varchar(30)
| YES |
| NULL
|
|
| editorial | varchar(20)
| YES |
| NULL
|
|
| precio
| decimal(5,2) unsigned | YES |
| NULL
|
|

+-----------+-----------------------+------+-----+---------+----------------+
5 rows in set (0.02 sec)
mysql> insert into libros (titulo,autor,editorial,precio)
Borges','Paidos',33.4);
Query OK, 1 row affected (0.02 sec)

values('El alehp','

mysql> insert into libros (titulo,autor,editorial,precio)


el pais de las maravillas','L. Carroll','Planeta',16);
Query OK, 1 row affected (0.03 sec)

values('Alicia en

mysql> select concat_ws('-',titulo,autor) from libros;


+------------------------------------------------+
| concat_ws('-',titulo,autor)
|
+------------------------------------------------+
| El alehp-Borges
|
| Alicia en el pais de las maravillas-L. Carroll |
+------------------------------------------------+
2 rows in set (0.00 sec)
mysql> select left(titulo,15) from libros;
+-----------------+
| left(titulo,15) |
+-----------------+
| El alehp
|
| Alicia en el pa |
+-----------------+
2 rows in set (0.00 sec)
mysql> select titulo,insert(editorial,1,0,'edit.') from libros;
+-------------------------------------+-------------------------------+
| titulo
| insert(editorial,1,0,'edit.') |
+-------------------------------------+-------------------------------+
| El alehp
| edit.Paidos
|
| Alicia en el pais de las maravillas | edit.Planeta
|
+-------------------------------------+-------------------------------+
2 rows in set (0.00 sec)
mysql> select lower(titulo),upper(editorial) from libros;
+-------------------------------------+------------------+
| lower(titulo)
| upper(editorial) |
+-------------------------------------+------------------+
| el alehp
| PAIDOS
|
| alicia en el pais de las maravillas | PLANETA
|
+-------------------------------------+------------------+
2 rows in set (0.05 sec)
mysql>

26 - Funciones matemticas.

mysql> use practica;


Database changed
mysql> create table libros(
-> titulo varchar(40) not null,
-> autor varchar(30),

-> editorial varchar(20),


-> precio decimal(5,2) unsigned,
-> primary key(codigo)
-> );
ERROR 1072 (42000): Key column 'codigo' doesn't exist in table
mysql> create table libros(
-> codigo int unsigned auto_increment,
-> titulo varchar(40) not null,
-> autor varchar(30),
-> editorial varchar(20),
-> precio decimal(5,2) unsigned,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> describe libros;
+-----------+-----------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------+-----------------------+------+-----+---------+----------------+
| codigo
| int(10) unsigned
| NO | PRI | NULL
| auto_increment |
| titulo
| varchar(40)
| NO |
| NULL
|
|
| autor
| varchar(30)
| YES |
| NULL
|
|
| editorial | varchar(20)
| YES |
| NULL
|
|
| precio
| decimal(5,2) unsigned | YES |
| NULL
|
|
+-----------+-----------------------+------+-----+---------+----------------+
5 rows in set (0.02 sec)
mysql> insert into libros (titulo,autor,editorial,precio) values('El alehp','Bor
ges','Paidos',33.4);
Query OK, 1 row affected (0.01 sec)
mysql> insert into libros (titulo,autor,editorial,precio) values('Alicia en el p
ais de las maravillas','L. Carroll','Planeta',16.3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into libros (titulo,autor,editorial,precio) values('Alicia a trave
s del espejo','L. Carroll','Planeta',18.8);
Query OK, 1 row affected (0.02 sec)
mysql> select titulo,ceiling(precio),floor(precio) from libros;
+-------------------------------------+-----------------+---------------+
| titulo
| ceiling(precio) | floor(precio) |
+-------------------------------------+-----------------+---------------+
| El alehp
|
34 |
33 |
| Alicia en el pais de las maravillas |
17 |
16 |
| Alicia a traves del espejo
|
19 |
18 |
+-------------------------------------+-----------------+---------------+
3 rows in set (0.00 sec)
mysql> select titulo,round(precio) from libros;
+-------------------------------------+---------------+
| titulo
| round(precio) |
+-------------------------------------+---------------+
| El alehp
|
33 |
| Alicia en el pais de las maravillas |
16 |
| Alicia a traves del espejo
|
19 |
+-------------------------------------+---------------+
3 rows in set (0.00 sec)
mysql> select titulo,truncate(precio,1) from libros;

+-------------------------------------+--------------------+
| titulo
| truncate(precio,1) |
+-------------------------------------+--------------------+
| El alehp
|
33.4 |
| Alicia en el pais de las maravillas |
16.3 |
| Alicia a traves del espejo
|
18.8 |
+-------------------------------------+--------------------+
3 rows in set (0.00 sec)
mysql>

27 - Funciones para el uso de fecha y hora.


mysql> use practica;
Database changed
mysql> create table empleados(
-> documentos char(8) not null,
-> nombre varchar(30) not null,
-> sexo char(1),
-> domiclio varchar(30),
-> fechaingreso date,
-> fechanacimiento date,
-> sueldobasico decimal(5,2) unsigned,
-> primary key(documentos)
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> describe empleados;
+-----------------+-----------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------------+-----------------------+------+-----+---------+-------+
| documentos
| char(8)
| NO | PRI | NULL
|
|
| nombre
| varchar(30)
| NO |
| NULL
|
|
| sexo
| char(1)
| YES |
| NULL
|
|
| domiclio
| varchar(30)
| YES |
| NULL
|
|
| fechaingreso
| date
| YES |
| NULL
|
|
| fechanacimiento | date
| YES |
| NULL
|
|
| sueldobasico
| decimal(5,2) unsigned | YES |
| NULL
|
|
+-----------------+-----------------------+------+-----+---------+-------+
7 rows in set (0.00 sec)
mysql> insert into empleados (documentos,nombre,sexo,domiclio,fechaIngreso,fech
aNacimiento,sueldoBasico) values ('22333111','Juan Perez','m','Colon 123','1990
-02-01','1970-05-10',550);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados (documentos,nombre,sexo,domiclio,fechaIngreso,fecha
Nacimiento,sueldoBasico) values ('25444444','Susana Morales','f','Avellaneda 345
','1995-04-01','1975-11-06',650);
Query OK, 1 row affected (0.02 sec)
mysql> insert into empleados (documentos,nombre,sexo,domiclio,fechaIngreso,fech
aNacimiento,sueldoBasico) values ('20111222','Hector Pereyra','m','Caseros 987',
'1995-04-01','1965-03-25',510);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados (documentos,nombre,sexo,domiclio,fechaIngreso,fech

aNacimiento,sueldoBasico) values ('30000222','Luis Luque','m','Urquiza 456','198


0-09-01','1980-03-29',700);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados (documentos,nombre,sexo,domiclio,fechaIngreso,fech
aNacimiento,sueldoBasico) values ('20555444','Maria Laura Torres','f','San Marti
n 1122','2000-05-15','1965-12-22',700);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados (documentos,nombre,sexo,domiclio,fechaIngreso,fech
aNacimiento,sueldoBasico) values ('30000234','Alberto Soto','m','Peru 232','2003
-08-15','1989-10-10',420);
Query OK, 1 row affected (0.02 sec)
mysql> insert into empleados (documentos,nombre,sexo,domiclio,fechaIngreso,fech
aNacimiento,sueldoBasico) values ('20125478','Ana Gomez','f','Sarmiento 975','20
04-06-14','1976-09-21',350);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados (documentos,nombre,sexo,domiclio,fechaIngreso,fech
aNacimiento,sueldoBasico) values ('24154269','Ofelia Garcia','f','Triunvirato 62
8','2004-09-23','1974-05-12',390);
Query OK, 1 row affected (0.00 sec)
mysql> select*from empleados;
+------------+--------------------+------+-----------------+--------------+----------------+--------------+
| documentos | nombre
| sexo | domiclio
| fechaingreso | fech
anacimiento | sueldobasico |
+------------+--------------------+------+-----------------+--------------+----------------+--------------+
| 20111222 | Hector Pereyra
| m
| Caseros 987
| 1995-04-01 | 1965
-03-25
|
510.00 |
| 20125478 | Ana Gomez
| f
| Sarmiento 975 | 2004-06-14 | 1976
-09-21
|
350.00 |
| 20555444 | Maria Laura Torres | f
| San Martin 1122 | 2000-05-15 | 1965
-12-22
|
700.00 |
| 22333111 | Juan Perez
| m
| Colon 123
| 1990-02-01 | 1970
-05-10
|
550.00 |
| 24154269 | Ofelia Garcia
| f
| Triunvirato 628 | 2004-09-23 | 1974
-05-12
|
390.00 |
| 25444444 | Susana Morales
| f
| Avellaneda 345 | 1995-04-01 | 1975
-11-06
|
650.00 |
| 30000222 | Luis Luque
| m
| Urquiza 456
| 1980-09-01 | 1980
-03-29
|
700.00 |
| 30000234 | Alberto Soto
| m
| Peru 232
| 2003-08-15 | 1989
-10-10
|
420.00 |

mysql> select nombre,fechaNacimiento from empleados


->
where month(fechaNacimiento)=5;
+---------------+-----------------+
| nombre
| fechaNacimiento |
+---------------+-----------------+
| Juan Perez
| 1970-05-10
|
| Ofelia Garcia | 1974-05-12
|
+---------------+-----------------+
2 rows in set (0.03 sec)

mysql> select nombre,fechanacimiento,(sueldobasico+sueldobasico*0.01) from em


ados
-> where month(fechaingreso)=8;
+--------------+-----------------+----------------------------------+
| nombre
| fechanacimiento | (sueldobasico+sueldobasico*0.01) |
+--------------+-----------------+----------------------------------+
| Alberto Soto | 1989-10-10
|
424.2000 |
+--------------+-----------------+----------------------------------+
1 row in set (0.03 sec)
mysql> select nombre,fechaingreso,sueldobasico,(sueldobasico+sueldobasico*0.01)
from empleados
-> where month(fechaingreso)=8;
+--------------+--------------+--------------+---------------------------------+
| nombre
| fechaingreso | sueldobasico | (sueldobasico+sueldobasico*0.01)
|
+--------------+--------------+--------------+---------------------------------+
| Alberto Soto | 2003-08-15 |
420.00 |
424.2000
|
+--------------+--------------+--------------+---------------------------------+
1 row in set (0.00 sec)
mysql> select nombre,sueldobasico from empleados
-> where month(fechaingreso)=8;
+--------------+--------------+
| nombre
| sueldobasico |
+--------------+--------------+
| Alberto Soto |
420.00 |
+--------------+--------------+
1 row in set (0.00 sec)
mysql> select(current_date)-year(fechaingreso)
-> from empleados
-> where month(fechaingreso)=8;
+-----------------------------------+
| (current_date)-year(fechaingreso) |
+-----------------------------------+
|
20149103 |
+-----------------------------------+
1 row in set (0.00 sec)
mysql>

28 - Clusula order by del select


mysql> use practica;
Database changed
mysql> create table medicamentos(
-> codigo int unsigned auto_increment,
-> nombre varchar(20),
-> laboratorio varchar(20),

-> precio decimal(5,2),


-> cantidad int unsigned,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> describe medicamentos;
+-------------+------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+------------------+------+-----+---------+----------------+
| codigo
| int(10) unsigned | NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20)
| YES |
| NULL
|
|
| laboratorio | varchar(20)
| YES |
| NULL
|
|
| precio
| decimal(5,2)
| YES |
| NULL
|
|
| cantidad
| int(10) unsigned | YES |
| NULL
|
|
+-------------+------------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('S
ertal','Roche',5.2,100);
Query OK, 1 row affected (0.01 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Buscapina','Roche',4.10,200);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Amoxidal 500','Bayer',15.60,100);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Paracetamol 500','Bago',1.90,200);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Bayaspirina','Bayer',2.10,150);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Amoxidal jarabe','Bayer',5.10,250);
Query OK, 1 row affected (0.00 sec)
mysql> select precio from medicamentos order by 5;
ERROR 1054 (42S22): Unknown column '5' in 'order clause'
mysql> select precio from medicamentos order by 1;
+--------+
| precio |
+--------+
| 1.90 |
| 2.10 |
| 4.10 |
| 5.10 |
| 5.20 |
| 15.60 |
+--------+
6 rows in set (0.00 sec)
mysql> select codigo,nombre,laboratorio,precio,cantidad from medicamentos order
by 5;
+--------+-----------------+-------------+--------+----------+

| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-----------------+-------------+--------+----------+
|
1 | Sertal
| Roche
| 5.20 |
100 |
|
3 | Amoxidal 500
| Bayer
| 15.60 |
100 |
|
5 | Bayaspirina
| Bayer
| 2.10 |
150 |
|
2 | Buscapina
| Roche
| 4.10 |
200 |
|
4 | Paracetamol 500 | Bago
| 1.90 |
200 |
|
6 | Amoxidal jarabe | Bayer
| 5.10 |
250 |
+--------+-----------------+-------------+--------+----------+
6 rows in set (0.00 sec)
mysql> select*from medicamentos;
+--------+-----------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-----------------+-------------+--------+----------+
|
1 | Sertal
| Roche
| 5.20 |
100 |
|
2 | Buscapina
| Roche
| 4.10 |
200 |
|
3 | Amoxidal 500
| Bayer
| 15.60 |
100 |
|
4 | Paracetamol 500 | Bago
| 1.90 |
200 |
|
5 | Bayaspirina
| Bayer
| 2.10 |
150 |
|
6 | Amoxidal jarabe | Bayer
| 5.10 |
250 |
+--------+-----------------+-------------+--------+----------+
6 rows in set (0.00 sec)
mysql> select codigo,nombre,laboratorio,precio,cantidad from medicamentos order
by laboratorio desc,cantidad asc;
+--------+-----------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-----------------+-------------+--------+----------+
|
1 | Sertal
| Roche
| 5.20 |
100 |
|
2 | Buscapina
| Roche
| 4.10 |
200 |
|
3 | Amoxidal 500
| Bayer
| 15.60 |
100 |
|
5 | Bayaspirina
| Bayer
| 2.10 |
150 |
|
6 | Amoxidal jarabe | Bayer
| 5.10 |
250 |
|
4 | Paracetamol 500 | Bago
| 1.90 |
200 |
+--------+-----------------+-------------+--------+----------+
6 rows in set (0.00 sec)

29 - Operadores Lgicos (and - or - not)


mysql> use practica;
Database changed
mysql> create table medicamentos(
-> codigo int unsigned auto_increment,
-> nombre varchar(20),
-> laboratorio varchar(20),
-> precio decimal(5,2),
-> cantidad int unsigned,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> describe medicamentos;
+-------------+------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+------------------+------+-----+---------+----------------+
| codigo
| int(10) unsigned | NO | PRI | NULL
| auto_increment |

| nombre
| varchar(20)
| YES |
| NULL
|
|
| laboratorio | varchar(20)
| YES |
| NULL
|
|
| precio
| decimal(5,2)
| YES |
| NULL
|
|
| cantidad
| int(10) unsigned | YES |
| NULL
|
|
+-------------+------------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('S
ertal','Roche',5.2,100);
Query OK, 1 row affected (0.01 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Buscapina','Roche',4.10,200);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Amoxidal 500','Bayer',15.60,100);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Paracetamol 500','Bago',1.90,200);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Bayaspirina','Bayer',2.10,150);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Amoxidal jarabe','Bayer',5.10,250);
Query OK, 1 row affected (0.00 sec)
mysql> select codigo,nombre
-> from medicamentos
-> where laboratorio='roche' and
-> precio<5;
+--------+-----------+
| codigo | nombre
|
+--------+-----------+
|
2 | Buscapina |
+--------+-----------+
1 row in set (0.00 sec)
mysql> select*from medicamentos
-> where laboratorio='roche' and
-> precio<5;
+--------+-----------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-----------+-------------+--------+----------+
|
2 | Buscapina | Roche
| 4.10 |
200 |
+--------+-----------+-------------+--------+----------+
1 row in set (0.00 sec)
mysql> select*from medicamentos
-> where not ('bayer');
+--------+-----------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-----------------+-------------+--------+----------+
|
1 | Sertal
| Roche
| 5.20 |
100 |
|
2 | Buscapina
| Roche
| 4.10 |
200 |

|
3 | Amoxidal 500
| Bayer
| 15.60 |
100 |
|
4 | Paracetamol 500 | Bago
| 1.90 |
200 |
|
5 | Bayaspirina
| Bayer
| 2.10 |
150 |
|
6 | Amoxidal jarabe | Bayer
| 5.10 |
250 |
+--------+-----------------+-------------+--------+----------+
6 rows in set, 1 warning (0.42 sec)
mysql> select*from medicamentos
-> where not laboratorio='bayer' and
-> not cantidad=100;
+--------+-----------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-----------------+-------------+--------+----------+
|
2 | Buscapina
| Roche
| 4.10 |
200 |
|
4 | Paracetamol 500 | Bago
| 1.90 |
200 |
+--------+-----------------+-------------+--------+----------+
2 rows in set (0.00 sec)
mysql> select*from medicamentos
-> where laboratorio='bayer' and
-> not cantidad=100;
+--------+-----------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-----------------+-------------+--------+----------+
|
5 | Bayaspirina
| Bayer
| 2.10 |
150 |
|
6 | Amoxidal jarabe | Bayer
| 5.10 |
250 |
+--------+-----------------+-------------+--------+----------+
2 rows in set (0.00 sec)
mysql> delete from medicamentos
-> where laboratorio='bayer' and
-> precio>10;
Query OK, 1 row affected (0.34 sec)
mysql> update medicamentos set cantidad=200
-> where laboratorio='roche' and
-> precio>5;
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> delete from medicamentos
-> where laboratorio='bayer' or
-> precio<3;
Query OK, 3 rows affected (0.04 sec)
mysql> select*from medicamentos;
+--------+-----------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-----------+-------------+--------+----------+
|
1 | Sertal
| Roche
| 5.20 |
200 |
|
2 | Buscapina | Roche
| 4.10 |
200 |
+--------+-----------+-------------+--------+----------+
2 rows in set (0.00 sec)
30 - Otros operadores relacionales (between - in)
mysql> use practica;
Database changed

mysql> create table medicamentos(


-> codigo int unsigned auto_increment,
-> nombre varchar(20),
-> laboratorio varchar(20),
-> precio decimal(5,2) unsigned,
-> cantidad int unsigned,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.08 sec)
mysql> describe medicamentos;
+-------------+-----------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-----------------------+------+-----+---------+----------------+
| codigo
| int(10) unsigned
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20)
| YES |
| NULL
|
|
| laboratorio | varchar(20)
| YES |
| NULL
|
|
| precio
| decimal(5,2) unsigned | YES |
| NULL
|
|
| cantidad
| int(10) unsigned
| YES |
| NULL
|
|
+-------------+-----------------------+------+-----+---------+----------------+
5 rows in set (0.05 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('S
ertal','Roche',5.2,100);
Query OK, 1 row affected (0.05 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Buscapina','Roche',4.10,200);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Amoxidal 500','Bayer',15.60,100);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Paracetamol 500','Bago',1.90,200);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Bayaspirina','Bayer',2.10,150);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio,cantidad) values('
Amoxidal jarabe','Bayer',5.10,250);
Query OK, 1 row affected (0.00 sec)
mysql> select nombre,precio from medicamentos
-> where precio between 5 and 15;
+-----------------+--------+
| nombre
| precio |
+-----------------+--------+
| Sertal
| 5.20 |
| Amoxidal jarabe | 5.10 |
+-----------------+--------+
2 rows in set (0.08 sec)
mysql> select*from medicamentos
-> where laboratorio in ('bayer','bago');
+--------+-----------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |

+--------+-----------------+-------------+--------+----------+
|
3 | Amoxidal 500
| Bayer
| 15.60 |
100 |
|
4 | Paracetamol 500 | Bago
| 1.90 |
200 |
|
5 | Bayaspirina
| Bayer
| 2.10 |
150 |
|
6 | Amoxidal jarabe | Bayer
| 5.10 |
250 |
+--------+-----------------+-------------+--------+----------+
4 rows in set (0.06 sec)
mysql> delete from medicamentos
-> where cantidad between 100 and 200;
Query OK, 5 rows affected (0.04 sec)
mysql> select*from medicamentos;
+--------+-----------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+-----------------+-------------+--------+----------+
|
6 | Amoxidal jarabe | Bayer
| 5.10 |
250 |
+--------+-----------------+-------------+--------+----------+
1 row in set (0.00 sec)

31 - Bsqueda de patrones (like y not like)


mysql> use practica;
Database changed
mysql> create table medicamentos(
-> codigo int unsigned auto_increment,
-> nombre varchar(20) not null,
-> laboratorio varchar(20),
-> precio decimal(6,2) unsigned,
-> cantidad int unsigned,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.06 sec)
mysql> describe medicamentos;
+-------------+-----------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-----------------------+------+-----+---------+----------------+
| codigo
| int(10) unsigned
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20)
| NO |
| NULL
|
|
| laboratorio | varchar(20)
| YES |
| NULL
|
|
| precio
| decimal(6,2) unsigned | YES |
| NULL
|
|
| cantidad
| int(10) unsigned
| YES |
| NULL
|
|
+-------------+-----------------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio) values('Sertal got
as','Roche',5.2);
Query OK, 1 row affected (0.01 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio) values('Buscapina'
,'Roche',4.10);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio) values('Amoxidal 5
00','Bayer',15.60);
Query OK, 1 row affected (0.05 sec)

mysql> insert into medicamentos (nombre, laboratorio,precio) values('Paracetamo


l 500','Bago',1.90);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio) values('Bayaspirin
a','Bayer',2.10);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio) values('Amoxidal j
arabe','Bayer',5.10);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio) values('Sertal com
puesto','Bayer',5.10);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio) values('Paracetamo
l 1000','Bago',2.90);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos (nombre, laboratorio,precio) values('Amoxinil',
'Roche',17.80);
Query OK, 1 row affected (0.01 sec)
mysql> select*from medicamentos;
+--------+------------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+------------------+-------------+--------+----------+
|
1 | Sertal gotas
| Roche
| 5.20 |
NULL |
|
2 | Buscapina
| Roche
| 4.10 |
NULL |
|
3 | Amoxidal 500
| Bayer
| 15.60 |
NULL |
|
4 | Paracetamol 500 | Bago
| 1.90 |
NULL |
|
5 | Bayaspirina
| Bayer
| 2.10 |
NULL |
|
6 | Amoxidal jarabe | Bayer
| 5.10 |
NULL |
|
7 | Sertal compuesto | Bayer
| 5.10 |
NULL |
|
8 | Paracetamol 1000 | Bago
| 2.90 |
NULL |
|
9 | Amoxinil
| Roche
| 17.80 |
NULL |
+--------+------------------+-------------+--------+----------+
9 rows in set (0.00 sec)
mysql> select codigo,nombre,laboratorio,precio
-> from medicamentos
-> where nombre like 'amox%';
+--------+-----------------+-------------+--------+
| codigo | nombre
| laboratorio | precio |
+--------+-----------------+-------------+--------+
|
3 | Amoxidal 500
| Bayer
| 15.60 |
|
6 | Amoxidal jarabe | Bayer
| 5.10 |
|
9 | Amoxinil
| Roche
| 17.80 |
+--------+-----------------+-------------+--------+
3 rows in set (0.03 sec)
mysql> select codigo,nombre,laboratorio,precio
-> from medicamentos
-> where nombre like 'paracetamol%' and
-> precio<2;
+--------+-----------------+-------------+--------+
| codigo | nombre
| laboratorio | precio |
+--------+-----------------+-------------+--------+

|
4 | Paracetamol 500 | Bago
| 1.90 |
+--------+-----------------+-------------+--------+
1 row in set (0.00 sec)
mysql> select codigo,nombre,laboratorio,precio
-> from medicamentos
-> where precio like '%.1%';
+--------+------------------+-------------+--------+
| codigo | nombre
| laboratorio | precio |
+--------+------------------+-------------+--------+
|
2 | Buscapina
| Roche
| 4.10 |
|
5 | Bayaspirina
| Bayer
| 2.10 |
|
6 | Amoxidal jarabe | Bayer
| 5.10 |
|
7 | Sertal compuesto | Bayer
| 5.10 |
+--------+------------------+-------------+--------+
4 rows in set (0.00 sec)
mysql> select codigo,nombre,laboratorio,precio
-> from medicamentos
-> where nombre not like'%compuesto%';
+--------+------------------+-------------+--------+
| codigo | nombre
| laboratorio | precio |
+--------+------------------+-------------+--------+
|
1 | Sertal gotas
| Roche
| 5.20 |
|
2 | Buscapina
| Roche
| 4.10 |
|
3 | Amoxidal 500
| Bayer
| 15.60 |
|
4 | Paracetamol 500 | Bago
| 1.90 |
|
5 | Bayaspirina
| Bayer
| 2.10 |
|
6 | Amoxidal jarabe | Bayer
| 5.10 |
|
8 | Paracetamol 1000 | Bago
| 2.90 |
|
9 | Amoxinil
| Roche
| 17.80 |
+--------+------------------+-------------+--------+
8 rows in set (0.01 sec)
mysql> delete from medicamentos
-> where nombre like '%y%';
Query OK, 1 row affected (0.03 sec)
mysql> update medicamentos set precio=5
-> where nombre like 'paracetamol%' and
-> precio<2;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select*from medicamentos;
+--------+------------------+-------------+--------+----------+
| codigo | nombre
| laboratorio | precio | cantidad |
+--------+------------------+-------------+--------+----------+
|
1 | Sertal gotas
| Roche
| 5.20 |
NULL |
|
2 | Buscapina
| Roche
| 4.10 |
NULL |
|
3 | Amoxidal 500
| Bayer
| 15.60 |
NULL |
|
4 | Paracetamol 500 | Bago
| 5.00 |
NULL |
|
6 | Amoxidal jarabe | Bayer
| 5.10 |
NULL |
|
7 | Sertal compuesto | Bayer
| 5.10 |
NULL |
|
8 | Paracetamol 1000 | Bago
| 2.90 |
NULL |
|
9 | Amoxinil
| Roche
| 17.80 |
NULL |
+--------+------------------+-------------+--------+----------+
8 rows in set (0.02 sec)

32 - Bsqueda de patrones (regexp)


mysql> use practica;
Database changed
mysql> create table agenda(
-> apellido varchar(30),
-> nombre varchar(20) not null,
-> domicilio varchar(30),
-> telefono varchar(11),
-> mail varchar(30)
-> );
Query OK, 0 rows affected (0.05 sec)
mysql> describe agenda;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| apellido | varchar(30) | YES |
| NULL
|
|
| nombre
| varchar(20) | NO |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
| telefono | varchar(11) | YES |
| NULL
|
|
| mail
| varchar(30) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
5 rows in set (0.05 sec)
mysql> insert into agenda values('Perez','Juan','Sarmiento 345','4334455','juan
ito@gmail.com');
Query OK, 1 row affected (0.03 sec)
mysql> insert into agenda values('Garcia','Ana','Urquiza 367','4226677','anama
iagarcia@hotmail.com');
Query OK, 1 row affected (0.00 sec)
mysql> insert into agenda values('Lopez','Juan','Avellaneda 900',null,'juancit
Lopez@gmail.com');
Query OK, 1 row affected (0.02 sec)
mysql> insert into agenda values('Juarez','Mariana','Sucre 123','0525657687','
arianaJuarez2@gmail.com');
Query OK, 1 row affected (0.00 sec)
mysql> insert into agenda values('Molinari','Lucia','Peru 1254','4590987','mol
narilucia@hotmail.com');
Query OK, 1 row affected (0.00 sec)
mysql> insert into agenda values('Ferreyra','Patricia','Colon 1534','4585858',
ull);
Query OK, 1 row affected (0.02 sec)
mysql> insert into agenda values('Perez','Susana','San Martin 333',null,null);
Query OK, 1 row affected (0.01 sec)
mysql> insert into agenda values('Perez','Luis','Urquiza 444','0354545256','pe
ezluisalberto@hotmail.com');
Query OK, 1 row affected (0.00 sec)
mysql> insert into agenda values('Lopez','Maria','Salta 314',null,'lopezmariay
@gmail.com');

Query OK, 1 row affected (0.00 sec)


mysql> describe agenda;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| apellido | varchar(30) | YES |
| NULL
|
|
| nombre
| varchar(20) | NO |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
| telefono | varchar(11) | YES |
| NULL
|
|
| mail
| varchar(30) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
5 rows in set (0.02 sec)
mysql> select*from agenda;
+----------+----------+----------------+------------+----------------------------+
| apellido | nombre | domicilio
| telefono | mail
|
+----------+----------+----------------+------------+----------------------------+
| Perez
| Juan
| Sarmiento 345 | 4334455
| juancito@gmail.com
|
| Garcia | Ana
| Urquiza 367
| 4226677
| anamariagarcia@hotmail.co
|
| Lopez
| Juan
| Avellaneda 900 | NULL
| juancitoLopez@gmail.com
|
| Juarez | Mariana | Sucre 123
| 0525657687 | marianaJuarez2@gmail.com
|
| Molinari | Lucia
| Peru 1254
| 4590987
| molinarilucia@hotmail.com
|
| Ferreyra | Patricia | Colon 1534
| 4585858
| NULL
|
| Perez
| Susana | San Martin 333 | NULL
| NULL
|
| Perez
| Luis
| Urquiza 444
| 0354545256 | perezluisalberto@hotmail.
om |
| Lopez
| Maria
| Salta 314
| NULL
| lopezmariayo@gmail.com
|
+----------+----------+----------------+------------+----------------------------+
9 rows in set (0.03 sec)
mysql> select*from agenda
-> where mail regexp'gmail';
+----------+---------+----------------+------------+--------------------------+
| apellido | nombre | domicilio
| telefono | mail
|
+----------+---------+----------------+------------+--------------------------+
| Perez
| Juan
| Sarmiento 345 | 4334455
| juancito@gmail.com
|
| Lopez
| Juan
| Avellaneda 900 | NULL
| juancitoLopez@gmail.com |
| Juarez | Mariana | Sucre 123
| 0525657687 | marianaJuarez2@gmail.com |
| Lopez
| Maria | Salta 314
| NULL
| lopezmariayo@gmail.com |
+----------+---------+----------------+------------+--------------------------+
4 rows in set (0.02 sec)
mysql> select*from agenda
-> where nombre not regexp'[zg]';
+----------+----------+----------------+------------+----------------------------+
| apellido | nombre | domicilio
| telefono | mail

|
+----------+----------+----------------+------------+----------------------------+
| Perez
| Juan
| Sarmiento 345 | 4334455
| juancito@gmail.com
|
| Garcia | Ana
| Urquiza 367
| 4226677
| anamariagarcia@hotmail.co
|
| Lopez
| Juan
| Avellaneda 900 | NULL
| juancitoLopez@gmail.com
|
| Juarez | Mariana | Sucre 123
| 0525657687 | marianaJuarez2@gmail.com
|
| Molinari | Lucia
| Peru 1254
| 4590987
| molinarilucia@hotmail.com
|
| Ferreyra | Patricia | Colon 1534
| 4585858
| NULL
|
| Perez
| Susana | San Martin 333 | NULL
| NULL
|
| Perez
| Luis
| Urquiza 444
| 0354545256 | perezluisalberto@hotmail.
om |
| Lopez
| Maria
| Salta 314
| NULL
| lopezmariayo@gmail.com
|
+----------+----------+----------------+------------+----------------------------+
9 rows in set (0.00 sec)
mysql> select*from agenda
-> where apellido regexp'[v-z]';
+----------+----------+----------------+------------+----------------------------+
| apellido | nombre | domicilio
| telefono | mail
|
+----------+----------+----------------+------------+----------------------------+
| Perez
| Juan
| Sarmiento 345 | 4334455
| juancito@gmail.com
|
| Lopez
| Juan
| Avellaneda 900 | NULL
| juancitoLopez@gmail.com
|
| Juarez | Mariana | Sucre 123
| 0525657687 | marianaJuarez2@gmail.com
|
| Ferreyra | Patricia | Colon 1534
| 4585858
| NULL
|
| Perez
| Susana | San Martin 333 | NULL
| NULL
|
| Perez
| Luis
| Urquiza 444
| 0354545256 | perezluisalberto@hotmail.
om |
| Lopez
| Maria
| Salta 314
| NULL
| lopezmariayo@gmail.com
|
+----------+----------+----------------+------------+----------------------------+
7 rows in set (0.00 sec)
mysql> select*from agenda
-> where apellido regexp'ez$';
+----------+---------+----------------+------------+----------------------------+
| apellido | nombre | domicilio
| telefono | mail
|
+----------+---------+----------------+------------+----------------------------+
| Perez
| Juan
| Sarmiento 345 | 4334455
| juancito@gmail.com

|
| Lopez
| Juan
| Avellaneda 900 | NULL
| juancitoLopez@gmail.com
|
| Juarez | Mariana | Sucre 123
| 0525657687 | marianaJuarez2@gmail.com
|
| Perez
| Susana | San Martin 333 | NULL
| NULL
|
| Perez
| Luis
| Urquiza 444
| 0354545256 | perezluisalberto@hotmail.c
m |
| Lopez
| Maria | Salta 314
| NULL
| lopezmariayo@gmail.com
|
+----------+---------+----------------+------------+----------------------------+
6 rows in set (0.00 sec)

mysql> select apellido,nombre,domicilio from agenda


-> where nombre regexp 'i.*i';
+----------+----------+------------+
| apellido | nombre | domicilio |
+----------+----------+------------+
| Ferreyra | Patricia | Colon 1534 |
+----------+----------+------------+
1 row in set (0.00 sec)
mysql> select * from agenda
-> where telefono regexp '^.......$';
+----------+----------+---------------+----------+----------------------------+
| apellido | nombre | domicilio
| telefono | mail
|
+----------+----------+---------------+----------+----------------------------+
| Perez
| Juan
| Sarmiento 345 | 4334455 | juancito@gmail.com
|
| Garcia | Ana
| Urquiza 367 | 4226677 | anamariagarcia@hotmail.com |
| Molinari | Lucia
| Peru 1254
| 4590987 | molinarilucia@hotmail.com |
| Ferreyra | Patricia | Colon 1534
| 4585858 | NULL
|
+----------+----------+---------------+----------+----------------------------+
4 rows in set (0.00 sec)
mysql> select nombre,mail from agenda
-> where mail regexp '....................';
+---------+------------------------------+
| nombre | mail
|
+---------+------------------------------+
| Ana
| anamariagarcia@hotmail.com |
| Juan
| juancitoLopez@gmail.com
|
| Mariana | marianaJuarez2@gmail.com
|
| Lucia | molinarilucia@hotmail.com
|
| Luis
| perezluisalberto@hotmail.com |
| Maria | lopezmariayo@gmail.com
|
+---------+------------------------------+
6 rows in set (0.00 sec)

33 - Contar registros (count)


mysql> use practica;

Database changed
mysql> create table visitantes(
-> nombre varchar(30),
-> edad tinyint unsigned,
-> sexo char(1),
-> domicilio varchar(30),
-> ciudad varchar(20),
-> telefono varchar(11),
-> montocompra decimal(6,2) unsigned
-> );
Query OK, 0 rows affected (0.14 sec)
mysql> describe visitantes;
+-------------+-----------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-------------+-----------------------+------+-----+---------+-------+
| nombre
| varchar(30)
| YES |
| NULL
|
|
| edad
| tinyint(3) unsigned | YES |
| NULL
|
|
| sexo
| char(1)
| YES |
| NULL
|
|
| domicilio | varchar(30)
| YES |
| NULL
|
|
| ciudad
| varchar(20)
| YES |
| NULL
|
|
| telefono
| varchar(11)
| YES |
| NULL
|
|
| montocompra | decimal(6,2) unsigned | YES |
| NULL
|
|
+-------------+-----------------------+------+-----+---------+-------+
7 rows in set (0.06 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,monto
compra) values ('Susana Molina', 28,'f','Colon 123','Cordoba',null,45.50);
Query OK, 1 row affected (0.05 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Marcela Mercado',36,'f','Avellaneda 345','Cordoba','4545454',0
);
Query OK, 1 row affected (0.01 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Alberto Garcia',35,'m','Gral. Paz 123','Alta Gracia','03547123
456',25);
Query OK, 1 row affected (0.00 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Teresa Garcia',33,'f','Gral. Paz 123','Alta Gracia','035471234
56',0);
Query OK, 1 row affected (0.02 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Roberto Perez',45,'m','Urquiza 335','Cordoba','4123456',33.20)
;
Query OK, 1 row affected (0.00 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Marina Torres',22,'f','Colon 222','Villa Dolores','03544112233
',25);
Query OK, 1 row affected (0.00 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Julieta Gomez',24,'f','San Martin 333','Alta Gracia','03547121
212',53.50);
Query OK, 1 row affected (0.00 sec)

mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont


ocompra) values ('Roxana Lopez',20,'f','Triunvirato 345','Alta Gracia',null,0);
Query OK, 1 row affected (0.02 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Liliana Garcia',50,'f','Paso 999','Cordoba','4588778',48);
Query OK, 1 row affected (0.00 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Juan Torres',43,'m','Sarmiento 876','Cordoba','4988778',15.30)
;
Query OK, 1 row affected (0.00 sec)
mysql> select*from vistantes;
ERROR 1146 (42S02): Table 'practica.vistantes' doesn't exist
mysql> select*from visitantes;
+-----------------+------+------+-----------------+---------------+------------+-------------+
| nombre
| edad | sexo | domicilio
| ciudad
| telefono
| montocompra |
+-----------------+------+------+-----------------+---------------+------------+-------------+
| Susana Molina | 28 | f
| Colon 123
| Cordoba
| NULL
|
45.50 |
| Marcela Mercado | 36 | f
| Avellaneda 345 | Cordoba
| 4545454
|
0.00 |
| Alberto Garcia | 35 | m
| Gral. Paz 123 | Alta Gracia | 03547123456
|
25.00 |
| Teresa Garcia | 33 | f
| Gral. Paz 123 | Alta Gracia | 03547123456
|
0.00 |
| Roberto Perez | 45 | m
| Urquiza 335
| Cordoba
| 4123456
|
33.20 |
| Marina Torres | 22 | f
| Colon 222
| Villa Dolores | 03544112233
|
25.00 |
| Julieta Gomez | 24 | f
| San Martin 333 | Alta Gracia | 03547121212
|
53.50 |
| Roxana Lopez
| 20 | f
| Triunvirato 345 | Alta Gracia | NULL
|
0.00 |
| Liliana Garcia | 50 | f
| Paso 999
| Cordoba
| 4588778
|
48.00 |
| Juan Torres
| 43 | m
| Sarmiento 876 | Cordoba
| 4988778
|
15.30 |
+-----------------+------+------+-----------------+---------------+------------+-------------+
10 rows in set (0.00 sec)
mysql> select count(*) from visitantes;
+----------+
| count(*) |
+----------+
|
10 |
+----------+
1 row in set (0.03 sec)
mysql> select count(telefono)
-> from visitantes;
+-----------------+
| count(telefono) |
+-----------------+
|
8 |

+-----------------+
1 row in set (0.00 sec)
mysql> select count(*) from visitantes
-> where sexo='m';
+----------+
| count(*) |
+----------+
|
3 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from visitantes
-> where sexo='f' and
-> edad>25;
+----------+
| count(*) |
+----------+
|
4 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from visitantes
-> where ciudad<>'cordaba';
+----------+
| count(*) |
+----------+
|
10 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from visitantes
-> where montocompra<>0;
+----------+
| count(*) |
+----------+
|
7 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from visitantes
-> where montocompra=0;
+----------+
| count(*) |
+----------+
|
3 |
+----------+
1 row in set (0.00 sec)

34 - Funciones de agrupamiento (count - max - min - sum - avg)


mysql> use practica;
Database changed
mysql> create table visitantes(
-> nombre varchar(30),
-> edad tinyint unsigned,

-> sexo char(1),


-> domicilio varchar(30),
-> ciudad varchar(20),
-> telefono varchar(11),
-> montocompra decimal(6,2) unsigned
-> );
Query OK, 0 rows affected (0.14 sec)
mysql> describe visitantes;
+-------------+-----------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-------------+-----------------------+------+-----+---------+-------+
| nombre
| varchar(30)
| YES |
| NULL
|
|
| edad
| tinyint(3) unsigned | YES |
| NULL
|
|
| sexo
| char(1)
| YES |
| NULL
|
|
| domicilio | varchar(30)
| YES |
| NULL
|
|
| ciudad
| varchar(20)
| YES |
| NULL
|
|
| telefono
| varchar(11)
| YES |
| NULL
|
|
| montocompra | decimal(6,2) unsigned | YES |
| NULL
|
|
+-------------+-----------------------+------+-----+---------+-------+
7 rows in set (0.06 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,monto
compra) values ('Susana Molina', 28,'f','Colon 123','Cordoba',null,45.50);
Query OK, 1 row affected (0.05 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Marcela Mercado',36,'f','Avellaneda 345','Cordoba','4545454',0
);
Query OK, 1 row affected (0.01 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Alberto Garcia',35,'m','Gral. Paz 123','Alta Gracia','03547123
456',25);
Query OK, 1 row affected (0.00 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Teresa Garcia',33,'f','Gral. Paz 123','Alta Gracia','035471234
56',0);
Query OK, 1 row affected (0.02 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Roberto Perez',45,'m','Urquiza 335','Cordoba','4123456',33.20)
;
Query OK, 1 row affected (0.00 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Marina Torres',22,'f','Colon 222','Villa Dolores','03544112233
',25);
Query OK, 1 row affected (0.00 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Julieta Gomez',24,'f','San Martin 333','Alta Gracia','03547121
212',53.50);
Query OK, 1 row affected (0.00 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Roxana Lopez',20,'f','Triunvirato 345','Alta Gracia',null,0);
Query OK, 1 row affected (0.02 sec)

mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont


ocompra) values ('Liliana Garcia',50,'f','Paso 999','Cordoba','4588778',48);
Query OK, 1 row affected (0.00 sec)
mysql> insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,mont
ocompra) values ('Juan Torres',43,'m','Sarmiento 876','Cordoba','4988778',15.30)
;
Query OK, 1 row affected (0.00 sec)
mysql> select*from vistantes;
ERROR 1146 (42S02): Table 'practica.vistantes' doesn't exist
mysql> select*from visitantes;
+-----------------+------+------+-----------------+---------------+------------+-------------+
| nombre
| edad | sexo | domicilio
| ciudad
| telefono
| montocompra |
+-----------------+------+------+-----------------+---------------+------------+-------------+
| Susana Molina | 28 | f
| Colon 123
| Cordoba
| NULL
|
45.50 |
| Marcela Mercado | 36 | f
| Avellaneda 345 | Cordoba
| 4545454
|
0.00 |
| Alberto Garcia | 35 | m
| Gral. Paz 123 | Alta Gracia | 03547123456
|
25.00 |
| Teresa Garcia | 33 | f
| Gral. Paz 123 | Alta Gracia | 03547123456
|
0.00 |
| Roberto Perez | 45 | m
| Urquiza 335
| Cordoba
| 4123456
|
33.20 |
| Marina Torres | 22 | f
| Colon 222
| Villa Dolores | 03544112233
|
25.00 |
| Julieta Gomez | 24 | f
| San Martin 333 | Alta Gracia | 03547121212
|
53.50 |
| Roxana Lopez
| 20 | f
| Triunvirato 345 | Alta Gracia | NULL
|
0.00 |
| Liliana Garcia | 50 | f
| Paso 999
| Cordoba
| 4588778
|
48.00 |
| Juan Torres
| 43 | m
| Sarmiento 876 | Cordoba
| 4988778
|
15.30 |
+-----------------+------+------+-----------------+---------------+------------mysql> select count(*) from visitantes;
+----------+
| count(*) |
+----------+
|
10 |
+----------+
1 row in set (0.00 sec)
mysql> select sum(montocompra) from visitantes
-> where ciudad='alta grasia';
+------------------+
| sum(montocompra) |
+------------------+
|
NULL |
+------------------+
1 row in set (0.02 sec)
mysql> select max(montocompra)from visitantes
-> ;
+------------------+
| max(montocompra) |

+------------------+
|
53.50 |
+------------------+
1 row in set (0.05 sec)
mysql> select min(edad) from visitantes;
+-----------+
| min(edad) |
+-----------+
|
20 |
+-----------+
1 row in set (0.00 sec)
mysql> select avg(edad) from visitantes;
+-----------+
| avg(edad) |
+-----------+
| 33.6000 |
+-----------+
1 row in set (0.00 sec)
mysql> select avg(montocompra) from visitantes;
+------------------+
| avg(montocompra) |
+------------------+
|
24.550000 |
+------------------+
1 row in set (0.00 sec)
mysql>

36 - Seleccin de un grupo de registros (having)


mysql> use practica;
Database changed
mysql> create table clientes (
-> codigo int unsigned auto_increment,
-> nombre varchar(30) not null,
-> domicilio varchar(30),
-> ciudad varchar(20),
-> provincia varchar (20),
-> telefono varchar(11),
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.04 sec)
mysql> describe clientes;
+-----------+------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------+------------------+------+-----+---------+----------------+
| codigo
| int(10) unsigned | NO | PRI | NULL
| auto_increment |
| nombre
| varchar(30)
| NO |
| NULL
|
|
| domicilio | varchar(30)
| YES |
| NULL
|
|
| ciudad
| varchar(20)
| YES |
| NULL
|
|
| provincia | varchar(20)
| YES |
| NULL
|
|
| telefono | varchar(11)
| YES |
| NULL
|
|
+-----------+------------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)

mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values


('Lopez Marcos', 'Colon 111', 'Crdoba','Cordoba','null');
ERROR 1366 (HY000): Incorrect string value: '\xA2rdoba' for column 'ciudad' at r
ow 1
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Perez Ana', 'San Martin 222', 'Cruz del Eje','Cordoba','4578585');
Query OK, 1 row affected (0.01 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Garcia Juan', 'Rivadavia 333', 'Villa Maria','Cordoba','4578445');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Perez Luis', 'Sarmiento 444', 'Rosario','Santa Fe',null);
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Pereyra Lucas', 'San Martin 555', 'Cruz del Eje','Cordoba','4253685');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Gomez Ines', 'San Martin 666', 'Santa Fe','Santa Fe','0345252525');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Torres Fabiola', 'Alem 777', 'Villa del Rosario','Cordoba','4554455');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Lopez Carlos', 'Irigoyen 888', 'Cruz del Eje','Cordoba',null);
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Ramos Betina', 'San Martin 999', 'Cordoba','Cordoba','4223366');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Lopez Lucas', 'San Martin 1010', 'Posadas','Misiones','0457858745');
Query OK, 1 row affected (0.01 sec)
mysql> select* from clientes;
+--------+----------------+-----------------+-------------------+-----------+-----------+
| codigo | nombre
| domicilio
| ciudad
| provincia | te
lefono |
+--------+----------------+-----------------+-------------------+-----------+-----------+
|
1 | Perez Ana
| San Martin 222 | Cruz del Eje
| Cordoba | 45
78585
|
|
2 | Garcia Juan
| Rivadavia 333 | Villa Maria
| Cordoba | 45
78445
|
|
3 | Perez Luis
| Sarmiento 444 | Rosario
| Santa Fe | NU
LL
|
|
4 | Pereyra Lucas | San Martin 555 | Cruz del Eje
| Cordoba | 42
53685
|
|
5 | Gomez Ines
| San Martin 666 | Santa Fe
| Santa Fe | 03
45252525 |
|
6 | Torres Fabiola | Alem 777
| Villa del Rosario | Cordoba | 45
54455
|

|
7 | Lopez Carlos | Irigoyen 888
| Cruz del Eje
| Cordoba | NU
LL
|
|
8 | Ramos Betina | San Martin 999 | Cordoba
| Cordoba | 42
23366
|
|
9 | Lopez Lucas
| San Martin 1010 | Posadas
| Misiones | 04
57858745 |
+--------+----------------+-----------------+-------------------+-----------+-----------+
9 rows in set (0.00 sec)
mysql> select provincia, count(*)
-> from clientes
-> group by provincia;
+-----------+----------+
| provincia | count(*) |
+-----------+----------+
| Cordoba |
6 |
| Misiones |
1 |
| Santa Fe |
2 |
+-----------+----------+
3 rows in set (0.00 sec)
mysql> select ciudad, provincia, count(*)
-> from clientes
-> group by ciudad,provincia;
+-------------------+-----------+----------+
| ciudad
| provincia | count(*) |
+-------------------+-----------+----------+
| Cordoba
| Cordoba |
1 |
| Cruz del Eje
| Cordoba |
3 |
| Posadas
| Misiones |
1 |
| Rosario
| Santa Fe |
1 |
| Santa Fe
| Santa Fe |
1 |
| Villa del Rosario | Cordoba |
1 |
| Villa Maria
| Cordoba |
1 |
+-------------------+-----------+----------+
7 rows in set (0.00 sec)
mysql> select ciudad, provincia, count(*)
-> from clientes
-> group by ciudad,provincia
-> having count(*)>1;
+--------------+-----------+----------+
| ciudad
| provincia | count(*) |
+--------------+-----------+----------+
| Cruz del Eje | Cordoba |
3 |
+--------------+-----------+----------+
1 row in set (0.00 sec)
mysql> select ciudad, provincia, count(*)
-> from clientes
-> where telefono is not null
-> group by ciudad,provincia
-> having count(*)>1;
+--------------+-----------+----------+
| ciudad
| provincia | count(*) |
+--------------+-----------+----------+
| Cruz del Eje | Cordoba |
2 |
+--------------+-----------+----------+
1 row in set (0.00 sec)

37 - Registros duplicados (distinct)


mysql> use practica;
Database changed
mysql> create table cursos(
-> codigo tinyint unsigned auto_increment,
-> tema varchar(20) not null,
-> horario char(2) not null,
-> clases tinyint unsigned default 10,
-> fechainicio date,
-> costo decimal(5,2) unsigned,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> describe cursos;
+-------------+-----------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-----------------------+------+-----+---------+----------------+
| codigo
| tinyint(3) unsigned | NO | PRI | NULL
| auto_increment |
| tema
| varchar(20)
| NO |
| NULL
|
|
| horario
| char(2)
| NO |
| NULL
|
|
| clases
| tinyint(3) unsigned | YES |
| 10
|
|
| fechainicio | date
| YES |
| NULL
|
|
| costo
| decimal(5,2) unsigned | YES |
| NULL
|
|
+-------------+-----------------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)
mysql> insert into cursos (tema,horario,clases,fechainicio,costo) values('PHP b
sico','AM',10,'2006-08-07',200);
ERROR 1366 (HY000): Incorrect string value: '\xA0sico' for column 'tema' at row
1
mysql> insert into cursos (tema,horario,clases,fechainicio,costo) values('PHP b
sico','PM',default,'2006-08-14',200);
ERROR 1366 (HY000): Incorrect string value: '\xA0sico' for column 'tema' at row
1
mysql> insert into cursos (tema,horario,clases,fechainicio,costo) values('PHP b
sico','AM',default,'2006-08-05',200);
ERROR 1366 (HY000): Incorrect string value: '\xA0sico' for column 'tema' at row
1
mysql> insert into cursos (tema,horario,clases,fechainicio,costo) values('PHP a
vanzado','AM',20,'2006-08-01',350);
Query OK, 1 row affected (0.01 sec)
mysql> insert into cursos (tema,horario,clases,fechainicio,costo) values('JavaS
cript bsico','PM',15,'2006-09-11',150);
ERROR 1366 (HY000): Incorrect string value: '\xA0sico' for column 'tema' at row
1
mysql> insert into cursos (tema,horario,clases,fechainicio,costo) values('Pagin
as web','PM',15,'2006-08-08',200);
Query OK, 1 row affected (0.00 sec)
mysql> insert into cursos (tema,horario,clases,fechainicio,costo) values('Pagin
as web','AM',15,'2006-08-12',200);
Query OK, 1 row affected (0.00 sec)

mysql> insert into cursos (tema,horario,clases,fechainicio,costo) values('Pagin


as web','AM',15,'2006-08-21',200);
Query OK, 1 row affected (0.00 sec)
mysql> insert into cursos (tema,horario,clases,fechainicio,costo) values('HTML
avanzado','AM',20,'2006-09-18',180);
Query OK, 1 row affected (0.00 sec)
mysql> insert into cursos (tema,horario,clases,fechainicio,costo) values('HTML
avanzado','PM',20,'2006-09-25',180);
Query OK, 1 row affected (0.00 sec)
mysql> insert into cursos (tema,horario,clases,fechainicio,costo) values('JavaS
cript avanzado','PM',25,'2006-09-18',150);
Query OK, 1 row affected (0.01 sec)
mysql> select*from cursos;
+--------+---------------------+---------+--------+-------------+--------+
| codigo | tema
| horario | clases | fechainicio | costo |
+--------+---------------------+---------+--------+-------------+--------+
|
1 | PHP avanzado
| AM
|
20 | 2006-08-01 | 350.00 |
|
2 | Paginas web
| PM
|
15 | 2006-08-08 | 200.00 |
|
3 | Paginas web
| AM
|
15 | 2006-08-12 | 200.00 |
|
4 | Paginas web
| AM
|
15 | 2006-08-21 | 200.00 |
|
5 | HTML avanzado
| AM
|
20 | 2006-09-18 | 180.00 |
|
6 | HTML avanzado
| PM
|
20 | 2006-09-25 | 180.00 |
|
7 | JavaScript avanzado | PM
|
25 | 2006-09-18 | 150.00 |
+--------+---------------------+---------+--------+-------------+--------+
7 rows in set (0.00 sec)
mysql> select distinct tema
-> from cursos;
+---------------------+
| tema
|
+---------------------+
| PHP avanzado
|
| Paginas web
|
| HTML avanzado
|
| JavaScript avanzado |
+---------------------+
4 rows in set (0.00 sec)
mysql> select distinct horario,tema from cursos
-> where tema like '%PHP%';
+---------+--------------+
| horario | tema
|
+---------+--------------+
| AM
| PHP avanzado |
+---------+--------------+
1 row in set (0.00 sec)
mysql> select horario,count(distinct tema)
-> from cursos
-> group by horario;
+---------+----------------------+
| horario | count(distinct tema) |
+---------+----------------------+
| AM
|
3 |
| PM
|
3 |
+---------+----------------------+

2 rows in set (0.00 sec)


mysql>

38 - Alias
mysql> use practica;
Database changed
mysql> create table clientes (
-> codigo int unsigned auto_increment,
-> nombre varchar(30) not null,
-> domicilio varchar(30),
-> ciudad varchar(20),
-> provincia varchar (20),
-> telefono varchar(11),
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.04 sec)
mysql> describe clientes;
+-----------+------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------+------------------+------+-----+---------+----------------+
| codigo
| int(10) unsigned | NO | PRI | NULL
| auto_increment |
| nombre
| varchar(30)
| NO |
| NULL
|
|
| domicilio | varchar(30)
| YES |
| NULL
|
|
| ciudad
| varchar(20)
| YES |
| NULL
|
|
| provincia | varchar(20)
| YES |
| NULL
|
|
| telefono | varchar(11)
| YES |
| NULL
|
|
+-----------+------------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Lopez Marcos', 'Colon 111', 'Crdoba','Cordoba','null');
ERROR 1366 (HY000): Incorrect string value: '\xA2rdoba' for column 'ciudad' at r
ow 1
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Perez Ana', 'San Martin 222', 'Cruz del Eje','Cordoba','4578585');
Query OK, 1 row affected (0.01 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Garcia Juan', 'Rivadavia 333', 'Villa Maria','Cordoba','4578445');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Perez Luis', 'Sarmiento 444', 'Rosario','Santa Fe',null);
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Pereyra Lucas', 'San Martin 555', 'Cruz del Eje','Cordoba','4253685');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Gomez Ines', 'San Martin 666', 'Santa Fe','Santa Fe','0345252525');
Query OK, 1 row affected (0.00 sec)

mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values


('Torres Fabiola', 'Alem 777', 'Villa del Rosario','Cordoba','4554455');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Lopez Carlos', 'Irigoyen 888', 'Cruz del Eje','Cordoba',null);
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Ramos Betina', 'San Martin 999', 'Cordoba','Cordoba','4223366');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values
('Lopez Lucas', 'San Martin 1010', 'Posadas','Misiones','0457858745');
Query OK, 1 row affected (0.00 sec)
mysql> select*from clientes;
+--------+----------------+-----------------+-------------------+-----------+-----------+
| codigo | nombre
| domicilio
| ciudad
| provincia | te
lefono |
+--------+----------------+-----------------+-------------------+-----------+-----------+
|
1 | Perez Ana
| San Martin 222 | Cruz del Eje
| Cordoba | 45
78585
|
|
2 | Garcia Juan
| Rivadavia 333 | Villa Maria
| Cordoba | 45
78445
|
|
3 | Perez Luis
| Sarmiento 444 | Rosario
| Santa Fe | NU
LL
|
|
4 | Pereyra Lucas | San Martin 555 | Cruz del Eje
| Cordoba | 42
53685
|
|
5 | Gomez Ines
| San Martin 666 | Santa Fe
| Santa Fe | 03
45252525 |
|
6 | Torres Fabiola | Alem 777
| Villa del Rosario | Cordoba | 45
54455
|
|
7 | Lopez Carlos | Irigoyen 888
| Cruz del Eje
| Cordoba | NU
LL
|
|
8 | Ramos Betina | San Martin 999 | Cordoba
| Cordoba | 42
23366
|
|
9 | Lopez Lucas
| San Martin 1010 | Posadas
| Misiones | 04
57858745 |
+--------+----------------+-----------------+-------------------+-----------+-----------+
9 rows in set (0.00 sec)
mysql> select count(telefono) as 'con telefono'
-> from clientes;
+--------------+
| con telefono |
+--------------+
|
7 |
+--------------+
1 row in set (0.00 sec)
mysql> select count(*) as 'Perez'
-> from clientes
-> where nombre like '%Perez%' ;
+-------+
| Perez |
+-------+

|
2 |
+-------+
1 row in set (0.00 sec)
mysql> select provincia, count(distinct ciudad) as 'ciudades'
-> from clientes
-> group by provincia;
+-----------+----------+
| provincia | ciudades |
+-----------+----------+
| Cordoba |
4 |
| Misiones |
1 |
| Santa Fe |
2 |
+-----------+----------+
3 rows in set (0.00 sec)

39 - Clave primaria compuesta.


mysql> use practica;
Database changed
mysql> create table prestamos(
-> titulo varchar(40) not null,
-> documento char(8) not null,
-> fechaprestamo date not null,
-> fechadevolucion date,
-> devuelto char(1) default 'N',
-> primary key(titulo,fechaprestamo)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> describe prestamos;
+-----------------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| titulo
| varchar(40) | NO | PRI | NULL
|
|
| documento
| char(8)
| NO |
| NULL
|
|
| fechaprestamo | date
| NO | PRI | NULL
|
|
| fechadevolucion | date
| YES |
| NULL
|
|
| devuelto
| char(1)
| YES |
| N
|
|
+-----------------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)
mysql> insert into prestamos (titulo,documento,fechaprestamo) values('Manual de
1 grado','22333444','2006-07-10');
Query OK, 1 row affected (0.04 sec)
mysql> insert into prestamos (titulo,documento,fechaprestamo) values('Manual de
1 grado','22333444','2006-07-20');
Query OK, 1 row affected (0.00 sec)
mysql> insert into prestamos (titulo,documento,fechaprestamo) values('Manual de
1 grado','23333444','2006-07-15');
Query OK, 1 row affected (0.00 sec)
mysql> insert into prestamos (titulo,documento,fechaprestamo) values('El aleph'
,'22333444','2006-07-10');
Query OK, 1 row affected (0.00 sec)

mysql> insert into prestamos (titulo,documento,fechaprestamo) values('El aleph'


,'30333444','2006-08-10');
Query OK, 1 row affected (0.01 sec)
mysql> select*from prestamos;
+-------------------+-----------+---------------+-----------------+----------+
| titulo
| documento | fechaprestamo | fechadevolucion | devuelto |
+-------------------+-----------+---------------+-----------------+----------+
| El aleph
| 22333444 | 2006-07-10
| NULL
| N
|
| El aleph
| 30333444 | 2006-08-10
| NULL
| N
|
| Manual de 1 grado | 22333444 | 2006-07-10
| NULL
| N
|
| Manual de 1 grado | 23333444 | 2006-07-15
| NULL
| N
|
| Manual de 1 grado | 22333444 | 2006-07-20
| NULL
| N
|
+-------------------+-----------+---------------+-----------------+----------+
5 rows in set (0.00 sec)
mysql> insert into prestamos (titulo,documento,fechaprestamo)
-> values('Manual de 1 grado','25333444','2006-07-10');
ERROR 1062 (23000): Duplicate entry 'Manual de 1 grado-2006-07-10' for key 'PRIM
ARY'
mysql>

45 - Creacin de ndices a tablas existentes (create index)


mysql> use practica;
Database changed
mysql> create table clientes(
-> documento char (8) not null,
-> nombre varchar(30) not null,
-> domicilio varchar(30),
-> ciudad varchar(20),
-> provincia varchar (20),
-> telefono varchar(11)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> describe clientes;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| documento | char(8)
| NO |
| NULL
|
|
| nombre
| varchar(30) | NO |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
| ciudad
| varchar(20) | YES |
| NULL
|
|
| provincia | varchar(20) | YES |
| NULL
|
|
| telefono | varchar(11) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
mysql> insert into clientes(documento,nombre,domicilio,ciudad,provincia,telefono
) values('23','amores','calle guerrero','tabasco','reforma',9171123457);
Query OK, 1 row affected (0.04 sec)
mysql> insert into clientes(documento,nombre,domicilio,ciudad,provincia,telefono
) values('2','amor','calle vicente','tabasco','bocalimon',9171125734);
Query OK, 1 row affected (0.00 sec)

mysql> insert into clientes(documento,nombre,domicilio,ciudad,provincia,telefono


) values('25','zonia','calle valentin','meridad','tabasco',9171025734);
Query OK, 1 row affected (0.01 sec)
mysql> insert into clientes(documento,nombre,domicilio,ciudad,provincia,telefon
o) values('20','dulce','calle aguas caliente','yucatan','reforma',9931025734);
Query OK, 1 row affected (0.01 sec)
mysql> insert into clientes(documento,nombre,domicilio,ciudad,provincia,telefono
) values('26','diana','zona industrial','reforma','agulera',9931034534);
Query OK, 1 row affected (0.02 sec)
mysql> insert into clientes(documento,nombre,domicilio,ciudad,provincia,telefono
) values('27','abirl','zona industrial','reforma','morelos',9245034534);
Query OK, 1 row affected (0.01 sec)
mysql> insert into clientes(documento,nombre,domicilio,ciudad,provincia,telefon
o) values('28','karen','medellin','tabasco','aoxaca',9245034345);
Query OK, 1 row affected (0.01 sec)
mysql> insert into clientes(documento,nombre,domicilio,ciudad,provincia,telefon
o) values('29','tapia','indeco','tabasco','chinikia',9171296745);
Query OK, 1 row affected (0.01 sec)
mysql> select*from clientes;
+-----------+--------+----------------------+---------+-----------+------------+
| documento | nombre | domicilio

| ciudad | provincia | telefono

+-----------+--------+----------------------+---------+-----------+------------+
| 23

| amores | calle guerrero

| tabasco | reforma

| 2

| amor

| tabasco | bocalimon | 9171125734 |

| 25

| zonia | calle valentin

| meridad | tabasco

| 9171025734 |

| 20

| dulce | calle aguas caliente | yucatan | reforma

| 9931025734 |

| 26

| diana | zona industrial

| reforma | agulera

| 9931034534 |

| 27

| abirl | zona industrial

| reforma | morelos

| 9245034534 |

| 28

| karen | medellin

| tabasco | aoxaca

| 9245034345 |

| 29

| tapia | indeco

| tabasco | chinikia | 9171296745 |

| calle vicente

| 9171123457 |

+-----------+--------+----------------------+---------+-----------+------------+
8 rows in set (0.00 sec)
mysql> create index i_ciudadprovincia on clientes (ciudad,provincia);
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show index from clientes;
+----------+------------+-------------------+--------------+-------------+----------+-------------+----------+--------+------+------------+---------+--------------+

| Table
| Non_unique | Key_name
| Seq_in_index | Column_name | Colla
tion | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_com
ment |
+----------+------------+-------------------+--------------+-------------+----------+-------------+----------+--------+------+------------+---------+--------------+
| clientes |
1 | i_ciudadprovincia |
1 | ciudad
| A
|
8 |
NULL | NULL | YES | BTREE
|
|
|
| clientes |
1 | i_ciudadprovincia |
2 | provincia | A
|
8 |
NULL | NULL | YES | BTREE
|
|
|
+----------+------------+-------------------+--------------+-------------+----------+-------------+----------+--------+------+------------+---------+--------------+
2 rows in set (0.00 sec)
mysql> create unique index i_documento on clientes(documento);
Query OK, 0 rows affected (0.10 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> select*from clientes;
+-----------+--------+----------------------+---------+-----------+------------+
| documento | nombre | domicilio

| ciudad | provincia | telefono

+-----------+--------+----------------------+---------+-----------+------------+
| 2

| amor

| calle vicente

| tabasco | bocalimon | 9171125734 |

| 20

| dulce | calle aguas caliente | yucatan | reforma

| 9931025734 |

| 23

| amores | calle guerrero

| tabasco | reforma

| 9171123457 |

| 25

| zonia | calle valentin

| meridad | tabasco

| 9171025734 |

| 26

| diana | zona industrial

| reforma | agulera

| 9931034534 |

| 27

| abirl | zona industrial

| reforma | morelos

| 9245034534 |

| 28

| karen | medellin

| tabasco | aoxaca

| 9245034345 |

| 29

| tapia | indeco

| tabasco | chinikia | 9171296745 |

+-----------+--------+----------------------+---------+-----------+------------+

46 - Clusula limit del comando select.


mysql> use practica;
Database changed
mysql> create table peliculas(
-> codigo integer unsigned auto_increment,
-> titulo varchar(30) not null,
-> actor varchar(20),
-> duracion integer unsigned,
-> primary key(codigo)
-> );

Query OK, 0 rows affected (0.02 sec)


mysql> describe peliculas;
+----------+------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+----------+------------------+------+-----+---------+----------------+
| codigo | int(10) unsigned | NO | PRI | NULL
| auto_increment |
| titulo | varchar(30)
| NO |
| NULL
|
|
| actor
| varchar(20)
| YES |
| NULL
|
|
| duracion | int(10) unsigned | YES |
| NULL
|
|
+----------+------------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
mysql> insert into peliculas(codigo,titulo,actor,duracion) values(1,'elgatoraton
','tom cruise',90);
Query OK, 1 row affected (0.33 sec)
mysql> insert into peliculas(codigo,titulo,actor,duracion) values(2,'mision impo
sible','tom cruise',90);
Query OK, 1 row affected (0.35 sec)
mysql> insert into peliculas(codigo,titulo,actor,duracion) values(3,'Harry Potte
r y la piedra filosofal','Daniel R',120);
ERROR 1406 (22001): Data too long for column 'titulo' at row 1
mysql>
mysql> insert into peliculas(codigo,titulo,actor,duracion) values(4,'Harry Potte
r','Daniel R',120);
Query OK, 1 row affected (0.35 sec)
mysql> insert into peliculas(codigo,titulo,actor,duracion) values(5,'mision impo
sible3','tom cruise',92);
Query OK, 1 row affected (0.35 sec)
mysql> insert into peliculas (codigo,titulo,actor,duracion) values(6,'mujer bon
ita','julia R',90);
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into peliculas (codigo,titulo,actor,duracion) values(7,'mujer bon
ita2','julia R',90);
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into peliculas (codigo,titulo,actor,duracion) values(8,'el mostro
de lago nees','martin trijillo',120);
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into peliculas (codigo,titulo,actor,duracion) values(9,'contraban
do y arma','catinfla',90);
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into peliculas (codigo,titulo,actor,duracion) values(10,'el futbo
lista','resorte resortera',90);
Query OK, 1 row affected (0.00 sec)

mysql> select*from peliculas;

+--------+------------------------+-------------------+----------+
| codigo | titulo
| actor
| duracion |
+--------+------------------------+-------------------+----------+
|
1 | elgatoraton
| tom cruise
|
90 |
|
2 | mision imposible
| tom cruise
|
90 |
|
4 | Harry Potter
| Daniel R
|
120 |
|
5 | mision imposible3
| tom cruise
|
92 |
|
6 | mujer bonita
| julia R
|
90 |
|
7 | mujer bonita2
| julia R
|
90 |
|
8 | el mostro de lago nees | martin trijillo |
120 |
|
9 | contrabando y arma
| catinfla
|
90 |
|
10 | el futbolista
| resorte resortera |
90 |
+--------+------------------------+-------------------+----------+
9 rows in set (0.00 sec)

mysql> select*from peliculas limit 0,5;


+--------+-------------------+------------+----------+
| codigo | titulo
| actor
| duracion |
+--------+-------------------+------------+----------+
|
1 | elgatoraton
| tom cruise |
90 |
|
2 | mision imposible | tom cruise |
90 |
|
4 | Harry Potter
| Daniel R |
120 |
|
5 | mision imposible3 | tom cruise |
92 |
|
6 | mujer bonita
| julia R
|
90 |
+--------+-------------------+------------+----------+
5 rows in set (0.00 sec)
mysql> select*from peliculas limit 0,8;
+--------+------------------------+-----------------+----------+
| codigo | titulo
| actor
| duracion |
+--------+------------------------+-----------------+----------+
|
1 | elgatoraton
| tom cruise
|
90 |
|
2 | mision imposible
| tom cruise
|
90 |
|
4 | Harry Potter
| Daniel R
|
120 |
|
5 | mision imposible3
| tom cruise
|
92 |
|
6 | mujer bonita
| julia R
|
90 |
|
7 | mujer bonita2
| julia R
|
90 |
|
8 | el mostro de lago nees | martin trijillo |
120 |
|
9 | contrabando y arma
| catinfla
|
90 |
+--------+------------------------+-----------------+----------+
8 rows in set (0.00 sec)
mysql> select*from peliculas limit 0,4;
+--------+-------------------+------------+----------+
| codigo | titulo
| actor
| duracion |
+--------+-------------------+------------+----------+
|
1 | elgatoraton
| tom cruise |
90 |
|
2 | mision imposible | tom cruise |
90 |
|
4 | Harry Potter
| Daniel R |
120 |
|
5 | mision imposible3 | tom cruise |
92 |
+--------+-------------------+------------+----------+
4 rows in set (0.00 sec)
mysql> select*from peliculas limit 4,10;
+--------+------------------------+-------------------+----------+
| codigo | titulo
| actor
| duracion |
+--------+------------------------+-------------------+----------+
|
6 | mujer bonita
| julia R
|
90 |

|
7 | mujer bonita2
| julia R
|
90 |
|
8 | el mostro de lago nees | martin trijillo |
120 |
|
9 | contrabando y arma
| catinfla
|
90 |
|
10 | el futbolista
| resorte resortera |
90 |
+--------+------------------------+-------------------+----------+
5 rows in set (0.00 sec)
mysql> select*from peliculas limit 2,10;
+--------+------------------------+-------------------+----------+
| codigo | titulo
| actor
| duracion |
+--------+------------------------+-------------------+----------+
|
4 | Harry Potter
| Daniel R
|
120 |
|
5 | mision imposible3
| tom cruise
|
92 |
|
6 | mujer bonita
| julia R
|
90 |
|
7 | mujer bonita2
| julia R
|
90 |
|
8 | el mostro de lago nees | martin trijillo |
120 |
|
9 | contrabando y arma
| catinfla
|
90 |
|
10 | el futbolista
| resorte resortera |
90 |
+--------+------------------------+-------------------+----------+
7 rows in set (0.00 sec)
mysql> select*from peliculas order by codigo desc limit 0,5;
+--------+------------------------+-------------------+----------+
| codigo | titulo
| actor
| duracion |
+--------+------------------------+-------------------+----------+
|
10 | el futbolista
| resorte resortera |
90 |
|
9 | contrabando y arma
| catinfla
|
90 |
|
8 | el mostro de lago nees | martin trijillo |
120 |
|
7 | mujer bonita2
| julia R
|
90 |
|
6 | mujer bonita
| julia R
|
90 |
+--------+------------------------+-------------------+----------+
5 rows in set (0.00 sec)
mysql> select*from peliculas order by codigo desc limit 5,10;
+--------+-------------------+------------+----------+
| codigo | titulo
| actor
| duracion |
+--------+-------------------+------------+----------+
|
5 | mision imposible3 | tom cruise |
92 |
|
4 | Harry Potter
| Daniel R |
120 |
|
2 | mision imposible | tom cruise |
90 |
|
1 | elgatoraton
| tom cruise |
90 |
+--------+-------------------+------------+----------+
4 rows in set (0.00 sec)

47 - Recuperacin de registros en forma aleatoria(rand)


mysql> use practica;
Database changed
mysql> create table alumnos(
-> documentos char(8) not null,
-> nombre varchar(30),
-> domicilio varchar(30),
-> ciudad varchar(20),
-> provincia varchar(20),
-> primary key(documentos)

-> );
Query OK, 0 rows affected (0.03 sec)
mysql> describe alumnos;
+------------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| documentos | char(8)
| NO | PRI | NULL
|
|
| nombre
| varchar(30) | YES |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
| ciudad
| varchar(20) | YES |
| NULL
|
|
| provincia | varchar(20) | YES |
| NULL
|
|
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
mysql> insert into alumnos values('22333444','Juan Perez','Colon 123','Cordoba',
'Cordoba');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alumnos values('23456789','Ana Acosta','Caseros 456','Cordob
a','Cordoba');
Query OK, 1 row affected (0.01 sec)
mysql> insert into alumnos values('24123123','Patricia Morales','Sucre 234','Vi
lla del Rosario','Cordoba');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alumnos values('25000333','Jose Torres','Sarmiento 980','Car
los Paz','Cordoba');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alumnos values('26333444','Susana Molina','Avellaneda 234','
Rosario','Santa Fe');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alumnos values('27987654','Marta Herrero','San Martin 356','
Villa del Rosario','Cordoba');
Query OK, 1 row affected (0.02 sec)
mysql> insert into alumnos values('28321321','Marcos Ferreyra','Urquiza 357','C
ordoba','Cordoba');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alumnos values('30987464','Marta Perez','Rivadavia 234','Cor
doba','Cordoba');
Query OK, 1 row affected (0.01 sec)
mysql> select*from alumnos;
+------------+------------------+----------------+-------------------+----------+
| documentos | nombre
| domicilio
| ciudad
| provincia
|
+------------+------------------+----------------+-------------------+----------+
| 22333444 | Juan Perez
| Colon 123
| Cordoba
| Cordoba
|
| 23456789 | Ana Acosta
| Caseros 456
| Cordoba
| Cordoba
|
| 24123123 | Patricia Morales | Sucre 234
| Villa del Rosario | Cordoba
|

| 25000333 | Jose Torres


| Sarmiento 980 | Carlos Paz
| Cordoba
|
| 26333444 | Susana Molina
| Avellaneda 234 | Rosario
| Santa Fe
|
| 27987654 | Marta Herrero
| San Martin 356 | Villa del Rosario | Cordoba
|
| 28321321 | Marcos Ferreyra | Urquiza 357
| Cordoba
| Cordoba
|
| 30987464 | Marta Perez
| Rivadavia 234 | Cordoba
| Cordoba
|
+------------+------------------+----------------+-------------------+----------+
8 rows in set (0.00 sec)
mysql> select documentos,nombre
-> from alumnos
-> order by rand()
-> limit 3;
+------------+------------------+
| documentos | nombre
|
+------------+------------------+
| 23456789 | Ana Acosta
|
| 24123123 | Patricia Morales |
| 30987464 | Marta Perez
|
+------------+------------------+
3 rows in set (0.02 sec)
mysql> select documentos,nombre from alumnos order by rand() limit 3;
+------------+------------------+
| documentos | nombre
|
+------------+------------------+
| 23456789 | Ana Acosta
|
| 26333444 | Susana Molina
|
| 24123123 | Patricia Morales |
+------------+------------------+
3 rows in set (0.00 sec)
mysql> select documentos,nombre from alumnos order by rand() limit 3;
+------------+-----------------+
| documentos | nombre
|
+------------+-----------------+
| 25000333 | Jose Torres
|
| 28321321 | Marcos Ferreyra |
| 26333444 | Susana Molina |
+------------+-----------------+
3 rows in set (0.01 sec)
mysql> select documentos,nombre from alumnos order by rand() limit 3;
+------------+-----------------+
| documentos | nombre
|
+------------+-----------------+
| 28321321 | Marcos Ferreyra |
| 25000333 | Jose Torres
|
| 23456789 | Ana Acosta
|
+------------+-----------------+
3 rows in set (0.00 sec)
mysql>

48 - Remplazar registros (replace)


mysql> use practica;
Database changed
mysql> drop table alumnos;
Query OK, 0 rows affected (0.02 sec)
mysql> use practica;
Database changed
mysql> create table alumnos(
-> legajo int(10) unsigned auto_increment,
-> nombre varchar(30),
-> documentos char(8),
-> domicilio varchar(30),
-> primary key(legajo),
-> unique i_documentos (documentos)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> insert into alumnos values('1353','Juan Lopez','22333444','Colon 123');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alumnos values('2345','Ana Acosta','24000555','Caseros 456');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alumnos values('2356','Jose Torres','26888777','Sucre 312');
Query OK, 1 row affected (0.02 sec)
mysql> insert into alumnos values('3567','Luis Perez','28020020','Rivadavia 234'
);
Query OK, 1 row affected (0.00 sec)
mysql> select*from alumnos;
+--------+-------------+------------+---------------+
| legajo | nombre
| documentos | domicilio
|
+--------+-------------+------------+---------------+
| 1353 | Juan Lopez | 22333444 | Colon 123
|
| 2345 | Ana Acosta | 24000555 | Caseros 456 |
| 2356 | Jose Torres | 26888777 | Sucre 312
|
| 3567 | Luis Perez | 28020020 | Rivadavia 234 |
+--------+-------------+------------+---------------+
4 rows in set (0.00 sec)
mysql>
mysql> insert into alumnos values('3567','Marcos Pereyra','30000333','Guemes 134
');
ERROR 1062 (23000): Duplicate entry '3567' for key 'PRIMARY'
mysql> replace into alumnos values('3567','Marcos Pereyra','30000333','Guemes 13
4');
Query OK, 2 rows affected (0.00 sec)
mysql> select*from alumnos;
+--------+----------------+------------+-------------+
| legajo | nombre
| documentos | domicilio |
+--------+----------------+------------+-------------+
| 1353 | Juan Lopez
| 22333444 | Colon 123 |

| 2345 | Ana Acosta


| 24000555 | Caseros 456 |
| 2356 | Jose Torres
| 26888777 | Sucre 312 |
| 3567 | Marcos Pereyra | 30000333 | Guemes 134 |
+--------+----------------+------------+-------------+
4 rows in set (0.00 sec)
mysql> insert into alumnos values('4567','Susana Juarez','30000333','Avellaneda
33');
ERROR 1062 (23000): Duplicate entry '30000333' for key 'i_documentos'
mysql> replace into alumnos values('4567','Susana Juarez','30000333','Avellaneda
33');
Query OK, 2 rows affected (0.00 sec)
mysql> drop index i_documento on alumnos;
ERROR 1091 (42000): Can't DROP 'i_documento'; check that column/key exists
mysql> drop index i_documentos on alumnos;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> replace into alumnos values('4888','Gustavo Garcia','30000333','San Marti
n 846');
Query OK, 1 row affected (0.00 sec)
mysql> select*from alumnos;
+--------+----------------+------------+----------------+
| legajo | nombre
| documentos | domicilio
|
+--------+----------------+------------+----------------+
| 1353 | Juan Lopez
| 22333444 | Colon 123
|
| 2345 | Ana Acosta
| 24000555 | Caseros 456
|
| 2356 | Jose Torres
| 26888777 | Sucre 312
|
| 4567 | Susana Juarez | 30000333 | Avellaneda 33 |
| 4888 | Gustavo Garcia | 30000333 | San Martin 846 |
+--------+----------------+------------+----------------+
5 rows in set (0.00 sec)
mysql>

49 - Agregar campos a una tabla (alter table - add)


mysql> use practica;
Database changed
mysql> create table peliculas(
-> codigo int unsigned auto_increment,
-> nombre varchar(30) not null,
-> actor varchar (20),
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> describe peliculas;
+--------+------------------+------+-----+---------+----------------+
| Field | Type
| Null | Key | Default | Extra
|
+--------+------------------+------+-----+---------+----------------+
| codigo | int(10) unsigned | NO | PRI | NULL
| auto_increment |
| nombre | varchar(30)
| NO |
| NULL
|
|
| actor | varchar(20)
| YES |
| NULL
|
|
+--------+------------------+------+-----+---------+----------------+

3 rows in set (0.00 sec)


mysql> insert into peliculas(nombre,actor) values('elgato','tom cruise');
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas(nombre,actor) values('mision imposible','tom cruise
');
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas(nombre,actor) values('harry potter','caniel r');
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas(nombre,actor) values('mision imposible 3','tom crui
se');
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas(nombre,actor) values('mujer bonita','julia r');
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas(nombre,actor) values('el moustro del lago nees','ma
rtin trujillo');
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas(nombre,actor) values('contabando y arma','catinfla'
);
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas(nombre,actor) values('el futbolista','resorte resor
tera');
Query OK, 1 row affected (0.00 sec)
mysql> alter table peliculas
-> add duracion tinyint unsigned;
Query OK, 9 rows affected (0.02 sec)
Records: 9 Duplicates: 0 Warnings: 0
mysql> describe peliculas;
+----------+---------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+----------+---------------------+------+-----+---------+----------------+
| codigo | int(10) unsigned
| NO | PRI | NULL
| auto_increment |
| nombre | varchar(30)
| NO |
| NULL
|
|
| actor
| varchar(20)
| YES |
| NULL
|
|
| duracion | tinyint(3) unsigned | YES |
| NULL
|
|
+----------+---------------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
mysql> alter table peliculas
-> add direccion varchar(20);
Query OK, 9 rows affected (0.05 sec)
Records: 9 Duplicates: 0 Warnings: 0
mysql> describe peliculas;
+-----------+---------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------+---------------------+------+-----+---------+----------------+
| codigo
| int(10) unsigned
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(30)
| NO |
| NULL
|
|
| actor
| varchar(20)
| YES |
| NULL
|
|
| duracion | tinyint(3) unsigned | YES |
| NULL
|
|

| direccion | varchar(20)
| YES |
| NULL
|
|
+-----------+---------------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
mysql> alter table peliculas add actor varchar(20);
ERROR 1060 (42S21): Duplicate column name 'actor'
mysql>

50 - Eliminar campos de una tabla (alter table - drop)


mysql> use practica;
Database changed
mysql> create table peliculas(
-> codigo int unsigned auto_increment,
-> nombre varchar(30) not null,
-> protagonista varchar(20),
-> actorsecundario varchar(20),
-> director varchar(25),
-> duracion tinyint unsigned,
-> primary key(codigo),
-> index i_director (director)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> describe peliculas;
+-----------------+---------------------+------+-----+---------+---------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------------+---------------------+------+-----+---------+---------------+
| codigo
| int(10) unsigned
| NO | PRI | NULL
| auto_increment
|
| nombre
| varchar(30)
| NO |
| NULL
|
|
| protagonista
| varchar(20)
| YES |
| NULL
|
|
| actorsecundario | varchar(20)
| YES |
| NULL
|
|
| director
| varchar(25)
| YES | MUL | NULL
|
|
| duracion
| tinyint(3) unsigned | YES |
| NULL
|
|
+-----------------+---------------------+------+-----+---------+---------------+
6 rows in set (0.00 sec)
mysql> insert into peliculas(nombre,protagonista,actorsecundario,director,duraci
on) values('maria','martin de la garza','mendoz','juan gonzales',90);
Query OK, 1 row affected (0.03 sec)
mysql> insert into peliculas(nombre,protagonista,actorsecundario,director,duraci
on) values('zonia','merito garcias','yakeline boyer','carmen salinas',12);
Query OK, 1 row affected (0.00 sec)

mysql> show index from peliculas;


+-----------+------------+------------+--------------+-------------+-----------+
-------------+----------+--------+------+------------+---------+---------------+
| Table
| Non_unique | Key_name | Seq_in_index | Column_name | Collation |
Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-----------+------------+------------+--------------+-------------+-----------+
-------------+----------+--------+------+------------+---------+---------------+
| peliculas |
3 |

0 | PRIMARY
NULL | NULL |

1 | codigo
|
|

| A

| BTREE

|
|

| peliculas |
3 |

1 | i_director |
NULL | NULL | YES | BTREE

1 | director
|
|

| A

|
|

+-----------+------------+------------+--------------+-------------+-----------+
-------------+----------+--------+------+------------+---------+---------------+
2 rows in set (0.01 sec)
mysql> alter table peliculas
-> drop director;
Query OK, 3 rows affected (0.11 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> describe peliculas;
+-----------------+---------------------+------+-----+---------+---------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------------+---------------------+------+-----+---------+---------------+
| codigo
| int(10) unsigned
| NO | PRI | NULL
| auto_increment
|
| nombre
| varchar(30)
| NO |
| NULL
|
|
| protagonista
| varchar(20)
| YES |
| NULL
|
|
| actorsecundario | varchar(20)
| YES |
| NULL
|
|
| duracion
| tinyint(3) unsigned | YES |
| NULL
|
|
+-----------------+---------------------+------+-----+---------+---------------+
5 rows in set (0.01 sec)
mysql> show index from peliculas;
+-----------+------------+----------+--------------+-------------+-----------+------------+----------+--------+------+------------+---------+---------------+
| Table
| Non_unique | Key_name | Seq_in_index | Column_name | Collation | C
ardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-----------+------------+----------+--------------+-------------+-----------+------------+----------+--------+------+------------+---------+---------------+
| peliculas |
0 | PRIMARY |
1 | codigo
| A
|
3 |
NULL | NULL |
| BTREE
|
|
|
+-----------+------------+----------+--------------+-------------+-----------+------------+----------+--------+------+------------+---------+---------------+
1 row in set (0.00 sec)

mysql> alter table peliculas


-> drop director;
ERROR 1091 (42000): Can't DROP 'director'; check that column/key exists
> insert into peliculas(nombre,protagonista,actorsecundario,director,duraci' at
line 1
mysql> Query OK, 1 row affected (0.03 sec)
51 - Modificar campos de una tabla (alter table - modify)
mysql> use practica;
Database changed
mysql> create table peliculas(
-> codigo int unsigned ,
-> nombre varchar(20) not null,
-> actor varchar (20),
-> direccion varchar(25),
-> duracion tinyint
-> );
Query OK, 0 rows affected (0.07 sec)
mysql> describe peliculas;
+-----------+------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+-------+
| codigo
| int(10) unsigned | YES |
| NULL
|
|
| nombre
| varchar(20)
| NO |
| NULL
|
|
| actor
| varchar(20)
| YES |
| NULL
|
|
| direccion | varchar(25)
| YES |
| NULL
|
|
| duracion | tinyint(4)
| YES |
| NULL
|
|
+-----------+------------------+------+-----+---------+-------+
5 rows in set (0.01 sec)
mysql> alter table peliculas
-> modify duracion tinyint unsigned;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> describe peliculas;
+-----------+---------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+-------+
| codigo
| int(10) unsigned
| YES |
| NULL
|
|
| nombre
| varchar(20)
| NO |
| NULL
|
|
| actor
| varchar(20)
| YES |
| NULL
|
|
| direccion | varchar(25)
| YES |
| NULL
|
|
| duracion | tinyint(3) unsigned | YES |
| NULL
|
|
+-----------+---------------------+------+-----+---------+-------+
5 rows in set (0.01 sec)
mysql> alter table peliculas
-> modify nombre varchar(40) not null,
-> alter table peliculas
-> modify nombre varchar(40) not null;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'table
peliculas
modify nombre varchar(40) not null' at line 3
mysql> alter table peliculas

-> modify nombre varchar(40) not null;


Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> describe peliculas;
+-----------+---------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+-------+
| codigo
| int(10) unsigned
| YES |
| NULL
|
|
| nombre
| varchar(40)
| NO |
| NULL
|
|
| actor
| varchar(20)
| YES |
| NULL
|
|
| direccion | varchar(25)
| YES |
| NULL
|
|
| duracion | tinyint(3) unsigned | YES |
| NULL
|
|
+-----------+---------------------+------+-----+---------+-------+
5 rows in set (0.01 sec)
mysql> alter table peliculas
-> modify actor varchar(20) not null,
-> modify actor varchar(20) not null;
ERROR 1054 (42S22): Unknown column 'actor' in 'peliculas'
mysql> alter table peliculas
-> modify actor varchar(20) not null;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> describe peliculas;
+-----------+---------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+-------+
| codigo
| int(10) unsigned
| YES |
| NULL
|
|
| nombre
| varchar(40)
| NO |
| NULL
|
|
| actor
| varchar(20)
| NO |
| NULL
|
|
| direccion | varchar(25)
| YES |
| NULL
|
|
| duracion | tinyint(3) unsigned | YES |
| NULL
|
|
+-----------+---------------------+------+-----+---------+-------+
5 rows in set (0.07 sec)
mysql> alter table peliculas
-> mody codigo int unsigned auto_increment;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mody
codigo int unsigned auto_increment' at line 2
mysql>

52 - Cambiar el nombre de un campo de una tabla (alter table - change)


mysql> use practica;
Database changed
mysql> create table articulos(
-> codigo int unsigned auto_increment,
-> nombre varchar(20) not null,
-> descripcion varchar(30),
-> precio decimal(4,2) unsigned,
-> primary key(codigo)

-> );
Query OK, 0 rows affected (0.03 sec)
mysql> describe articulos;
+-------------+-----------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+-----------------------+------+-----+---------+----------------+
| codigo
| int(10) unsigned
| NO | PRI | NULL
| auto_increment |
| nombre
| varchar(20)
| NO |
| NULL
|
|
| descripcion | varchar(30)
| YES |
| NULL
|
|
| precio
| decimal(4,2) unsigned | YES |
| NULL
|
|
+-------------+-----------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
mysql> insert into articulos (nombre,descripcion,precio) values('escuadra','pla
stico 20 cm.',3.50);
Query OK, 1 row affected (0.00 sec)
mysql> insert into articulos (nombre,descripcion,precio)
es','Faber x12',4.50);
ERROR 1366 (HY000): Incorrect string value: '\xA0pices...'
t row 1
mysql> insert into articulos (nombre,descripcion,precio)
es','Faber x24',7.50);
ERROR 1366 (HY000): Incorrect string value: '\xA0pices...'
t row 1
mysql> insert into articulos (nombre,descripcion,precio)
.',2.50);
Query OK, 1 row affected (0.00 sec)

values('lpices color
for column 'nombre' a
values('lpices color
for column 'nombre' a
values('regla','30 cm

mysql> insert into articulos (nombre,descripcion,precio) values('fibras','Fabe


r x12',10.30);
Query OK, 1 row affected (0.00 sec)
mysql> insert into articulos (nombre,descripcion,precio) values('fibras','Fabe
r x6',5.10);
Query OK, 1 row affected (0.01 sec)
mysql> select*from articulos;
+--------+----------+-----------------+--------+
| codigo | nombre | descripcion
| precio |
+--------+----------+-----------------+--------+
|
1 | escuadra | plastico 20 cm. | 3.50 |
|
2 | regla
| 30 cm.
| 2.50 |
|
3 | fibras | Faber x12
| 10.30 |
|
4 | fibras | Faber x6
| 5.10 |
+--------+----------+-----------------+--------+
4 rows in set (0.00 sec)
mysql> alter table articulos
-> change precio preciopormayo decimal(4,2) unsigned not null;
Query OK, 4 rows affected (0.08 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select*from articulos;
+--------+----------+-----------------+---------------+
| codigo | nombre | descripcion
| preciopormayo |
+--------+----------+-----------------+---------------+
|
1 | escuadra | plastico 20 cm. |
3.50 |
|
2 | regla
| 30 cm.
|
2.50 |

|
3 | fibras | Faber x12
|
10.30 |
|
4 | fibras | Faber x6
|
5.10 |
+--------+----------+-----------------+---------------+
4 rows in set (0.00 sec)
mysql> alter table articulos
-> add preciopormenor decimal(4,2) unsigned not null;
Query OK, 4 rows affected (0.03 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select*from articulos;
+--------+----------+-----------------+---------------+----------------+
| codigo | nombre | descripcion
| preciopormayo | preciopormenor |
+--------+----------+-----------------+---------------+----------------+
|
1 | escuadra | plastico 20 cm. |
3.50 |
0.00 |
|
2 | regla
| 30 cm.
|
2.50 |
0.00 |
|
3 | fibras | Faber x12
|
10.30 |
0.00 |
|
4 | fibras | Faber x6
|
5.10 |
0.00 |
+--------+----------+-----------------+---------------+----------------+
4 rows in set (0.00 sec)
mysql> select*from articulos;
+--------+----------+-----------------+---------------+----------------+
| codigo | nombre | descripcion
| preciopormayo | preciopormenor |
+--------+----------+-----------------+---------------+----------------+
|
1 | escuadra | plastico 20 cm. |
3.50 |
0.00 |
|
2 | regla
| 30 cm.
|
2.50 |
0.00 |
|
3 | fibras | Faber x12
|
10.30 |
0.00 |
|
4 | fibras | Faber x6
|
5.10 |
0.00 |
+--------+----------+-----------------+---------------+----------------+
4 rows in set (0.00 sec)

53 - Agregar y eliminar la clave primaria (alter table)


mysql> use practica;
Database changed
mysql> create table medicamentos(
-> codigo int unsigned not null,
-> nombre varchar(20) not null,
-> laboratorio varchar(20),
-> precio decimal(6,2) unsigned
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> describe medicamentos;
+-------------+-----------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-------------+-----------------------+------+-----+---------+-------+
| codigo
| int(10) unsigned
| NO |
| NULL
|
|
| nombre
| varchar(20)
| NO |
| NULL
|
|
| laboratorio | varchar(20)
| YES |
| NULL
|
|
| precio
| decimal(6,2) unsigned | YES |
| NULL
|
|
+-------------+-----------------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
mysql> alter table medicamentos

-> add primary key(codigo);


Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> describe medicamentos;
+-------------+-----------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-------------+-----------------------+------+-----+---------+-------+
| codigo
| int(10) unsigned
| NO | PRI | NULL
|
|
| nombre
| varchar(20)
| NO |
| NULL
|
|
| laboratorio | varchar(20)
| YES |
| NULL
|
|
| precio
| decimal(6,2) unsigned | YES |
| NULL
|
|
+-------------+-----------------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> insert into medicamentos(codigo,nombre,laboratorio,precio) values(1,'para
cetemol 500','bago',1.90);
Query OK, 1 row affected (0.00 sec)
mysql> insert into medicamentos(codigo,nombre,laboratorio,precio) values(1,'para
cetemol 500','bago',1.90);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql>
mysql> alter table medicamentos
-> drop primary key;
Query OK, 1 row affected (0.02 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select*from medicamentos;
+--------+-----------------+-------------+--------+
| codigo | nombre
| laboratorio | precio |
+--------+-----------------+-------------+--------+
|
1 | paracetemol 500 | bago
| 1.90 |
+--------+-----------------+-------------+--------+
1 row in set (0.00 sec)

54 - Agregar ndices(alter table - add index)


mysql> use practica;
Database changed
mysql> show tables;
+--------------------+
| Tables_in_practica |
+--------------------+
| agenda
|
| alumnos
|
| articulos
|
| autos
|
| clientes
|
| cuenta
|
| cursos
|
| empleados
|

| libros
|
| medicamentos
|
| pedido
|
| peliculas
|
| prestamos
|
| visitantes
|
+--------------------+
14 rows in set (0.00 sec)
mysql> drop table alumnos;
Query OK, 0 rows affected (0.06 sec)
mysql> use practica;
Database changed
mysql> create table alumnos(
-> legajo int unsigned auto_increment,
-> nombre varchar(30),
-> documentos char(8)not null,
-> domiclio varchar(30),
-> ciudad varchar(20),
-> provincia varchar(20),
-> primary key(legajo)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> describe alumnos;
+------------+------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+------------+------------------+------+-----+---------+----------------+
| legajo
| int(10) unsigned | NO | PRI | NULL
| auto_increment |
| nombre
| varchar(30)
| YES |
| NULL
|
|
| documentos | char(8)
| NO |
| NULL
|
|
| domiclio | varchar(30)
| YES |
| NULL
|
|
| ciudad
| varchar(20)
| YES |
| NULL
|
|
| provincia | varchar(20)
| YES |
| NULL
|
|
+------------+------------------+------+-----+---------+----------------+
6 rows in set (0.02 sec)
mysql> alter table alumnos
-> add index i_ciudadprovincia(ciudad,provincia);
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table alumnos
-> add uniqueindex i_documentos (documentos);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'i_doc
umentos (documentos)' at line 2
mysql> show index from alumnos;
+---------+------------+-------------------+--------------+-------------+----------+-------------+----------+--------+------+------------+---------+--------------+
| Table | Non_unique | Key_name
| Seq_in_index | Column_name | Collat
ion | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comm
ent |
+---------+------------+-------------------+--------------+-------------+----------+-------------+----------+--------+------+------------+---------+--------------+
| alumnos |
0 | PRIMARY
|
1 | legajo
| A
|
0 |
NULL | NULL |
| BTREE
|
|

|
| alumnos |
1 | i_ciudadprovincia |
1 | ciudad
| A
|
0 |
NULL | NULL | YES | BTREE
|
|
|
| alumnos |
1 | i_ciudadprovincia |
2 | provincia | A
|
0 |
NULL | NULL | YES | BTREE
|
|
|
+---------+------------+-------------------+--------------+-------------+----------+-------------+----------+--------+------+------------+---------+--------------+
3 rows in set (0.00 sec)

55 - Borrado de ndices (alter table - drop index)


mysql> use practica;
Database changed
mysql> create table alumnos(
-> anio year not null,
-> numero int unsigned not null,
-> nombre varchar(30),
-> documentos char(8) not null,
-> domicilio varchar(30),
-> ciudad varchar(20),
-> provincia varchar(20),
-> primary key(anio),
-> unique i_documentos (documentos),
-> index i_ciudadprovincia (ciudad,provincia)
-> );
Query OK, 0 rows affected (0.34 sec)
mysql> describe alumnos;
+------------+------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+-------+
| anio
| year(4)
| NO | PRI | NULL
|
|
| numero
| int(10) unsigned | NO |
| NULL
|
|
| nombre
| varchar(30)
| YES |
| NULL
|
|
| documentos | char(8)
| NO | UNI | NULL
|
|
| domicilio | varchar(30)
| YES |
| NULL
|
|
| ciudad
| varchar(20)
| YES | MUL | NULL
|
|
| provincia | varchar(20)
| YES |
| NULL
|
|
+------------+------------------+------+-----+---------+-------+
7 rows in set (0.00 sec)
mysql> alter table alumnos
-> drop index i_documentos;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table alumnos
-> drop index i_ciudadprovincia;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> select*from alumnos;


Empty set (0.00 sec)
mysql> show index from alumnos;
+---------+------------+----------+--------------+-------------+-----------+------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Car
dinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+---------+------------+----------+--------------+-------------+-----------+------------+----------+--------+------+------------+---------+---------------+
| alumnos |
0 | PRIMARY |
1 | anio
| A
|
0 |
NULL | NULL |
| BTREE
|
|
|
+---------+------------+----------+--------------+-------------+-----------+------------+----------+--------+------+------------+---------+---------------+
1 row in set (0.00 sec)

56 - renombrar tablas (alter table - rename - rename table)


mysql> use practica;
Database changed
mysql> create table peliculas(
-> codigo int unsigned auto_increment,
-> titulo varchar(40),
-> duracion tinyint unsigned,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> alter table peliculas rename films;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;
+--------------------+
| Tables_in_practica |
+--------------------+
| agenda
|
| alumnos
|
| articulos
|
| autos
|
| clientes
|
| cuenta
|
| cursos
|
| empleados
|
| films
|
| libros
|
| medicamentos
|
| pedido
|
| prestamos
|
| visitantes
|
+--------------------+
14 rows in set (0.00 sec)
mysql> rename table film to peliculas;
ERROR 1017 (HY000): Can't find file: '.\practica\film.frm' (errno: 2)
mysql> rename table films to peliculas;
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;


+--------------------+
| Tables_in_practica |
+--------------------+
| agenda
|
| alumnos
|
| articulos
|
| autos
|
| clientes
|
| cuenta
|
| cursos
|
| empleados
|
| libros
|
| medicamentos
|
| pedido
|
| peliculas
|
| prestamos
|
| visitantes
|
+--------------------+
14 rows in set (0.02 sec)
mysql>

57 - Tipo de dato enum.


mysql> use practica;
Database changed
mysql> show tables;
+--------------------+
| Tables_in_practica |
+--------------------+
| agenda
|
| alumnos
|
| articulos
|
| autos
|
| clientes
|
| cuenta
|
| cursos
|
| empleados
|
| libros
|
| medicamentos
|
| pedido
|
| peliculas
|
| prestamos
|
| visitantes
|
+--------------------+
14 rows in set (0.01 sec)
mysql> drop table empleados;
Query OK, 0 rows affected (0.00 sec)
mysql> use practica;
Database changed
mysql> create table empleados(

-> documento char(8),


-> nombre varchar(30),
-> sexo char(1),
-> estadocivil enum('soltero','casado','divorciado','viudo') not null,
-> sueldobasico decimal(6,2),
-> primary key(documento)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> describe empleados;
+--------------+-----------------------------------------------+------+-----+--------+-------+
| Field
| Type
| Null | Key | De
fault | Extra |
+--------------+-----------------------------------------------+------+-----+--------+-------+
| documento
| char(8)
| NO | PRI |
|
|
| nombre
| varchar(30)
| YES |
| NU
LL
|
|
| sexo
| char(1)
| YES |
| NU
LL
|
|
| estadocivil | enum('soltero','casado','divorciado','viudo') | NO |
| NU
LL
|
|
| sueldobasico | decimal(6,2)
| YES |
| NU
LL
|
|
+--------------+-----------------------------------------------+------+-----+--------+-------+
5 rows in set (0.00 sec)
mysql> insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico) va
lues ('22333444','Juan Lopez','m','soltero',300);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico) v
alues ('23333444','Ana Acosta','f','viudo',400);
Query OK, 1 row affected (0.01 sec)
mysql> select*from empleados;
+-----------+------------+------+-------------+--------------+
| documento | nombre
| sexo | estadocivil | sueldobasico |
+-----------+------------+------+-------------+--------------+
| 22333444 | Juan Lopez | m
| soltero
|
300.00 |
| 23333444 | Ana Acosta | f
| viudo
|
400.00 |
+-----------+------------+------+-------------+--------------+
2 rows in set (0.00 sec)
mysql> insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico) va
lues ('26333444','Luis Perez','m',1,400);
Query OK, 1 row affected (0.01 sec)
mysql> insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico) v
alues ('26336444','Marcelo Torres','m',3,460);
Query OK, 1 row affected (0.00 sec)
mysql> select*from empleados;
+-----------+----------------+------+-------------+--------------+
| documento | nombre
| sexo | estadocivil | sueldobasico |
+-----------+----------------+------+-------------+--------------+
| 22333444 | Juan Lopez
| m
| soltero
|
300.00 |

| 23333444 | Ana Acosta


| f
| viudo
|
400.00 |
| 26333444 | Luis Perez
| m
| soltero
|
400.00 |
| 26336444 | Marcelo Torres | m
| divorciado |
460.00 |
+-----------+----------------+------+-------------+--------------+
4 rows in set (0.00 sec)
mysql> select*from empleados
-> where estadocivil='soltero';
+-----------+------------+------+-------------+--------------+
| documento | nombre
| sexo | estadocivil | sueldobasico |
+-----------+------------+------+-------------+--------------+
| 22333444 | Juan Lopez | m
| soltero
|
300.00 |
| 26333444 | Luis Perez | m
| soltero
|
400.00 |
+-----------+------------+------+-------------+--------------+
2 rows in set (0.00 sec)
mysql> insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico) va
lues ('29333444','Lucas Perez','m',0,400);
ERROR 1265 (01000): Data truncated for column 'estadocivil' at row 1
mysql> insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico) va
lues ('31333444','Karina Sosa','f','Concubino',500);
ERROR 1265 (01000): Data truncated for column 'estadocivil' at row 1
mysql> select*from empleados
-> where estadocivil=4;
+-----------+------------+------+-------------+--------------+
| documento | nombre
| sexo | estadocivil | sueldobasico |
+-----------+------------+------+-------------+--------------+
| 23333444 | Ana Acosta | f
| viudo
|
400.00 |
+-----------+------------+------+-------------+--------------+
1 row in set (0.00 sec)

58 - Tipo de dato set.


mysql> use practica;
Database changed
mysql> create table cursos(
-> codigo tinyint unsigned auto_increment,
-> tema varchar(20) not null,
-> dias set ('lunes','martes','miercoles','jueves','viernes','sabado') not
null,
-> horario enum ('AM','PM') not null,
-> clases tinyint unsigned default 1,
-> fechainicio date,
-> costo decimal(5,2) unsigned,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.05 sec)
mysql> describe cursos;
+-------------+---------------------------------------------------------------+-----+-----+---------+----------------+

| Field
| Type
|
Null | Key | Default | Extra
|
+-------------+---------------------------------------------------------------+-----+-----+---------+----------------+
| codigo
| tinyint(3) unsigned
|
NO | PRI | NULL
| auto_increment |
| tema
| varchar(20)
|
NO |
| NULL
|
|
| dias
| set('lunes','martes','miercoles','jueves','viernes','sabado') |
NO |
| NULL
|
|
| horario
| enum('AM','PM')
|
NO |
| NULL
|
|
| clases
| tinyint(3) unsigned
|
YES |
| 1
|
|
| fechainicio | date
|
YES |
| NULL
|
|
| costo
| decimal(5,2) unsigned
|
YES |
| NULL
|
|
+-------------+---------------------------------------------------------------+-----+-----+---------+----------------+
7 rows in set (0.01 sec)
mysql> insert into cursos(tema,dias,horario,clases,fechainicio,costo) values('PH
P basico','lunes,martes,miercoles','AM',18,'2006-08-07',200);
Query OK, 1 row affected (0.03 sec)
mysql> insert into cursos(tema,dias,horario,clases,fechainicio,costo) values('PH
P basico','lunes,martes,miercoles','PM',18,'2006-08-14',200);
Query OK, 1 row affected (0.00 sec)
mysql> insert into cursos(tema,dias,horario,clases,fechainicio,costo) values('PH
P basico','sabado','AM',18,'2006-08-05',280);
Query OK, 1 row affected (0.00 sec)
mysql> insert into cursos(tema,dias,horario,clases,fechainicio,costo) values('PH
P avanzado','martes,jueves','AM',20,'2006-08-01',350);
Query OK, 1 row affected (0.00 sec)
mysql> insert into cursos(tema,dias,horario,clases,fechainicio,costo) values('ja
vascript','lunes,martes,miercoles,','PM',15,'2006-09-11',150);
ERROR 1265 (01000): Data truncated for column 'dias' at row 1
mysql> insert into cursos(tema,dias,horario,clases,fechainicio,costo) values('ja
va script','lunes,martes,miercoles','PM',15,'2006-09-11',150);
Query OK, 1 row affected (0.01 sec)
mysql> insert into cursos(tema,dias,horario,clases,fechainicio,costo) values('pa
gina web','martes,jueves','PM',10,'2006-08-08',250);
Query OK, 1 row affected (0.02 sec)
mysql> insert into cursos(tema,dias,horario,clases,fechainicio,costo) values('pa
gina web','sabado','AM',10,'2006-08-12',280);
Query OK, 1 row affected (0.00 sec)
mysql> insert into cursos(tema,dias,horario,clases,fechainicio,costo) values('pa
gina web','lunes,viernes','AM',10,'2006-08-21',200);
Query OK, 1 row affected (0.00 sec)
mysql> insert into cursos(tema,dias,horario,clases,fechainicio,costo) values('pa
gina web','lunes,martes,miercoles,jueves,viernes','AM',10,'2006-09-18',180);
Query OK, 1 row affected (0.00 sec)

mysql> insert into cursos(tema,dias,horario,clases,fechainicio,costo) values('pa


gina web','lunes,viernes','PM',10,'2006-09-25',280);
Query OK, 1 row affected (0.00 sec)
mysql> insert into cursos(tema,dias,horario,clases,fechainicio,costo) values('ja
va script','lunes,martes,viernes,sabado','PM',12,'2006-09-18',150);
Query OK, 1 row affected (0.00 sec)
mysql> select*from cursos;
+--------+--------------+---------------------------------------+---------+-------+-------------+--------+
| codigo | tema
| dias
| horario | clas
es | fechainicio | costo |
+--------+--------------+---------------------------------------+---------+-------+-------------+--------+
|
1 | PHP basico | lunes,martes,miercoles
| AM
|
18 | 2006-08-07 | 200.00 |
|
2 | PHP basico | lunes,martes,miercoles
| PM
|
18 | 2006-08-14 | 200.00 |
|
3 | PHP basico | sabado
| AM
|
18 | 2006-08-05 | 280.00 |
|
4 | PHP avanzado | martes,jueves
| AM
|
20 | 2006-08-01 | 350.00 |
|
5 | java script | lunes,martes,miercoles
| PM
|
15 | 2006-09-11 | 150.00 |
|
6 | pagina web | martes,jueves
| PM
|
10 | 2006-08-08 | 250.00 |
|
7 | pagina web | sabado
| AM
|
10 | 2006-08-12 | 280.00 |
|
8 | pagina web | lunes,viernes
| AM
|
10 | 2006-08-21 | 200.00 |
|
9 | pagina web | lunes,martes,miercoles,jueves,viernes | AM
|
10 | 2006-09-18 | 180.00 |
|
10 | pagina web | lunes,viernes
| PM
|
10 | 2006-09-25 | 280.00 |
|
11 | java script | lunes,martes,viernes,sabado
| PM
|
12 | 2006-09-18 | 150.00 |
+--------+--------------+---------------------------------------+---------+-------+-------------+--------+
11 rows in set (0.00 sec)
mysql> slect* from cursos
-> where tema like '%php%' and
-> dias='sabado';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'slect
* from cursos
where tema like '%php%' and
dias='sabado'' at line 1
mysql> select * from cursos
-> where tema like '%PHP%' and
-> dias='sabado';
+--------+------------+--------+---------+--------+-------------+--------+
| codigo | tema
| dias | horario | clases | fechainicio | costo |
+--------+------------+--------+---------+--------+-------------+--------+
|
3 | PHP basico | sabado | AM
|
18 | 2006-08-05 | 280.00 |
+--------+------------+--------+---------+--------+-------------+--------+
1 row in set (0.02 sec)

mysql> select* from cursos


-> wheretema like '%paginas web%' and
-> horario='AM' and
-> dias not like '%miercoles%';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'like
'%paginas web%' and
horario='AM' and
dias not like '%miercoles%'' at line 2
mysql> select * from cursos
-> where tema like '%paginas web%' and
-> horario='AM' and
-> dias not like '%miercoles%';
Empty set (0.00 sec)
mysql> select * from cursos
-> where tema='%javas cript%' and
-> horario='PM'and
-> not find_in_set('jueves',dias)>0 and
-> clases<=15 and
-> month(fechainicio)=9;
Empty set (0.05 sec)
mysql> select*from cursos;
+--------+--------------+---------------------------------------+---------+-------+-------------+--------+
| codigo | tema
| dias
| horario | clas
es | fechainicio | costo |
+--------+--------------+---------------------------------------+---------+-------+-------------+--------+
|
1 | PHP basico | lunes,martes,miercoles
| AM
|
18 | 2006-08-07 | 200.00 |
|
2 | PHP basico | lunes,martes,miercoles
| PM
|
18 | 2006-08-14 | 200.00 |
|
3 | PHP basico | sabado
| AM
|
18 | 2006-08-05 | 280.00 |
|
4 | PHP avanzado | martes,jueves
| AM
|
20 | 2006-08-01 | 350.00 |
|
5 | java script | lunes,martes,miercoles
| PM
|
15 | 2006-09-11 | 150.00 |
|
6 | pagina web | martes,jueves
| PM
|
10 | 2006-08-08 | 250.00 |
|
7 | pagina web | sabado
| AM
|
10 | 2006-08-12 | 280.00 |
|
8 | pagina web | lunes,viernes
| AM
|
10 | 2006-08-21 | 200.00 |
|
9 | pagina web | lunes,martes,miercoles,jueves,viernes | AM
|
10 | 2006-09-18 | 180.00 |
|
10 | pagina web | lunes,viernes
| PM
|
10 | 2006-09-25 | 280.00 |
|
11 | java script | lunes,martes,viernes,sabado
| PM
|
12 | 2006-09-18 | 150.00 |
+--------+--------------+---------------------------------------+---------+-------+-------------+--------+
11 rows in set (0.00 sec)

59 - Tipos de datos blob y text.

mysql> use practica;


Database changed
mysql> create table inmueble(
-> codigo int unsigned auto_increment,
-> domicilio varchar(30),
-> barrio varchar(20),
-> detalles text,
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> describe inmueble;
+-----------+------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------+------------------+------+-----+---------+----------------+
| codigo
| int(10) unsigned | NO | PRI | NULL
| auto_increment |
| domicilio | varchar(30)
| YES |
| NULL
|
|
| barrio
| varchar(20)
| YES |
| NULL
|
|
| detalles | text
| YES |
| NULL
|
|
+-----------+------------------+------+-----+---------+----------------+
4 rows in set (0.02 sec)
mysql> insert into inmueble values(2,'Caseros 345','Centro','patio, 2 dormitorio
s, cocina- comedor, living');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inmueble values(3,'Sucre 346','Alberdi','2 dormitorios, prob
lemas de humedad');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inmueble values(4,'Sarmiento 832','Gral. Paz','3 dormitorios
, garage, 2 patios');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inmueble values(5,'Avellaneda 384','Centro',' 2 patios, 2 do
rmitorios, garage');
Query OK, 1 row affected (0.01 sec)
mysql> insert into inmueble values(5,'Avellaneda 384','Centro',' 2 patios, 2 do
rmitorios, garage doble,pileta,asador,living,cocina,comedor,escritorio,2 baos')
mysql> select* from inmueble;
+--------+----------------+-----------+----------------------------------------------+
| codigo | domicilio
| barrio
| detalles
|
+--------+----------------+-----------+----------------------------------------------+
|
2 | Caseros 345
| Centro
| patio, 2 dormitorios, cocina- comedor, l
iving |
|
3 | Sucre 346
| Alberdi | 2 dormitorios, problemas de humedad
|
|
4 | Sarmiento 832 | Gral. Paz | 3 dormitorios, garage, 2 patios
|
|
5 | Avellaneda 384 | Centro
| 2 patios, 2 dormitorios, garage
|
+--------+----------------+-----------+-----------------------------------------

mysql> select*from inmueble


-> where detalles like '%patio%';
+--------+----------------+-----------+----------------------------------------------+
| codigo | domicilio
| barrio
| detalles
|
+--------+----------------+-----------+----------------------------------------------+
|
2 | Caseros 345
| Centro
| patio, 2 dormitorios, cocina- comedor, l
iving |
|
4 | Sarmiento 832 | Gral. Paz | 3 dormitorios, garage, 2 patios
|
|
5 | Avellaneda 384 | Centro
| 2 patios, 2 dormitorios, garage
|
+--------+----------------+-----------+-----------------------------------------

60 - Funciones de control de flujo (if)


mysql> use practica;
Database changed
mysql> show tables;
+--------------------+
| Tables_in_practica |
+--------------------+
| agenda
|
| alumnos
|
| articulos
|
| autos
|
| clientes
|
| cuenta
|
| cursos
|
| empleados
|
| inmueble
|
| libros
|
| medicamentos
|
| pedido
|
| peliculas
|
| prestamos
|
| visitantes
|
+--------------------+
mysql> drop table empleados;
Query OK, 0 rows affected (0.06 sec)
mysql> use practica;
Database changed
mysql> create table empleados(
-> documento char(8) not null,
-> nombre varchar(30) not null,
-> sexo char(1),
-> domicilio varchar(30),
-> fechaingreso date,
-> fechanacimiento date,
-> sueldobasico decimal(5,2) unsigned,

-> primary key(documento)


-> );
Query OK, 0 rows affected (0.05 sec)
mysql> describe empleados;
+-----------------+-----------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------------+-----------------------+------+-----+---------+-------+
| documento
| char(8)
| NO | PRI | NULL
|
|
| nombre
| varchar(30)
| NO |
| NULL
|
|
| sexo
| char(1)
| YES |
| NULL
|
|
| domicilio
| varchar(30)
| YES |
| NULL
|
|
| fechaingreso
| date
| YES |
| NULL
|
|
| fechanacimiento | date
| YES |
| NULL
|
|
| sueldobasico
| decimal(5,2) unsigned | YES |
| NULL
|
|
+-----------------+-----------------------+------+-----+---------+-------+
7 rows in set (0.02 sec)
mysql> insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fecha
nacimiento,sueldobasico) values ('22333111','Juan Perez','m','Colon 123','1990-0
2-01','1970-05-10',550);
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fecha
nacimiento,sueldobasico) values ('25444444','Susana Morales','f','Avellaneda 345
','1995-04-01','1975-11-06',650);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fecha
nacimiento,sueldobasico) values ('20111222','Hector Pereyra','m','Caseros 987','
1995-04-01','1965-03-25',510);
Query OK, 1 row affected (0.20 sec)
mysql> insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fecha
nacimiento,sueldobasico) values ('30000222','Luis LUque','m','Urquiza 456','1980
-09-01','1980-03-29',700);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fecha
nacimiento,sueldobasico) values ('20555444','Maria Laura Torres','f','San Martin
1122','2000-05-15','1965-12-22',400);
Query OK, 1 row affected (0.00 sec)
mysql> insert into empleados(documento,nombre,sexo,domicilio,fechaingreso,fechan
acimiento,sueldobasico) values ('30000234','Alberto Soto','m','Peru 232','2003-0
8-15','1989-10-10',420);
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into empleados(documento,nombre,sexo,domicilio,fechaingreso,fechan
acimiento,sueldobasico) values ('20125478','Ana Gomez','f','Sarmiento 975','2004
-06-14','1976-09-21',350);
Query OK, 1 row affected (0.02 sec)
mysql>
mysql> insert into empleados(documento,nombre,sexo,domicilio,fechaingreso,fechan
acimiento,sueldobasico) values ('24154269','Ofelia Garcia','f','Triunvirato 628'
,'2004-09-23','1974-05-12',390);

Query OK, 1 row affected (0.01 sec)

mysql> select sexo,count(sexo),


-> if (sexo='f','rosas','corbata') as 'Obsequio'
-> from empleados
-> where month(fechanacimiento)=5
-> group by sexo;
+------+-------------+----------+
| sexo | count(sexo) | Obsequio |
+------+-------------+----------+
| f
|
1 | rosas
|
| m
|
1 | corbata |
+------+-------------+----------+
2 rows in set (0.03 sec)
mysql> select nombre,fechaingreso,
-> year(current_date)-year(fechaingreso) as 'anio de servicio',
-> if((year(current_date)-year(fechaingreso)) %10=0,'si','no') as 'placa'
-> from empleados
-> where month(fechaingreso)=4;
+----------------+--------------+------------------+-------+
| nombre
| fechaingreso | anio de servicio | placa |
+----------------+--------------+------------------+-------+
| Hector Pereyra | 1995-04-01 |
20 | si
|
| Susana Morales | 1995-04-01 |
20 | si
|
+----------------+--------------+------------------+-------+
2 rows in set (0.00 sec)

61 - Funciones de control de flujo (case)


mysql> use practica;
Database changed
mysql> show tables;
+--------------------+
| Tables_in_practica |
+--------------------+
| agenda
|
| alumnos
|
| articulos
|
| autos
|
| clientes
|
| cuenta
|
| cursos
|
| empleados
|
| inmueble
|
| libros
|
| medicamentos
|
| pedido
|
| peliculas
|
| prestamos
|
| visitantes
|
+--------------------+
15 rows in set (0.00 sec)

mysql> drop table alumnos;


Query OK, 0 rows affected (0.10 sec)
mysql> use practica;
Database changed
mysql> create table alumnos(
-> legajo char(5) not null,
-> nombre varchar(30),
-> promedio decimal(4,2)
-> );
Query OK, 0 rows affected (0.05 sec)
mysql> describe alumnos;
+----------+--------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| legajo | char(5)
| NO |
| NULL
|
|
| nombre | varchar(30) | YES |
| NULL
|
|
| promedio | decimal(4,2) | YES |
| NULL
|
|
+----------+--------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
mysql> insert into alumnos values(3456,'Perez Luis',8.5);
Query OK, 1 row affected (0.04 sec)
mysql> insert into alumnos values(3556,'Garcia Ana',7.0);
Query OK, 1 row affected (0.00 sec)
mysql> insert into alumnos values(3656,'Luduea Juan',9.6);
ERROR 1366 (HY000): Incorrect string value: '\xA4a Jua...' for column 'nombre' a
t row 1
mysql> insert into alumnos values(2756,'Moreno Gabriela',4.8);
Query OK, 1 row affected (0.00 sec)
mysql> insert into alumnos values(4856,'Morales Hugo',3.2);
Query OK, 1 row affected (0.02 sec)
mysql> insert into alumnos values(7856,'Gomez Susana',6.4);
Query OK, 1 row affected (0.00 sec)
mysql> select legajo,promedio,
-> case truncate(promedio,0)
->
when 0 then 'reprobado'
->
when 1 then 'reprobado'
->
when 2 then 'reprobado'
->
when 3 then 'reprobado'
->
when 4 then 'regular'
->
when 5 then 'regular'
->
when 6 then 'regular'
->
when 7 then 'promocionado'
->
when 8 then 'promocionado'
->
when 9 then 'promocionado'
->
else 'promocionado'
-> end as 'estado'
-> from alumnos;
+--------+----------+--------------+
| legajo | promedio | estado
|
+--------+----------+--------------+
| 3456 |
8.50 | promocionado |
| 3556 |
7.00 | promocionado |

| 2756 |
4.80 | regular
|
| 4856 |
3.20 | reprobado
|
| 7856 |
6.40 | regular
|
+--------+----------+--------------+
5 rows in set (0.04 sec)
mysql> select legajo,promedio,
-> case when promedio<4 then 'reprobado'
-> when promedio<4 and promedio<7 then 'regular'
-> else 'promocionado'
-> end as 'estado'
-> from alumnos;
+--------+----------+--------------+
| legajo | promedio | estado
|
+--------+----------+--------------+
| 3456 |
8.50 | promocionado |
| 3556 |
7.00 | promocionado |
| 2756 |
4.80 | promocionado |
| 4856 |
3.20 | reprobado
|
| 7856 |
6.40 | promocionado |
+--------+----------+--------------+
5 rows in set (0.00 sec)

62 - Varias tablas (join)

mysql> use practica;


Database changed
mysql> create table clientes(
-> codigo int unsigned auto_increment,
-> nombre varchar(30) not null,
-> domicilio varchar(30),
-> ciudad varchar(20),
-> codigoprovincia tinyint unsigned,
-> telefono varchar(11),
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> create table provincias(
-> codigo tinyint unsigned auto_increment,
-> nombre varchar(20),
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> describe provincias;
+--------+---------------------+------+-----+---------+----------------+
| Field | Type
| Null | Key | Default | Extra
|
+--------+---------------------+------+-----+---------+----------------+
| codigo | tinyint(3) unsigned | NO | PRI | NULL
| auto_increment |
| nombre | varchar(20)
| YES |
| NULL
|
|
+--------+---------------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)
mysql> insert into provincias (nombre) values('Cordoba');

Query OK, 1 row affected (0.02 sec)


mysql> insert into provincias (nombre) values('Santa Fe');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre) values('Corrientes');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre) values('Misiones');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre) values('Salta');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre) values('Buenos Aires');
Query OK, 1 row affected (0.02 sec)
mysql> insert into provincias (nombre) values('Neuquen');
Query OK, 1 row affected (0.00 sec)
mysql> describe clientes;
+-----------------+---------------------+------+-----+---------+---------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------------+---------------------+------+-----+---------+---------------+
| codigo
| int(10) unsigned
| NO | PRI | NULL
| auto_increment
|
| nombre
| varchar(30)
| NO |
| NULL
|
|
| domicilio
| varchar(30)
| YES |
| NULL
|
|
| ciudad
| varchar(20)
| YES |
| NULL
|
|
| codigoprovincia | tinyint(3) unsigned | YES |
| NULL
|
|
| telefono
| varchar(11)
| YES |
| NULL
|
|
+-----------------+---------------------+------+-----+---------+---------------mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('lopez marcos','colon 111','cordoba',1,'null');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('perez ana','san martin 222','cruz del eje',1,'4578585');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Garcia Juan', 'Rivadavia 333', 'Villa Maria',1,'4578445');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Perez Luis', 'Sarmiento 444', 'Rosario',2,null);
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Pereyra Lucas', 'San Martin 555', 'Cruz del Eje',1,'4253685');

Query OK, 1 row affected (0.01 sec)


mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Gomez Ines', 'San Martin 666', 'Santa Fe',2,'0345252525');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Torres Fabiola', 'Alem 777', 'Villa del Rosario',1,'4554455');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Lopez Carlos', 'Irigoyen 888', 'Cruz del Eje',1,null);
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Ramos Betina', 'San Martin 999', 'Cordoba',1,'4223366');
Query OK, 1 row affected (0.02 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Lopez Lucas', 'San Martin 1010', 'Posadas',4,'0457858745');
Query OK, 1 row affected (0.00 sec)
mysql> select c.nombre,c.domicilio,c.ciudad,p.nombre,c.telefono
-> from clientes as c
-> join provincias as p
-> on c.codigoprovincia=p.codigo;
+----------------+-----------------+-------------------+----------+------------+
| nombre

| domicilio

| ciudad

| nombre

| telefono

+----------------+-----------------+-------------------+----------+------------+
| lopez marcos

| colon 111

| perez ana

| cordoba

| Cordoba | null

| san martin 222 | cruz del eje

| Cordoba | 4578585

| Garcia Juan

| Rivadavia 333

| Villa Maria

| Cordoba | 4578445

| Perez Luis

| Sarmiento 444

| Rosario

| Santa Fe | NULL

| Pereyra Lucas | San Martin 555 | Cruz del Eje

| Cordoba | 4253685

| Gomez Ines

| Santa Fe | 0345252525 |

| San Martin 666 | Santa Fe

| Torres Fabiola | Alem 777

| Villa del Rosario | Cordoba | 4554455

| Lopez Carlos

| Irigoyen 888

| Cruz del Eje

| Cordoba | NULL

| Ramos Betina

| San Martin 999 | Cordoba

| Cordoba | 4223366

| Lopez Lucas

| San Martin 1010 | Posadas

| Misiones | 0457858745 |

+----------------+-----------------+-------------------+----------+------------+
10 rows in set (0.00 sec)
mysql>
->
->
->

select c.nombre,c.domicilio,c.ciudad,p.nombre,c.telefono
from clientes as c
join provincias as p
on c.codigoprovincia=p.codigo;

+----------------+-----------------+-------------------+----------+------------+
| nombre

| domicilio

| ciudad

| nombre

| telefono

+----------------+-----------------+-------------------+----------+------------+
| lopez marcos

| colon 111

| perez ana

| cordoba

| Cordoba | null

| san martin 222 | cruz del eje

| Cordoba | 4578585

| Garcia Juan

| Rivadavia 333

| Villa Maria

| Cordoba | 4578445

| Perez Luis

| Sarmiento 444

| Rosario

| Santa Fe | NULL

| Pereyra Lucas | San Martin 555 | Cruz del Eje

| Cordoba | 4253685

| Gomez Ines

| Santa Fe | 0345252525 |

| San Martin 666 | Santa Fe

| Torres Fabiola | Alem 777

| Villa del Rosario | Cordoba | 4554455

| Lopez Carlos

| Irigoyen 888

| Cruz del Eje

| Cordoba | NULL

| Ramos Betina

| San Martin 999 | Cordoba

| Cordoba | 4223366

| Lopez Lucas

| San Martin 1010 | Posadas

| Misiones | 0457858745 |

+----------------+-----------------+-------------------+----------+------------+
10 rows in set (0.00 sec)
mysql> select c.nombre,c.domicilio,c.ciudad,p.nombre,c.telefono
-> from clientes as c
-> join provincias as p
-> on c.codigoprovincia=p.codigo
-> order by c.nombre;
+----------------+-----------------+-------------------+----------+------------+
| nombre

| domicilio

| ciudad

| nombre

| telefono

+----------------+-----------------+-------------------+----------+------------+
| Garcia Juan

| Rivadavia 333

| Gomez Ines

| San Martin 666 | Santa Fe

| Santa Fe | 0345252525 |

| Lopez Carlos

| Irigoyen 888

| Cordoba | NULL

| Lopez Lucas

| San Martin 1010 | Posadas

| Misiones | 0457858745 |

| lopez marcos

| colon 111

| Cordoba | null

| Pereyra Lucas | San Martin 555 | Cruz del Eje

| Cordoba | 4253685

| perez ana

| san martin 222 | cruz del eje

| Cordoba | 4578585

| Perez Luis

| Sarmiento 444

| Santa Fe | NULL

| Ramos Betina

| San Martin 999 | Cordoba

| Cordoba | 4223366

| Villa del Rosario | Cordoba | 4554455

| Torres Fabiola | Alem 777

| Villa Maria

| Cruz del Eje

| cordoba

| Rosario

| Cordoba | 4578445

+----------------+-----------------+-------------------+----------+------------+
10 rows in set (0.03 sec)
mysql>
->
->
->

select c.nombre,c.domicilio,c.ciudad,p.nombre,c.telefono
from clientes as c
join provincias as p
on codigoprovincia=codigo

63 - Clave fornea.
mysql> use practica;
Database changed
mysql> create table clientes (
-> codigo int unsigned auto_increment,
-> nombre varchar(30) not null,
-> domicilio varchar(30),
-> ciudad varchar(20),
-> codigoprovincia tinyint unsigned,
-> telefono varchar(11),
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> create table provincias(
-> codigo tinyint unsigned auto_increment,
-> nombre varchar(20),
-> primary key (codigo)
-> );
Query OK, 0 rows affected (0.36 sec)
mysql> describe provincias;
+--------+---------------------+------+-----+---------+----------------+
| Field | Type
| Null | Key | Default | Extra
|
+--------+---------------------+------+-----+---------+----------------+
| codigo | tinyint(3) unsigned | NO | PRI | NULL
| auto_increment |
| nombre | varchar(20)
| YES |
| NULL
|
|
+--------+---------------------+------+-----+---------+----------------+
2 rows in set (0.02 sec)
mysql> insert into provincias(codigo,nombre) values(1,'Cordoba');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias(codigo,nombre) values(2,'Santa Fe');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias(codigo,nombre) values(30,'Misiones');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias(codigo,nombre) values(13,'Salta');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias(codigo,nombre) values(15,'Buenos Aires');
Query OK, 1 row affected (0.00 sec)

mysql> insert into provincias(codigo,nombre) values(20,'Neuquen');


Query OK, 1 row affected (0.14 sec)
mysql> describe clientes;
+-----------------+---------------------+------+-----+---------+---------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------------+---------------------+------+-----+---------+---------------+
| codigo
| int(10) unsigned
| NO | PRI | NULL
| auto_increment
|
| nombre
| varchar(30)
| NO |
| NULL
|
|
| domicilio
| varchar(30)
| YES |
| NULL
|
|
| ciudad
| varchar(20)
| YES |
| NULL
|
|
| codigoprovincia | tinyint(3) unsigned | YES |
| NULL
|
|
| telefono
| varchar(11)
| YES |
| NULL
|
|
+-----------------+---------------------+------+-----+---------+---------------+
6 rows in set (0.02 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) v
alues ('Perez Ana', 'San Martin 222', 'Cruz del Eje',1,'4578585');
Query OK, 1 row affected (0.33 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Garcia Juan', 'Rivadavia 333', 'Villa Maria',1,'4578445');
Query OK, 1 row affected (0.36 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Perez Luis', 'Sarmiento 444', 'Rosario',2,null);
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Ramos Betina', 'San Martin 999', 'Bahia Blanca',15,'4223366');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Lopez Lucas', 'San Martin 1010', 'Posadas',30,'0457858745');
Query OK, 1 row affected (0.02 sec)
mysql> select c.nombre,c.ciudad,p.nombre
-> from clientes as c
-> left join provincias as p
-> on c.codigoprovincia=p.codigo;
+--------------+--------------+--------------+
| nombre
| ciudad
| nombre
|
+--------------+--------------+--------------+
| Perez Ana
| Cruz del Eje | Cordoba
|
| Garcia Juan | Villa Maria | Cordoba
|
| Perez Luis | Rosario
| Santa Fe
|
| Ramos Betina | Bahia Blanca | Buenos Aires |
| Lopez Lucas | Posadas
| Misiones
|
+--------------+--------------+--------------+

5 rows in set (0.00 sec)


mysql> select * from clientes;
+--------+--------------+-----------------+--------------+-----------------+-----------+
| codigo | nombre
| domicilio
| ciudad
| codigoprovincia | tel
efono |
+--------+--------------+-----------------+--------------+-----------------+-----------+
|
1 | Perez Ana
| San Martin 222 | Cruz del Eje |
1 | 457
8585
|
|
2 | Garcia Juan | Rivadavia 333 | Villa Maria |
1 | 457
8445
|
|
3 | Perez Luis | Sarmiento 444 | Rosario
|
2 | NUL
L
|
|
4 | Ramos Betina | San Martin 999 | Bahia Blanca |
15 | 422
3366
|
|
5 | Lopez Lucas | San Martin 1010 | Posadas
|
30 | 045
7858745 |
+--------+--------------+-----------------+--------------+-----------------+-----------+
5 rows in set (0.00 sec)
mysql> select c.nombre,c.ciudad,p.nombre
-> from clientes as c
-> left join provincias as p
-> on c.codigoprovincia=p.codigo;
+--------------+--------------+--------------+
| nombre
| ciudad
| nombre
|
+--------------+--------------+--------------+
| Perez Ana
| Cruz del Eje | Cordoba
|
| Garcia Juan | Villa Maria | Cordoba
|
| Perez Luis | Rosario
| Santa Fe
|
| Ramos Betina | Bahia Blanca | Buenos Aires |
| Lopez Lucas | Posadas
| Misiones
|
+--------------+--------------+--------------+
5 rows in set (0.00 sec)
mysql> alter table provincias
-> modify codigo char(1);
ERROR 1406 (22001): Data too long for column 'codigo' at row 3
mysql>

64 - Varias tablas (left join)


mysql> use practica;
Database changed
mysql> create table clientes (
-> codigo int unsigned auto_increment,
-> nombre varchar(30) not null,
-> domicilio varchar(30),
-> ciudad varchar(20),
-> codigoProvincia tinyint unsigned,
-> telefono varchar(11),

-> primary key(codigo)


-> );
Query OK, 0 rows affected (0.03 sec)
mysql> create table provincias(
-> codigo tinyint unsigned auto_increment,
-> nombre varchar(20),
-> primary key (codigo)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> describe provincias;
+--------+---------------------+------+-----+---------+----------------+
| Field | Type
| Null | Key | Default | Extra
|
+--------+---------------------+------+-----+---------+----------------+
| codigo | tinyint(3) unsigned | NO | PRI | NULL
| auto_increment |
| nombre | varchar(20)
| YES |
| NULL
|
|
+--------+---------------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)
mysql> insert into provincias (nombre) values('Cordoba');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre) values('Santa Fe');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre) values('Corrientes');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre) values('Misiones');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre) values('Salta');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre) values('Buenos Aires');
Query OK, 1 row affected (0.02 sec)
mysql> insert into provincias (nombre) values('Neuquen');
Query OK, 1 row affected (0.00 sec)
mysql> describe clientes;
+-----------------+---------------------+------+-----+---------+---------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------------+---------------------+------+-----+---------+---------------+
| codigo
| int(10) unsigned
| NO | PRI | NULL
| auto_increment
|
| nombre
| varchar(30)
| NO |
| NULL
|
|
| domicilio
| varchar(30)
| YES |
| NULL
|
|
| ciudad
| varchar(20)
| YES |
| NULL
|
|
| codigoProvincia | tinyint(3) unsigned | YES |
| NULL
|
|
| telefono
| varchar(11)
| YES |
| NULL
|
|

+-----------------+---------------------+------+-----+---------+---------------+
6 rows in set (0.01 sec)
mysql>
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
values ('Lopez Marcos', 'Colon 111', 'Crdoba',1,'null');
ERROR 1366 (HY000): Incorrect string value: '\xA2rdoba' for column 'ciudad' at r
ow 1
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Perez Ana', 'San Martin 222', 'Cruz del Eje',1,'4578585');
Query OK, 1 row affected (0.02 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Garcia Juan', 'Rivadavia 333', 'Villa Maria',1,'4578445');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Perez Luis', 'Sarmiento 444', 'Rosario',2,null);
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Pereyra Lucas', 'San Martin 555', 'Cruz del Eje',1,'4253685');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Gomez Ines', 'San Martin 666', 'Santa Fe',2,'0345252525');
Query OK, 1 row affected (0.02 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Torres Fabiola', 'Alem 777', 'Villa del Rosario',1,'4554455');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Lopez Carlos', 'Irigoyen 888', 'Cruz del Eje',1,null);
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Ramos Betina', 'San Martin 999', 'Cordoba',1,'4223366');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Lopez Lucas', 'San Martin 1010', 'Posadas',4,'0457858745');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Lopez Marcos', 'Colon 111', 'Crdoba',1,'null');
ERROR 1366 (HY000): Incorrect string value: '\xA2rdoba' for column 'ciudad' at r
ow 1
mysql> select p.codigo,p.nombre from provincias as p
-> left join clientes as c
-> on c.codigoProvincia=p.codigo
-> where c.codigoprovincia is null;
+--------+--------------+
| codigo | nombre
|
+--------+--------------+
|
3 | Corrientes |
|
5 | Salta
|

|
6 | Buenos Aires |
|
7 | Neuquen
|
+--------+--------------+
4 rows in set (0.00 sec)
mysql> select distinct p.codigo,p.nombre from provincias as p
-> left join clientes as c
-> on c.codigoProvincia=p.codigo
-> where c.codigoprovincia is not null;
+--------+----------+
| codigo | nombre |
+--------+----------+
|
1 | Cordoba |
|
2 | Santa Fe |
|
4 | Misiones |
+--------+----------+
3 rows in set (0.00 sec)
mysql> select distinct codigo,p.nombre from provincias as p
-> left join clientes as c
-> on c.codigoProvincia=p.codigo
-> where c.codigoprovincia is not null;
ERROR 1052 (23000): Column 'codigo' in field list is ambiguous
mysql>

65 - Varias tablas (right join)

mysql> use practica;


Database changed
mysql> create table socios(
-> documento char(8) not null,
-> nombre varchar(30),
-> domicilio varchar(30),
-> primary key(documento)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> create table inscriptos(
-> documento char(8) not null,
-> deporte varchar(15) not null,
-> ao year,
-> matricula char(1), /*si esta paga ='s' sino 'n'*/
-> primary key(documento,deporte,ao)
-> );
ERROR 1300 (HY000): Invalid utf8 character string: 'a\xA4o'
mysql> create table inscriptos(
-> documento char(8) not null,
-> deporte varchar(15) not null,
-> anio year,
-> matricula char(1), /*si esta paga ='s' sino 'n'*/
-> primary key(documento,deporte,anio)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> describe registros;
ERROR 1146 (42S02): Table 'practica.registros' doesn't exist

mysql> describe socios;


+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| documento | char(8)
| NO | PRI | NULL
|
|
| nombre
| varchar(30) | YES |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.02 sec)
mysql> insert into socios values('22333444','Juan Perez','Colon 234');
Query OK, 1 row affected (0.02 sec)
mysql> insert into socios values('23333444','Maria Lopez','Sarmiento 465');
Query OK, 1 row affected (0.00 sec)
mysql> insert into socios values('24333444','Antonio Juarez','Caseros 980');
Query OK, 1 row affected (0.00 sec)
mysql> insert into socios values('25333444','Marcelo Pereyra','Sucre 349');
Query OK, 1 row affected (0.01 sec)
mysql> describe inscriptos;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| documento | char(8)
| NO | PRI | NULL
|
|
| deporte | varchar(15) | NO | PRI | NULL
|
|
| anio
| year(4)
| NO | PRI | 0000
|
|
| matricula | char(1)
| YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> insert into inscriptos values ('22333444','natacion','2005','s');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values ('22333444','natacion','2006','n');
Query OK, 1 row affected (0.02 sec)
mysql> insert into inscriptos values ('23333444','natacion','2005','s');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values ('23333444','tenis','2006','s');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values ('23333444','natacion','2006','s');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values ('24333444','tenis','2006','n');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values ('24333444','basquet','2006','n');
Query OK, 1 row affected (0.00 sec)
mysql> select s.documento,nombre,i.deporte,i.ao,i.matricula
-> from socios as s
-> left join inscriptos as i
-> on s.documento=i.documento;
ERROR 1300 (HY000): Invalid utf8 character string: 'a\xA4o'
mysql> select s.documento,nombre,i.deporte,i.anio,i.matricula

-> from socios as s


-> left join inscriptos as i
-> on s.documento=i.documento;
+-----------+-----------------+----------+------+-----------+
| documento | nombre
| deporte | anio | matricula |
+-----------+-----------------+----------+------+-----------+
| 22333444 | Juan Perez
| natacion | 2005 | s
|
| 22333444 | Juan Perez
| natacion | 2006 | n
|
| 23333444 | Maria Lopez
| natacion | 2005 | s
|
| 23333444 | Maria Lopez
| natacion | 2006 | s
|
| 23333444 | Maria Lopez
| tenis
| 2006 | s
|
| 24333444 | Antonio Juarez | basquet | 2006 | n
|
| 24333444 | Antonio Juarez | tenis
| 2006 | n
|
| 25333444 | Marcelo Pereyra | NULL
| NULL | NULL
|
+-----------+-----------------+----------+------+-----------+
8 rows in set (0.00 sec)
mysql> select s.documento,nombre,i.deporte,i.anio,i.matricula
-> from inscriptos as i
-> right join socios as s
-> on s.documento=i.documento;
+-----------+-----------------+----------+------+-----------+
| documento | nombre
| deporte | anio | matricula |
+-----------+-----------------+----------+------+-----------+
| 22333444 | Juan Perez
| natacion | 2005 | s
|
| 22333444 | Juan Perez
| natacion | 2006 | n
|
| 23333444 | Maria Lopez
| natacion | 2005 | s
|
| 23333444 | Maria Lopez
| natacion | 2006 | s
|
| 23333444 | Maria Lopez
| tenis
| 2006 | s
|
| 24333444 | Antonio Juarez | basquet | 2006 | n
|
| 24333444 | Antonio Juarez | tenis
| 2006 | n
|
| 25333444 | Marcelo Pereyra | NULL
| NULL | NULL
|
+-----------+-----------------+----------+------+-----------+
8 rows in set (0.00 sec)
mysql> insert into inscriptos values ('26333444','basquet','2006','n');
Query OK, 1 row affected (0.02 sec)
mysql> select s.documento,nombre,i.deporte,i.anio,i.matricula
-> from socios as s
-> right join socios as s
-> on s.documento=i.documento;
ERROR 1066 (42000): Not unique table/alias: 's'
mysql>

66 - Varias tablas (cross join)


mysql> use practica;
Database changed
mysql> create table guardias(
-> documento char(8),
-> nombre varchar(30),
-> sexo char(1), /* 'f' o 'm' */
-> domicilio varchar(30),
-> primary key (documento)
-> );

Query OK, 0 rows affected (0.01 sec)


mysql>
mysql> create table tareas(
-> codigo tinyint unsigned auto_increment,
-> domicilio varchar(30),
-> descripcion varchar(30),
-> horario char(2), /* 'AM' o 'PM'*/
-> primary key (codigo)
-> );
Query OK, 0 rows affected (0.05 sec)
mysql> describe guardias;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| documento | char(8)
| NO | PRI |
|
|
| nombre
| varchar(30) | YES |
| NULL
|
|
| sexo
| char(1)
| YES |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> insert into guardias values('22333444','Juan Perez','m','Colon 123');
Query OK, 1 row affected (0.00 sec)
mysql> insert into guardias values('23333444','Lorena Viale','f','Sarmiento 988
');
Query OK, 1 row affected (0.00 sec)
mysql> insert into guardias values('24333444','Alberto Torres','m','San Martin
567');
Query OK, 1 row affected (0.00 sec)
mysql> insert into guardias values('25333444','Luis Ferreyra','m','Chacabuco 23
5');
Query OK, 1 row affected (0.00 sec)
mysql> insert into guardias values('26333444','Irma Gonzalez','f','Mariano More
no 111');
Query OK, 1 row affected (0.01 sec)
mysql> describe tareas;
+-------------+---------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------------+---------------------+------+-----+---------+----------------+
| codigo
| tinyint(3) unsigned | NO | PRI | NULL
| auto_increment |
| domicilio | varchar(30)
| YES |
| NULL
|
|
| descripcion | varchar(30)
| YES |
| NULL
|
|
| horario
| char(2)
| YES |
| NULL
|
|
+-------------+---------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
mysql> insert into tareas (domicilio,descripcion,horario)
-> values('Colon 1111','vigilancia exterior','AM');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tareas (domicilio,descripcion,horario)
-> values('Urquiza 234','vigilancia exterior','PM');
Query OK, 1 row affected (0.00 sec)

mysql> insert into tareas (domicilio,descripcion,horario)


-> values('Peru 345','vigilancia interior','AM');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tareas (domicilio,descripcion,horario)
-> values('Avellaneda 890','vigilancia interior','PM');
Query OK, 1 row affected (0.00 sec)
mysql> select nombre,t.domicilio,descripcion
-> from guardias
-> cross join tareas as t;
+----------------+----------------+---------------------+
| nombre
| domicilio
| descripcion
|
+----------------+----------------+---------------------+
| Juan Perez
| Colon 1111
| vigilancia exterior |
| Juan Perez
| Urquiza 234
| vigilancia exterior |
| Juan Perez
| Peru 345
| vigilancia interior |
| Juan Perez
| Avellaneda 890 | vigilancia interior |
| Lorena Viale | Colon 1111
| vigilancia exterior |
| Lorena Viale | Urquiza 234
| vigilancia exterior |
| Lorena Viale | Peru 345
| vigilancia interior |
| Lorena Viale | Avellaneda 890 | vigilancia interior |
| Alberto Torres | Colon 1111
| vigilancia exterior |
| Alberto Torres | Urquiza 234
| vigilancia exterior |
| Alberto Torres | Peru 345
| vigilancia interior |
| Alberto Torres | Avellaneda 890 | vigilancia interior |
| Luis Ferreyra | Colon 1111
| vigilancia exterior |
| Luis Ferreyra | Urquiza 234
| vigilancia exterior |
| Luis Ferreyra | Peru 345
| vigilancia interior |
| Luis Ferreyra | Avellaneda 890 | vigilancia interior |
| Irma Gonzalez | Colon 1111
| vigilancia exterior |
| Irma Gonzalez | Urquiza 234
| vigilancia exterior |
| Irma Gonzalez | Peru 345
| vigilancia interior |
| Irma Gonzalez | Avellaneda 890 | vigilancia interior |
+----------------+----------------+---------------------+
20 rows in set (0.00 sec)
mysql> select nombre,t.domicilio,descripcion
-> from guardias
-> join tareas as t;
+----------------+----------------+---------------------+
| nombre
| domicilio
| descripcion
|
+----------------+----------------+---------------------+
| Juan Perez
| Colon 1111
| vigilancia exterior |
| Juan Perez
| Urquiza 234
| vigilancia exterior |
| Juan Perez
| Peru 345
| vigilancia interior |
| Juan Perez
| Avellaneda 890 | vigilancia interior |
| Lorena Viale | Colon 1111
| vigilancia exterior |
| Lorena Viale | Urquiza 234
| vigilancia exterior |
| Lorena Viale | Peru 345
| vigilancia interior |
| Lorena Viale | Avellaneda 890 | vigilancia interior |
| Alberto Torres | Colon 1111
| vigilancia exterior |
| Alberto Torres | Urquiza 234
| vigilancia exterior |
| Alberto Torres | Peru 345
| vigilancia interior |
| Alberto Torres | Avellaneda 890 | vigilancia interior |
| Luis Ferreyra | Colon 1111
| vigilancia exterior |
| Luis Ferreyra | Urquiza 234
| vigilancia exterior |
| Luis Ferreyra | Peru 345
| vigilancia interior |
| Luis Ferreyra | Avellaneda 890 | vigilancia interior |

| Irma Gonzalez | Colon 1111


| vigilancia exterior |
| Irma Gonzalez | Urquiza 234
| vigilancia exterior |
| Irma Gonzalez | Peru 345
| vigilancia interior |
| Irma Gonzalez | Avellaneda 890 | vigilancia interior |
+----------------+----------------+---------------------+
20 rows in set (0.00 sec)
mysql>

67 - Varias tablas (natural join)


mysql> use practica;
Database changed
mysql> create table socios(
-> documento char(8) not null,
-> nombre varchar(30),
-> domicilio varchar(30),
-> primary key(documento)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> create table inscriptos(
-> documento char(8) not null,
-> deporte varchar(15) not null,
-> anio year,
-> matricula char(1),/*si esta paga='s' sino 'n'*/
-> primary key(documento,deporte,anio)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> describe socios;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| documento | char(8)
| NO | PRI | NULL
|
|
| nombre
| varchar(30) | YES |
| NULL
|
|
| domicilio | varchar(30) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> insert into socios values('22333444','Juan Perez','Colon 234');
Query OK, 1 row affected (0.00 sec)
mysql> insert into socios values('23333444','Maria Lopez','Sarmiento 465');
Query OK, 1 row affected (0.00 sec)
mysql> insert into socios values('24333444','Antonio Juarez','Caseros 980');
Query OK, 1 row affected (0.00 sec)
mysql> insert into socios values('25333444','Marcelo Pereyra','Sucre 349');
Query OK, 1 row affected (0.02 sec)
mysql> describe inscriptos;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+

| documento | char(8)
| NO | PRI | NULL
|
|
| deporte | varchar(15) | NO | PRI | NULL
|
|
| anio
| year(4)
| NO | PRI | 0000
|
|
| matricula | char(1)
| YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.02 sec)
mysql> insert into inscriptos values ('22333444','natacion','2005','s');
Query OK, 1 row affected (0.02 sec)
mysql> insert into inscriptos values ('22333444','natacion','2006','n');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values ('23333444','natacion','2005','s');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values ('23333444','tenis','2006','s');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values ('23333444','natacion','2006','s');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values ('24333444','tenis','2006','n');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values ('24333444','basquet','2006','n');
Query OK, 1 row affected (0.00 sec)
mysql> select nombre,i.*
-> from socios as s
-> natural join inscriptos as i;
+----------------+-----------+----------+------+-----------+
| nombre
| documento | deporte | anio | matricula |
+----------------+-----------+----------+------+-----------+
| Juan Perez
| 22333444 | natacion | 2005 | s
|
| Juan Perez
| 22333444 | natacion | 2006 | n
|
| Maria Lopez
| 23333444 | natacion | 2005 | s
|
| Maria Lopez
| 23333444 | natacion | 2006 | s
|
| Maria Lopez
| 23333444 | tenis
| 2006 | s
|
| Antonio Juarez | 24333444 | basquet | 2006 | n
|
| Antonio Juarez | 24333444 | tenis
| 2006 | n
|
+----------------+-----------+----------+------+-----------+
7 rows in set (0.00 sec)
mysql> select nombre,i.*
-> from socios as s
-> join inscriptos as i
-> on s.documento=i.documento;
+----------------+-----------+----------+------+-----------+
| nombre
| documento | deporte | anio | matricula |
+----------------+-----------+----------+------+-----------+
| Juan Perez
| 22333444 | natacion | 2005 | s
|
| Juan Perez
| 22333444 | natacion | 2006 | n
|
| Maria Lopez
| 23333444 | natacion | 2005 | s
|
| Maria Lopez
| 23333444 | natacion | 2006 | s
|
| Maria Lopez
| 23333444 | tenis
| 2006 | s
|
| Antonio Juarez | 24333444 | basquet | 2006 | n
|
| Antonio Juarez | 24333444 | tenis
| 2006 | n
|
+----------------+-----------+----------+------+-----------+
7 rows in set (0.00 sec)

mysql> select nombre,i.*


-> from socios as s
-> left join inscriptos as i
-> on s.documento=i.documento;
+-----------------+-----------+----------+------+-----------+
| nombre
| documento | deporte | anio | matricula |
+-----------------+-----------+----------+------+-----------+
| Juan Perez
| 22333444 | natacion | 2005 | s
|
| Juan Perez
| 22333444 | natacion | 2006 | n
|
| Maria Lopez
| 23333444 | natacion | 2005 | s
|
| Maria Lopez
| 23333444 | natacion | 2006 | s
|
| Maria Lopez
| 23333444 | tenis
| 2006 | s
|
| Antonio Juarez | 24333444 | basquet | 2006 | n
|
| Antonio Juarez | 24333444 | tenis
| 2006 | n
|
| Marcelo Pereyra | NULL
| NULL
| NULL | NULL
|
+-----------------+-----------+----------+------+-----------+
8 rows in set (0.00 sec)
mysql> select nombre,i.*
-> from socios as s
-> natural left join inscriptos as i;
+-----------------+-----------+----------+------+-----------+
| nombre
| documento | deporte | anio | matricula |
+-----------------+-----------+----------+------+-----------+
| Juan Perez
| 22333444 | natacion | 2005 | s
|
| Juan Perez
| 22333444 | natacion | 2006 | n
|
| Maria Lopez
| 23333444 | natacion | 2005 | s
|
| Maria Lopez
| 23333444 | natacion | 2006 | s
|
| Maria Lopez
| 23333444 | tenis
| 2006 | s
|
| Antonio Juarez | 24333444 | basquet | 2006 | n
|
| Antonio Juarez | 24333444 | tenis
| 2006 | n
|
| Marcelo Pereyra | NULL
| NULL
| NULL | NULL
|
+-----------------+-----------+----------+------+-----------+
8 rows in set (0.00 sec)
mysql> select nombre,i.*
-> from inscriptos as i
-> natural right join socios as s;
+-----------------+-----------+----------+------+-----------+
| nombre
| documento | deporte | anio | matricula |
+-----------------+-----------+----------+------+-----------+
| Juan Perez
| 22333444 | natacion | 2005 | s
|
| Juan Perez
| 22333444 | natacion | 2006 | n
|
| Maria Lopez
| 23333444 | natacion | 2005 | s
|
| Maria Lopez
| 23333444 | natacion | 2006 | s
|
| Maria Lopez
| 23333444 | tenis
| 2006 | s
|
| Antonio Juarez | 24333444 | basquet | 2006 | n
|
| Antonio Juarez | 24333444 | tenis
| 2006 | n
|
| Marcelo Pereyra | NULL
| NULL
| NULL | NULL
|
+-----------------+-----------+----------+------+-----------+
8 rows in set (0.00 sec)
mysql>

69 - join, group by y funciones de agrupamiento.


mysql> use practica;
Database changed
mysql> create table clientes (
-> codigo int unsigned auto_increment,
-> nombre varchar(30) not null,
-> domicilio varchar(30),
-> ciudad varchar(20),
-> codigoprovincia tinyint unsigned,
-> telefono varchar(11),
-> primary key(codigo)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> create table provincias(
-> codigo tinyint unsigned auto_increment,
-> nombre varchar(20),
-> primary key (codigo)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> describe provincias;
+--------+---------------------+------+-----+---------+----------------+
| Field | Type
| Null | Key | Default | Extra
|
+--------+---------------------+------+-----+---------+----------------+
| codigo | tinyint(3) unsigned | NO | PRI | NULL
| auto_increment |
| nombre | varchar(20)
| YES |
| NULL
|
|
+--------+---------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
mysql> insert into provincias (nombre) values('Cordoba');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre) values('Santa Fe');
Query OK, 1 row affected (0.02 sec)
mysql> insert into provincias (nombre) values('Corrientes');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre)
Query OK, 1 row affected (0.02 sec)

values('Misiones');

mysql> insert into provincias (nombre) values('Salta');


Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre) values('Buenos Aires');
Query OK, 1 row affected (0.00 sec)
mysql> insert into provincias (nombre) values('Neuquen');
Query OK, 1 row affected (0.00 sec)
mysql> describe clientes;
+-----------------+---------------------+------+-----+---------+---------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------------+---------------------+------+-----+---------+----------------

+
| codigo
| int(10) unsigned
| NO | PRI | NULL
| auto_increment
|
| nombre
| varchar(30)
| NO |
| NULL
|
|
| domicilio
| varchar(30)
| YES |
| NULL
|
|
| ciudad
| varchar(20)
| YES |
| NULL
|
|
| codigoprovincia | tinyint(3) unsigned | YES |
| NULL
|
|
| telefono
| varchar(11)
| YES |
| NULL
|
|
+-----------------+---------------------+------+-----+---------+---------------+
6 rows in set (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Lopez Marcos', 'Colon 111', 'Crdoba',1,'null');
ERROR 1366 (HY000): Incorrect string value: '\xA2rdoba' for column 'ciudad' at r
ow 1
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Perez Ana', 'San Martin 222', 'Cruz del Eje',1,'4578585');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Garcia Juan', 'Rivadavia 333', 'Villa Maria',1,'4578445');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Perez Luis', 'Sarmiento 444', 'Rosario',2,null);
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Pereyra Lucas', 'San Martin 555', 'Cruz del Eje',1,'4253685');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Gomez Ines', 'San Martin 666', 'Santa Fe',2,'0345252525');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Torres Fabiola', 'Alem 777', 'Villa del Rosario',1,'4554455');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Lopez Carlos', 'Irigoyen 888', 'Cruz del Eje',1,null);
Query OK, 1 row affected (0.02 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Ramos Betina', 'San Martin 999', 'Cordoba',1,'4223366');
Query OK, 1 row affected (0.00 sec)
mysql> insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
-> values ('Lopez Lucas', 'San Martin 1010', 'Posadas',4,'0457858745');
Query OK, 1 row affected (0.01 sec)
mysql> select p.nombre,

-> count(c.codigoprovincia) as 'cant. clientes'


-> from provincias as p
-> join clientes as c
-> on p.codigo=c.codigoprovincia
-> group by p.nombre;
+----------+----------------+
| nombre | cant. clientes |
+----------+----------------+
| Cordoba |
6 |
| Misiones |
1 |
| Santa Fe |
2 |
+----------+----------------+
3 rows in set (0.03 sec)
mysql> select p.nombre,
-> count(c.codigoprovincia) as 'cant. clientes'
-> from provincias as p
-> left join clientes as c
-> on p.codigo=c.codigoprovincia
-> group by p.nombre;
+--------------+----------------+
| nombre
| cant. clientes |
+--------------+----------------+
| Buenos Aires |
0 |
| Cordoba
|
6 |
| Corrientes |
0 |
| Misiones
|
1 |
| Neuquen
|
0 |
| Salta
|
0 |
| Santa Fe
|
2 |
+--------------+----------------+
7 rows in set (0.00 sec)
mysql> select p.nombre,
-> count(c.codigoprovincia) as 'cant. clientes'
-> from provincias as p
-> join clientes as c
-> on p.codigo=c.codigoprovincia
-> group by p.nombre
-> having count(c.codigoprovincia)>=2;
+----------+----------------+
| nombre | cant. clientes |
+----------+----------------+
| Cordoba |
6 |
| Santa Fe |
2 |
+----------+----------------+
2 rows in set (0.00 sec)
mysql>

70 - join con ms de dos tablas.

mysql> use practica;


Database changed
mysql> create table peliculas (
-> codigo smallint unsigned auto_increment,
-> titulo varchar(30) not null,
-> actores varchar(40),
-> duracion tinyint unsigned,
-> primary key (codigo)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql>
mysql> create table socios(
-> codigo smallint unsigned auto_increment,
-> documento char(8),
-> nombre varchar(30),
-> domicilio varchar(30),
-> primary key (codigo)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql>
mysql> create table alquileres(
-> codigopelicula smallint unsigned not null,
-> codigosocio smallint unsigned not null,
-> fechaprestamo date not null,
-> fechadevolucion date,
-> primary key (codigopelicula,fechaprestamo)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> describe peliculas;
+----------+----------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+----------+----------------------+------+-----+---------+----------------+
| codigo | smallint(5) unsigned | NO | PRI | NULL
| auto_increment |
| titulo | varchar(30)
| NO |
| NULL
|
|
| actores | varchar(40)
| YES |
| NULL
|
|
| duracion | tinyint(3) unsigned | YES |
| NULL
|
|
+----------+----------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
mysql> insert into peliculas (titulo,actores,duracion)
-> values('Elsa y Fred','China Zorrilla',90);
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas (titulo,actores,duracion)
-> values('Mision imposible','Tom Cruise',120);
Query OK, 1 row affected (0.02 sec)
mysql> insert into peliculas (titulo,actores,duracion)
-> values('Mision imposible 2','Tom Cruise',180);
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas (titulo,actores,duracion)
-> values('Harry Potter y la piedra filosofal','Daniel H.',120);
ERROR 1406 (22001): Data too long for column 'titulo' at row 1
mysql> insert into peliculas (titulo,actores,duracion)
-> values('Harry Potter y la camara secreta','Daniel H.',150);

ERROR 1406 (22001): Data too long for column 'titulo' at row 1
mysql> describe socios;
+-----------+----------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------+----------------------+------+-----+---------+----------------+
| codigo
| smallint(5) unsigned | NO | PRI | NULL
| auto_increment |
| documento | char(8)
| YES |
| NULL
|
|
| nombre
| varchar(30)
| YES |
| NULL
|
|
| domicilio | varchar(30)
| YES |
| NULL
|
|
+-----------+----------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
mysql> insert into socios (documento,nombre)
-> values('22333444','Juan Lopez');
Query OK, 1 row affected (0.00 sec)
mysql> insert into socios (documento,nombre)
-> values('23333444','Diana Perez');
Query OK, 1 row affected (0.00 sec)
mysql> insert into socios (documento,nombre)
-> values('24333444','Luis Fuentes');
Query OK, 1 row affected (0.03 sec)
mysql> describe alquileres;
+-----------------+----------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------------+----------------------+------+-----+---------+-------+
| codigopelicula | smallint(5) unsigned | NO | PRI | NULL
|
|
| codigosocio
| smallint(5) unsigned | NO |
| NULL
|
|
| fechaprestamo | date
| NO | PRI | NULL
|
|
| fechadevolucion | date
| YES |
| NULL
|
|
+-----------------+----------------------+------+-----+---------+-------+
4 rows in set (0.02 sec)
mysql> insert into alquileres (codigopelicula,codigosocio,fechaprestamo)
-> values(1,1,'2006-07-02');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alquileres (codigopelicula,codigosocio,fechaprestamo)
-> values(2,1,'2006-07-02');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alquileres (codigopelicula,codigosocio,fechaprestamo)
-> values(3,1,'2006-07-12');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alquileres (codigopelicula,codigosocio,fechaprestamo)
-> values(1,2,'2006-08-02');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alquileres (codigopelicula,codigosocio,fechaprestamo)
-> values(3,2,'2006-08-12');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alquileres (codigopelicula,codigosocio,fechaprestamo)
-> values(4,2,'2006-08-02');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alquileres (codigopelicula,codigosocio,fechaprestamo)

-> values(1,3,'2006-09-02');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alquileres (codigopelicula,codigosocio,fechaprestamo)
-> values(2,3,'2006-08-02');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alquileres (codigopelicula,codigosocio,fechaprestamo)
-> values(3,3,'2006-08-15');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alquileres (codigopelicula,codigosocio,fechaprestamo)
-> values(4,3,'2006-08-22');
Query OK, 1 row affected (0.03 sec)
mysql> insert into alquileres (codigopelicula,codigosocio,fechaprestamo)
-> values(4,1,'2006-08-25');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alquileres (codigopelicula,codigosocio,fechaprestamo)
-> values(1,3,'2006-08-25');
Query OK, 1 row affected (0.00 sec)
mysql> select titulo,nombre,fechaprestamo,fechadevolucion from alquileres as a
-> join peliculas as p
-> on a.codigopelicula=p.codigo
-> join socios as s
-> on s.codigo=a.codigosocio;
+--------------------+--------------+---------------+-----------------+
| titulo
| nombre
| fechaprestamo | fechadevolucion |
+--------------------+--------------+---------------+-----------------+
| Elsa y Fred
| Juan Lopez | 2006-07-02
| NULL
|
| Mision imposible | Juan Lopez | 2006-07-02
| NULL
|
| Mision imposible 2 | Juan Lopez | 2006-07-12
| NULL
|
| Elsa y Fred
| Diana Perez | 2006-08-02
| NULL
|
| Mision imposible 2 | Diana Perez | 2006-08-12
| NULL
|
| Elsa y Fred
| Luis Fuentes | 2006-08-25
| NULL
|
| Elsa y Fred
| Luis Fuentes | 2006-09-02
| NULL
|
| Mision imposible | Luis Fuentes | 2006-08-02
| NULL
|
| Mision imposible 2 | Luis Fuentes | 2006-08-15
| NULL
|
+--------------------+--------------+---------------+-----------------+
9 rows in set (0.00 sec)
mysql> select p.titulo,count(*) from peliculas as p
-> join alquileres as a
-> on p.codigo=a.codigopelicula
-> group by p.titulo;
+--------------------+----------+
| titulo
| count(*) |
+--------------------+----------+
| Elsa y Fred
|
4 |
| Mision imposible |
2 |
| Mision imposible 2 |
3 |
+--------------------+----------+
3 rows in set (0.00 sec)
mysql> select s.nombre,count(a.codigopelicula) from socios as s
-> join alquileres as a
-> on s.codigo=a.codigosocio
-> group by s.nombre;

+--------------+-------------------------+
| nombre
| count(a.codigopelicula) |
+--------------+-------------------------+
| Diana Perez |
3 |
| Juan Lopez |
4 |
| Luis Fuentes |
5 |
+--------------+-------------------------+
3 rows in set (0.00 sec)
mysql> select s.nombre,count(distinct a.codigopelicula) from socios as s
-> join alquileres as a
-> on s.codigo=a.codigosocio
-> group by s.nombre;
+--------------+----------------------------------+
| nombre
| count(distinct a.codigopelicula) |
+--------------+----------------------------------+
| Diana Perez |
3 |
| Juan Lopez |
4 |
| Luis Fuentes |
4 |
+--------------+----------------------------------+
3 rows in set (0.00 sec)
mysql> select s.nombre,
-> monthname(a.fechaprestamo) as mes,
-> count(a.codigopelicula)
-> from socios as s
-> join alquileres as a
-> on s.codigo=a.codigosocio
-> group by s.nombre, mes
-> order by mes;
+--------------+-----------+-------------------------+
| nombre
| mes
| count(a.codigopelicula) |
+--------------+-----------+-------------------------+
| Luis Fuentes | August
|
4 |
| Juan Lopez | August
|
1 |
| Diana Perez | August
|
3 |
| Juan Lopez | July
|
3 |
| Luis Fuentes | September |
1 |
+--------------+-----------+-------------------------+
5 rows in set (0.05 sec)
mysql>

71 - Funcin de control if con varias tablas.


mysql> use practica;
Database changed
mysql> show tables;
+--------------------+
| Tables_in_practica |
+--------------------+
| agenda
|

| alquileres
|
| alumnos
|
| articulos
|
| autos
|
| cuenta
|
| cursos
|
| empleados
|
| guardias
|
| inmueble
|
| inscriptos
|
| libros
|
| medicamentos
|
| pedido
|
| peliculas
|
| prestamos
|
| provincias
|
| socios
|
| tareas
|
| visitantes
|
+--------------------+
20 rows in set (0.00 sec)
mysql> drop tables alumnos;
Query OK, 0 rows affected (0.06 sec)
mysql> use practica;
Database changed
mysql> create table alumnos(
-> documento char(8) not null,
-> nombre varchar(30),
-> primary key(documento)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> create table notas(
-> documento char(8) not null,
-> nota decimal(4,2) unsigned
-> );
Query OK, 0 rows affected (0.06 sec)
mysql> describe alumnos;
+-----------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| documento | char(8)
| NO | PRI | NULL
|
|
| nombre
| varchar(30) | YES |
| NULL
|
|
+-----------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> insert into alumnos values('22333444','Juan Perez');
Query OK, 1 row affected (0.02 sec)
mysql> insert into alumnos values('23555666','Marina Herrero');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alumnos values('24000333','Daniel Juarez');
Query OK, 1 row affected (0.00 sec)
mysql> insert into alumnos values('25222111','Hector Paz');

Query OK, 1 row affected (0.00 sec)


mysql> describe notas;
+-----------+-----------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-----------------------+------+-----+---------+-------+
| documento | char(8)
| NO |
| NULL
|
|
| nota
| decimal(4,2) unsigned | YES |
| NULL
|
|
+-----------+-----------------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> insert into notas values('22333444',7);
Query OK, 1 row affected (0.00 sec)
mysql> insert into notas values('23555666',8);
Query OK, 1 row affected (0.00 sec)
mysql> insert into notas values('24000333',3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into notas values('25222111',7);
Query OK, 1 row affected (0.00 sec)
mysql> insert into notas values('22333444',7);
Query OK, 1 row affected (0.02 sec)
mysql> insert into notas values('23555666',9);
Query OK, 1 row affected (0.00 sec)
mysql> insert into notas values('24000333',4);
Query OK, 1 row affected (0.00 sec)
mysql> insert into notas values('22333444',6);
Query OK, 1 row affected (0.00 sec)
mysql> insert into notas values('23555666',10);
Query OK, 1 row affected (0.00 sec)
mysql> insert into notas values('24000333',3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into notas values('25222111',9);
Query OK, 1 row affected (0.00 sec)
mysql> insert into notas values('23555666',10);
Query OK, 1 row affected (0.03 sec)
mysql> select a.documento,a.nombre,avg(nota),
-> case when avg(nota)<4 then 'reprobado'
->
when avg(nota)>=4 and avg(nota)<7 then 'regular'
->
else 'promocionado' end as condicion
-> from alumnos as a
-> join notas as n
-> on a.documento=n.documento
-> group by n.documento;
+-----------+----------------+-----------+--------------+
| documento | nombre
| avg(nota) | condicion
|
+-----------+----------------+-----------+--------------+
| 22333444 | Juan Perez
| 6.666667 | regular
|
| 23555666 | Marina Herrero | 9.250000 | promocionado |

| 24000333 | Daniel Juarez | 3.333333 | reprobado


|
| 25222111 | Hector Paz
| 8.000000 | promocionado |
+-----------+----------------+-----------+--------------+
4 rows in set (0.03 sec)
mysql> select a.documento,a.nombre,
-> if (avg(nota)>=4,'si','no') as aprobado
-> from alumnos as a
-> join notas as n
-> on a.documento=n.documento
-> group by n.documento;
+-----------+----------------+----------+
| documento | nombre
| aprobado |
+-----------+----------------+----------+
| 22333444 | Juan Perez
| si
|
| 23555666 | Marina Herrero | si
|
| 24000333 | Daniel Juarez | no
|
| 25222111 | Hector Paz
| si
|
+-----------+----------------+----------+
4 rows in set (0.00 sec)
mysql> select a.documento,a.nombre,
-> case count(*)
->
when 1 then '1 nota'
->
when 2 then '2 notas'
->
else 'mas de 2' end as 'cantidad de notas'
-> from alumnos as a
-> join notas as n
-> on a.documento=n.documento
-> group by n.documento
-> order by 'cantidad de notas';
+-----------+----------------+-------------------+
| documento | nombre
| cantidad de notas |
+-----------+----------------+-------------------+
| 22333444 | Juan Perez
| mas de 2
|
| 23555666 | Marina Herrero | mas de 2
|
| 24000333 | Daniel Juarez | mas de 2
|
| 25222111 | Hector Paz
| 2 notas
|
+-----------+----------------+-------------------+
4 rows in set (0.00 sec)
mysql>

72 - Variables de usuario.
mysql> use practica;
Database changed
mysql> drop table peliculas;
Query OK, 0 rows affected (0.00 sec)
mysql> use practica;

Database changed
mysql> create table peliculas (
-> codigo smallint unsigned auto_increment,
-> titulo varchar(30) not null,
-> actor varchar(30),
-> duracion tinyint unsigned,
-> primary key (codigo)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> describe peliculas;
+----------+----------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+----------+----------------------+------+-----+---------+----------------+
| codigo | smallint(5) unsigned | NO | PRI | NULL
| auto_increment |
| titulo | varchar(30)
| NO |
| NULL
|
|
| actor
| varchar(30)
| YES |
| NULL
|
|
| duracion | tinyint(3) unsigned | YES |
| NULL
|
|
+----------+----------------------+------+-----+---------+----------------+
4 rows in set (0.02 sec)
mysql> insert into peliculas (titulo,actor,duracion)
-> values('Elsa y Fred','China Zorrilla',90);
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas (titulo,actor,duracion)
-> values('Mision imposible','Tom Cruise',120);
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas (titulo,actor,duracion)
-> values('Mision imposible 2','Tom Cruise',180);
Query OK, 1 row affected (0.00 sec)
mysql> insert into peliculas (titulo,actor,duracion)
-> values('Harry Potter y la piedra filosofal','Daniel H.',120);
ERROR 1406 (22001): Data too long for column 'titulo' at row 1
mysql> insert into peliculas (titulo,actor,duracion)
-> values('Harry Potter y la camara secreta','Daniel H.',150);
ERROR 1406 (22001): Data too long for column 'titulo' at row 1
mysql> select @mayorduracion:=max(duracion), @menorduracion:= min(duracion) from
peliculas;
+-------------------------------+--------------------------------+
| @mayorduracion:=max(duracion) | @menorduracion:= min(duracion) |
+-------------------------------+--------------------------------+
|
180 |
90 |
+-------------------------------+--------------------------------+
1 row in set (0.00 sec)
mysql> select * from peliculas
-> where duracion=@mayorduracion or
-> duracion=@menorduracion;
+--------+--------------------+----------------+----------+
| codigo | titulo
| actor
| duracion |
+--------+--------------------+----------------+----------+
|
1 | Elsa y Fred
| China Zorrilla |
90 |
|
3 | Mision imposible 2 | Tom Cruise
|
180 |
+--------+--------------------+----------------+----------+
2 rows in set (0.00 sec)
mysql> select @actor:=actor

-> from peliculas


-> where duracion=@mayorduracion;
+---------------+
| @actor:=actor |
+---------------+
| Tom Cruise
|
+---------------+
1 row in set (0.00 sec)
mysql> select * from peliculas
-> where actores=@actor;
ERROR 1054 (42S22): Unknown column 'actores' in 'where clause'
mysql>

73 - Crear tabla a partir de otra (create - insert)


mysql> use practica;
Database changed
mysql> create table facturas(
-> numero int(10) zerofill auto_increment,
-> numeroitem smallint unsigned not null,
-> descripcion varchar(30),
-> precioporunidad decimal(5,2) unsigned,
-> cantidad tinyint unsigned,
-> primary key (numero,numeroitem)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> descripcion facturas;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'descr
ipcion facturas' at line 1
mysql> describe facturas;
+-----------------+---------------------------+------+-----+---------+---------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------------+---------------------------+------+-----+---------+---------------+
| numero
| int(10) unsigned zerofill | NO | PRI | NULL
| auto_incr
ement |
| numeroitem
| smallint(5) unsigned
| NO | PRI | NULL
|
|
| descripcion
| varchar(30)
| YES |
| NULL
|
|
| precioporunidad | decimal(5,2) unsigned
| YES |
| NULL
|
|
| cantidad
| tinyint(3) unsigned
| YES |
| NULL
|
|
+-----------------+---------------------------+------+-----+---------+---------------+
5 rows in set (0.00 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,canti
dad)
-> values(100,1,'escuadra 20 cm.',2.50,20);

Query OK, 1 row affected (0.00 sec)


mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(100,2,'escuadra 50 cm.',5,30);
Query OK, 1 row affected (0.00 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(100,3,'goma lapiz-tinta',0.35,100);
Query OK, 1 row affected (0.02 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(102,1,'lapices coloresx6',4.40,50);
Query OK, 1 row affected (0.00 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(102,2,'lapices coloresx12',8,60);
Query OK, 1 row affected (0.00 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(255,1,'lapices coloresx24',12.35,100);
Query OK, 1 row affected (0.01 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(567,1,'compas plastico',12,50);
Query OK, 1 row affected (0.00 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(567,2,'compas metal',18.90,80);
Query OK, 1 row affected (0.00 sec)
mysql> create table montofacturas
-> select numero,
->
sum(precioporunidad*cantidad) as total
->
from facturas
->
group by numero;
Query OK, 4 rows affected (0.09 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select*from monofacturas;
ERROR 1146 (42S02): Table 'practica.monofacturas' doesn't exist
mysql> describe monofacturas;
ERROR 1146 (42S02): Table 'practica.monofacturas' doesn't exist
mysql> describe montofacturas;
+--------+---------------------------+------+-----+------------+-------+
| Field | Type
| Null | Key | Default
| Extra |
+--------+---------------------------+------+-----+------------+-------+
| numero | int(10) unsigned zerofill | NO |
| 0000000000 |
|
| total | decimal(30,2)
| YES |
| NULL
|
|
+--------+---------------------------+------+-----+------------+-------+
2 rows in set (0.00 sec)
mysql>

mysql> use practica;


Database changed
mysql> create table socios(
-> numero int unsigned auto_increment,
-> documento char(8) not null,
-> nombre varchar(30) not null,
-> domicilio varchar(30),
-> primary key(numero)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> create table inscriptos(
-> numerosocio int unsigned,
-> deporte varchar(20),
-> anio year not null,
->
cuota char(1), /*'s' o 'n', si esta paga o no*/
-> primary key(numerosocio,deporte,anio)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> describe socios;
+-----------+------------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------+------------------+------+-----+---------+----------------+
| numero
| int(10) unsigned | NO | PRI | NULL
| auto_increment |
| documento | char(8)
| NO |
| NULL
|
|
| nombre
| varchar(30)
| NO |
| NULL
|
|
| domicilio | varchar(30)
| YES |
| NULL
|
|
+-----------+------------------+------+-----+---------+----------------+
4 rows in set (0.02 sec)
mysql> insert into socios values(23,'22333444','Juan Perez','Colon 123');
Query OK, 1 row affected (0.00 sec)
mysql> insert into socios values(56,'23333444','Ana Garcia','Sarmiento 984');
Query OK, 1 row affected (0.01 sec)
mysql> insert into socios values(102,'24333444','Hector Fuentes','Sucre 293');
Query OK, 1 row affected (0.00 sec)
mysql> insert into socios values(150,'25333444','Agustin Perez','Avellaneda 123
4');
Query OK, 1 row affected (0.00 sec)
mysql> insert into socios values(230,'26333444','Maria Perez','Urquiza 283');
Query OK, 1 row affected (0.00 sec)
mysql> insert into socios values(231,'29333444','Agustin Perez','Urquiza 283');
describe inscriptos;
Query OK, 1 row affected (0.00 sec)
+-------------+------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+-------+
| numerosocio | int(10) unsigned | NO | PRI | 0
|
|
| deporte
| varchar(20)
| NO | PRI |
|
|
| anio
| year(4)
| NO | PRI | NULL
|
|

| cuota
| char(1)
| YES |
| NULL
|
|
+-------------+------------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
mysql> insert into inscriptos values(23,'tenis','2005','s');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values(23,'tenis','2006','s');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values(23,'natacion','2005','s');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values(102,'tenis','2005','s');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos values(102,'natacion','2006','s');
Query OK, 1 row affected (0.00 sec)
mysql> insert into inscriptos (numerosocio,deporte,ao,cuota)
-> select numero,'tenis','2006','s'
-> from socios
-> where documento='23333444';
ERROR 1300 (HY000): Invalid utf8 character string: 'a\xA4o'
mysql> insert into inscriptos (numerosocio,deporte,anio,cuota)
-> select numero,'tenis','2006','s'
-> from socios
-> where documento='23333444';
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select numero,'tenis','2006','s'
-> from socios
-> where documento='30333444';
Empty set (0.00 sec)
mysql> select numero,'basquet','2006','n'
-> from socios
-> where nombre='Agustin Perez' and
-> domicilio='Urquiza 283';
+--------+---------+------+---+
| numero | basquet | 2006 | n |
+--------+---------+------+---+
|
231 | basquet | 2006 | n |
+--------+---------+------+---+
1 row in set (0.00 sec)
mysql> insert into inscriptos (numerosocio,deporte,ao,cuota)
-> select numero,'natacion','2006','n'
-> from socios
-> where domicilio='Urquiza 283';
ERROR 1300 (HY000): Invalid utf8 character string: 'a\xA4o'
mysql> select numero,'natacion','2006','n'
-> from socios
-> where domicilio='Urquiza 283';
+--------+----------+------+---+
| numero | natacion | 2006 | n |
+--------+----------+------+---+
|
230 | natacion | 2006 | n |
|
231 | natacion | 2006 | n |

+--------+----------+------+---+
2 rows in set (0.00 sec)
mysql> select s.nombre,i.deporte,i.ao
-> from socios as s
-> join inscriptos as i
-> on s.numero=i.numerosocio;
ERROR 1300 (HY000): Invalid utf8 character string: 'a\xA4o'
mysql> select s.nombre,i.deporte,i.anio
-> from socios as s
-> join inscriptos as i
-> on s.numero=i.numerosocio;
+----------------+----------+------+
| nombre
| deporte | anio |
+----------------+----------+------+
| Juan Perez
| natacion | 2005 |
| Juan Perez
| tenis
| 2005 |
| Juan Perez
| tenis
| 2006 |
| Ana Garcia
| tenis
| 2006 |
| Hector Fuentes | natacion | 2006 |
| Hector Fuentes | tenis
| 2005 |
+----------------+----------+------+
6 rows in set (0.00 sec)
mysql>

76 - Insertar registros con valores de otra tabla (insert - select)


mysql> use practica;
Database changed
mysql> drop table facturas;
Query OK, 0 rows affected (0.02 sec)
mysql> create table facturas(
-> numero int(10) zerofill auto_increment,
-> numeroitem smallint unsigned not null,
-> descripcion varchar(30),
-> precioporunidad decimal(5,2) unsigned,
-> cantidad tinyint unsigned,
-> primary key (numero,numeroitem)
-> );
Query OK, 0 rows affected (0.08 sec)
mysql> describe facturas;
+-----------------+---------------------------+------+-----+---------+---------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------------+---------------------------+------+-----+---------+---------------+
| numero
| int(10) unsigned zerofill | NO | PRI | NULL
| auto_incr
ement |
| numeroitem
| smallint(5) unsigned
| NO | PRI | NULL
|
|

| descripcion
| varchar(30)
| YES |
| NULL
|
|
| precioporunidad | decimal(5,2) unsigned
| YES |
| NULL
|
|
| cantidad
| tinyint(3) unsigned
| YES |
| NULL
|
|
+-----------------+---------------------------+------+-----+---------+---------------+
5 rows in set (0.00 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(100,1,'escuadra 20 cm.',2.50,20);
Query OK, 1 row affected (0.02 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(100,2,'escuadra 50 cm.',5,30);
Query OK, 1 row affected (0.00 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(100,3,'goma lapiz-tinta',0.35,100);
Query OK, 1 row affected (0.00 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(102,1,'lapices coloresx6',4.40,50);
Query OK, 1 row affected (0.00 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(102,2,'lapices coloresx12',8,60);
Query OK, 1 row affected (0.00 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(255,1,'lapices coloresx24',12.35,100);
Query OK, 1 row affected (0.00 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(567,1,'compas plastico',12,50);
Query OK, 1 row affected (0.00 sec)
mysql> insert into facturas (numero,numeroitem,descripcion,precioporunidad,cant
idad)
-> values(567,2,'compas metal',18.90,80);
Query OK, 1 row affected (0.05 sec)
mysql> create table montofacturas(
-> numero int(10) zerofill,
-> total decimal(9,2) unsigned,
-> primary key(numero)
-> );
ERROR 1050 (42S01): Table 'montofacturas' already exists
mysql> drop table mantofacturas;
ERROR 1051 (42S02): Unknown table 'mantofacturas'
mysql> drop table montofacturas;
Query OK, 0 rows affected (0.01 sec)

mysql> create table montofacturas(


-> numero int(10) zerofill,
-> total decimal(9,2) unsigned,
-> primary key(numero)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> select numero,
->
sum(precioporunidad*cantidad) as total
->
from facturas
->
group by numero;
+------------+---------+
| numero
| total |
+------------+---------+
| 0000000100 | 235.00 |
| 0000000102 | 700.00 |
| 0000000255 | 1235.00 |
| 0000000567 | 2112.00 |
+------------+---------+
4 rows in set (0.00 sec)
mysql> select numero,
->
sum(precioporunidad*cantidad) as total
->
from facturas
->
group by numero;
+------------+---------+
| numero
| total |
+------------+---------+
| 0000000100 | 235.00 |
| 0000000102 | 700.00 |
| 0000000255 | 1235.00 |
| 0000000567 | 2112.00 |
+------------+---------+
4 rows in set (0.00 sec)
mysql>
mysql>
mysql>
mysql> insert into montofacturas (numero,total)
-> select numero,
->
sum(precioporunidad*cantidad) as total
->
from facturas
->
group by numero;
Query OK, 4 rows affected (0.05 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql>

You might also like