Əsas səhifə > MySQL > MySQL data tiplərində default qiymətlər

MySQL data tiplərində default qiymətlər

Bu gün bir şeyə fikir vermişəm, təsadüfən. və istədim bölüşüm…
Demək 1 table yaradaq və definition-larda NOT NULL qeyd edək:

create table not_null_test (
    id int not null,
    user_name varchar(10) not null
);

DESC verdikdə görün nə çıxır:

mysql> desc not_null_test;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | NO   |     | NULL    |       |
| user_name | varchar(10) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

Definition-da NOT NULL qeyd etdiyim halda default NULL yazılır 😛
İnsert verib yoxlasaq :

mysql> insert into not_null_test() values();
Query OK, 1 row affected, 2 warnings (0.04 sec)

2 warnings var onlara da baxsaq:

mysql> show warnings;
+---------+------+------------------------------------------------+
| Level   | Code | Message                                        |
+---------+------+------------------------------------------------+
| Warning | 1364 | Field 'id' doesn't have a default value        |
| Warning | 1364 | Field 'user_name' doesn't have a default value |
+---------+------+------------------------------------------------+
2 rows in set (0.00 sec)

Halbuki DESC-de default value NULL qeyd olunub 🙂
Select-də:

mysql> select * from not_null_test;
+----+-----------+
| id | user_name |
+----+-----------+
|  0 |           |
+----+-----------+
1 row in set (0.00 sec)

Deməli burda Default : NULL yazısı bizi aldatmamalıdır…Burdakı NULL datatype-ın default qiymətini göstərir. Yəni əgər int və varchar NULL-able (NULL qəbul etsə) onların default qiyməti NULL olacaq…
Lakin indiki halda definition NOT NULL olduğu üçün Default qiymət int not null üçün=0, varchar not null üçün isə=’ ‘….

İndi isə 2ci table:

create table not_null_test3 (
    id int,
    user_name varchar(10)
);

DESC verdikdə:

mysql> desc not_null_test3;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | YES  |     | NULL    |       |
| user_name | varchar(10) | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

İnsert Və Select:

mysql> insert into not_null_test3() values();
Query OK, 1 row affected (0.11 sec)

mysql> select * from not_null_test3;
+------+-----------+
| id   | user_name |
+------+-----------+
| NULL | NULL      |
+------+-----------+
1 row in set (0.00 sec)

İndi isə ümumiləşdirək və tərif verək:
Əgər İnt və Varchar tipləri NULL qəbul edirsə onların implicit default qiymətləri NULL olacaq.
Əgər İnt və Varchar tipləri NOT NULL-durlarsa o zaman default implicit qiymətlər İnt=0 və Varchar=’ ‘

Digər data tipləri, daha dəqiq desək Timestamp data tipi(və DATE tipləri) haqqında oxumaq üçün:
Timestamp data type

Təşəkkürlər🙂

Kateqoriyalar: MySQL Etiketlər: , , , ,
  1. Hələlik heç bir şərh yoxdur
  1. No trackbacks yet.

Bir cavab yazın

Sistemə daxil olmaq üçün məlumatlarınızı daxil edin və ya ikonlardan birinə tıklayın:

WordPress.com Loqosu

WordPress.com hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Twitter rəsmi

Twitter hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Facebook fotosu

Facebook hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Google+ foto

Google+ hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

%s qoşulma

%d bloqqer bunu bəyənir: