mirror of
https://github.com/treffynnon/sqlstyle.guide.git
synced 2025-03-09 12:49:51 -05:00
Add create syntax information
This commit is contained in:
parent
dfe99a5ab7
commit
7332547d42
1 changed files with 37 additions and 1 deletions
|
@ -114,7 +114,8 @@ are followed.
|
||||||
|
|
||||||
#### Joins
|
#### Joins
|
||||||
|
|
||||||
Joins should be indented to the other site of
|
Joins should be indented to the other side of the river and grouped with a new
|
||||||
|
line where necessary.
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
SELECT r.last_name
|
SELECT r.last_name
|
||||||
|
@ -130,6 +131,11 @@ SELECT r.last_name
|
||||||
|
|
||||||
#### Sub-queries
|
#### Sub-queries
|
||||||
|
|
||||||
|
Sub-queries should also be aligned to the right side of the river and then laid
|
||||||
|
out using the same style as any other query. Sometimes it will make sense to have
|
||||||
|
the closing parenthesis on new line at the same character position as it's
|
||||||
|
opening partner—this is especially true where you have nested sub-queries.
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
SELECT r.last_name,
|
SELECT r.last_name,
|
||||||
(SELECT MAX(YEAR(championship_date))
|
(SELECT MAX(YEAR(championship_date))
|
||||||
|
@ -144,6 +150,36 @@ SELECT r.last_name,
|
||||||
AND c.confirmed = 'Y');
|
AND c.confirmed = 'Y');
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Create syntax
|
||||||
|
|
||||||
|
When declaring schema information it is also important to maintain human
|
||||||
|
readable code. To facilitate this ensure the column definitions are ordered and
|
||||||
|
grouped where it makes sense to do so.
|
||||||
|
|
||||||
|
### Choosing data types
|
||||||
|
|
||||||
|
* Where possible do not use vendor specific data types—these are not portable and
|
||||||
|
may not be available in older versions of the same vendor's software
|
||||||
|
|
||||||
|
### Specifying default values
|
||||||
|
|
||||||
|
* The default value must be the same type as the column—if a column is declared
|
||||||
|
a `DECIMAL` do not provide an `INTEGER` default value
|
||||||
|
* Default values must follow the data type declaration and come before any
|
||||||
|
`NOT NULL` statement
|
||||||
|
|
||||||
|
### Keys
|
||||||
|
|
||||||
|
* Specify the primary key first right after the `CREATE TABLE` statement
|
||||||
|
|
||||||
|
### Constraints
|
||||||
|
|
||||||
|
* Constraints need to be defined beneath the column they correspond to
|
||||||
|
* Use alphabetical order so `ON DELETE` comes before `ON UPDATE`
|
||||||
|
* All constraints should be given a constraint except `UNIQUE`, `PRIMARY KEY`
|
||||||
|
and `FOREIGN KEY` where the database vendor will generally supply sufficiently
|
||||||
|
intelligiable names automatically
|
||||||
|
|
||||||
## Naming conventions
|
## Naming conventions
|
||||||
|
|
||||||
### General
|
### General
|
||||||
|
|
Loading…
Reference in a new issue