Arxiv

Archive for İ

Baku GTUG ilk “Hello World” tədbiri uğurla keçdi. (via Ramin Orucovun Java və Oracle bloqu)

Avqust 21, 2011 2 şərh

Ramin müəllimin çıxışı xüsusilə maraqlı idi. Əlbəttə ki Angry Birds-ü unutmayaq 🙂

Baku GTUG ilk "Hello World" tədbiri uğurla keçdi. Bu gün 20 Avqust tarixində Bakı Dövlət Universitetinin yeni tədris binasının akt zalında Baku Google Technology User Group-un "Hello World" adlı ilk tədbiri baş tutdu. Baku GTUG Kamran Səmədli və Elvin Əfəndiyev tərəfindən yeni yaradılmış açıq bir qrupdur. Google technology user group-larda rəsmi olaraq qeydiyyatdan keçmişdir. http://baku.gtugs.org/ Belə bir qrupun yaranması haqda öyrənən kimi qeydiyyatdan keçdim, çünki özüm hal hazırda Android m … Read More

via Ramin Orucovun Java və Oracle bloqu

Advertisements
Kateqoriyalar: Əlavələr Etiketlər: , , , ,

Using SHOW and DESCRIBE to obtaining metadata

Bugün SHOW və DESCRIBE istifadə etməklə metadata əldə olunmasından yazıram mənə maraqlı gəldi şəxsən 🙂
Konkret olaraq kommandaları və outputları yazıram:
1.

show databases;

bazada olan database siyahısını çıxardır.
show database
2.

show tables from world

world bazasında olan bütün table-ları çıxardır.
show tables from world
3.

show columns from countrylanguage;

countrylanguage table-ının sütun strukturunu göstərir.
show columns from country
Onu da deyim ki, eyni output-u

describe countrylanguage

vasitəsilə də almaq olar.
describe countrylanguage
Yəni

describe countrylanguage

=

show columns from countrylanguage

4. Lakin genişlənmiş formada

show full columns from countrylanguage;

yazdıqda yuxarıdakı output-a əlavə olaraq hər sətr üçün collation , privileges , comments göstərilir.

5.

show keys from city\G;

table-da olan index-ləri göstərir.
index

6.

show character set;

ve yaxud

show charset;

—displays the available character sets
7.

show collation;

—displays the collation for each caharacter set.
8.

show engine innodb status\G;

—innodb-nin özü haqda məlumatları çıxardan command-dır. İNNODB OUTPUT MONİTOR.
9.

show table status like 'city'\G;

—innodb engine-da işlətdikdə bu command table-ın Comment hissəsini və və bu table üçün nə qədər yer ayrıldığı görsənir.

10.

show create table countrylanguage\G;

—shows the CREATE TABLE statement that corresponds to a table’s definition, including columns, indexes and any table options table has.
show create table

Kateqoriyalar: MySQL Etiketlər: , ,

Indexes

Avqust 10, 2011 1 şərh

index-lərin nəyə lazım olduğundan danışmayacam dünyaca məşhurdu çünki.
MySQL-də 3 tip ümumi index var:
1.PRİMARY KEY
2.UNİQUE
3.bir də non-unique index-lər.

Table yaradarkən index-ləmə
Yeni table yaradarkən index-ləmək üçün:

create table index_show(
id int not null,
firstname varchar(25) not null,
lastname varchar(25) not null,
index(id)  --id column index-lendi artiq 
);

Və daha sonra table-a baxsaq

desc index_show;

output-umuz işarələnib:
table output

Eyni zamanda onu da deyək ki eyni zamanda bir neçə sütunu index-ləmək mümkündür.Buna Composite Key deyilir.

create table index_show(
id int not null,
firstname varchar(25) not null,
lastname varchar(25) not null,
index(id,firstname,lastname)  --id column index-lendi artiq 
);

output yuxarıdakı ilə eynidir.
table output

Lakin Parallel İndex-lər şəklində yazdıqda:

create table index_show(
id int not null,
firstname varchar(25) not null,
lastname varchar(25) not null,
index(id),
index (firstname),
index(lastname)   
);

Output-da hər üç sütunun ayrı-ayrı index-ləndiyi görsənir:
table output
Səbəbini bilirəmsə arap oluyum 🙂

Gələk əsas məsələyə PRİMARY KEY(PK) və UNİQUE.
PK üçün kodumuz:

create table index_show(
id int not null,
firstname varchar(25) not null,
lastname varchar(25) not null,
primary key(id)
);

Və output olaraq da:
primary key output

PK üçün də eyni zamanda Composite Key qaydası mövcuddur və İNDEX-dən fərqli olaraq hamısı ayrı-ayrılıqda sıralanır:

create table index_show(
id int not null,
firstname varchar(25) not null,
lastname varchar(25) not null,
primary key(id,firstname,lastname)
);

Ayrılıqda sıralanmanı göstərən output:
primary key output

