eolas/Databases/SQL/2_SELECT.md
2022-08-21 11:00:04 +01:00

82 lines
1.9 KiB
Markdown

---
categories:
- Databases
- Programming Languages
tags: [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