NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

/*
İlk harf büyük, geri kalan küçük,
verilen sayıda rastgele harflerden oluşan,
bir kelime üreten fonksiyon yazınız
*/

--rastgele sayı üret
SELECT RAND()*26 --0-1 arası float rastgele sayı
--tam sayıya yuvarla
SELECT ROUND(3.14, 2) --yüzde birler basamağına yuvarlar
SELECT ROUND(3.14, 1) --onda birler basamağına yuvarlar
SELECT ROUND(3.14, 0) --birler basamağına yuvarlar
SELECT ROUND(15.14, -1)--onlar basamağına yuvarlar
SELECT ROUND(324.14, -2)--yüzler basamağına yuvarlar
--ascii -> char dönüştür
SELECT ASCII('a'), ASCII('z'), ASCII('A'), ASCII('Z')
SELECT CHAR(97),CHAR(122),CHAR(65),CHAR(90)
--küçük harfler 97-122 arasında (sınırlar dahil) 26 karakter
--büyük harfler 65-90 arasında (sınırlar dahil) 26 karakter

/*
Rastgele sayı üretelim. 0-26 arasında sınırlar dahil rastgele tam
sato üretelim.65 eklersek büyük harfin,
97 eklersek küçük harflerin ASCII değeri olur.
*/
SELECT ROUND( RAND()*26,0)
--büyük harf için 65 ekle
SELECT CHAR(ROUND( RAND()*25,0)+65)
--küçük harf için 97 ekle
SELECT CHAR(ROUND( RAND()*25,0)+97)
--Önce rastgele harf üreten fonksiyon yazalım:
--TSQL fonksiyon içinden RAND() değer belirsiz fonksiyon çağıramayacağından, view ile rastgele
--değer üretip görünümü fonksiyondan çağıralım

GO
CREATE VIEW rastgeleGorunum
AS
SELECT RAND() AS DEğer
GO

GO
CREATE FUNCTION RastgeleHarf(@buyuk BIT)
RETURNS CHAR(1)
BEGIN
DECLARE @harf CHAR(1)
DECLARE @rastgele FLOAT
SELECT @rastgele= Değer FROM rastgeleGorunum
SET @rastgele = @rastgele*25
IF(@buyuk=1) SET @harf=CHAR(ROUND(@rastgele,0)+65)
ELSE SET @harf=CHAR(ROUND( @rastgele,0)+97)
RETURN @harf
END
GO

GO
CREATE FUNCTION Kelime(@adet INT)
RETURNS VARCHAR(100)
BEGIN
DECLARE @kelime varchar(100), @say int
SET @kelime=dbo.RastgeleHarf(1)--ilk küçük büyük
SET @say=1
WHILE @say<@adet
BEGIN
SET @kelime=@kelime+dbo.RastgeleHarf(0)--gerisi küçük
SET @say=@say+1
END
RETURN @kelime
END
SELECT dbo.Kelime(5), dbo.Kelime(10),dbo.Kelime(20)

CREATE TABLE Müşteriler
(
Numara BIGINT IDENTITY(1,1) NOT NULL,
Ad varchar(50),
Soyad varchar(50),
Kimlik UNIQUEIDENTIFIER DEFAULT NEWID()
)
--Bu tablonun içersine 1000 tane rastgele kayıt Kelime fonksiyonu kullanarak kaydedelim
DECLARE @say INT
SET @say=9000
WHILE @say>0
BEGIN
INSERT INTO Müşteriler(Ad,Soyad)
VALUES(dbo.Kelime(50),dbo.Kelime(50))
SET @say=@say-1
END
SELECT * FROM Müşteriler

----------------------DİZİN: İNDİS: INDEX'ler------------------
Tablo içinde yapılan aramaları hızlandırmak için kullanılır.Tablonun birincil anahtarı aslında bir indekstir.
İndisler tablo içerisinde arama, hangi kolon ya da kolonlar üzerinde yapılacaksa o kolonlara uygulanmalıdır.
İndis bir kolona atandığında BASİT İNDİS,
birden fazla kolona atandığında BİLEŞİK İNDİS, olarak adlandırılır.

İndisler indeksleme algoritmasına göre iki gruba ayrılırlar:
Kümelenmiş indis: ClUSTERED INDEX
Kayıtlar için bellek kullanarak bir veri kümesi oluşturur.
Bu kümeyi kullanarak aramaları hızlandırır.
Avantaj: Hızlıdır Dezavantaj: bellek kullanır.
Kümelenmemiş indis: NONCLUSTERED INDEX
Bellek kullanmaksızın aramaları hızlandırır.
Ancak kümelenmiş indis kadar hızlı değildir.
Arama yapılan kolonlarda indis kullanmak sorguları hızlandırır.

CREATE CLUSTERED INDEX inx_Ad
ON Müşteriler(Soyad)
--Ada göre arama
SELECT * FROM Müşteriler
ORDER BY Ad ASC
--geçen zaman: 0209466 milisaniye HIZLI

SELECT * FROM Müşteriler
ORDER BY Soyad ASC
--geçen zaman: 1437904 milisaniye YAVAŞ neden ? indeks yok

--Soyadda 2. bir kümelenmiş index YARATAMAYIZ!!!
--o zaman kümelenmemiş index yaratabiliriz
CREATE NONCLUSTERED INDEX inx_Soyad
ON Müşteriler(Soyad)
--Bakalım soyada göre aramanın hızı ne olacak
SELECT * FROM Müşteriler
ORDER BY Soyad ASC
--kümelenmemiş indis : 0719517 milisaniye
--indis kullanmadan : 1437904 milisaniye
--kümelenmiş indis : 0209466 milisaniye
--nonclustered(kümelenmemiş), clustered(kümelenmiş)'dan kötü
--hiç indis kullanmamaktan iyi durumdayız.

--Arama ya da sıralama birden fazla kolonda yapılacaksa bu durumda bileşik index kullanılır.
--Önceli indexleri silelim:
DROP INDEX tabloAdı.İndisAdı

DROP INDEX Müşteriler.inx_Ad
DROP INDEX Müşteriler.inx_Soyad

SELECT * FROM Müşteriler
ORDER BY Ad ASC, Soyad ASC
--İndissiz geçen süre :1005498 milisaniye

CREATE CLUSTERED INDEX inx_AdSoyad
ON Müşteriler(Ad,Soyad)

SELECT * FROM Müşteriler
ORDER BY Ad ASC, Soyad ASC
--İndisli geçen süre :1095857 milisaniye

SELECT * FROM Müşteriler
WHERE Ad LIKE 'A%' AND Soyad LIKE 'B%'
--geçen süre : 0259600
DROP INDEX Müşteriler.inx_AdSoyad
SELECT * FROM Müşteriler
WHERE Ad LIKE 'A%' AND Soyad LIKE 'B%'
--geçen süre : 0349586
--İndis olmadığında süre uzadı.

INDEX i UNIQUE: tek ve biricik olmaya zorla

CREATE UNIQUE CLUSTERED INDEX inxAdSoy
ON Müşteriler(Ad,Soyad)
--Adı-Soyadı birleşik olarak tekrar yok
--Tekrar eden bir kayıt ekleyelim
INSERT INTO Müşteriler(Ad,Soyad)VALUES('A','B')
--Tekrar aynı müşteriyi ekleyelim
INSERT INTO Müşteriler(Ad,Soyad)VALUES('A','B')
--İndis unıque yani eşsiz olduğu için tekrar eden kayıt ekleyemeyiz!!
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.