nedir

yaz bakımıGerek ev hayatı gerekse çalışan hanımlar için iş güç iyice hayatı yorucu kılıyor.kendinize yeterince bakamıyor olabilirsiniz.ama yaz geliyor hanımlar artık yaz için bakım yapmanın yaza bakımlı girmenin vakti geldi.

yaza bakımlı girmek için bu önerilere dikkat edin siz de göz kamaştırın….

Yatağınızda yatarken kollarınızı bacaklarınızı iyice gerip kaslarınızı çalıştırmaya başlayın. Ardından hareketli müzik eşliğinde durduğunuz yerde koşun. Göğüs kollarınızı çalıştırmak için elinize iki ağırlık alın. Göğüs hizasına kaldırıp 20 kez kollarınızı açıp kapayın. Read the rest of this entry »

Eşinizi ya da partnerinizi etkilemek ” seni deliler gibi istiyorum ! ” sözünü söyletmek ister misiniz ?

Erkekleri etkilemek aslında sanıldığı kadar kolay değildir.görünüşte değil özde etkilemek için yapmanız gereken daha önemli şeyler var.bırakın miniler giymeyi ya da deli gibi süslenmeyi yazımızı okuyun…

arkadaşınızın ya da kocanızın sizinle birlikte daha iyi vakit geçirmesini istiyorsanız, ilişkiniz rutine girdikten sonra da sizden sıkılmamasını istiyorsanız, onun hoşlandığı şeyleri kendi hobiniz haline getirerek erkeğinizin yaşamında daha fazla alana sahip olabilirsiniz, işte Cosmotürk’ün sizin için hazırladığı kulağınıza küpe olması gereken noktalar : Read the rest of this entry »

Bu fonksiyonları bir değişkeni biçimlendirmekte kullanırız. Birincisinin elde ettiği sonuç ziyaretçinin Browser penceresine gönderilir; ikincisin elde ettiği sonuç ise değer olarak döner. Önce bu fonksiyonlarla kullanabileceğimiz biçim parametrelerini sıralayalım:

% Yüzde işareti. Yanında biçim parametresi gerekmez.

b Değişken tamsayı olarak işlem görür ikili sayı olarak döner.

c Değişken tamsayı olarak işlem görür ASCII değerinin şılığı olan karakter olarak döner.

d Değişken tamsayı olarak işlem görür ondalık sayı olarak döner.

f Değişken kesirli sayı olarak işlem görür kesirli sayı olarak döner.

o Değişken tamsayı olarak işlem görür sekiz-tabanlı (octal) sayı olarak döner.

s Değişken alfanümerik olarak işlem görür alfanümerik olarak döner.

x Değişken tamsayı olarak işlem görür 16 tabanlı (hexadecimal) sayı olarak döner. (Harfler, küçük harf olur).

X Değişken tamsayı olarak işlem görür 16 tabanlı (hexadecimal) sayı olarak döner. (Harfler, büyük harf olur).

Her iki fonksiyonun da kullanılış biçimi aynıdır:

printf( "biçim" , $degisken1, $degisken2, … "metin" );

Burada "biçim" yerine yukarıdaki biçim parametlerini yazarız. Biçim parametrelerinin önüne yüzde işareti konur; en fazla beş belirleyici özellik alabilir. Yukarıdaki tür belirten biçimlendirme parametlerine ek olarak diğer özellikler şöyle sıralanır:

Doldurma karakteri: tek onu izleyen bir karakterden oluşur.

Hizalama: Eksi işaretinin varalığı yazının sola, yokluğu ise sağa hizalanma anlamına gelir.

En az-en çok uzunluk: Sayı-nokta-sayı (örneğin 40.40 gibi) yazılır; birinci sayı azamî, ikinci sayı asgarî uzunluğu belirtir.

Bu üç özelliğe bir örnek verelim.Bir değişkenin değerinin sonuna yanyana yeteri kadar nokta konarak uzunluğunun 40 karaktere çıkartılmasını şu deyimle sağlarız:

:

$degisken = " İyilik üzerine " ;

printf( "%`.-40.40s" , $degisken);

Burada "%`.-40.40s" şeklindeki biçim komutu, Browser penceresinde şu görüntüyü oluşturur:

"İyilik üzerine…………………….."

Burada "İyilik üzerine" değeri 14 karakter olduğu için, sonuna 26 nokta eklenmiş bütün değer sola hizalanmış olacaktır. Şu komut ise iki değişkenin değerini vereceğimiz bir metni aynı satıra yazdıracaktır:

:

$degisken1 = " İyilik üzerine " ;

$degisken2 = " İyilik üzerine " ;

$metin = "<br>n" ;

printf( "%`.-40.40s%`.2d%s" , $degisken1, $degisken2, $metin);

Bu komut Browser penceresinde şu görüntüyü oluşturur:

"İyilik üzerine……………………..86"

Burada eklediğimiz ikinci "%`.2d" şeklineki biçim komutu ile, ikinci değişkenin değeri, en az sıfır en çok iki nokta ile doldurulmak sağa hizalanarak ondalık sayı olarak görüntülenmek üzere biçimlendiriliyor. Üçüncü biçim komutu olan "%s" ise üçüncü değişkenin sadece alfanümerik olarak muamele görmesini sağlıyor. Biçim komutlarının arasında boşluk bulunmaması, ait oldukları değişken değerlerinin de aralarına boşluk konmamasına sebep oluyor. Üçüncü değişkenin etkisini, kağıt üzerinde göremiyoruz; ancak bu Browser penceresinde bundan sonra gelecek unsurların bir satır aşağı kaymasını sağlayacaktır.

Dördüncü biçim özelliği, ondalık sayıların virgülden (veya nokdtadan) sonra ondalık ünün kaç hane olacağını belirler. Bunu da bir örnekle görelim:

:

$degisken = " 124 " ;

printf( "Değeri (ABD) $%.2f" , $degisken);

Bu biçimlendirme komutu da Browser penceresine şu yazıyı yazdırır:

Değeri (ABD) $124.00

kaynak: ordan burdan

tek veya çift içine de alsak, , bir değişken adını gördüğü zaman onun yerine o değişkenin tuttuğu değeri yazar. bunu, değişken adının başındaki $ görerek yaparak. $ işareti gibi için özel anlamı olan işaretlerin anlamlandırılmasını önlemek bu işaretleri düz metin saymasını sağlamak için bu işaretlerin önüne ters-bölü işareti koyarız. Buna o karakteri kurtarma veya ESCaping denir. `nin anlamlı işaretleri bunların ESCape-yazılışı şöyledir:

` Tek

" Çift

Ters-bölü

$ işareti

n Yeni Satır (New Line)

r Satır Başı (Return)

t Sekme (Tab) karakteri

Kimi zaman bir değişkene atadığımız değerin türünü değiştirmek gerekir. Bunu settype() fonksiyonu ile yaparız. Elimizde böyle bir imkan var diye, bir değişkenin alfanümerik (String) olan değerini sayıya çevirebileceğini sanmayın. buna çok kızar! Şu örneği de tur_degistir. adıyla kaydedelim:

:

<>

<HEAD>

<TITLE>`de Degisken Turleri</TITLE>

<meta http-equiv="content-type" content="text/; charset=ISO-8859-9">

<meta http-equiv="Content-Type" content="text/; charset=-1254">

</HEAD>

<BODY>

<B>

<H2>

<?

$degisken = 5.67890;

print("Değişkenin değeri : ");

print "$degisken<br>";

print("Türü : ");

print gettype( $degisken ) ; //çift,ondalık/double

print "<br>";

print "<br>";

print "İlk değiştirme işlemi: Alfanümerik/String:<br>";

settype( $degisken, string ); //alfanümerik/string

print "Değeri : ";

print "$degisken<br>";

print("Türü : ");

print gettype( $degisken ) ; //alfanümerik/string

print "<br>";

print "<br>";

print "İkinci değiştirme işlemi: Tamsayı/Integer:<br>";

settype( $degisken, integer ); //Tamsayı/Integer

print "Değeri : ";

kaynak: ordan burdan

Yardımcı Komutlar:
Sql komutları sadece hafızada tutulurlar. İşletilen her komut hafıza tutulur. O yüzden kullanıcının isini kolaylaştırmak için bazı ek komutlara ihtiyaç duyulmuştur. Sql Plus 'a girmek için komut satırında şu şekilde girilir;

SQLPLUS [kullanıcı adı [/şifre [@Database]]]

A[PPEND] Text –>Satir sonuna kelime ekler.
C[HANGE] /eski/yeni –>eski text yerine yeni text ekler. Yeni alanı bos bırakılırsa eski alan olarak belirtilen text silinir.
CL[EAR] BUFF[ER] –>SQL hafızasındaki tüm satırları siler, hafızayı boşaltır.
DEL –>Aktif olarak bulunduğu satiri siler. Satir no belirtilirse o satiri siler.
I[NPUT] Text –>Satir arasına Text ifadesiyle belirtilen cümleyi ekler.
L[IST] –>Hafızadaki tüm satırları listeler.
L[IST] m n –>Sadece m ile n arasındaki satırları listeler.
R[UN] –>Hafızadaki SQL satirini çalıştırır. Ayni işlevi "R,r,/, ; " karakterleride yapar.
n Text –>n satırındaki cümleyi Text ifadesi belirtilen alana yazılan cümle ile değiştirir.
0 Text –>Bulunduğu satırdan bir önceki satıra yeni alan açar text 'i oraya ekler.
SAVE Dosya –>Hafızadaki komutu belirtilen dosya adı altında saklar.
GET Dosya –>Belirtilen dosyayı hafızaya yükler.
START Dosya–>Belirtilen dosyayı direkt çalıştırır. Hafızaya yüklemez. @ işaretide aynidir.
ED[IT] Dosya–>Belirtilen dosyayı bir editör içinde açar.
SPOOL –>Ekranda yapılan her türlü isi dosyaya atar. SPOOL OFF ile dosyaya işlemini durdurur.
EXIT –>SQL 'den çıkış sağlar.
HELP Komut –>Belirtilen komut için açıklayıcı bilgi verir.

SQL Plus Fonksiyonları:
Fonksiyonlar sayesinde;Datalar üzerinde hesap yapabilir, Datalar üzerinde değişiklikler yapılabilir, Grup oluşturularak bu kayıtlar için kullanılabilir. datası çeşitli formatlarda görüntülenebilir, Kolon tipleri değiştirilebilir. İç içe fonksiyonlar mlanabilir. Öncelikle içteki fonksiyon çalışır. Çıkan sonuca göre dıştaki fonksiyon işlem görür.
Sys.Dual : Oracle database 'inde bulunan tek kolon tek satırdan oluşan bir tablodur. Belirli bir tablodan değerler almadan fonksiyonların kullanılması gerektiğinde bu tablo kullanılır.

Karakter Fonksiyonları:
LOWER(Text) : Text olarak belirtilen alanı küçük harfe çevirir.
UPPER(Text) : Text olarak belirtilen alanı büyük harfe çevirir.
INITCAP(Text) : Text olarak belirtilen alanın bas harfini büyük diğerlerini küçük harfe çevirir.
CONCAT (Text1,Text2) : Text1 olarak belirtilen alan ile Text2 alanını birleştirir. ' || ' simgeside aynidir.
SUBSTR(Text,m,n) : Text alanının m. karakterinden itibaren (m. karakter dahil) n kadar karakter alır. LENGTH(Text) : Text alanın karakter uzunluğunu Sayısal olarak verir.
NVL(KOLON,DEGER) : Kolonun aldığı değer null ise değer alanında belirtilen değeri verir.

Sayısal Fonksiyonları :
ROUND(Sayı,m): Sayı alanına girilen rakam, m olarak belirtilen ondalık kadar yuvarlar.

Örneğin;

ROUND(45.923,2) –>45.92
ROUND(45.923,0) –>46
ROUND(45.923,-1) –>50
ROUND(45.951,2) –>45.92
ROUND(45.929,2) –>45.93

TRUNC(Sayı,m): Sayı alanına girilen rakam, m olarak belirtilen ondalık kadar sondan keser.

TRUNC(54.923,2) –>45.92
TRUNC(54.923,-1) –>40
TRUNC (54.929,2) –>45.92

MOD(m,n) : m Sayısı n Sayısına bölündüğünde kalan rakamı bulur.

Zamansal Fonksiyonları İşlemleri:

+ Sayı –>Tarihe Sayı kadar gün ekler.
- Sayı –>Tarihe Sayı kadar gün çıır.
- –>İki arasındaki gün farkını Sayısal olarak verir.
+ Sayı / 24 –>Tarihe Sayı kadar saat ekler.
SYSDATE –>Sistem tarihini verir. Oracle 'ın varsayılan formatı 'DD-MON-YY' seklindedir. Üzerinde aritmetiksel işlemler yapılabilir.
MONTHS_BETWEEN(tarih1,tarih2)–>İki arasını ay olarak bulur.
ADD_MONTHS (,n) –>Tarihe n kadar ay ekler.
NEXT_DAY(,' gün' ) –> 'den sonraki günün ilk tarihini verir.
LAST_DAY(,' gün' ) –> 'den önceki günün ilk tarihini verir.
ROUND([,' fmt '] ) –> 'i belirtilen formata göre aya veya yıla göre yuvarlar.
TRUNC([,' fmt '] ) –> 'i belirtilen formata göre aya veya yıla göre keser.

Çevirme Fonksiyonları:

TO_CHAR(Sayı,['fmt']) : Girilen veya Sayıyı karakter tipine çevirir.

parametreleri;

YYYY –>Yılı rakamsal olarak gösterir.
YEAR àYılı yazısal olarak verir.
BC –>Millattan önce sonrası için zaman verir.
MM –>Ayi rakamsal olarak gösterir.
MONTH –>Ayi yazısal olarak verir. Belirtilen ülkenin yazısıyla verir.
MON –>Ayi yazısal sadece ilk 3 harfini verir. Belirtilen ülkenin yazısıyla verir.

RM –>Ayi roma rakamıyla gösterir.
DD –>Günü rakamsal olarak gösterir.
DAY –> Günü yazısal olarak verir.

Sayısal parametreleri;

–> Rakamdır.
–> Sıfır rakamı verir.
$ –> Rakamın başına $ işareti koyar.
. –> Ondalık haneye ayırır.
, –> Rakamı 3'er hane ayırarak aralarına virgül koyar.
MI –> Negatif Sayılar için sonuna - işareti koyar.

Örneğin " x nolu kişi xxx'dir." Formatında ekrana liste oluşturalım (id number);

SELECT TO_CHAR(id) || ' nolu kişi ' ||name||'dir.'

Örneğin sistem tarihini DD-MM-YYYY olarak gösterelim;

SELECT TO_CHAR(sysdate,' DD-MM-YYYY')

Örneğin sistem zamanını HH:MI olarak gösterelim;

SELECT TO_CHAR(sysdate,' HH:MI' )

TO_NUMBER (Karakter) : Girilen karakteri Sayısal ifadeye çevirir.
TO_DATE(char, ['fmt']) : Girilen karakteri belirtilen formatta formatına çevirir.

Örneğin kolonundaki değerleri, 7 /11/1998 tarihine eşit olanların listesini oluşturalım. Ama kolon değerleri string olarak ayin uzun ad, günü yılı Sayısal olarak kayıtlıdır. Bu sorunu çözmek için kullanılır;

SELECT no, maas
FROM Personel
WHERE MAAS_TARIH=TO_DATE('KASIM 7, 1998', 'Month dd,YYYY')

Tablolar Arasında İlişki Kurulması (JOIN):
* Birden fazla tabloyla ilişki kurularak ortak sorgulama yapılmasıdır. Tabloları belli bir ortak kolona göre birleştirmek için join yöntemi kullanılır. Bunun için öncelikle tablolardaki kolonlar ayni tipte ayni büyüklükte olmalıdır.
Yazılımı:

SELECT table1.kolonları,table2.kolonları
FROM table1, table2
WHERE table1.kolon1=table2.kolon2

İki tabloyu birleştirmek için iki tabloda ortak bulunan kolonları where kotulu içinde editleriz.
Örneğin personel adı bulunduğu departman listesi için;

SELECT a.*,b.*
FROM personel a , departman b
WHERE a.dept_id=b.dept_id

Böylece personel tablosundan personel adı soyadı, departman tablosundan departman adı bilgisi getirilir. * Bazı durumlarda tablo birleştirme koşulu bir aralık şeklinde oluşabilir. Yani tabloları birleştirirken anahtar sahaların belirli bir aralığı seçilebilir.

SELECT table1.kolonları, table2.kolonları
FROM table1, table2
WHERE table1.kolon1 BETWEEN table2.min2 AND table2. max2

* (OUTER JOIN) Bir diğer durumda tablodaki verilerin değerleri null olabilir. Fakat biz null değerlere sahip olanlarıda birleştirmek istersek eksik olan tablonun yanına (+) işareti eklenir.

SELECT table1.kolonları, table2.kolonları
FROM table1, table2
WHERE table1.kolon1 (+) = table2.kolon2

* (SELF JOIN) Bir başka durumda ayni tablodaki kendi içindeki kolonlar arasında ilişki kurulabilir. Bazı durumlarda kolonlardaki değerleri eşit olma durumlarına göre sorgu düzenlenebilir.

SELECT table1.kolonları
FROM table1 a, table1 b
WHERE table1.a = table1. b

Grup (GROUP) Fonksiyonları :
Bazen belli bir koşula uygun belli bir topluluk için sorgu kurulabilir. Bu durumda grup işlemi . Örneğin departmanlara göre grup oluşturulup o departmandaki personel Sayısı hesaplanabilir. Grup Fonksiyonları sadece grup ifadeleriyle kullanılabilir.
Yazılımı:

SELECT kolonlar, grup Fonksiyonları
FROM table
[WHERE kotul]
[GROUP BY grup_kolonu]
[HAVING group_kotulu]
[ORDER BY kolon]

GROUP BY satiri ile kolonlar üzerinde küçük gruplar oluşturulur.
HAVING satiri ile bu oluşturulan grup için grup koşulları mlanabilir. Where koşulundan farkı WHERE üzerinde koşul koyar, HAVING ise sadece grup kayıtları üzerinde koşul konabilir grup Fonksiyonları kullanılabilir.

AVG(Kolon) : Belirtilen kolonun ortalamasını bulur.
COUNT(Kolon) : Belirtilen kolonun Sayısını bulur. Count(*) ile o grupta oluşturulan Sayısı hesaplanır. Null değerler için nvl fonksiyonu kullanılır. Çünkü kolon içindeki null değerler işleme alınmaz.
MAX(Kolon) : Belirtilen kolondaki kayıtların değerlerinin maksimum değerini bulur. Sayısal, karakteristik veya tarihsel olarak kendi içinde sıralama yapabilir.
MIN(Kolon) : Belirtilen kolondaki kayıtların değerlerinin minimum değerini bulur. Sayısal, karakteristik veya tarihsel olarak kendi içinde sıralama yapabilir.
SUM(Kolon) : Belirtilen kolondaki kayıtların değerlerinin Sayısal toplamını bulur.
VARIANCE(Kolon) : Belirtilen kolondaki kayıtların değerlerinin matematiksel varyansını bulur.

Örneğin bir personel listesindeki departmanların ayrı ayrı departman içindeki personelin max min maas alan kişilerin maaslarını isteyelim;

SELECT Departman_id, MAX(Maas) , MIN(maas) TABLE Personel GROUP BY Departman_id

Veya 38 nolu departmandaki personel Sayısını bulalım;

SELECT COUNT(*) TABLE Personel WHERE Departman_id = 38

Veya tüm departmanlardaki maaslarının ortalaması 80.000.000 'den büyük olanların listesini oluşturalım;

SELECT Departman_id, AVG(Maas) TABLE Personel GROUP BY Departman_id HAVING AVG(maas) > 80000000

Bazı durumlarda iç içe grup oluşturulması istenebilir. Bu durumda şu şekilde yazılır.

GROUP BY Kolon1, Kolon2 , …

Örneğin Departman adına personel yaşına göre grup oluşturalım.

SELECT Departman_id, Yas
TABLE Personel
GROUP BY Departman_id, Yas

SQL PLUS - DERS 2
Altsorgular(SUBQUERY):

Subquery, bir sorgu oluşturulurken, bu sorguya ait kriterleri başka bir sorgu belirleme durumudur. Kısaca sonucu bilinmeyen koşullar olduğunda bu yöntem kullanılır.

Yazılımı:

SELECT …..
FROM ……
WHERE kolon=( SELECT …
FROM ….
WHERE ….)

Select cümlesi parantez içinde mlanır. = koşulu kondu ise select cümlesi tek değer döndürmek zorundadır. Eğer birden fazla değer için koşul konulması gerekirse " in, not in " kelimesi kullanılır. Tek döndüğünde = yerine >,>=, <, <=, <> kontrol ifadelerice kullanabiliriz. Bir önemli nokta da koşula eşitlenecek değer 2. Select cümlesi içindeki kolon değerine es olmalıdır. Yani tipleri eşit olmalıdır.Subquery sorgulama tekniğinde order by kullanılamaz.Having grup kotulu içinde select cümlesi kullanabiliriz.

Örneğin;

Sorgu : Mehmet' in departman numarası kaçtır?

SELECT dept_id,name
FROM Personel
WHERE name='Mehmet'

Sorgu : Departman numarası 38 olan kişilerin listesinden adı mehmet olan var mi incele?

SELECT dept_id,name
FROM Personel
WHERE dept_id=38

Sorgu : Bu iki sorgunun birleşimi istenirse, yani departmanı 38 olan mehmet adli personel bilgisi ?

SELECT dept_id,name
FROM Personel
WHERE dept_id=( SELECT dept_id
FROM Personel
WHERE name='Mehmet')

Çalışma Anında Sorguya Dışarıdan Deger Alma:

Bir sorgu oluşturulurken bazen bazı alanların değerleri değişkendir. Bu yüzden sorguya dışarıdan değer girilmesi bu değere göre bir sorgu oluşturulması gerekir. Bunun için anahtar kelimenin basına ' & ' karakteri getirilir. Örneğin istenilen departman koduna göre personelin adı soyadı listeleyelim;

SELECT ad,soyad
FROM Personel
WHERE Dept_id = &Departman_kodu

:

Departman_kodu için değer gir: 38
eski 1: select ad,soyad from Personel where Dept_id = &Departman_kodu
yeni 1: select ad,soyad from Personel where Dept_id = 38

Eğer sorgu yazılımı sorunlu ise bu giriş yapıldıktan sonra anlaşılır kesinlikle girilen değer kolon tipine es olmalıdır. Örneğin '&anahtar_kelime' seklinde arasında belirtilmişse giriş olarak sadece text değer girilir. Ama &anahtar_kelime içinde belirtilmemişse giriş yapılırken içinde giriş yapılmalıdır. Birden fazla &anahtar_kelime mlanırsa sırayla sorgu sorulur tüm değerler girildikten sonra sorgu oluşturulur. Eğer where koşulunda &anahtar_kelime'si kullanılmışsa giriş yapılırken matematiksel koşul seklinde giriş yapabiliriz.Eğer anahtar kelimenin basına ' && ' konulursa sorgu sırasında sadece bir kerelik sorgu sorulur. Bundan sonra anahtar kelimenin değeri ilk girilen değer olarak geçerlidir.

DEFINE değişken=değer : Belirtilen değişkene karakter atanır.
ACCEPT : Kullanıcıya açıklayıcı mesaj verilerek istenilen tipte veri girişi yapılması sağlanır. & işaretiyle yapılan işlemin daha kontrollü seklidir. Yazılımı :

ACCEPT değişken [datatipi] [ FORMAT ] [PROMPT text] [HIDE]

Değişken –> Giriş yapılacak verinin değerinin tutulduğu anahtar kelimedir.
Datatipi –> Girişi yapılacak verinin veri tipidir.
FORMAT –> Giriş yapılacak verinin giriş düzeni sağlanır. Örneğin rakam için 9999 (4 haneli Sayı) , karakter için A10 (10 karakterlik yer) .
PROMPT –> Kullanıcıya gireceği değer için açıklayıcı mesaj görüntüler.
HIDE –> Giriş yapılırken verinin görüntülenmeden giriş yapılması sağlanır. Örneğin şifre girişlerinde.

Örnekler;

ACCEPT adı PROMPT 'Adinizi giriniz:'
ACCEPT yas NUMBER PROMPT 'Yaşınızı giriniz:'
ACCEPT yıl NUMBER FORMAT 9999 PROMPT 'Bulunduğunuz yılı giriniz:'
ACCEPT sifre CHAR PROMPT 'Şifrenizi giriniz:' HIDE

Örnek: Personel adına göre personel bilgilerini gösterelim. Bunun için bir .sql uzantılı dosyada yazalım. Bu ı start ile çalıştıralım.

SET ECHO OFF
ACCEPT adı PROMPT ' Adinizi Giriniz:'
SELECT * FROM Personel
WHERE UPPER(Personel.ad) LIKE UPPER('&adı')
SET ECHO ON

"Start Ornek.sql " yazılarak sql çalıştırılır.Bazen parametre girişlerini daha başlangıçta vermek istenirse;Start Dosya_adı Parametreler,…Örneğin yukarıdaki örnek için Start Örnek Kazim.

Tabloların Yaratılması:

Database 'de verilerin saklanması amacıyla tablolar yaratılır. Tablo yaratabilmek için o kullanıcının buna yetkisi olmalıdır. Ayni zamanda limitsiz tablespace hakkına sahip olmalıdır. Yazılımı :

CREATE TABLE [kullanıcı.]table
(kolon datatipi(boyutu) [DEFAULT değer]
[CONSTRAINT constraint_name] constraint_type]
[table_constraint]
[PCTFREE integer] [PCTUSED integer]
[TABLESPACE tablespace] [STORAGE storage_clause]
[CACHE]
[ENABLE enable_clause]
[DISABLE disable_clause]
[AS subquery]

Kullanıcı –> Tablonun yaratıcısıdır. Onun sahip olduğu haklara mekana sahiptir.
Kolon –> Tablonun kolon adlarını belirler. Bir tablodaki kolon Sayısı 1-254 arasında olmalıdır.
Datatipi –> Bir kolonun veri tipini belirler.

Varchar2(boyut): Boyut ile belirtilen max miktar kadar karakterdir.Max değeri 2000'dir.
Char(boyut) : Boyut ile belirtilen max miktar kadar karakterdir.Max. değeri 255'dir. Number : e38 'e kadar olan tüm Sayısal değerlerdir.
Number(m,n) : m kadar (max e38) Sayının n kadar ondalık alan için değer alır.
Date : saat değerlerini bir tutar.
Boolean : Mantıksal ifadeleri saklar. Yani doğru ise True, yanlış ise false.
Long : Max 2GB 'a kadar büyük olan alanlar için yer tutar.
Raw : Grafiksel yapıdaki veriler için mlanır.
DEFAULT –> Herhangi bir kolona değer girilmezse, direkt olarak değer atamaya yarar. Girilen değerin veri tipi ile ayni olması gerekir.
CONSTRAINT –> O kolon için daha açıklayıcı olması açısından yapısı açısından kullanılır.
table_constraint –> O tablo için daha açıklayıcı olması açısından belirtilen etikettir.
PCTFREE –> Tablo üzerinde yapılan güncelleme İşlemleri için, bloklarındaki ayrılacak rezervasyon yüzde değeridir. 1-99 arasında bir tamsayıdır. 0,tüm bloklara yeni girişine izin verilir. Varsayılan değer 10'dur. Yani güncelleme için her bloğun %10'unu rezerve eder. Geri kalan %90'nini ise yeni girişlerine ayırır.
PCTUSED –> Tablonun her veri bloğu için Oracle 'lın koruduğu, kullanılmış alanın min yüzdesini verir. 1-99 arasında bir tamsayıdır.Varsayılan değeri 40'dir. Verilen parametre değerinin altına düşecek blok için, yeni girişi seçimliktir. PCTFREE+PCTUSED <100 olmak zorundadır.
TABLESPACE–> Oracle 'ın tabloyu yaratacağı tablo boşluğunu belirler. Eğer mlanmazsa çalışılmakta olan kullanıcının tablo boşluğunda yaratılır.
STORAGE –> Tablonun depolama karakteristiğini belirler. Büyük tablolarda performans düzenleyici olarak kullanılır.
CACHE –> Tablo üzerinde arama yapılırken, hafıza cache'nin en çok kullanılanlar üzerinde yer almasını sağlar.
ENABLE –> Bütün sınırlamaları geçerli kılar.
DISABLE –> Bütün sınırlamaları iptal eder.
AS query –> Tablo yaratılırken, alt sorgu aracılığı ile geriye döndürülen satırlar tabloya yerleştirilir.(insert)

Data Dictionary:

Database ile ilgili her türlü bilgiyi buraya atar. Buradan verilere ulaşabiliriz. Kullanıcılar, tablolar, indexler, constraintsler vb. birçok açıklayıcı bilgiler tutulur. Bütün tablo viewerların adlarını açıklamalarını görmek için ;

SELECT * FROM Dictionary;
Dictionary 'nin yapısını görmek için;
DESC dictionary
İsim Tip

——————– ————————–

TABLE_NAME VARCHAR2(30)
COMMENTS VARCHAR2(2000)

Dictionary 'de bulunan objelerden bazıları;

User_tables : Hangi kullanıcı ile login olundu ise o kullanıcıya ait tabloları listeler.
All_tables : Bütün kullanıcıların yarattığı tabloları listeler.
Dba_tables : Database ile ilgili her türlü tablolar listelenir.
V$_tables : Sistemin performansını ölçmek için tutulan bilgilerdir.
V$_librarycache: Cache'in yeterli olup olmadığını anlamak için bakılır.
V$_rollstat : Rollback segmentinin yeterli olup olmadığını anlamak için bakılır.

Örnek : Login şifresiyle giren kullanıcının yarattığı tabloların listesini alalım;

SELECT table_name FROM user_tables

Örnek: Tüm obje isimlerinin listesini alalım;

SELECT object_name FROM user_objects

Database Üzerinde Transaction Kontrol Komutları:

Transaction, datanın tutarlı şekilde korunmasını sağlayan yöntemdir. Database üzerinde yapma , silme, düzeltme vb. İşlemlerin yapılabilmesi için aşağıdaki komutlara ihtiyaç vardır;

INSERT INTO : Tabloya yeni bir eklenmesini sağlar. Yazılımı;

INSERT INTO table [(kolon1, kolon2, ...)] VALUES (değer1, değer2, …)

Kolon : Tablonun yapılacağı kolon adlarını belirler. Bir tablodaki kolon Sayısı 1-254 arasında o tabloda var olmalıdır. Deger : O kolon için alacağı değer verilir. Kolon tipiyle ayni olmalıdır. Eğer kolon adları belirtilmezse değerler kolon sırasına göre değer almalıdır. Degerlere sysdate, user vb. hazır fonksiyonlar aktarılabilir. Eğer bir alana değer verilmesi istenmiyorsa, yani bos değer verilmesi isteniyorsa NULL değeri verilir.

Örnek: Personel tablosuna yeni bir personel girişi yapalım;

INSERT INTO personel (ad,soyad,maas,ayrilma_tarihi,kayıt_giriş_tarihi)
VALUES ('Kazim','Sarikaya',400000000,NULL,SYSDATE)

Ayni örnek için kolon sırasını bildiğimiz düşünülürse şu şekilde de yazılabilir;

INSERT INTO personel
VALUES ('Kazim','Sarikaya',400000000,NULL,SYSDATE)

Sadece tek girişi yapılıyorsa, rahat veri girişi yapılması için değerlere değişken mlayarak veri girişi sağlayabiliriz. Böylece table her çalıştığında yeni veri girişi .

Örnek: Personel tablosuna her çalıştırdığımızda yeni bir personel girişi yapalım;

INSERT INTO personel (ad,soyad,maas,ayrilma_tarihi,kayıt_giriş_tarihi)
VALUES ('&Adi','&Soyadı',&maas,NULL,SYSDATE)

Örnek: Daha güvenli rahat giriş yapılacak şekilde yapılacak script yazalım;

SET ECHO OFF
ACCEPT ad PROMPT 'Adini giriniz:'
ACCEPT soyad PROMPT 'Soyadı giriniz:'
ACCEPT maas PROMPT 'Maasini giriniz:'
INSERT INTO personel(ad,soyad,maas,ayrilma_tarihi,kayıt_giriş_tarihi)
VALUES ('&ad','&soyad',&maas,NULL,SYSDATE)
/
SET ECHO OFF
yapılacak kolonların değerleri bilinmiyorsa veya başka bir tablodan değer alınması gerekiyorsa aşağıdaki yapı kullanılır;
Yazılımı; INSERT INTO table [(kolon1, kolon2, ...)] Altsorgu Örnek: Personel tablosuna departman tablosundan departman kodu 38 olan personellerin değerlerini aktaralım; INSERT INTO personel(ad,soyad,maas,ayrilma_tarihi,kayıt_giriş_tarihi) SELECT adı,soyadı,maasi,ayrilma,kayıt_giriş FROM departman WHERE dept_id=38 UPDATE : Tablodaki kolonların değerlerini değiştirmek için kullanılır.
Yazılımı;

UPDATE table
SET kolon1=değer1, kolon2=değer2, …
[WHERE kotul]

Kolon : Tabloda değişiklik yapılacak kolon adıdır. Bir tablodaki kolon Sayısı 1-254 arasında o tabloda var olmalıdır.
Deger : O kolon için alacağı değer verilir. Kolon tipiyle ayni olmalıdır. Eğer kolon adları belirtilmezse değerler kolon sırasına göre değer almalıdır. Degerlere sysdate, user vb. hazır fonksiyonlar aktarılabilir. Eğer bir alana değer verilmesi istenmiyorsa, yani bos değer verilmesi isteniyorsa NULL değeri verilir.

Örnek: 41 nolu departmanın maasini %13 artıralım;

UPDATE Personel
SET maas=maas+maas*13/100
WHERE dept_id=41

Örnek: 649 nolu personelin departman kodu 10 olsun;

UPDATE Personel
SET dept_id=10
WHERE personel_id=649

Eğer WHERE koşulu konulmazsa tüm tablo için kolon değerini değiştirir. koşulu SET ile değiştirdiğimiz kolona veremeyiz.

kaynak: ordan burdan

'nin Düzenli İfadeleri'nde kolaylık sağlayan mesela ziyaretçinin bir 'da bir INPUT etiketine verdiği yanıtıların içinde olmaması veya olmaması gereken karakterleri bulmamıza imkan veren karakter grupları oluşturma yöntemini de kullanabiliriz. Sözgelimi bütün sesli hafleri aratmak için şöyle bir karakter grubu oluşturabiliriz:

[OoUuÖöAaOoEeıIiİ]

Karakter gruplarını köşeli parantez içinde yazarız. Bu deyimle, , içinde herhangi bir sesli harf bulunan bütün değerleri eşleştirecektir. Bu yöntemden yararlanarak, şu grupları kullanabiliriz:

[a-z] Herhangi bir küçük harfi bulur.

[A-Z] Herhangi bir büyük harfi bulur.

[a-zA-Z] Herhangi bir büyük veya büyük harfi bulur.

[0-9] Herhangi bir rakamı bulur.

[0-9.-] Herhangi bir rakamı, noktayı veya kesme çizgisini bulur.

[ f

] Herhangi bir -feed (kağıt çıkart), Newline (yeni satır), Return (satırbaşı) karakterini veya boşluğu (space) bulur.

Sözgelimi, bir alfanümerik değer kümesinde b3, u2, n9 gibi birincisi küçük harf, ikincisi rakam olan iki karakterlik dizileri bulmak istiyorsak, arama grubunu şöyle kurarız:

^[a-z][0-9]$

Bu deyim 'ye, a'da z'ye küçük harfle başlayan, (^işareti aranan unsurun değerin başında olması gerektiğini söylüyor) sonunda 0'dan 9'a bir rakam bulunan kelimeleri bulmasını söyleyecektir. , bu kelimenin sadece iki harfli olmasına dikkat edecektir; çünkü grubumuzun bir başı bir de sonu belirlendiğine göre, üç karakterli değerlerin bulunması imkanı yoktur.

^işareti köşeli parantez içinde grup deyimi oluştururken kullanılırsa, bu olumsuzluk anlamı taşır. Sözgelimi, iki rakamlı ancak birinci karakteri rakam olmayan fakat ikinci karakteri rakam olan değerlerin bulunması için şu deyim gerekir:

^[^0-9][0-9]$

Burada en baştaki ^işareti "başında" demektir; ancak hemen arkasından gelen grupta "rakam olmayan" demiş oluyoruz; ikinci grup sonundaki $ işareti ile "rakamla biten" anlamına geliyor. Deyimde sadece baş sonu gösteren iki eşleştirme unsuru bulunduğuna göre bu deyim, "başında rakam olmayan, sonunda rakam olan iki karakterli değerleri" bulmaya yarayacaktır. Bu deyim söz gelimi 13'ü bulmayacak, fakat u2'yi bulacaktır. Bu yöntemle şu grupları yapabiliriz:

[^a-z] Küçük harf olmayan herhangi bir harfi bulur.

[^A-Z] Büyük harf olmayan herhangi bir harfi bulur.

[^\/^] , / veya ^ dışında herhangi bir karakteri bulur.

[^"'] Çift tek dışında herhangi bir karakteri bulur.

Grup oluşturmada kullandığımız özel karakterler de vardır. Örneğin nokta işareti (.), yeni satır başlangıcı olmayan herhangi bir karakter anlamına gelir. Dolayısıyla,

^.0$

deyimi yeni satırla başlamayan sıfır ile biten herhangi iki karakterli değeri bulacaktır.

'nin kullanılmaya hazır özel Düzenli İfade eşleştirme grupları da vardır:

[[:alpha:]] Herhangi bir harf

[[:digit:]] Herhangi bir rakam

[[:alnum:]] Herhangi bir harf veya rakam

[[:space:]] Herhangi bir boş karakter

[[:upper:]] Herhangi bir büyük harf

[[:lower:]] Herhangi bir küçük harf

[[:punc:]] Herhangi bir noktalama işareti

[[:xdigit:]] Herhangi bir Hexadecimal karakter. [0-9a-fA-F]

Karakter eşleştirmede tekrar sayısı da bir özellik olarak kullanılabilir. Tekrar sayısı belirtmek için süslü parantez ({}) kullanırız. Örnekler:

^a{4}$ İçinde sadece dört küçük a harfi bulunan kelimeleri seç: aaaa.

^a{2,4}$ İçinde sadece iki üç veya dört küçük a harfi bulunan kelimeleri seç: aa, aaa, aaaa gibi

^a{2, } İki veya daha fazla küçük a harfi bulunan kelimeleri seç: haar, haaar, haaaar gibi. Bu deyim "har" kelimesini seçmez.

{2} Ardarda iki sekme işaretini bul

.{2} Herhangi çift karakteri bul: aa, &&, == gibi

^-{0,1}[0-9]{1,}$ Negatif veya pozitif herhangi bir tam sayıyı bul

^[0-9]{1,}$ Pozitif herhangi bir tam sayıyı bul

Bu tür deyim oluşturma işlemleri giderek karmaşıklaşabilir. Örneğin:

^-{0,1}[0-9]{0, }.{0,1}[0-9]{0, }$

Bu karmaşık deyim aslında sadece "Negatif veya pozitif bir ondalık (double) değeri bul," anlamına geliyor. Kısaca irdelersek, aranan degerin sıfır veya bir kere tekrarlanan bir kesme çizgisiyle başlayabileceğini ("Sıfır veya bir kere" demek, olsa da olur, olmasa da anlamına geliyor!) bunu sıfır veya daha fazla kere tekrarlanan bir rakamın izleyebileceğini, onu da sıfır veya bir kere tekrarlanan bir nokta işareti ile sonunda sıfır veya daha fazla kere tekrarlanan herhangi bir rakamın izleyebileceğini söylemiş oluyoruz.

bu tür karmaşık ifadelerin hatasız yazılmasını sağlayan kısayollara sahiptir. Bunları sıralayalım:

? {0,1} anlamına gelir. Kendisinden önce yer alan unsurun en az sıfır en çok bir kere tekrar edilmesi gerektiğini (olmayabileceğini ama olursa en fazla bir kere olabileceğini) belirtir.

* {0, } anlamına gelir. Kendisinden önce yer alan unsurun sıfır veya daha fazla kere tekrar edilmesi gerektiğini (tümüyle opsiyonel olduğunu) belirtir.

+ {1, } anlamına gelir. Kendisinden önce yer alan unsurun en az bir veya daha çok kere tekrar edilmesi gerektiğini (bulunmasının zorunlu olduğunu) belirtir.

Bu kısa-yolları kullanarak, yukarıdaki karmaşık ifadeleri basitleştirelim:

^[a-zA-Z0-9_]+Ş En az bir harf veya rakam veya altçizgi içeren herhangi bir kelime

^[0-9]+Ş Herhangi bir pozitif tamsayı

^-?[0-9]+Ş Herhangi bir tamsayı

^-?[0-9]*.[0-9*$]+Ş Herhangi bir kesinli (double) sayı

Bir Düzenli İfade'nin yazılışında birden fazla arama-sıralanış deyimine yer verebiliriz. Bunu yapmamızı sağlayan | işaretidir. Örneğin,

.com|.co.uk

ifadesi ile, ya ".com" ya da ".co.uk" değerlerinin bulunmasını sağlayabiliriz. Burada | işareti "veya" kelimesi gibi düşünebilirsiniz.

Düzenli ifadeler yoluyla INPUT etiketinden gelen değerleri incelerken yapmak kolaydır. Bunun için kendi ifadelerinizi mutlaka sçeşitli olasılıklara şı sınamalısınız. Bu ün başında örnek olarak verdiğimiz Düzenli İfade'yi hatırlıyor musunuz?

^.+@.+\..+$

Örneğin bu ifade, ziyaretçinin elektronik posta adresini yazması gereken bir INPUT etiketinin sağladığı değerin gerçekten elektronik adres biçimi taşıyıp taşımadığını sınar. Baştaki ^ nokta işaretleri ile artı işareti değerin önünde boşluk olmamasını sağlıyor; @ işareti ise değerin içinde @ bulunması gerektiğine işaret ediyor. Tekrar eden nokta artı işaretleri "ne kadar olursa olsun ne olursa olsun" anlamına geliyor. Bunu izleyen nokta karakterini gösteren (.) işaret buralarda bir de gerçekten nokta olması gerektiğini bunu izleyen nokta artı tekrar "ne olursa olsun, ne kadar olursa olsun" anlamını taşıyor. Başka bir deyişle, aradığımız değerin "herhangi bir şey" @ "herhangi bir şey daha" . "birşeyler daha" şeklinde olduğunu belirtmiş oluyoruz. Ne var ki deyimiçinde iki nokta veya iki @ işareti olan veya @ işareti ile nokta arasında bir şey bulunmayan veya @ veya noktadan öncesi ya da sonrası boş olan bütün değerleri safdışı etmeye yetmeyecektir. Sözgelimi bir ziyaretçimiz "@@@@.@@@" yazarsa, bu deyim bu değeri geçerli bir elektronik adres sayacaktır.

programlarımızda ziyaretçilerimizin verdiği değerleri çeşitli bakımlardan sınamak seçmek mümkündür; ancak hiç bir zaman yazılanların doğruluğunu garanti edemeyiz. Fakat özellikle bir metinde bulunmaması gereken işaretlleri 'ye aratabiliriz. Bunu Düzenli İfade Fonksiyonları sağlar.

kaynak: ordan burdan

Tek (') veya çift (") karakterlerini kurtarmak için kullanılan bir fonksiyon…
Tektırnak ('), çift (") karekterleri öncesine ters slash () karekteri eklemek için kullanılır ki bu karekterler veritabanı işlemleri vs. durumda hataya sebeb olabilmektedir bu gibi işlemlerde çift/tek işaretlerinin escape (karekter kurtarma) yani önlerine ters slash () karekterini eklemek gereklidir.
addslashes fonksiyonu ile eklenmiş () karakterleri sayfaya yazdırırken kaldırmak için stripslashes() fonksiyonu kullanılır…

kaynak: ordan burdan

REGEDIT

'un çalışmasında birinci sırada önem taşıyan dosyalardan birisi de Registry olarak bilinen veritabanıdır. Burada, kurulu yazılım donanımın yanı sıra kullanıcıların bireysel ayarları hakkında da gerekli bilgiler saklanır.

Eğer 'u hızlandırmak istiyorsanız yolunuz mutlaka Registry'den de geçecektir. Artık ihtiyaç duyulmayan kayıtların temizlenmesi de sisteminize hız konusunda artılar getirir. Ancak sonuçlarından kesin olarak emin değilseniz Registry'de değişiklik yapmamaya dikkat etmelisiniz. Sistem kayıtları yani Registry, "System.dat" "User.dat" adı altında iki dosyadan oluşur. İlk dosyada sistemden alınan bilgiler, ikinci dosyada ise bireysel kullanıcı profili saklanır. Registry'yi oluşturan her iki dosya da sabit diskinizde klasörü altında bulunur. Bu dosyalar gizli olarak belirtildikleri için default ayarları kullanarak Gezgini ile klasöre göz attığınızda görünmezler. Ancak aşağıdaki işlemleri yaparak bu diğer bütün saklı dosyaları görünür hale getirebilirsiniz.

1- Önce Gezgini'nde "Görünüm" menüsü altında yer alan "Klasör Seçenekleri…" ne tıklayın. ( Me'de ise Klasör Seçeneklerine Denetim Masası'ndan ulaşabilirsiniz)

2- Daha sonra açılan pencerede "Görünüm" kartına tıklayın listede "Gizli Dosyalar" altında yer alan "Tüm dosyaları göster" seçeneğini aktif hale getirin.

'un güçlü ama tehlikeli düzenleyicisi ile çalışmak
Eğer bu dosyaları normal bir metin düzenleyicisi ile açmak isterseniz şınıza sadece karmaşık mlanamayan işaretler çıkacaktır. veritabanının özel görüntüleme biçimine ise sadece tarafından özel olarak geliştirilmiş düzenleyici ile ulaşabilirsiniz. Ancak bu araç, hatalı kullanımlarda gerçekten için tehlike oluşturabileceğinden tarafından gözlerden saklanmıştır. Dolayısıyla çalıştırmak için "Başlat" menüsünden "Çalıştır…"ı kullanmanız gerekecektir.

şınıza çıkacak alana Win98/Me için regedit, NT/2000 için ise regedit32 yazın "Tamam" tuşuna tıklayın.

Bu düzenleyicinin yapısının Gezgini'ne büyük benzerlik gösterdiğini hemen fark edeceksiniz. Burada pencere iki bölümden oluşur. Sol pencerede kayıtların ana sütunu sağ pencerede ise bir kayda ait olan daha doğrusu alt bölümlere ait olan verileri görebiliriniz. termonolojisinde bu bölümler "Anahtar" olarak adlandırılır. Bu tür bir anahtarın önünde yer alan artı işaretine tıklayarak diğer alt anahtarlara ulaşabilirsiniz. Böylelikle kompleks bir yapıya sahip veritabanının temellerine ulaşabilir kayıtları silip yenilerini de ekleyebilirsiniz. Örnek olarak 'a önceden girdiğiniz kullanıcı adını değiştirmek aşağıdaki adımları izleyerek değiştirebilirsiniz.

1- Önce yukarıda anlatıldığı gibi düzenleyicisini (Regedit) başlatın.

2- Daha sonra sırayla "HKEY_LOCAL_MACHINE" ana anahtarı altında yer alan "Software", "" son olarak da "" anahtarlarının önündeki artı (+) işaretine tıklayın.

3- Fare ile "Current Version" anahtarına tıklayın.

4- Gezginin sağ penceresinde "RegisteredOwner" mını arayın. Burada 'un başlatılması sırasında mladığınız adı bulacaksınız.

5- Bu adın üzerine çift tıkladığınızda küçük bir pencere açılır. Bu penceredeki alana yeni adı girebilirsiniz.

düzenleyicisi ile çalışırken her zaman bir işlemi yapmadan önce 2 kere düşünün. Çünkü burada yapılacak hatalar oldukça tehlikelidir düzenleyicide bir işlemi gerçekleştirdiyseniz bir daha geriye dönüş yoktur. Bu da yanlışlıkla bir anahtar sildiğinizde artık onu ömür boyu unutabilirsiniz anlamında gelir. Düzenleme yaparken de her şey eski kayıtlar üzerine zamanlı olarak yazılır. Dolayısıyla bir durumunda eskisini geri yükleme gibi bir şansınız hiç yoktur. Son olarak hiç bir zaman da bir yanlış yaptığınızı anlama şansınız yoktur. düzenleyici bu konuda hiçbir uyarı vermez. Sonuçları görmek için tek şans ı baştan başlatmaktır. Ancak bu durumda da eğer daha önce yaptığınız giriş hatalı ise sistem bir daha açılmayabilir.

içinde aradığınız bir anahtara hızlı bir şekilde ulaşılması:
ınıza kumuş olduğunuz yazılım ya da ile bir özelliği değiştirmek için kullanacağınız anahtarların Registry içindeki tam yerini bilmiyorsanız aratıp kolayca bulabilirsiniz. Ancak özellikle yavaş bir sisteme sahipseniz bu arama işlemi oldukça uzun zaman alabilir. Ayrıca değiştirmeden önce bulduğunuz anahtarın aradığınız olup olmadığına da iyice emin olmanız gerekir. Arama yapabilmek için kayır editörünü çalıştırdıktan sonra Düzel menüsünden Bul seçeneğine tıklayın (Ctrl - F kısa yolunuda kullanabilirsiniz).

Açılacak pencerede aranan alanına aradığınız anahtar kelimeyi yazın. Bakılacaklar kısmında is aramanın nerede gerçekleştirilmesini istiyorsanız o seçenekleri işaretleyin. Daha sonrada Sonrakini bul tuşuna basarak aramayı başlatabilirsiniz. Aradığınız sonuca ulaştıktan sonra, başka benzer anahtar olup olmadığını kontrol etmek için ise yine düzen menüsünden ulaşıp bu sefer Sonrakini Bul seçeneğini seçebilir ya da F3 kısa yol tuşunu kullanabilirsiniz.

Örneğin ınızda daha önceden yüklü bir yazılımı ınızdan kaldırıp, ilgili tüm parçalarını da sildiğinizi farzedin. Ancak ınızı buna rağmen ilgili referansların halen Registry'de yer aldığını eddia ediyor veriyor. Üstelik bu kaydın Registry'nin neresinde olduğunuda bilmiyorsunuz. İşte bu durumda Registry'de ın ismi ile ilgili aramalar yapıp ilgili aramalar yapıp ilgili anahtarları bulup silmeyi deneyebilirsiniz. Eğer bulduğunuz sol tarafta ise yer alan bir anahtar yada bir değer ise güvenle silebilirsiniz.
Tabii ki bu işlemi yapmadan önce kaydın bir yedeğini almayı unutmayın. Ayrıca çok fazla değer silmeden önce arada ı baştan başlatıp sorunun giderilip giderilmediğini kontrol etmekte de faydalı olacaktır. Eğer problem daha da büyüdüyse yedeğinden Registry'i geri yükleyip başka bir anahtar silmeyi deneyin.
ışık gözükse de aslında Registry oldukça düzenlidir.

Window'un veritabanı başta "HKEY_CLASSES_ROOT" olmak üzere altı ana anahtardan oluşur.

HKEY_CLASSES_ROOT : Sürükle bırak işlemleri ile ilgili yazılım ayarları, kısa yol tüm diğer kullanıcı ara birimi ile ilgili bilgileri içerir. Burada ilişkilendirilmiş her dosya için bir alt anahtar daha bulunur.

HKEY_CURRENT_USER : O an oturumu açık onun kullanıcı ile ilgili bilgileri içerir. Burada 7 alt anahtar daha bulunur.
AppEvents: Sistem uygulamalarda kullanılmak üzere atanmış sesler ile ilgili ayarlar burada yer alır.
Control Panel: Burada 3.x'deki System.i ni, Win.ini Control.ini dosyalarının içeriğine benzeyen denetim masası ayarları yer alır.
InstallLocationsMRU: Başlangıç klasöründe yer alan programların sabit diskteki yollarını belirler.
Keyboard layout: O an kullanılan klavye düzenine buradan da ulaşılabilir.
Network: Ağ bağlantı bilgileri burada yer alır.Remote : Eğer çevirmeli ağ üzerinde ağ bağlantısı kullanılıyorsa o anki bağlantı bilgileri burada bulunur.
Software: Bilgisayara bağlı kullanıcının yazılım konfigürasyon ayarlarına buradan ulaşılabilir.

HKEY_LOCAL_MACHINE: Her kullanıcı için aynı olan bu değerler bilgisayarda yer alan donanım yazılım ayarları üzerine bilgiler içerir. bu anahtarın altında da 7 alt anahtar bulunur.
Config: konfigürasyon bilgileri ayarlarına buradan ulaşmanız mümkün.
Enum: Donanım aygıt bilgi ayarları burada bulunur.
Hardware: Seri bağlantı noktaları ile bilgiler ayarları içerir.
Network: Kullanıcının o an bağlı bulunduğu ağ yada ağlar üzerine bilgiler burada bulunur.
Security: Ağ güvenlik ayarlarına buradan ulaşılabilir.
Software: Yazılımlara has özel bilgiler ayarları içerir.
System: Sistem başlangıç aygıt sürücüleri bilgileri ile işletim sistemi ayarları burada yer alır.

HKEY_USER:işletim sistemlerine bağlanan her kullanıcı için masaüstü kullanıcı ayarlarını içerir. Bu başlık altında her kullanıcıya ait bir anahtar daha bulunur. Ancak sadece tek bir kullanıcı varsa, bu durumda sadece "default" altında tek anahtar olacaktır.

HKEY_CURRENT_CONFIG: HKEY_LOCAL_MACHINE ile bağlantılı olarak o anki donanım konfigürasyonu ile ilgili bilgileri içerir.

HKEY_DYN_DATA: Bu anahtar 'un çalışması sırasında sık değişen veri kavramının anahtarını oluşturur. Bir USB aygıt bağladığınızda yada sistem çalışırken yapabileceğiniz bir değişiklikte Registry'nin bu alanındaki veriler değişir.

sağlığı için registry'nin bakımı yedeklenmesi:
Registry 'un sorunsuz olarak çalışması için kaçınılmaz bir ihtiyaçtır. Bu yüzden işletim sistemi her gün sistemin çalıştırılmasıyla birlikte bir güvenlik kopyası alır. Bu güvenlik dosyası klasörleri içerisinde gizli bulunan "Sysbckup" klasöründe bulunur. Güvenlik dosyası olarak paketlenir "rbxxx.cab" biçimine getirilir (burada xxx duruma göre değişen üç basamaklı bir sayıdır). Buna ek olarak bu Backup dosyalarından beş tanesini de arşivler.

İsterseniz Registry'de bir değişiklik yaptıktan sonra bunu geri alabilmek için bu güvenliği kendinizde yaptırabilirsiniz. Bunun için Başlat > Programlar > Donatılar > Sistem ları menüleri altında yer alan "Sistem Bilgisi" ni çalıştırın. Daha sonrada burada "lar" menüsünde yer alan " Tarayıcı" sını çalıştırın. başlangıçta olarak güvenlik sağladığı için işlemin sonunda tekrar yedekleme yapmak isteyip istemediğinizi sorar. Eğer bu soruyu doğrularsanız güncel veritabanının yedeğini saklayacaktır. Bu güvenlik yöntemine ek olarak kullana bileceğiniz bir başka seçenek de Düzenleyicisi altında Export fonksiyonudur. Bu işlemi gerçekleştirebilmek için "" menüsünden " dosyası ver" seçeneğine tıklayın. Dosya adı saklanacağı konumu isteğinize göre belirleyebilirsiniz. Eğer ikinci bir sabitdisk'iniz varsa bunu hedef olarak kullanabilirsiniz. Eğer bir CD yazıcınız varsa CD!leri yedekleme ortamı olarak kullanmak tabi ki çok daha iyi olacaktır. Ancak bir disket bu işlem için yeterli olmayacaktır. Çünkü veritabanının boyutu genellikle Megabyte'larca büyükte olabilir. Bu yüzden 'un olarak "Sysbckup" klasörüne yerleştirdiği güvenlik dosyası büyük şans oluşturur. Ancak sadece büyük veritabanı bir disketin kapasitesini aşacaktır.

dosyasının çalışmasında sorunlar ile şılaştığınızda bu yüzden zor durumda kaldığınızda bu güvenlik kopyalarından birini geri yüklemek için ınızı DOS kipinde başlatmanız gerekir. Win95 Win98 işletim sistemlerinde bunu "Başlat" "ı Kapat" menülerinden gerçekleştirebilirsiniz. Ancak Me sürümünde açılış disketine ihtiyacınız olacak. DOS-Prompt şınıza geldiğinde scanreg/restore yazın. Şimdi şınıza 'da yer alan güvenlik kaydından seçim yapacağınız bir gelir. Yeni veritabanını oluşturacağınız güvenliği seçin. Eğer düzenleyicisinde bir dosyası kaydettiyseniz bunu aynı şekilde alabilirsiniz. Yukarıda anlatıldığı gibi 'un " Düzenleyici" sini çalıştırın "" menüsünden " Dosyası Al"ı seçin. Dosyayı kaydettiğiniz klasörü dosya adını belirterek dosyasını Registry'e geri almış olursunuz.

Sistem performansının artırılması için dosyasının düzenlenmesi
Kayıtta saklanan verilerin artışı dosya boyutunun artmasını da beraberinde getirir. ınıza kurduğunuz ek donanımlar, yazılımlar sürücüler arkanızda kalan veriler ile iz bırakırlar. gerektiği gibi yerine getirilen bir kaldırma sonrasında veri çöplüğü oluşturacaktır. Bu gereksiz kayıtların aranıp bulunması düzenleyicisi ıyla silinmesi çok zahmetli bir işlemdir. Ancak tüm bunlar özellikle bu işlem için hazırlanmış yazılımlar ile kolay hızlı bir biçimde gerçekleştirilebilir. İnternet üzerinden Registry Cleaner başlığı altında bu tür ücretsiz Freeware ücretli Shareware olmak üzere sayısız programa ulaşmak da mümkündür.

Bazı programlar gereksiz kayıtların olarak silinmesinin yanı sıra dosyasının daha konforlu düzenlenmesi için ek fonksiyonlarda sunuyorlar. Bazı programlar ise veritabanını baştan oluşturabiliyorlar. Tabi ki bu tür programlar çok işlevli olmaları sayesinde de bir üstünlük sağlıyorlar. dosyasını baştan oluşturmak için isterseniz 'un dahili larına da başvurabilirsiniz. 95'de düzenleyicisini çalıştırın veritabanını kaydedin. Daha sonra sistemi DOS kipinde başlatın. Komut satırına regedit /c ardından da dosyasının yerini, klasörünü dosya adını yazın. 98'de ise "Başlat" menüsünden "ı kapat"a tıklayın. Daha sonra "MS Dos Kipinde Başlat"ı seçin.

Klasik Dos komut satırına düştüğünüzde scanreg /fix yazıp Enter'e basın. Me'de sisteminde Dos kipi bulunmadığı için açılış disketi kullanmanız gerekmektedir. Daha sonraki işlemler ise 98'deki gibi gerçekleşir. düzenleyici programlar olan Registry Cleaner'ların ise ortamında çalışması gibi bir avantajı vardır Undo (Geri Al) seçenekleri ile daha güvenlidirler. Ancak yinede tekrar dikkatli olmanızı ediyoruz. Her türlü güvenlik tedbirini almadan işlemlere başlamayın.

Çeşitli problemlerine registry ile çözüm bulabilirsiniz
veri tabanı üzerinde işlem yapan programların çoğu genel registry problemleri yada performans artırıcı bazı tedbirler üzerinde dururlar. Eğer daha spesifik problemlere çözüm arıyorsanız bu durumda kayda müdahale edip gerekli anahtarları elle değiştirmeniz gerekecektir. Bu şekilde normal kullanımda herhangi bir araç ile düzeltemeyeceğimiz ayarları düzeltebilir çalışması gerektiği gibi çalışmayan programlar ile lar için de çözüm üretebilirsiniz. En sık rastlanan sorunlar için aşağıdaki kısa ipuçlarına bir göz atın. Tabi ki anlatılan değişiklikleri yapmadan önce registry'nizin mutlaka bir yedeğini almayı unutmayın.

1- Registry'i sıkıştırmak
Eğer sizin ınızdaki dosyası da çok fazla yer kaplıyorsa onu biraz daha kompakt bir hale sokmak isteyebilirsiniz. Bunun için öncelikle ınızı gerçek DOS modunda başlatmanız gerekir. altındaki DOS modu işe yaramayacaktır. Daha sonra regedit'i çalıştırıp dosyası ver seçeneği ile o anki kaydı örnek olarak Compact.reg adı altında kaydedin. Daha sonra regeditten çıkın "regedit /c compact.reg" (tırnaksız olarak) parametreleri ile çalıştırın. Sıkıştırma gerçekleşecektir.

2- Bir anahtarının olarak silinmesi
Normal olarak bir reg dosyasından registry anahtarını olarak silemezsiniz. Ancak bunun içinde bir yol bulunmaktadır. Ana anahtarın hemen başında yer alan parantezler içine bir eksi (-) işareti koymak yeterli olacaktır. Örneğin eğer HKEY_LOCAL_MACHINESoftwareMicrosoftOffice8.0CommonAssistans anahtarını silmek istiyorsanız anahtarı -HKEY_LOCAL_MACHINESoftwareMicrosoftOffice8.0CommonAssistans şeklinde değiştirin. Sonuç olarak o altındaki diğer tüm alt anahtarlar da silinecektir.

3- Sabitdiskinizi başşka bir bilgisayara taşımak
Eğer ınızdaki sabir diskinizi donanımları tamamen farklı başka bir bilgisayara taşıdıysanız, daha sonradan sistemi başlatmanız sırasında problemleri ile şılaşabilirsiniz. Bunu engellemek için önceden aygıt yöneticisinden aygıtları kaldırmanız gerekir. Tek tek elle yapmaktansa regedit'i kullanabilirsiniz. Önce regedit'i çalıştırın HKEY_LOCAL_MACHINE anahtarına gidin. Buradaki Enum ünü sildiğinizde donanımlara ait tüm ayarlarda silinecektir.

4- CD'lerin Autorun sorunlarını çözümlemek.
ınıza taktığınız Cd'leriniz artık başlama özelliğine cevap vermiyorsa gereken tüm ayarları değiştirmenize rağmen bir fayda sağlamadıysanız çözümü registry'de bulabilirsiniz.
Bunun için içinde HKEY_CURRENT_USERSSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer anahtarına ulaşın buradaki NoDriveTypeAutoRun'ın değerinin 95 00 00 00 olduğundan emin olun değilse değiştirin. Sorun düzelecektir.

5- Başlat menülerinin açılış hızlarını degiştirmek
İşletim sistemi üzerinde Başlat menüsünde gezinirken alt menüler belli bir süre sonra olarak açılacaktır. Ancak alt menülerin eğer sadece tıkladığınızda açılmasını istiyorsanız bu düzenlemeyi de registry altından yapabilirsiniz. Bunun için Registry içinde HKEY_CURRENT_USERControl PanelDesktop anahtarı altına gelin. Burada sağ tarafta MenuShowDelay şeklinde bir dize bunması gerekir. Eğer yoksa yeni bir tane yaratın değer olarak da 65534 yazın. Artık siz tıklamadan hiçbir menü açılmayacaktır. Bu değeri sıfır (0) yaptığınız takdirde ise menüler hiç beklemeden açılacaktır.

6- Ekle/Kaldır listesini temizlemek
Ekle/Kaldır özelliğini kullanarak kurulu bir ı kaldırmanıza sabit diskten tüm bileşenleri kaldırmanıza rağmen bazen sadece ismi listede kalabilir ı yeniden kurmanızı engelleyebilir. Bu durumda registry içindeki HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionUninstall anahtarına başvurmanız gerekir. Burada yer alan programlardan istediğinizi silebilirsiniz. Ancak bu işlem sadece listedeki ismi silecek asıl programlara dokunmayacaktır.

7- Run menüsünde istenmeyen programlar
Kurduğunuz çoğu işletim sisteminin her başlatıldığında hafızaya yüklenmek isteyebilir. Bu yüzden de kendini Run menüsüne yazar. Ancak bu sayı artıkça açılışta gecikecektir. Açılışta istemediğiniz programları silmek için önce HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion altındaki Run RunServices anahtarları altında bulabilirsiniz. Daha sonra bulunan bu anahtar altındaki istenmeyen programları kaldırın. Artık 'u baştan başlatabilirsiniz.

8- Kayıtlı kullanıcının adını değiştirmek
'un kayıtlı kullanıcısının adını değiştirmek registry altında aslında oldukça kolaydır. Bunun için sadece HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion anahtarı altına ulaşıp Registered Owner anahtarı altındaki ismi değiştirmeniz yeterli olacaktır.

9- Masaüstü ayarların kaydedilmesi
Eğer Control Panel, Başlat menüsü programları yada sıradan diğer masaüstü pencerelerin boyut, pozisyon düzeni gibi ayarları ayarladığınız gibi kalmıyorsa cevabı yine registry altında HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer anahtarı altında bulabilirsiniz. Burada bir "NoSaveSettings" anahtarı yer almaktadır. Bunu silerek soruna çözüm üretebilirsiniz.

10- açılışında uyarı yazısı eklemek
Bu ilginç ipucu ile ınızı ilk başlattığınız zaman daha oturum açmadan bir uyarı banneri görüntülemesini sağlayabilirsiniz. Bunun için önce regedit'i başlatıp HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionWinLogon anahtarı altına gelin. Şimdi burada LegalNoticeCaption adı altında yeni bir dize yaratmanız gerekecek. Bu dizeye vereceğiniz diğer menü çubuğunda görüntülenecektir. Daha sonra başka bir dize daha yaratıp adını da LegalNoticeText olarak belirleyin ekrandaki diyalog kutusunda ne görüntülenmesini istiyorsanız yazın. Artık ınızda oturum açmak isterse istesin hazırladığınız bu banner ekrana gelecektir. Bu özelliği kullanarak ınızı izinsiz kullanmak isteyen kişilere şı yasal lar hazırlayabilirsiniz.

kaynak: ordan burdan

Öncelikle bilgilerimizi saklamak için bir veritabanı oluşturuyoruz. Ardından içerisine 2 alanlı bir tablo ekliyoruz. Alanların isimlerini "ad" "soyad" yapıyoruz. Veri tipi olarak LONGTEXT seçiyoruz.. Veya isterseniz hazır SQL sorgusunu çalıştırabilirsiniz.. (PhpMyAdmin veya MySQL komut satırından)

CREATE TABLE `tabloadi` (
`ad` LONGTEXT NOT NULL ,
`soyad` LONGTEXT NOT NULL
) TYPE = MYISAM ;

konusunda bilginiz var ise formları iyi bilirsiniz. Şimdi bir yaratıyoruz öncelikle.. Dosyamızın adını kaydederken ekle. yapalım

< action="ekle." method="get">
Adınız : <input name="ad" type="text"/><br />
Soyadınız : <input name="soyad" type="text"/>
<p>
<input type="submit" value="Ekle"/>
</p>
</>

Bilgilerinizi yazıp Ekle butonuna tıkladığınızda, formumuz bilgileri işlenmesi için ekle. dosyasına gönderecektir.. ekle. dosyasının içeriği şu şekilde olacaktır..

<?
mysql_connect (localhost, kullaniciadi, sifre);
mysql_select_db (veritabaniadi);
mysql_query ("INSERT INTO tabloadi (ad, soyad)
VALUES ('$ad', '$soyad')
");
print ($ad);
print (" ");
print ($soyad);
print ("<p>");
print ("Bilgilerinizi girdiğiniz için teşekkür ederiz.");
?>

Kodumuzda bulunan "kullaniciadi", "sifre" kısımlarını MySQL kullanıcı adınız şifrenizle, "veritabaniadi" kısmını veritabanınızın adıyla, "tabloadi" kısmını ise veritabanınızdaki tablonuzun adıyla değiştirmeyi unutmayalım..

ekle. dosyasını çalıştırıp formu doldurduktan sonra Ekle butonuna tıkladığınızda tarayıcınızın adres çubuğunda şuna benzer bir URL göreceksiniz..

../ekle.?ad=Osman&soyad=Ungur

Çünkü biz GET adlı metodunu kullandık. Bu metod ile ekle. dosyasından gelen bilgiler URL'ye yazılarak ekle.'ye iletilmesi sağlandı. böylece olarak kullanılması için değişkenler yarattı. değişkenleri her zaman işareti $ ile başlar.. Burada değişkenlerimizi kullanırken $ad $soyad şeklinde kullandık..

Şimdi girdiğimiz bilgilerin eklenip eklenmediğini MYSQL komut satırından kontrol edelim.. (PhpMyAdmin kullanılması daha pratik olacaktır)

mysql> use veritabani
mysql> select * from tabloadi;

+——-+——-+
| ad | soyad |
+——-+——-+
| Osman | Ungur |
+——-+——-+
1 row in set (0.00 sec)

Herşey yolunda.. Kolay gelsin

Şimdi ekle. dosyasını biraz inceleyelim..

İlk 2 satırımızla başlayalım ;

mysql_connect (localhost, kullaniciadi, sifre);
mysql_select_db (veritabaniadi);

Bu 2 fonksiyon MySQL veritabanına bağlanmamızı sağlıyor..

Şimdi diğer satırlara geçelim..

mysql_query ("INSERT INTO tablo (ad, soyad)
VALUES ('$ad', '$soyad')
");

mysql_query fonksiyonu MySQL'de ile SQL sorguları yaratmamızı sağlıyor. SQL sorgusu çift parantez ile kapalı olmak zorundadır..

kaynak: ordan burdan

print "İkinci değişkenin adı: $alfanumerik<br>";
Daha önce gördük ki, tek veya çift içine de alsak, , bir değişken adını gördüğü zaman onun yerine o değişkenin tuttuğu değeri yazar. bunu, değişken adının başındaki $ görerek yaparak. $ işareti gibi için özel anlamı olan işaretlerin anlamlandırılmasını önlemek bu işaretleri düz metin saymasını sağlamak için bu işaretlerin önüne ters-bölü işareti koyarız. Buna o karakteri kurtarma veya ESCaping denir. 'nin anlamlı işaretleri bunların ESCape-yazılışı şöyledir:

' Tek
" Çift
\ Ters-bölü
$ işareti

Yeni Satır (New Line)

Satır Başı (Return)
Sekme (Tab) karakteri

Kimi zaman bir değişkene atadığımız değerin türünü değiştirmek gerekir. Bunu settype() fonksiyonu ile yaparız. Şu örneği de tur_degistir. adıyla kaydedelim:

<>
<HEAD>
<TITLE>'de Degisken Turleri</TITLE>
<meta http-equiv="content-type" content="text/; charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/; charset=-1254">
</HEAD>
<BODY>
<B>
<H2>
<?
$degisken = 5.67890;
print("Değişkenin değeri : ");
print "$degisken<br>";
print("Türü : ");
print gettype( $degisken ) ; //çift,ondalık/double
print "<br>";
print "<br>";

print "İlk değiştirme işlemi: Alfanümerik/String:<br>";
settype( $degisken, string ); //alfanümerik/string
print "Değeri : ";
print "$degisken<br>";
print("Türü : ");
print gettype( $degisken ) ; //alfanümerik/string
print "<br>";
print "<br>";

print "İkinci değiştirme işlemi: Tamsayı/Integer:<br>";
settype( $degisken, integer ); //Tamsayı/Integer
print "Değeri : ";
print "$degisken<br>";
print("Türü : ");

print gettype( $degisken ) ; //Tamsayı/Integer
print "<br>";
print "<br>";

print "Üçüncü değiştirme işlemi: Ondalık/Double:<br>";
settype( $degisken, double ); //çift,ondalık/double
print "Değeri : ";
print "$degisken<br>";
print("Türü : ");
print gettype( $degisken ) ; //çift,ondalık/double
print "<br>";
print "<br>";

print "Dördüncü değiştirme işlemi: Mantıksal/Boolean:<br>";
settype( $degisken, boolean ); // Mantıksal/Boolean
print "Değeri : ";
print "$degisken<br>";
print("Türü : ");
print gettype( $degisken ) ; // Mantıksal/Boolean
print "<br>";
print "<br>";
?>
</H2>
</B>
</BODY>
</>
Bu ı çalıştırdığımızda, ilk atadığımız değerin ondalık/double olarak belirlendiğine dikkat edin. Bu değerin türünü alfanümerik/string olarak değiştirdiğimizde değişmediğini görüyoruz. Fakat tamsayı/integer'a çevirdiğimizde değerin tamsayı ünü alıyor; ondalık-kesir ünü atıyor. Nitekim daha sonra değişkerin türünü yeniden ondalık yaptığımız halde, atılan bu geri gelmiyor. Son olarak değişkeni mantıksal ifade olarak değiştirdiğimizde, değerin doğru/true olduğunu anlıyoruz; değer olarak bize 1 dönüyor. , sıfır dışındaki tüm değerleri doğru/true'ya çevirir; sıfır'ı ise yanlış/false olarak atar boş/null değer verir.

Değişkeni bir daha düzelmeyecek şekilde değişikliğe uğratmak istemeyebiliriz; fakat yine de değerinin türünü değiştirmek isteyebiliriz. Bunu da nerede kullanabiliriz, şu anda bilmiyoruz. Ama diyelim ki, böyle bir işlem yapmaya ihtiyacımız oldu! Biraz önce özel bir şekilde bir değişkene başka bir değişkenin adını değer olarak vererek, aslında bu değişkenin ilk değişkenin değerini almasını sağlamıştık. Burada da aynı tekniği kullanabiliriz. Bu kodu da tur_kopyala. adıyla kaydedin:

<>
<HEAD>
<TITLE>'de Degisken Turleri Kopyalama (Casting)</TITLE>
<meta http-equiv="content-type" content="text/; charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/