Notes
Notes - notes.io |
Go
DROP DATABASE OKUL -- ilk çalıştırmada hata: yok nasıl silsin...
GO
CREATE DATABASE OKUL--dosyalarınOluşturulmasıZaman alır,GO ile bekle
GO -- mutlaka go olması gereken
USE OKUL -- okul vt bağlan
/*
Öğrenciler
----------------------
ÖğrenciNo
Adı
Soyadı
Adres
Telefon
eposta
Cinsiyet
TcKimlik
HarçMiktarı
KrediAlıyorMu
DoğumTarihi
KayıtTarihi
Bölümü
*/
--PRIMARY KEY : Birincil Anahtar bir Constraint/Zorlama/Kısıtlama
-- atandığı kolona, tekrar etmeyen, farklı veriler girilmesine zorlar.
CREATE TABLE Öğrenciler
(
ÖğrenciNo char(12) PRIMARY KEY NOT NULL,
Adı VARCHAR(50) NOT NULL,
Soyadı VARCHAR(50) NOT NULL,
Adres VARCHAR(100), -- NULL yazmasak da kolonun varsayılanı boş
Telefon CHAR(10),
eposta VARCHAR(100),
Cinsiyet BIT,
TcKimlik CHAR(11),
HarçMiktarı SMALLMONEY DEFAULT 0.0,
KrediAlıyorMu BIT DEFAULT 0,-- boş bırakılırsa varsayılan:almıyor
DoğumTarihi SMALLDATETIME,
KayıtTarihi SMALLDATETIME DEFAULT GETDATE(),
Bölümü VARCHAR(100) DEFAULT 'Bölüm girilmedi!'
)
PRINT GETDATE()
SELECT GETDATE()
-- 2 tane not null lara 1 tane tüm kolonlara veri giren 3 kayıt giriniz
-- SET DATEFORMAT DMY eğer bunu kullanmaz isek, TSQL datetime
INSERT INTO Öğrenciler(ÖğrenciNo,Adı,Soyadı)
VALUES ('202120614001','Furkan','Esmeyar'),
-- sıralaması Yıl/Ay/Gün saat:dakika:saniye:milisaniye
('202120614002','Doğa','Sezer')
INSERT INTO Öğrenciler
VALUES('202120614003','Nazlıcan','Çolak','X Mah. Y Cad. Edirne',
'2841234589','[email protected]',0,'12345678901',495.0,0,
'2001/06/22', '2021/09/09', 'Bilgisayar Programcılığı')
SELECT * FROM Öğrenciler
-- Öğrenciler Tablosunda Öğrenci numarasını otomatik artan yapalım:
IDENTITY(seed,increment)
seed: tohum: başlangıç sayısı
increment : artım miktarı
IDENTITY(202120614001,1) --iö
IDENTITY(202110614001,2) --nö Aşubesi
IDENTITY(202110614002,2) --nö Bşubesi
-- ?? Bu sayı integer a sığar mı ?
-- Tabloya kolon Ekler :
ALTER TABLE TabloADI
ADD KolonADı veriTİpi
-- Tabloda bir kolonu değiştir :
ALTER TABLE TabloADI
ALTER Column KolonADı veriTİpi
-- Tabloda bir kolonu sil :
ALTER TABLE TabloADI
DROP Column KolonADı
-- Öğrenciler tablosunda ÖğrenciNo char(12) den otomatik artan sayı
-- ya geçmeç istiyoruz
ALTER TABLE Öğrenciler
ALTER COLUMN ÖğrenciNo INT -- Birincil anahtar izin vermez!
-- ÖğrenciNo kolonunu silelim
ALTER TABLE Öğrenciler
DROP COLUMN ÖğrenciNo -- Birincil anahtar izin vermez!
-- Birincil anahtarı silelim
ALTER Table Öğrenciler
DROP Constraint PK__Öğrencil__FE83E311340C1978 -- PK yı sildik
-- Mevcut bir kolon değiştirilirken(ALTER) IDENTITY özelliği
-- verileme aşağıdaki yanlış !!!!
ALTER TABLE Öğrenciler
ALTER Column ÖğrenciNo Bigint IDENTITY(202120614001,1)
PRIMARY KEY NOT NULL
--Ne yaparız? ESki kolonu sil, yeni ve otomatik artan bir kolon ekle
ALTER TABLE Öğrenciler
DROP COLUMN ÖğrenciNo
-- yeni kolon otomatik artsın
ALTER TABLE Öğrenciler
ADD ÖğrenciNo BIGINT IDENTITY(202120614001,1) PRIMARY KEY NOT NULL
SELECT * FROM Öğrenciler
--
UPDATE Öğrenciler
SET Bölümü='Bilgisayar Programcılığı'
WHERE ÖğrenciNo=202120614001
--
UPDATE Öğrenciler
SET Bölümü='Bilgisayar Programcılığı'
WHERE ÖğrenciNo=202120614002
/*
Bölümler
----------------------------
BölümNo, otomatik artsın
BölümAdı
BölümBaşkanı
BölümSekteri
AlınanDerece
ÖğrenciKontejanı
ÖğretimElemanıKontenjanı
Adres
Tel
eposta
*/
CREATE TABLE Bölümler
(
BölümNo INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
BölümAdı VARCHAR(50) NOT NULL,
BölümBaşkanı VARCHAR(100),
BölümSekteri VARCHAR(100),
AlınanDerece VARCHAR(50),
ÖğrenciKontejanı SMALLINT,
ÖğretimElemanıKontenjanı TINYINT,
Adres VARCHAR(100),
Tel VARCHAR(100),
eposta VARCHAR(100)
)
-- otomatik artan kolon yok gibi kayıt gir!
INSERT INTO Bölümler
VALUES('Bilgisayar Programcılığı','Semih KELEŞ','Gülgün Özkan',
'Ön Lisans',120,4,'Çağış Kampüs,Balıkesir','2666121209',
'[email protected]')
INSERT INTO Bölümler(BölümAdı,Adres)
VALUES('Sivil Havacılık','Edremit, Balıkesir'),
('Elektronik Haberleşme','Çağış Kampüs,Balıkesir'),
('Makina','Çağış Kampüs,Balıkesir'),
('Grafik Tasarım','Çağış Kampüs,Balıkesir')
SELECT * FROM Öğrenciler
SELECT * FROM Bölümler
-- MEvcut eşleşen alanı sil:
ALTER TABLE Öğrenciler
DROP COLUMN Bölümü -- silemedik default var mış!
GO
-- Default da silmemiz gerekiyormuş...!
ALTER TABLE Öğrenciler
DROP CONSTRAINT DF__Öğrencile__Bölüm__1367E606
-- MEvcut eşleşen alanı sil:
ALTER TABLE Öğrenciler
DROP COLUMN Bölümü
-- Yeni Eşleşen alan, eşleştiği alan ile aynı veritipine sahip olsun
ALTER TABLE Öğrenciler
ADD Bölümü INT
-- 3 öğrenci de bilgisayar programcılşığının öğrencisi idi
UPDATE Öğrenciler
SET Bölümü=1
WHERE ÖğrenciNo=202120614001
GO
UPDATE Öğrenciler
SET Bölümü=1
WHERE ÖğrenciNo=202120614002
GO
UPDATE Öğrenciler
SET Bölümü=1
WHERE ÖğrenciNo=202120614003
GO
/*
Bölümü alanı eşleşen alan,eşleştiği alan her zaman bir PK ve veri tipi aynı olmalı.
Bölüm eşleşen alanı, öğrencinin okuduğu bölüm çoktan-bire ilişkisini kuruyor.
Ama bu alanı korumak için bir FOREIGN KEY:Yabancı anahtar oluşturulur.
Foreign key, eşleşen alanı, eşleştiği alan ile aynı kayıtları tutmaya zorlar/kısıtlar.
Foreign key bir Constraint dir yanı zorlama, kısıtlama
*/
ALTER TABLE Öğrenciler
ADD Constraint FK_Öğrenciler_Bölümler FOREIGN KEY(Bölümü)
REFERENCES Bölümler(BölümNo)
-- olmayan bölüme bir öğrenci kaydedelim
INSERT INTO Öğrenciler(Adı,Soyadı,Bölümü)
VALUES ('Furkan','Esmeyar', 15)
INSERT INTO Öğrenciler(Adı,Soyadı,Bölümü)
VALUES ('Furkan','Esmeyar', 0)
INSERT INTO Öğrenciler(Adı,Soyadı,Bölümü)
VALUES ('alp','imrek', 3)
SELECT * FROM Öğrenciler
öğrencinin bölümü ilişkisi, çoktan-biredir (n-1) , (yatık8-1) , many to one
bölümün öğrencileri ilişkisi birden-çoağadır(1-n), (1-yatık8) , one to many
|
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