SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la...
Transcript of SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la...
![Page 1: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/1.jpg)
SQL básico
Primera Escuela de la Red Temática SVO.Madrid, Noviembre, 2728, 2006
Carlos Rodrigo BlancoLAEFF INTA
![Page 2: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/2.jpg)
SQL básico, Página 2Carlos Rodrigo Blanco
Qué es SQL
El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos.
![Page 3: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/3.jpg)
SQL básico, Página 3Carlos Rodrigo Blanco
Mysql: un gestor de BD
● Un gestor de base de datos.
– Sencillo– Gratuito– Rápido y eficiente.– Para linux/windows
![Page 4: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/4.jpg)
SQL básico, Página 4Carlos Rodrigo Blanco
Una base de datos
● Un conjunto de tablas relacionadas entre sí:– Una peña de un
equipo de fútbol en internet.
![Page 5: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/5.jpg)
SQL básico, Página 5Carlos Rodrigo Blanco
Consultar la base de datos
SELECT ... FROM ... WHERE ... etc
SELECT (campos) FROM (tablas) WHERE (condiciones) ...
![Page 6: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/6.jpg)
SQL básico, Página 6Carlos Rodrigo Blanco
Consultar la base de datos
SELECT [ALL | DISTINCT | DISTINCTROW ] select_expr, ... [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position}] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [INTO OUTFILE 'file_name' export_options]
![Page 7: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/7.jpg)
SQL básico, Página 7Carlos Rodrigo Blanco
SELECT: ejemplosSELECT socio_id,nombre,email FROM socios WHERE pais_id=14;
SELECT socio_id,nombre,email FROM socios WHERE nombre like 'Alicia%';
![Page 8: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/8.jpg)
SQL básico, Página 8Carlos Rodrigo Blanco
SELECT: ejemplosSELECT count(*) FROM socios;
SELECT pais_id,count(*) as nsocios FROM socios group by pais_id order by nsocios desc limit 10;
![Page 9: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/9.jpg)
SQL básico, Página 9Carlos Rodrigo Blanco
SELECT: ejemplos
SELECT s.socio_id, s.nombre, s.email, p.nombre as pais FROM socios s, paises p WHERE p.pais_id=s.pais_id and s.nombre like 'Alicia%';
SELECT socio_id,nombre,email,pais_id FROM socios WHERE nombre like 'Alicia%';
![Page 10: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/10.jpg)
SQL básico, Página 10Carlos Rodrigo Blanco
SELECT: ejemplos
SELECT pais_id,count(*) as nsocios FROM socios group by pais_id order by nsocios desc limit 10;
SELECT p.nombre as pais,count(*) as nsocios FROM socios s, paises p WHERE p.pais_id=s.pais_id group by p.pais_id order by nsocios desc limit 10;
![Page 11: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/11.jpg)
SQL básico, Página 11Carlos Rodrigo Blanco
SELECT: ejemplos
SELECT p.nombre as pais,count(*) as nsocios FROM socios s, paises p WHERE p.pais_id=s.pais_id group by p.pais_id HAVING nsocios between 10 and 20order by nsocios desc limit 10;
![Page 12: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/12.jpg)
SQL básico, Página 12Carlos Rodrigo Blanco
Cambiar los datos
UPDATE ... SET ... WHERE ...
UPDATE (tabla) SET (campo=valor) WHERE (condiciones) ...
![Page 13: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/13.jpg)
SQL básico, Página 13Carlos Rodrigo Blanco
Cambiar los datos
UPDATE tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]
![Page 14: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/14.jpg)
SQL básico, Página 14Carlos Rodrigo Blanco
UPDATE: ejemplos
UPDATE socios SET pais_id=162 WHERE socio_id=1;
![Page 15: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/15.jpg)
SQL básico, Página 15Carlos Rodrigo Blanco
UPDATE: ejemplos
UPDATE socios SET puntos=puntos+2 WHERE puntos < 2;
UPDATE socios SET email=LOWER(email);
![Page 16: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/16.jpg)
SQL básico, Página 16Carlos Rodrigo Blanco
Insertar Datos
INSERT INTO ... (...,...) VALUES (...,...)
INSERT INTO (tabla) (campo1,...,campoN) VALUES (valor1,...,valorN) ...
INSERT INTO ... SET ...
INSERT INTO (tabla) SET campo1=valor1,...,campoN=valorN
![Page 17: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/17.jpg)
SQL básico, Página 17Carlos Rodrigo Blanco
Insertar Datos
INSERT INTO socios (socio_id, email, pais_id, provincia_id, nombre) VALUES (7000,'[email protected]',14,0,'Pepe Martínez');
![Page 18: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/18.jpg)
SQL básico, Página 18Carlos Rodrigo Blanco
Borrar Datos
DELETE FROM ...WHERE ...
DELETE FROM tabla WHERE conditions
DELETE FROM socios WHERE socio_id=7000;
![Page 19: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/19.jpg)
SQL básico, Página 19Carlos Rodrigo Blanco
Ver la estructura de la Base de Datos
SHOW TABLES
![Page 20: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/20.jpg)
SQL básico, Página 20Carlos Rodrigo Blanco
Ver la estructura de la Base de Datos
DESC tabla
![Page 21: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/21.jpg)
SQL básico, Página 21Carlos Rodrigo Blanco
Crear una tabla
CREATE TABLE ... (...)
CREATE TABLE [IF NOT EXISTS] tbl_name ( col_name1 data_type options , ... col_nameN data_type options ,);
![Page 22: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/22.jpg)
SQL básico, Página 22Carlos Rodrigo Blanco
Crear una tabla
● data_type:– INT[(length)] [UNSIGNED] [ZEROFILL]
– DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
– DATE
– TIMESTAMP
– VARCHAR(length)
– TEXT
– BLOB
– ENUM(value1,value2,value3,...)
![Page 23: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/23.jpg)
SQL básico, Página 23Carlos Rodrigo Blanco
Crear una tabla
● Options:– [NOT NULL | NULL]
– [DEFAULT default_value]
– [AUTO_INCREMENT]
– [UNIQUE [KEY] | [PRIMARY] KEY]
– [COMMENT 'string']
![Page 24: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/24.jpg)
SQL básico, Página 24Carlos Rodrigo Blanco
Crear una tabla
CREATE TABLE socios (
socio_id int(7) NOT NULL AUTO_INCREMENT,
nombre char(255) NOT NULL default ''
email char(69) NOT NULL default '',
pais_id int(4) NOT NULL default '0',
provincia_id int(4) NOT NULL default '0',
);
![Page 25: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/25.jpg)
SQL básico, Página 25Carlos Rodrigo Blanco
Cambiar una tabla
ALTER TABLE ... [...]
ALTER TABLE table name ...
ADD [COLUMN] column_definition CHANGE [COLUMN] old_col_name column_definition DROP [COLUMN] col_nameRENAME [TO] new_tbl_name...ADD {INDEX|KEY} [index_name] [index_type] (index_col_name,...)ADD PRIMARY KEY [index_type] (index_col_name,...)ADD UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...)
![Page 26: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/26.jpg)
SQL básico, Página 26Carlos Rodrigo Blanco
Eliminar una tabla
DROP TABLE ...
DROP TABLE [IF EXISTS] table name ...[IF EXISTS]
![Page 27: SQL básico - svo.cab.inta-csic.es · PDF fileSQL básico Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2728, 2006 Carlos Rodrigo Blanco LAEFF INTA crb@laeff.inta.es](https://reader034.fdocuments.es/reader034/viewer/2022042707/5a6fafb37f8b9aa2538b538c/html5/thumbnails/27.jpg)
SQL básico, Página 27Carlos Rodrigo Blanco
Mysql: aplicaciones