From 1c51e912924a8dafcfc6b6fb3dd03c7521b2cebe Mon Sep 17 00:00:00 2001 From: S R Date: Fri, 8 Mar 2019 09:45:33 +1100 Subject: [PATCH] Explanations for NULL, Added Default (#28008) 1. Corrected NOT NULL / NULL explanation 2. Added explanation for Default 3. Added new columns to illustrate 'default' and 'null' behaviour. 4. Explanations for datatypes 5. NUMERIC Datatype illustrated. --- .../sql/sql-create-table-statement/index.md | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/guide/english/sql/sql-create-table-statement/index.md b/guide/english/sql/sql-create-table-statement/index.md index bbc2af0306..8ba5808167 100644 --- a/guide/english/sql/sql-create-table-statement/index.md +++ b/guide/english/sql/sql-create-table-statement/index.md @@ -24,17 +24,44 @@ Here’s an example creating a table named Person: ```sql CREATE TABLE Person( - Id int not null, - Name varchar not null, - DateOfBirth date not null, - Gender bit not null, + Id int not null, + Name varchar not null, + DateOfBirth date not null, + Gender bit not null, + Height numeric(5, 2) default 0 not null, + Weight numeric(5, 2) default 50, + WaistSize numeric(5, 2), PRIMARY KEY( Id ) ); ``` -In the example above, each Person has a Name, a Date of Birth and a Gender. The Id column is the key that identifies one person in the table. You use the keyword `PRIMARY KEY` to configure one or more columns as a primary key. +##### PrimaryKey +In the example above, each Person has a Name, Date of Birth, Gender and Height. The Id column is the key that identifies one person in the table. You use the keyword `PRIMARY KEY` to configure one or more columns as a primary key. -A column can be `not null` or `null` indicating whether it is mandatory or not. +##### Datatypes +Each column also has it's datatype mentioned. + +Just to understand the above code, the datatype mentioned indicates the following type of values approximately. +``` +int : A whole number +varchar : Strings +date : A Date Value without Time component +bit : A Boolean value +numeric(5, 2): A decimal value with ( Precision 5 and Scale 2 ) + ie. Total of 5 digits with 3 digits before the decimal point and 2 digits after decimal point. +``` +Proper List and meaning of datatypes can be refered from resources like this: ( https://www.w3schools.com/sql/sql_datatypes.asp ) + +##### Default and Not NULL +When a row of values are inserted into a table, any column which is marked as `not null` and without a `default` value will be compulsary. Insert fails otherwise. + +If no value is provided for a column which has a `default` value, insert will succeed with the column being assigned the default value defined in the table definition. +>e.g Column Weight has default value as 50. + +By default all columns are nullable ie. `null` is assumed unless explicity set as `not null`. So any column without `default` and `not null` keyword can be skipped in insert commands. They will have *null* value on querying. +>e.g Column WaistSize can be *null* + +>Please note that `null` and `` (Blank) are queried and handled differently in most Databases. #### More Information: