22 Mayıs 2010 Cumartesi

MySQL 'e Giriş ve SQL Komutlarıyla Database Üzerine Bir Ders

Microsoft Windows XP [Sürüm 5.1.2600]
(C) Telif Hakky 1985-2001 Microsoft Corp.

C:\Documents and Settings>cd ..

C:\>cd php

C:\PHP>dir
C sürücüsündeki birimin etiketi yok.
Birim Seri Numarasy: 8C77-6728

C:\PHP dizini

25.04.2005 11:48 dir> .
25.04.2005 11:48 dir> ..
25.04.2005 11:48 dir> Apache
25.04.2005 11:48 dir> Mysql
25.04.2005 11:48 dir> php4
28.04.2005 17:41 dir> Web
0 Dosya 0 bayt
6 Dizin 54.399.549.440 bayt bo?

C:\PHP>cd mysql

C:\PHP\Mysql>dir
C sürücüsündeki birimin etiketi yok.
Birim Seri Numarasy: 8C77-6728

C:\PHP\Mysql dizini

25.04.2005 11:48 dir> .
25.04.2005 11:48 dir> ..
25.04.2005 11:48 dir> bin
25.10.2004 16:23 19.106 COPYING
02.05.2005 10:26 dir> data
25.10.2004 16:23 5.029 EXCEPTIONS-CLIENT
25.10.2004 16:23 4.904 my-huge.ini
25.10.2004 16:23 20.892 my-innodb-heavy-4G.ini
25.10.2004 16:23 4.880 my-large.ini
25.10.2004 16:23 4.892 my-medium.ini
25.10.2004 16:23 2.472 my-small.ini
08.10.2004 12:18 13.118 my-template.ini
17.02.2005 14:22 9.035 my.ini
25.04.2005 11:48 DIR scripts
25.04.2005 11:48 DIR share
9 Dosya 84.328 bayt
6 Dizin 54.399.242.240 bayt bo?


C:\PHP\Mysql>cd bin

C:\PHP\Mysql\bin>dir

C:\PHP\Mysql\bin dizini içerisinden mysql.exe i çaly?tyrarak
komutlary uygulayabilirsiniz

25.04.2005 11:48 dir> .
25.04.2005 11:48 dir> ..
18.02.2005 14:04 1.069.056 libmySQL.dll
18.02.2005 14:04 1.196.032 myisamchk.exe
18.02.2005 14:04 1.114.112 myisamlog.exe
18.02.2005 14:04 1.118.208 myisampack.exe
18.02.2005 14:04 1.093.632 myisam_ftdump.exe
18.02.2005 14:04 1.110.117 mysql.exe
18.02.2005 14:04 1.048.576 mysqladmin.exe
18.02.2005 14:04 1.064.960 mysqlbinlog.exe
18.02.2005 14:04 1.044.480 mysqlcheck.exe
18.02.2005 14:04 3.485.696 mysqld-nt.exe
18.02.2005 14:04 3.477.504 mysqld.exe
18.02.2005 14:04 1.060.864 mysqldump.exe
18.02.2005 14:04 1.040.384 mysqlimport.exe
18.02.2005 14:04 1.499.648 MySQLInstanceConfig.exe
18.02.2005 14:04 1.040.384 mysqlshow.exe
18.02.2005 14:04 40.960 mysqlshutdown.exe
18.02.2005 14:04 45.056 mysqlwatch.exe
18.02.2005 14:04 122.880 my_print_defaults.exe
18.02.2005 14:04 110.592 perror.exe
19 Dosya 21.783.141 bayt
2 Dizin 54.398.930.944 bayt bo?

C:\PHP\Mysql\bin>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.7-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mySql de veri tabanlaryny görebilmek için
show databases; komutunu kullanyryz...

mysql> show databases;
+----------+
| Database |
+----------+
| mustafa |
| mysql |
| test |
+----------+
3 rows in set (0.19 sec)
Database olarak 3 adet veritabany bulundu
bunlardan herhangi biri üzerinde i?lem yapmak istiyorsak
use ; komutunu kullanyyoruz
Mesela ben mustafa isimli veritabany üzerinde i?lemler yapmak
istedi?im için a?a?ydaki gibi bir komut yazdym..

mysql> use mustafa;
Database changed
?imdi mustafa adly veriyabanyndaki var olan tablolara göz atalym
Bunun için yine "show" komutu ile bukez "tables" komutlaryny
kullanyyoruz....
mysql> show tables;
+-------------------+
| Tables_in_mustafa |
+-------------------+
| rehber |
+-------------------+
1 row in set (0.00 sec)
mustafa adly veri tabanymyzda rehber adly bir tablomuzun oldu?unu
görüyoruz... yine ayny mantykla bu tablo üzerinde i?lem yapmak için
use komutunu kullanarak
mysql> use rehber;
ERROR 1049 (42000): Unknown database 'rehber'
?eklinde hata verecektir çünkü artyk i?in MySQL tarafy
burada bitiyor Bundan sora rehber tablosu üzerinde
i?lem yapabilmek için bize SQL komutlary gerekir!
SQL de herhangibir tablo secmek için SELECT komutu kullanylyr
rehber içindeki tüm alanlary görebilmek için
A?a?ydaki komutu yazalym

mysql> SELECT * FROM rehber;
Empty set (0.00 sec)

görüldü?ü gibi rehber altynda herhangi bir alan kaydy bulunamady
çünkü tablomuzda henüz veri yok bir ba?ka de?i?le Empty(Bo?)

peki nasyl alan ady ve veri girebilirim diye dü?ünüyorsanyz

Bunu da INSERT INTO Komutu ile yapyyoruz.. Lütfen sizde deneyin


mysql> INSERT INTO rehber
-> (no,isim)
-> VALUES
-> ('','Erhan BURHAN');
Query OK, 1 row affected, 1 warning (0.16 sec)
rehber adly tablomuza iki alanadan olu?an bir veri girdisi yaptyk
bunlar no ve isim VALUE ile de bu alanlara kar?ylyk bilgileri
verdik ?imdi 2. bir veri girelim

mysql> INSERT INTO rehber (no,isim) VALUES ('','Mustafa BARDAK');
Query OK, 1 row affected, 1 warning (0.06 sec)
rehber tablomuzu tekrar seçerek neler yapmy? oldu?umuza bakalym

mysql> select * from rehber;
+----+----------------+
| no | isim |
+----+----------------+
| 1 | Erhan BURHAN |
| 2 | Mustafa BARDAK |
+----+----------------+
2 rows in set (0.02 sec)
Görüldü?ü gibi iki rehber altynda iki alan yarattyk
no ve isim bu alanlara da örnek olarak 2 veri girdik ;)
bu verileri görüntülemek için seçerken yalnyzca isimlerine göre
secmak ve göstermek için
SELECT * FROM rehber; komutunda * yerine isim yazmamyz yeterli

mysql> SELECT isim FROM rehber;
+----------------+
| isim |
+----------------+
| Erhan BURHAN |
| Mustafa BARDAK |
+----------------+
2 rows in set (0.00 sec)
yalnyzca nosu 1 olan veriyi görmek için

mysql> SELECT * FROM rehber WHERE no=1;
+----+--------------+
| no | isim |
+----+--------------+
| 1 | Erhan BURHAN |
+----+--------------+
1 row in set (0.03 sec)
nosu 2 olan verinin sadece ismini görmek istiyorsak

mysql> SELECT isim FROM rehber WHERE no=2;
+----------------+
| isim |
+----------------+
| Mustafa BARDAK |
+----------------+
1 row in set (0.00 sec)

Buraya kadar rehber üzerine yeni kayytlar girdik
?imdide varolan bir kayyt üzerinde de?i?iklik yapalym!
bunun için Bir Ba?ka SQL komutu olan UPDATE i kullanyryz
a?a?ydaki örnegi uygulayynyz

mysql> UPDATE rehber SET isim='Namyk ERTUGRUL' WHERE isim='Erhan BURHAN';
Query OK, 1 row affected (0.22 sec)
Rows matched: 1 Changed: 1 Warnings: 0
nosu 1 olan ismi Güncellemi? olduk!
son duruma bakalym

mysql> SELECT * FROM rehber;
+----+----------------+
| no | isim |
+----+----------------+
| 1 | Namyk ERTUGRUL |
| 2 | Mustafa BARDAK |
+----+----------------+
2 rows in set (0.09 sec)
Bugünlük Bukadar arkada?lar birdahaki ders DELETE komutu
vs. ile Verileri silme ve hayytlar üzerinde oynamalara devam edece?iz .. :))

Ho?çakalyn Copyright by mglass©
mysql>cd ..
cd..
cd..
cd..
c:\Exit BYEE


Kaynak: Orjinal Kaynak ...

13 Mayıs 2010 Perşembe

Latex'te Resim ve Denklem Ortamları

Gün geçtikçe katlanarak artan okuyucu kitlemizin her bir üyesine merhaba! Bu ay Latex yazı dizimizin son bölümünde, geçen ay da belirttiğim gibi, bazı ortamları tanıyacağız ve son birkaç ipucu ile serimizi bitireceğiz. Geçen ayki yazımda kullandıklarımla çok iç içe bir yazı olacağı için, öncelikle serinin ilk bölümlerine göz atmanız daha faydalı olacaktır. Dilerseniz resim ortamını inceleyerek yazımıza başlayalım.
Resim Ortamı

Makalelerimizde veya kitaplarımızda birçok figür, şekil, şema, resim, fotoğraf gibi; farklı sayfalara parçalanamayacak elemanlar bulunabilir. Bunun bir çözümü sayfaya sığmayan her resim için bir sonraki sayfaya geçmek olabilir; ancak bu sefer de sayfalarda belirli bir boşluk kalacaktır. Bu yüzden bunun en güzel çözümü, resimleri yazıda yüzdürmektir, yani resim sayfaya sığmadığında sonraki sayfaya alıp, boş kalan yeri de metnin devamı ile doldurabiliriz. Yüzen elemanların (figürler ve tablolar) ayarlarını çok iyi anlamazsak, Latex kolaylık yerine zorluk bile çıkarabilir.

Resim ekleme ortamını kullanabilmek için öncelikle \usepackage{graphicx} satırını en başta dökümana başlamadığımız bölüme yazarak, graphicx paketini eklemeniz gerek. Daha sonra metin içinde \begin{figure}[yerleştirici] olarak tanımladığımız komutta, "yerleştirici" yüzen figürün sayfadaki konumlandırılmasını belirlemekte yardımcı olur. Buraya birçok seçenek gelebilir:

* h: metin içinde neredeyse tam orada durması için kullanılır. Küçük figürler için kullanışlıdır.
* b: sayfanın en altına yerleştirilir.
* t: sayfanın en üstüne yerleştirilir.
* p: apendix gibi sadece figür içeren özel sayfalara eklenmesini sağlar.

Eğer hiçbir yerleştirici kullanılmadıysa, öntanımlı gelen değer "tbp"dir. Yani yukarı yerleştirir, olmazsa aşağı yerleştirir, o da olmazsa özel bir sayfaya koyar. Latex figürleri kuyruğa alır ve her yeni sayfada öncelikle bu kuyruklara bakarak figürleri yerleştirir. Yanlış yer ayarı verildiğinde tıkanma bile söz konusu olabilir. Bu yüzden başta "h" seçeneği olmak üzere, bu yerleştiricileri bilinçli kullanmak gerekir.

Bu yüzen elemanlara isim vermek de mümkündür. \caption{isim} komutu ile, kaçıncı resim ise "Figure 5: isim" şeklinde otomatik olarak isim eklenecektir. Aynı kullanım tablolar için ise, "Table 8: isim" olarak geçmektedir. Bu numaralama sayesinde, \listoffigures ve \listoftables komutları düzgün bir listeleme yapabilmektedir.

Resmin nerede duracağını ve başlığını belirledikten sonra, sıra geldi resmi eklemeye. Bunun için, \includegraphics[resmin özellikleri]{dosyanın yeri} şeklinde resmi ekleyebilirsiniz. Resmin yeri, derleme anında .tex dosyasının bulunduğu yere göre göreceli olarak resmin konumu iken; resmin özellikleri ise boyut, döndürme, ölçeklendirme gibi özelliklerini kapsar. Bunları köşeli parantez içine "parametre1=sayı1, parametre2=sayı2, ..." şeklinde kullanabiliriz:

* width: resmin genişliğini değiştirir.
* height: resmin yüksekliğini değiştirir.
* scale: resmin büyütülüp küçültülmesini sağlar.
* angle: resmin döndürülmesini sağlar.

Resmi de ekledik, kullanıma hazır bir yüzen elemanımız var :) Resmi yerleştirmede kullanacağımız son özellik ise, \centering komutu ile resmi ortalamamız. Aşağıdaki örnek kod parçasında göreceğimiz resimde: "Desktop/resimler/latex.jpg" konumundaki resim konduğu yerde görünecek, sığmıyorsa sayfabaşına yerleştirilecek, boyu 80, eni 220 piksel olarak ayarlanacak, ortalanmış olacak ve ilk eklediğimiz resim olduğu için adı "Figure 1: LaTeX" olacak.

\begin{figure}[ht]
\centering
\includegraphics[bb=0 0 220 80]{Desktop/resimler/latex.jpg}
\caption{LaTeX}
\end{figure}


Denklem Ortamı

Geçen sayıda çok kısaca tanımladığımız denklem ortamının \begin{equation} ve \end{equation} komutları ile sağlandığını hatırlıyorsunuzdur. Bu ortamı rahat bir şekilde tüm matematiksel işaretler ile matematiksel dizginizi genişleterek kullanabilmek için, demin grafik paketini eklediğimiz gibi, \usepackage{amsmath} ile matematik paketini de eklemelisiniz (AMS-LaTeX paketi). Şimdi denklem ortamını ve matematik modunu inceleyebiliriz.

Denklem ortamını normal ortam gibi kullanabilmenizin yanı sıra, çok kullanıldığı için bir de kısayol oluşturmuşlar. "$" işaretlerinin arasında yazılan her şeyi matematik modunda görüyor Latex2e. Bu iki ortamın içeriğini aynı şekilde kullanabiliyoruz, ancak tek farkları, "$" işaretli olarak yazdığımız denklem ve formüller satır içinde farklı bir şekilde belirtilirken, \begin{equation} diye girdiğimiz ortamda paragraf bölünerek farklı bir girintileme ile formüllerimiz yerleştiriliyor.
denklem ortamıAynı yüzen figür ortamında olduğu gibi, denklem ortamında da denklemler sağlarında bölümlerine ve sıralarına göre numaralandırılıyor. Numaralandırmasını önlemek için ufak bir yıldızımız var, \begin{equation*} ve \end{equation*} olarak kullandığımızda numaralandırma işlevi kapanmış oluyor. Bu noktada bir üçüncü yol daha çıkıyor karşımıza; paragraf bazlı denklemler için ortama sadece \[ ile girip, \] ile çıkabiliyoruz. Matematik modu için tek farkı numaralandırmayı kapayan bu yolla begin ve endlerden tamamen kurtulabiliyoruz. Yandaki görünümdeki sonucu verecek kodu aşağıdaki örnekte bulabilirsiniz.

\[a[i][j] = a[i][j] + \frac{MaxIn} {((l[k].x+i*s)^2+(l[k].y-j*s)^3+Min^2)}\]
burada $a$ haritayi, $a[i][j]$ haritanın $j^{th}$ sutununda $i^{th}$ satirinda olan bir noktayi temsil etmektedir.

Hem satır içi hem de paragraf içi matematik ortamı kullandığımız bu örnekte, çeşitli işaretler dikkatinizi çekmiş olmalı. Şimdi bunlara, türevlerine ve çok sık kullanılan toplu komutlara kısaca değinelim:

* \frac: Bölme işlemi için kullanılır, bölen ve bölünenin büyüklüğüne göre toplam satır genişliğini ayarlayarak düzgün hizalamayı sağlar.
* ^: Üs alma işlemini sağlar, font git gide küçüldüğü için görünmesi engel teşkil etmediği sürece istediğiniz sayıda üs alabilirsiniz.
* _: Aşağıdan indislemeyi sağlar, yine font git gide küçüldüğü için görünmesi engel teşkil etmediği sürece istediğiniz sayıda iç içe indis kullanabilirsiniz.
* {...}: İşlemleri gruplaştırmayı sağlar, böylece üs, indis, bölme gibi işlemlerde tek karakterden fazla işlemleri de denkleme sokabilirsiniz.
* \sqrt[n]: n. kuvvetten kök almak için kullanabilirsiniz.
* \tau, \epsilon, \chi, \lambda, \xi, \pi, \theta, \mu, \Phi,\Omega,\Delta: Matematik modundayken, bunlar gibi latin harflerini sadece ismini komut olarak yazarak kullanabilirsiniz. Harfler kendiliğinden belirecektir. Komuta üyük harf ile başladığınızda harfin büyük hali (uppercase), küçük harf ile başladığınızda da küçük hali (lowercase) gelecektir.
* \overline, \underline: Karakterin veya karakter kümesinin üstünü veya altını çizmek için kullanabilirsiniz.
* \lim_{n \to \infty}: Türkçesini "n sonsuza giderken limit" olarak çevirebileceğimiz bu limit belirteci çok sık kullanılan bir blok komuttur. Dikkat ettiyseniz sadece indislerden ve özel işaretlerin adlandırılmasından oluşmuştur.
* \sum_{k=0}^n: Yine Türkçesini "k sıfırdan n'e kadar toplam" olarak belirtebileceğimiz bu komut bloğu da çok sık kullanılmaktadır. Ayrıca burada üs ve indisin birlikte kullanımını görmüş oluyoruz. \int komutunu integral için, \prod komutunu da çarpım için kullanabilirsiniz.
* \arccos, \cos, \csc, \exp, \cosh, \deg, \log: Sinüzoid, logaritmik ve üstel fonksiyonların da karşılıkları bildiğimiz adlarıyla bulunmaktadır.
* \subset, \supset, \in, \notin, \sim, \approx, \propto: Sırasıyla, altküme, kapsar, elemanıdır, elemanı değildir, benzerdir, yaklaşıktır ve orantılıdır işaretlerinin karşılıklarıdır.
* \le, \ge, \ne: Normal küçüktür(<), büyüktür(>) ve eşittir(=) işaretlerini kullandığınız gibi, küçük eşittir(\le), büyük eşittir(\ge) ve eşit değildir(\ne) işaretlerini de kullanabilirsiniz.
* \forall, \exits: Özellikle teoremleri ispatlarken kullanılan "bütün x ler için.. " veya " bir x vardır ki.. " şeklindeki nitelendiricilerin Latex karşılıklarıdır.
* \heartsuit, \neg, \prime, \copyright: Sırayla kalp şekli, tersini alma işareti, türev olarak üs işareti ve copyright işareti gibi, daha birçok şeklin de matematik modunda karşılıkları vardır.

Matematik modunu kullanarak artık her denklemi yazabilirsiniz sanırım :) LaTeX dünyasında çeşitli paketleri ekleyerek ve araştırarak yazamayacağınız hiçbir şey yok! El yazınızdan sonra en zengin font ve dizgiye sahip olan Latex, kullanım kolaylığı ile de el yazınıza rakip. Latex'i keşfetmeyi artık size bırakıyorum ve bu ayki yazımla birlikte Latex serimizi bitiriyorum. Herkese eğlenceli bir yarıyıl tatili dilerken, tatilde de e-bergiyle kalmanızı umut ediyorum :) Görüşmek üzere.

Video Haber