HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
My SQL nedir?
MySQL, altı milyondan fazla sistemde yüklü bulunan çoklu iş parçacıklı (multi-threaded), çok kullanıcılı (multi-user), hızlı ve sağlam (robust) bir veritabanı yönetim sistemidir.
UNIX, OS/2 ve Windows platformları için ücretsiz dağıtılmakla birlikte ticari lisans kullanmak isteyenler için de ücretli bir lisans seçeneği de mevcuttur. Kaynak kodu açık olan MySQL`in pek çok platform için çalıştırılabilir ikilik kod halindeki indirilebilir sürümleri de mevcuttur. Ayrıca ODBC sürücüleri de bulunduğu için birçok geliştirme platformunda rahatlıkla kullanılabilir.
Geliştiricileri, 500′den fazlası 7 milyon kayıt içeren 10.000 tablodan oluşan kendi veritabanlarını (100 gigabyte civarında veri) MySQL`de tuttuklarını söylüyorlar.
MySQL, tuttuğu tablolarla çok kullanıcılı sistemlerde söz konusu olan erişim hakları sorununu başarılı bir şekilde çözmektedir. MySQL`in 4.0 sürümü ile birlikte “transaction“ desteği, 4.1 sürümyle birlikte de alt sorgu desteği eklenmiştir.
Ayrıca “veri tutarlılığını (referential integrity)“ sağlama işinin programcıya bırakılması tercih edilmiştir, ancak bu bir dezavantaj olarak görülmeyebilir. Çünkü pek çok veritabanı programcısı VTYS`lerdeki veri tutarlılığı`nın esnek olmayan, zorlayıcı bir özellik olduğunu düşünmektedir.
MY SQL Örnekleri
Örnek kod :
Aşağıdaki örnekde Asp.Dotnet ile mysql bağlantısının nasıl yapılacağını görebilirsiniz.
Gereksinimler :
Mysql sitesinden indirilmiş dotnet driveri referans olarak gösterilecek.
Not : Referans işlemi sonrasında dll dosyası bin klasörü içine otomatik kopyalanmış olmalıdır.
örneğin çalışabilmesi için visual studio da bir website projesi yaratılmış olduğu kabul edilmektedir.
Imports MySql.Data.MySqlClient
Imports System.Data
Partial Class _Default
Inherits System.Web.UI.Page
Dim conn As MySqlConnection
Dim da As MySqlDataAdapter
Dim ds As New DataSet
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
‘Bağlantı oluşturuluyor.
conn = New MySqlConnection("server=localhost;uid=user;pwd=par ola;_
database=database_adı;")
conn.Open()
‘Data adapter oluşturuluyor
da = New MySqlDataAdapter("select * from cms_site_content", conn)
‘Dataset dolduruluyor.
da.Fill(ds, "site_content")
‘Datagrid`e source olarak gösteriliyor.
DataGrid1.DataSource = ds.Tables("cms_site_content").DefaultView
‘Bind edilerek bağlanıyor.
DataGrid1.DataBind()
‘Bağlantı kapatılıyor.
conn.Close()
End Sub
End Class
C ile MY SQL Kullanımı
Aşağıdaki kodun çalışabilmesi için mysql librarylerinin kurulu ve local de bir mysql sunucusunun çalışır durumda olduğu kabul edilmektedir.
Not : Debian Linux`ta gcc ile compile edip denenmiştir.
/*
* File: main.c
* Author: tanero
*
* Created on 28 Şubat 2010 Pazar, 16:59
* MYSQL denemeleri
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <mysql/mysql.h>
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "parola";
char *database = "taner_db";
void kisi_ekle() {
int i;
for (i = 0; i < 20; i++) {
if (!mysql_query(&mysql, "insert into kisiler (adi,soyadi) values (‘Kemal`,'Sunal`)")) {
fprintf(stderr, "%s\n", mysql_error(&mysql));
return (1);
}
}
}
void dbyarat() {
/* send SQL query */
if (mysql_query(&mysql, "create database taner_db")) {
fprintf(stderr, "%s\n", mysql_error(&mysql));
//return (1);
}
}
void tabloyarat() {
if (mysql_query(&mysql, "create table kisiler (adi varchar(20))")) {
fprintf(stderr, "%s\n", mysql_error(&mysql));
//return (1);
}
}
///////////////////////////////// Listeleme Fonksiyonları //////////////////////
/**
* Kişileri Listeler
*/
void kisi_list() {
if (mysql_query(&mysql, "select * from kisiler")) {
fprintf(stderr, "%s\n", mysql_error(&mysql));
//return (1);
}
//res = mysql_use_result(&mysql);
res = mysql_store_result(&mysql);
printf("Kayit: %lu \n", (unsigned long) mysql_num_rows(res));
/* output table name */
printf("Kisiler:\n");
while ((row = mysql_fetch_row(res)) != NULL) {
printf("ID:%s \n", row[0]);
printf("ADI:%s \n", row[1]);
printf("SOYADI:%s \n", row[2]);
}
mysql_free_result(res);
}
/**
* Kişileri Listeler
*/
void kisi_list2() {
unsigned int num_fields;
unsigned int num_rows;
char *sql = "select * from kisiler";
if (mysql_real_query(&mysql, sql, (unsigned int) strlen(sql))) {
// query sonucu 1 olursa hata oluşmuştur.
fprintf(stderr, "%s\n", mysql_error(&mysql));
//return (1);
} else {
// query başarılı
// Result set e dolduruluyor.
res = mysql_store_result(&mysql);
if (res) {
// there are rows
num_fields = mysql_num_fields(res);
printf("Alan: %d \n",num_fields);
printf("Kayit: %lu \n", (unsigned long) mysql_num_rows(res));
printf("Kisiler:\n");
while ((row = mysql_fetch_row(res)) != NULL) {
printf("ID:%s \n", row[0]);
printf("ADI:%s \n", row[1]);
printf("SOYADI:%s \n", row[2]);
}
mysql_free_result(res);
} else { // mysql_store_result() returned nothing; should it have?
if (mysql_field_count(&mysql) == 0) {
// query does not return data
// (it was not a SELECT)
num_rows = mysql_affected_rows(&mysql);
} else // mysql_store_result() should have returned data
{
fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
}
}
}
}
/**
* Tabloları Listeler
*/
void table_list() {
if (mysql_query(&mysql, "show tables")) {
fprintf(stderr, "%s\n", mysql_error(&mysql));
//return (1);
}
res = mysql_use_result(&mysql);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL) {
printf("%s \n", row[0]);
}
mysql_free_result(res);
}
/**
* Karakter Listelemesi Yapar.
*/
void karakterset() {
// Karakter set bilgileri
MY_CHARSET_INFO cs;
mysql_get_character_set_info(&mysql, &cs);
printf("Karakter Bilgileri:\n");
printf("character set+collation number: %d\n", cs.number);
printf("character set name: %s\n", cs.name);
printf("collation name: %s\n", cs.csname);
printf("comment: %s\n", cs.comment);
printf("directory: %s\n", cs.dir);
printf("multi byte character min. length: %d\n", cs.mbminlen);
printf("multi byte character max. length: %d\n", cs.mbmaxlen);
}
void karakter_set() {
// Karakter set
/*
if (!mysql_set_character_set(&mysql, "utf8")) {
printf("New client character set: %s\n", mysql_character_set_name(&mysql));
}
*/
}
/**
* Main İşlemleri
*/
int main(int argc, char** argv) {
//ilk işlem bu olmalı
mysql_init(&mysql);
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "utf8");
if (!mysql_real_connect(&mysql, server, user, password, database, 0, NULL, 0)) {
fprintf(stderr, "Connection Error: %s\n", mysql_error(&mysql));
}
mysql_query(&mysql,"set names utf8");
printf("New client character set: %s\n", mysql_character_set_name(&mysql));
//printf("Stat: %s\n",mysql_stat(&mysql));
//kisi_ekle();
//table_list();
kisi_list2();
//karakterset();
/* close &mysql connection object */
mysql_close(&mysql);
return 0;
}
