Publicado el 3 de Mayo del 2019
9.091 visualizaciones desde el 3 de Mayo del 2019
1,4 MB
39 paginas
Creado hace 6a (29/10/2018)
Tema III. Lenguaje SQL
•
Introducción.
•
Sentencias SQL de consulta.
• Otras sentencias de interés.
•
•
•
•
Sentencias SQL de creación de tablas.
Sentencias SQL para añadir registros.
Sentencias SQL para borrar registros.
Sentencias SQL para actualizar registros.
Fuente: https://csharpcorner-mindcrackerinc.netdna-ssl.com/UploadFile/BlogImages/01032017000551AM/image002.png
v20181028
Bases de datos. Diseño y gestión
1
Introducción
El lenguaje de consulta estructurado SQL (Structured Query
Language) 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.
El científico Edgar Frank Codd (1923–2003) fue quien propuso
un modelo relacional para las bases de datos y creó un
sublenguaje para acceder a los datos a partir del cálculo de
predicados. En base al trabajo de Codd, IBM (International
Business Machines) definió el lenguaje conocido como
Structured English Query Language (SEQUEL). El SEQUEL se
considera el antecesor de SQL, un lenguaje de cuarta
generación que se estandarizó en 1986.
v20181028
Bases de datos. Diseño y gestión
2
Fuente: https://sequel.jeremyevans.net/images/ruby-sequel.png/
Sentencias SQL de consulta
- SELECT: La sentencia SELECT selecciona una serie de
atributos de una o varias tablas, que cumplen unas
determinadas condiciones. La sentencia SELECT permite
operaciones avanzadas como ordenar el resultado. La sintaxis
general es la siguiente:
SELECT atributos FROM tablas WHERE condiciones
Tabla city de la base de datos world:
v20181028
Bases de datos. Diseño y gestión
3
Sentencias SQL de consulta
- Ejemplo 1: “SELECT * FROM world.city”
Selecciona todos los atributos de la tabla city, de la base de
datos world. El * indica que devuelve todos los atributos de las
tablas implicadas.
# ID Name
CountryCode
1 Kabul
2 Qandahar
3 Herat
4 Mazar-e-Sharif
5 Amsterdam
6 Rotterdam
7 Haag
8 Utrecht
9 Eindhoven
10 Tilburg
11 Groningen
AFG
AFG
AFG
AFG
NLD
NLD
NLD
NLD
NLD
NLD
NLD
District
Kabol
Qandahar
Herat
Balkh
Noord-Holland
Zuid-Holland
Zuid-Holland
Utrecht
Noord-Brabant
Noord-Brabant
Groningen
Se muestran un total de once resultados de los 4079 registros disponibles
Population
1780000
237500
186800
127800
731200
593321
440900
234323
201843
193238
172701
v20181028
Bases de datos. Diseño y gestión
4
Sentencias SQL de consulta
- Ejemplo 1I: “SELECT ID, city.Name FROM world.city”
Selecciona el atributo ID y el atributo Name (obsérvese que
en este caso, nos referimos a él anteponiendo el nombre de la
tabla. Es útil cuando dos tablas tienen atributos con el mismo
nombre) de la tabla city, de la base de datos world.
# ID Name
1 Kabul
2 Qandahar
3 Herat
4 Mazar-e-Sharif
5 Amsterdam
6 Rotterdam
7 Haag
8 Utrecht
9 Eindhoven
10 Tilburg
11 Groningen
Se muestran un total de once resultados de los 4079 registros disponibles
v20181028
Bases de datos. Diseño y gestión
5
Sentencias SQL de consulta
- Ejemplo 1II: “SELECT ID, Name FROM world.city LIMIT
5”
Selecciona el atributo ID y el atributo Name, de la tabla city y
de la base de datos world. En este caso, limitamos el resultado
a 5 registros. Esto es muy interesante cuando el número de
registros devueltos es muy grande o nos interesa sólo el
primer registro que cumple una condición.
# ID Name
1 Kabul
2 Qandahar
3 Herat
4 Mazar-e-Sharif
5 Amsterdam
Se muestran un total de 5 registros
v20181028
Bases de datos. Diseño y gestión
6
Sentencias SQL de consulta
- Ejemplo IV: “SELECT * FROM world.city WHERE
CountryCOde = 'ESP' LIMIT 10”
Selecciona todos los atributos, de la tabla city y de la base de
datos world. En este caso, limitamos el resultado a 10 registros
y mediante la cláusula WHERE indicamos que sólo nos
interesan aquellos cuyo código de país (CountryCOde) es
“ESP”.
# ID Name
653 Madrid
654 Barcelona
655 Valencia
656 Sevilla
657 Zaragoza
658 Málaga
659 Bilbao
660 Las Palmas de Gran Canaria
661 Murcia
662 Palma de Mallorca
CountryCode
ESP
ESP
ESP
ESP
ESP
ESP
ESP
ESP
ESP
ESP
District
Madrid
Katalonia
Valencia
Andalusia
Aragonia
Andalusia
Baskimaa
Canary Islands
Murcia
Balears
Population
2879052
1503451
739412
701927
603367
530553
357589
354757
353504
326993
v20181028
Bases de datos. Diseño y gestión
7
Se muestran un total de 10 registros
Sentencias SQL de consulta
- Ejemplo V: “SELECT * FROM world.city WHERE
CountryCOde = 'ESP' AND population > 500000 LIMIT 10”
Selecciona todos los atributos, de la tabla city y de la base de
datos world. En este caso, limitamos el resultado a 10 registros
y mediante la cláusula WHERE indicamos que sólo nos
interesan aquellos cuyo código de país (CountryCOde) es
“ESP” y además cuya población (population) es mayor a
500.000 (cláusula AND).
# ID Name
653 Madrid
654 Barcelona
655 Valencia
656 Sevilla
657 Zaragoza
658 Málaga
CountryCode
District
Population
ESP
ESP
ESP
ESP
ESP
ESP
Madrid
Katalonia
Valencia
Andalusia
Aragonia
Andalusia
2879052
1503451
739412
701927
603367
530553
v20181028
Bases de datos. Diseño y gestión
8
Sentencias SQL de consulta
- Ejemplo VI: “SELECT * FROM world.city WHERE
CountryCOde = 'ESP' AND population > 500000 ORDER
BY Name LIMIT 10”
Selecciona todos los atributos, de la tabla city y de la base de
datos world. En este caso, limitamos el resultado a 10 registros
y mediante la cláusula WHERE indicamos que sólo nos
interesan aquellos cuyo código de país (CountryCOde) es
“ESP” y además cuya población (population) es mayor a
500.000 (cláusula AND). Por último, ordenamos por el atributo
Name mediante la cláusula ORDER BY.
# ID Name
654 Barcelona
653 Madrid
658 Málaga
656 Sevilla
655 Valencia
657 Zaragoza
CountryCode
District
Population
ESP
ESP
ESP
ESP
ESP
ESP
Katalonia
Madrid
Andalusia
Andalusia
Valencia
Aragonia
1503451
2879052
530553
701927
739412
603367
v20181028
Bases de datos. Diseño y gestión
9
Sentencias SQL de consulta
- Ejemplo VII: “SELECT * FROM world.city WHERE
CountryCOde = 'ESP' AND population > 500000 ORDER
BY Name DESC LIMIT 10”
Selecciona todos los atributos, de la tabla city y de la base de
datos world. En este caso, limitamos el resultado a 10 registros
y mediante la cláusula WHERE indicamos que sólo nos
interesan aquellos cuyo código de país (CountryCOde) es
“ESP” y además cuya población (population) es mayor a
500.000 (cláusula AND). Por último, ordenamos por el atributo
Name al revés (DESC) mediante la cláusula ORDER BY.
# ID Name
657 Zaragoza
655 Valencia
656 Sevilla
658 Málaga
653 Madrid
654 Barcelona
CountryCode
ESP
ESP
ESP
ESP
ESP
ESP
District
Aragonia
Valencia
Andalusia
Andalusia
Madrid
Katalonia
Population
603367
739412
701927
530553
2879052
1503451
v20181028
Bases de datos. Diseño y gestión
10
Sentencias SQL de consulta
- Ejemplo VIII: “SELECT COUNT(*) FROM world.city”
Cuenta todos los registros de la tabla city, de la base de datos
world.
# count(*)
4079
- Ejemplo IX: “SELECT COUNT(*) AS total FROM
world.city”
Cuenta todos los registros de la tabla city, de la base de datos
world y almacena el resultado en un atributo nuevo llamado
total, mediante la cláusula AS.
total
4079
v20181028
Bases de datos. Diseño y gestión
11
Sentencias SQL de consulta
- Ejemplo X: “SELECT COUNT(DISTINCT(name)) AS
total FROM world.city”
Cuenta todos los registros que tengan el campo name
diferente, de la tabla city, de la base de datos world, y almacena
el resultado en un nuevo atributo total.
total
4001
- Ejemplo XI: “SELECT DISTINCT(name) AS
nombres_diferentes FROM world.city ORDER BY name
LIMIT 10”
Devuelve todos los registros que tengan el campo name
diferente, de la tabla city, de la base de datos world, y almacena
el resultado en un nuevo atributo nombres_diferentes. Limita
el número de registros devueltos a 10. Ordena por nombre.
v20181028
Bases de datos. Diseño y gestión
12
Sentencias SQL de consulta
# nombres_diferentes
A Coruña (La Coruña)
Aachen
Aalborg
Aba
Abadan
Abaetetuba
Abakan
Abbotsford
Abeokuta
Aberdeen
- Ejemplo XII: “SELECT city.ID, city.Name, country.code,
country.Name FROM world.city, world.country WHERE
country.code = city.CountryCode ORDER BY country.Name,
city.Name LIMIT 10”
Devuelve los atributos ID y Name de la tabla city y los
atributos code y Name de la tabla country. Enlaza ambas
tablas a través de los atributos country.code y
city.CountryCode. Limita el resultado a 10 registros y lo
ordena por country.Name y city.Name.
v20181028
Bases de datos. Diseño y gestión
13
Sentencias SQL de consulta
# ID
Name
3 Herat
1 Kabul
4 Mazar-e-Sharif
2 Qandahar
34 Tirana
35 Alger
38 Annaba
39 Batna
49 Béchar
45 Béjaïa
code
AFG
AFG
AFG
AFG
ALB
DZA
DZA
DZA
DZA
DZA
Name
Afghanistan
Afghanistan
Afghanistan
Afghanistan
Albania
Algeria
Algeria
Algeria
Algeria
Algeria
- Ejemplo XIII: “SELECT city.ID, city.Name, country.code,
country.Name FROM world.city INNER JOIN world.country
ON country.code = city.CountryCode ORDER BY
country.Name, city.Name LIMIT 10”
En este caso, el resultado es el mismo pero incluimos la
cláusula INNER JOIN…ON para relacionar ambas tablas.
v20181028
Bases de datos. Diseño y gestión
14
Sentencias SQL de consulta
- Ejemplo XIV: “SELECT count(city.ID) AS
numero_ciudades, country.code, country.Name FROM
world.city INNER JOIN world.country ON country.code =
city.CountryCode GROUP BY country.code ORDER BY
country.Name DESC, city.Name LIMIT 10”.
En este caso, la consulta o “query” nos devuelve el número de
poblaciones en el nuevo atributo numero_ciudades. Esto se
consigue con la cláusula GROUP BY que agrupa todos los
registros que tienen el atributo indicado en la cláusula, en este
caso country.code. # numero_ciudades
code
6 ZWE
7 ZMB
8 YUG
6 YEM
1 ESH
1 WLF
1 VIR
1 VGB
Comentarios de: Tema III. Lenguaje SQL (0)
No hay comentarios