eolas/Databases/SQL/2_SELECT.md

83 lines
1.9 KiB
Markdown
Raw Normal View History

2022-08-05 20:00:04 +01:00
---
tags:
- Programming_Languages
- Databases
- sql
---
# SQL: The SELECT query
## Print/retrieve/write an entire table, unfiltered
````sql
SELECT * FROM [table_name]
SELECT * FROM model
````
## Retrieve all data from a specific field
````sql
SELECT [field_name] FROM [table_name]
SELECT name FROM manufacturer
````
## Retrieve data and order it
This example orders alphabetically:
````sql
SELECT [field_name] FROM [table_name] ORDER BY [property]
SELECT name FROM model ORDER BY name
````
> When `ORDER BY` is used the default method for strings is alphabetical and for integers it is ascending order.
Here's a more complex real-life request:
````sql
SELECT name, cores, ram FROM model ORDER BY ram, name
````
It gives us:
````
name cores ram
---------------- ---------- ----------
Commodore VIC-20 1 0.005
Commodore 64 1 0.064
Amiga 500 1 0.5
Apple Lisa 1 1.0
Raspberry Pi 1 M 1 256.0
Raspberry Pi 1 M 1 256.0
Raspberry Pi 1 M 1 512.0
Raspberry Pi 1 M 1 512.0
Raspberry Pi 1 M 1 512.0
Raspberry Pi Zer 1 512.0
````
But we can obviously specify our own ordering method:
````sql
SELECT name, cores, release_date FROM model ORDER BY cores DESC, name;
````
Returns:
````
name cores release_date
----------------- ---------- ------------
Apple MacBook Pro 6 2019-05-21
Apple iMac 4 2019-03-19
Raspberry Pi 2 Mo 4 2015-02-01
Raspberry Pi 3 Mo 4 2018-11-01
Raspberry Pi 3 Mo 4 2016-02-01
Raspberry Pi 3 Mo 4 2018-03-14
Raspberry Pi 4 Mo 4 2019-06-24
Raspberry Pi 4 Mo 4 2019-06-24
Raspberry Pi 4 Mo 4 2019-06-24
````
>
> `ORDER BY` always comes last, after the selection and any filtering clauses but *before* a `WHERE` clause