RSS
 

Posts Tagged ‘sql’

For Messenger Application Database

27 Oct

Merhaba,

Bu hafta içinde bir messenger uygulaması için MsSQL ile hazırladığım bir veri tabanın ilk versiyonunu sizlerle paylaşacağım. Son versiyonunu neden paylaşmadığımı sormazsınız heralde :)

USE [N2Soft]
GO
/****** Object:  Table [dbo].[UsersInfo]    Script Date: 10/27/2008 00:10:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[UsersInfo](
[UserID] [int] NOT NULL,
[FirstName] [nvarchar](150) NOT NULL,
[LastName] [nvarchar](90) NOT NULL,
[Picture] [varchar](250) NULL,
[Status] [nchar](10) NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[Users]    Script Date: 10/27/2008 00:10:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Users](
[UserID] [int] IDENTITY(1,1) NOT NULL,
[Email] [varchar](150) NOT NULL,
[Password] [varchar](32) NOT NULL,
[Nickname] [nvarchar](30) NOT NULL,
[RegDate] [date] NOT NULL,
CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED
(
[UserID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[BodyList]    Script Date: 10/27/2008 00:10:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[BodyList](
[UserID] [int] NOT NULL,
[SecondUID] [int] NOT NULL,
[AddDate] [date] NOT NULL,
[Permission] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  View [dbo].[Banned]    Script Date: 10/27/2008 00:10:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create view [dbo].[Banned]
as
select UserID,SecondUID,Permission
from dbo.BodyList
where Permission = 0;
GO
/****** Object:  View [dbo].[Accept]    Script Date: 10/27/2008 00:10:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create view [dbo].[Accept]
as
select UserID,SecondUID,Permission
from dbo.BodyList
where Permission = 1;
GO
/****** Object:  Default [DF_Users_Nickname]    Script Date: 10/27/2008 00:10:01 ******/
ALTER TABLE [dbo].[Users] ADD  CONSTRAINT [DF_Users_Nickname]  DEFAULT (N’Üşengeç’) FOR [Nickname]
GO
/****** Object:  Default [DF_UsersInfo_Status]    Script Date: 10/27/2008 00:10:01 ******/
ALTER TABLE [dbo].[UsersInfo] ADD  CONSTRAINT [DF_UsersInfo_Status]  DEFAULT (N’Offline’) FOR [Status]
GO

Table mantığı ile ilgili sanırım bir çıkmazasa düşmezsiniz. Zaten yapı basit. SP veya ileri seviye farklı bir transaction mekanizması bu versiyonunda olmadığından alıp istediğiniz gibi kullanabilirsiniz. Msn messenger veya Yahoo Messenger’da bu mantıkla tablolama yapmaktadır.

Yinede takıldığınız bir yer olursa biliyorsunuz bana nasıl ulaşacağınızı.

Saygılar,

Hakan DAMAR

 

SQL.TC Yayın Hayatına Başladı!

02 Oct

Merhaba Sevgili Okurlar,

Bilmiyorum projelerim bölümünden incelediniz mi? ama orada SQL.TC diye bir link olacak. Geçenlerde biraz boş zamanım oldu aklımada SQL.TC projesi geldi hemen çalışmalara başladım ve geçen gün yayına geçirdim.

İçerisinde henüz makale yok fakat kategorizasyon işlemi tamamen bittikten sonra makale eklemeye başlayacağım. Birde Editör kayıt paneli yapacağım. Çünkü direk bir kayıt paneli yok. Editöryal işlemlerle ilgilenmesi içinde 3 tane admin arkadaş bulduğumda onları yetkilendireceğim.

Siteye http://SQL.TC adresinden ulaşabilirsiniz. İçerisinde veri tabanları üzerine kaynaklar ve popüler programlama dillerinin bu veri tabanları ile çalışma sistemleri ve kod parçaları bulabilirsiniz.

Şimdilik aklımda bu sitede programlama makaleleri yayınlatmayı düşünmüyorum belki ileride olabilir ama ilk aşamada programlama bölümlerindeki kodlar sadece veri tabanları ile ilgili olan kod parçaları ve makaleler olacaktır. Programlama dersleri için www.sanalkurs.net adresinden faydalanabilirsiniz.

Saygılar,

Hakan DAMAR

 
No Comments

Posted in Genel

 

Veri Tabanı Programlama [T-SQL]

21 Aug

Merhaba Sevgili Okurlar,

Bu eğitim kuşanda sizlere veri tabanı programlama,T-SQL,MsSQL ve MySQL’i göstereceğim. Hepsinin temeli T-SQL’den geçtiğinden sizlere T-SQL’i önce anlatacağım. Daha sonra zaten zorlanmadan MsSQL’i, hello world gibide MySQL’i öğreneceksiniz.

İlk olarak öğreneceğiniz şey hakkında açıklama yapayım.

Veri Tabanı Nedir? Neden Gerek Duyulur?

Aslına bakarsanız biraz ileri seviye olan arkadaşlar anlayacaktır bu sözümü, “Neden farklı programlama dillerine gerek var :D daha mantıklı kalıyor bu söz karşısında”. Çünkü; şuan programcı diye piyasada çalışan %95 kişi’nin yaptığı aslında veri tabanı programlamaktır. Veri tabanı olmayan kaç tane uygulama kullandınız şimdiye kadar? Aslında hepimizin yaptığı iş aynıdır. Veri Tabanı Programlamak. Veri tabanı dediğimiz şeyi en basitten baktığımızda bilgisayarlarımızda kullandığımız text dosyalarıdır. Evet, yanlış okumadınız bildiğimiz yazı dosyaları. MsnList.txt gibi mesela :)

Tabi bu text dosyaları verileri farklı veri türlerinde tutup saklamak,toplu sorgulara yanıt verebilmek ve bazı kriterlere göre bize işlem bütünlüğü sağlamak gibi özellikleri yoktur. Normal klavyeden yazar gibi yazar ve satır, satır bizim gibi okur. Olduda bir hata oldu ve 1 satır yukarıya kaydı 1 satır. Bütün işlemleriniz artık yanlış çalışacaktır. Bu bir de üyelik sistemi ise tüm login’ler artık failed! :) Bu ve şimdi 1-2 sayfa sürebilecek daha bir çok sebebten dolayı Veri Tabanı Yönetim Sistemleri çıkmıştır ortaya. Bunların en gelişmişlerinin başında MsSQL , ORACLE , MySQL ve PostgreSQL gelmektedir. Bunların işlerimizi kolaylaştıracak o kadar çok yönü vardırki şimdi satır arasında sayamayacağım kadar çok. Her biri için yazılmış cilt,cilt kitaplar olduğunuda düşünürsek bunların açıklamasını ileriye saklamak mantıklı olacaktır. İleride hangi projede hangi veri tabanını seçeceğimizide göreceğiz. Gerçi %80 işlerimizde MsSQL bize yetecektir ama yinede alternatiflerinin ağır bastığı noktalarada değineceğiz.

Şimdi son olarak veri tabanı için şunu diyebiliriz. Ona gönderdiğimiz verilerimizi bizim için süresiz saklayan ve istediğimizde bize gösteren her türlü  yapıya veri tabanı denmektedir. Buna RAM dahil değildir. Çünkü onun süresi restart atılana kadar veya RAM boşaltılmak zorunda kaldığı zaman kadardır. Böyle olduğundan tanımımızdaki süresiz kelimesine uymamaktadır. Bazı veri tabanı yönetim sistemlerininde MEMORY seçeneği vardır ve çokta hızlı çalışmaktadırlar fakat kritik noktalarda asla tercih edilmemelidir. Ama ara işlem logları v.s. gibi bazı yerlerde işimize yarayan tablo yapılarıdır. Hepsini ileride göreceğiz.

Bu açıklamaların üzerine “Neden gerek duyulur?” sorusu sanırım tek cümle ile geçilebilir. Verilerimizi düzenli bir şekilde uzun süre saklamak ve hızlı erişebilemiz gerektiğinden veri tabanlarını kullanarak verilerimizi depolarız. Bu yüzdende Veri Tabanlarına yani Database’lere ihtiyacımız vardır.

Veri tabanı sistemlerine girmeden T-SQL’i görerek işlemlerimizi nasıl yaptığımızı öğrenmeliyiz. T-SQL’e bir sonraki derste giriş yaparak ardından  belirttiğim konuları anlatacağım.

Saygılar,

Hakan DAMAR

 

MySQL İle Basit Bir Veri Tabanı Oluşturma

14 Aug

Merhaba Sevgili Okurlar,

MySQL’e yeni başlayan arkadaşlardan gelen istek üzerine bir adet basit MySQL Veri Tabanı Hazırlıyorum.

create table e_uzman(

UzmanID int(5) not null auto_increment,

UzmanAdi varchar(45) not null,

UzmanSAdi varchar(50),

UzmanPara decimal(10,2),

Primary Key(UzmanID)

);

Yukarıdaki veri tabanında bir kişinin adi,soyadi,hesabındaki para’yı tutabilirsiniz. Sorgular şu şekilde olacaktır.

SELECT * FROM e_uzman

Eğer Şartlı sorgulama yapacaksanız:

SELECT * FROM e_uzman WHERE UzmanID > 5

şeklinde olacaktır.

İleride T-SQL derslerinde bunların hepsine ayrıntılı gireceğimizden şimdilik sadece istediğiniz olsun diye yazdım. Ayrıntılı olarak gireceğim. Veri tabanı çok önemli bir konudur. Hatta programladan bile bazı noktalarda önemlidir. Neyse şimdilik girmiyorum. İleride değineceğiz.

Saygılar,

Hakan DAMAR

 
No Comments

Posted in MySQL