eolas/Databases/SQL/1_Language_structure.md
2022-08-06 10:30:04 +01:00

50 lines
No EOL
1.9 KiB
Markdown

---
tags:
- Programming_Languages
- Databases
- sql
---
# SQL: Language structure
Before we start using the syntax we need to understand the grammar:
![](/img/Pasted_image_20220314155028.png)
Expressions differ from clauses and predicates in that they are not the mechanism for returning data (i.e. declaring a clause and a logical colllllndition) they do something to the data, as part of the retrieval. This is a bit subtle:
* `SELECT name FROM model WHERE cores = "4"`
* This retrieves the models that have 4 cores
* `SELECT count(*) FROM model WHERE cores = "4" `
* This counts the number of models that are returned where the counting is a function over and above the retrieval itself.
### Examples from `computer_sales.db`
`sqlite> SELECT * from model WHERE cpu_speed=0.7` : return all models with a CPU speed equal to 0.7:
````
model_id manufacturer_id name cpu_speed ram cores wifi release_date
---------- --------------- ---------------------- ---------- ---------- ---------- ---------- ------------
1 1 Raspberry Pi 1 Model A 0.7 256.0 1 0 2013-02-01
2 1 Raspberry Pi 1 Model B 0.7 256.0 1 0 2012-04-01
3 1 Raspberry Pi 1 Model B 0.7 512.0 1 0 2012-10-01
4 1 Raspberry Pi 1 Model A 0.7 512.0 1 0 2014-11-01
5 1 Raspberry Pi 1 Model B 0.7 512.0 1 0 2014-07-01
````
````
count(*)
----------
5
````
> Any value that is not a number should be in single-quotes, never double quotes
## Main commands
There are obviously many SQL commands but most standard CRUD actions can be executed with a small number of commands:
* `SELECT`
* `UPDATE`
* `CREATE`
* `INSERT`
* `DELETE`