Lakin Paralel olaraq Primary Key verdikdə,yəni 2 və ya daha çox PK yazdıqda ERROR verir.

create table index_show(
id int not null,
firstname varchar(25) not null,
lastname varchar(25) not null,
primary key(id),
primary key (firstname)
);

ERROR:
primary key output

Səbəb bir table-da yalnız bir PK ola bilər.Əgər bu belədirsə, onda nəyə görə Composite PK yazmaq mümkündür? 🙂 Bilmirəm 🙂

Unique Key-ə gəlirik. İlk öncə onu deyim ki hər hansl NOT NULL column-a Unique vermək elə onu Primary Key kimi elan etməkdir. Sadəcə PK-da əgər column definition-da açıq şəkildə NOT NULL verilməyibsə, MySQL implicit şəkildə PK şəklində index-lənmiş column-u NOT NULL edir. Əgər bunu sınasaq:

create table index_show(
id int not null,
firstname varchar(25) not null,
lastname varchar(25) not null,
unique (id,firstname)
);

və yenə DESCRİBE versək, output olaraq yuxarıdakı məlumatın doğruluğu sübut olunar.
unique output

İndi isə sütunun birini NOT NULL digərini isə NULL olaraq saxlayaq:

create table index_show(
id int not null,
firstname varchar(25),
lastname varchar(25) not null,
unique (id,firstname)
);

Output Fərqlidir:

unique key

İndi isə paralel olaraq Unique Key verək. lakin yenə da bir sütunu NOT NULL digərini isə NULL saxlayaq:

create table index_show(
id int not null,
firstname varchar(25),
lastname varchar(25) not null,
unique (id),
unique (firstname)
);

Output yenə fərqlidir 🙂

unique paralel output

Əslində mövzunu başa düşürük amma beyinlər sulanır məncə 🙂
Təşəkkürlər. Sualımı Comment-də verəcəm.

Kateqoriyalar: MySQL Etiketlər: , , ,

ENUM and SET data types

ENUM və SET-i oxuyarkən xoşuma gəldi. Maraqlı gəldi deyə bilərik hətta 🙂
Dərhal işə qoyulsaq və bir table yaratsaq:

create table employees (
name varchar(25),
occupation ENUM ('President','Sales Manager','System Adminstrator')
);

Və dərhal bir insert etsək:

insert into employees (name,occupation) values('Shahriyar','President');

Hər şey uğurla gedir və output:
Output of query

indi isə sorğunu biraz dəyişək və:

insert into employees (name,occupation) values('Ehmed','Finance');

Output isə dəhşətlidir 🙂 :
Query output

Səbəb-Çünki “Finance” yazısı table-ı yaradarkən ENUM listin içində deyildir. Yəni insert edərkən yalniz ‘President’,’Sales Manager’,’System Adminstrator’-a icazə var. Eyni error :

insert into employees (name,occupation) values('Ehmed','');

Yazarkən de çıxır. Yəni ENUM sütununa ne səhv məlumat, nə də ki boş (NULL) məlumat daxil etmək mümkün deyil.

ENUM haqqında digər maraqlı bir şey isə-“ENUM sütun definition gördüyünüz kimi string-lərlər verilir.Ancaq daxilen MySQL bu məlumatları integer olaraq saxlayır. Yəni, ‘President’=1 ‘Sales Manager’=2 ‘System Adminstrator’=3 “.
Bu məlumatı yadda saxlayırıq və yeni bir table yaradırıq:

create table age_list(
age int,
list_of ENUM('0','1','2','3','4')
);

Yuxarıda dediyimiz tərifə əsasən nəticə çıxardırıq ki: ‘0’=1, ‘1’=2, ‘2’=3, ‘3’=4, ‘4’=5.
indi isə 1ci insert-imizi edək:

insert into age_list (age,list_of) values (18,'3');

Output bizim gözlədiyimiz kimidir:
output
Və super ikinci insert-imiz:

insert into age_list (age,list_of) values (18,3);

Output bizim gözlədiyimiz kimi deyil malesef 🙂 :
output

Məncə anlaşıldı nəyə görə belə olduğu 🙂

O ki qaldı SET-ə onda biraz sadəlik hökm sürür.
Bir table yaradaq:

create table show_xestelik(
xestelikler SET('olumcul','yungulvari','orta-agir')
);

Gülməyə ehtiyac var ağlıma indiki halda ancaq bu gəldi 🙂
Daha sonra 3 ədəd insert verək:

insert into show_xestelik (xestelikler) values('');
insert into show_xestelik (xestelikler) values('olumcul');
insert into show_xestelik (xestelikler) values('yungulvari,orta-agir');

SET-də boş(NULL) məlumat daxil etmək olurmuş. Sübutumuz:
set output

Boş məlumatın yeri görsənir 😉 Lakin SET-də də list-də olmayan məlumat daxil edildikdə ENUM-dakı kimi error verir.
Təşəkkürlər.

Kateqoriyalar: MySQL Etiketlər: , , ,