{"id":15984,"date":"2024-07-29T14:27:12","date_gmt":"2024-07-29T10:57:12","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=15984"},"modified":"2024-07-29T14:27:12","modified_gmt":"2024-07-29T10:57:12","slug":"how-to-use-primary-keys-in-sql","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/how-to-use-primary-keys-in-sql\/","title":{"rendered":"SQL&#039;de birincil anahtarlar nas\u0131l kullan\u0131l\u0131r?"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">girii\u015f<\/h2>\n<p>\u0130li\u015fkisel veritabanlar\u0131n\u0131n de\u011ferli \u00f6zelliklerinden biri, verilerin iyi tan\u0131mlanm\u0131\u015f bir yap\u0131da bi\u00e7imlendirilmesidir. Bu yap\u0131, sabit s\u00fctunlu tablolar kullan\u0131larak, iyi tan\u0131mlanm\u0131\u015f veri t\u00fcrlerine ba\u011fl\u0131 kal\u0131narak ve her sat\u0131r\u0131n ayn\u0131 bi\u00e7ime sahip oldu\u011fundan emin olunarak elde edilir. Verileri tablolarda sat\u0131rlar halinde saklad\u0131\u011f\u0131n\u0131zda, bunlar\u0131 a\u00e7\u0131k\u00e7a bulup ba\u015fvurabilmek de ayn\u0131 derecede \u00f6nemlidir. Yap\u0131land\u0131r\u0131lm\u0131\u015f Sorgu Dili&#039;nde (SQL), bu, ili\u015fkisel bir veritaban\u0131ndaki tablolardaki her bir sat\u0131r i\u00e7in tan\u0131mlay\u0131c\u0131 g\u00f6revi g\u00f6ren birincil anahtarlarla sa\u011flanabilir.<\/p>\n<p>Bu e\u011fitimde, birincil anahtarlar hakk\u0131nda bilgi edinecek ve veritaban\u0131 tablolar\u0131ndaki benzersiz sat\u0131rlar\u0131 tan\u0131mlamak i\u00e7in birka\u00e7 farkl\u0131 t\u00fcr kullanacaks\u0131n\u0131z. Baz\u0131 \u00f6rnek veri k\u00fcmelerini kullanarak, tek s\u00fctunlarda, birden \u00e7ok s\u00fctunda ve otomatik artan s\u0131ral\u0131 anahtarlarda birincil anahtarlar olu\u015fturacaks\u0131n\u0131z.<\/p>\n<h5 id=\"%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7\">\u00d6n ko\u015fullar<\/h5>\n<p>Bu k\u0131lavuzu takip etmek i\u00e7in, SQL tabanl\u0131 bir ili\u015fkisel veritaban\u0131 y\u00f6netim sistemi (RDBMS) \u00e7al\u0131\u015ft\u0131ran bir bilgisayara ihtiyac\u0131n\u0131z var. Bu k\u0131lavuzdaki talimatlar ve \u00f6rnekler, a\u015fa\u011f\u0131daki ortam kullan\u0131larak do\u011frulanm\u0131\u015ft\u0131r:<\/p>\n<ul>\n<li>Y\u00f6netici ayr\u0131cal\u0131klar\u0131na sahip k\u00f6k olmayan bir kullan\u0131c\u0131 ve UFW ile yap\u0131land\u0131r\u0131lm\u0131\u015f bir g\u00fcvenlik duvar\u0131 bulunan Ubuntu 20.04 \u00e7al\u0131\u015ft\u0131ran bir sunucu<\/li>\n<li>Sunucuda MySQL kurulu ve g\u00fcvenlidir.<\/li>\n<li>Veritaban\u0131ndan veri almak i\u00e7in SELECT sorgular\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmaya ili\u015fkin temel giri\u015f<\/li>\n<\/ul>\n<p><span style=\"color: #ff0000;\">Not: Bir\u00e7ok RDBMS&#039;nin kendi benzersiz SQL uygulamas\u0131n\u0131 kulland\u0131\u011f\u0131n\u0131 l\u00fctfen unutmay\u0131n. Bu e\u011fitimde bahsedilen komutlar \u00e7o\u011fu RDBMS&#039;de \u00e7al\u0131\u015fsa ve birincil anahtarlar SQL standard\u0131n\u0131n bir par\u00e7as\u0131 olsa da, baz\u0131 \u00f6zellikler veritaban\u0131na \u00f6zg\u00fcd\u00fcr ve bu nedenle MySQL d\u0131\u015f\u0131nda bir sistemde test ederseniz kesin s\u00f6zdizimi veya \u00e7\u0131kt\u0131 farkl\u0131 olabilir.<\/span><\/p>\n<p>Ayr\u0131ca, birincil anahtarlar\u0131 kullanarak tablolar\u0131 olu\u015fturmak i\u00e7in bo\u015f bir veritaban\u0131na ihtiyac\u0131n\u0131z olacak. MySQL sunucusuna ba\u011flanma ve bu k\u0131lavuzdaki \u00f6rneklerde kullan\u0131lan test veritaban\u0131n\u0131 olu\u015fturma hakk\u0131nda ayr\u0131nt\u0131l\u0131 bilgi i\u00e7in a\u015fa\u011f\u0131daki MySQL&#039;e Ba\u011flanma ve \u00d6rnek Veritaban\u0131 Olu\u015fturma b\u00f6l\u00fcm\u00fcn\u00fc takip etmenizi \u00f6neririz.<\/p>\n<h2 id=\"%d8%a7%d8%aa%d8%b5%d8%a7%d9%84-%d8%a8%d9%87-mysql-%d9%88-%d8%b1%d8%a7%d9%87-%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c-%db%8c%da%a9-%d9%be%d8%a7%db%8c%da%af%d8%a7%d9%87-%d8%af%d8%a7%d8%af%d9%87-%d9%86%d9%85\">MySQL&#039;e ba\u011flanma ve \u00f6rnek bir veritaban\u0131 kurma<\/h2>\n<p>Bu b\u00f6l\u00fcmde MySQL sunucusuna ba\u011flanacak ve bu k\u0131lavuzdaki \u00f6rnekleri kullanabilmeniz i\u00e7in bir veritaban\u0131 \u00f6rne\u011fi olu\u015fturacaks\u0131n\u0131z.<\/p>\n<p>SQL veritaban\u0131 sisteminiz uzak bir sunucuda \u00e7al\u0131\u015f\u0131yorsa, yerel makinenizden sunucunuza SSH ile ba\u011flan\u0131n:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>ssh sammy@your_server_ip<\/code><\/pre>\n<\/div>\n<p>Daha sonra MySQL sunucusu istemini a\u00e7\u0131n ve Sami&#039;yi MySQL kullan\u0131c\u0131 ad\u0131n\u0131zla de\u011fi\u015ftirin:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>mysql -u sammy -p\r\n<\/code><\/pre>\n<\/div>\n<p>primary_keys ad\u0131nda bir veritaban\u0131 olu\u015fturun:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>CREATE DATABASE primary_keys;\r\n<\/code><\/pre>\n<\/div>\n<p>Veritaban\u0131 ba\u015far\u0131yla olu\u015fturulduysa a\u015fa\u011f\u0131daki \u00e7\u0131kt\u0131y\u0131 alacaks\u0131n\u0131z:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 1 row affected (0.01 sec)<\/code><\/pre>\n<\/div>\n<p>primary_keys veritaban\u0131n\u0131 se\u00e7mek i\u00e7in a\u015fa\u011f\u0131daki USE ifadesini \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>USE primary_keys;\r\n<\/code><\/pre>\n<\/div>\n<p>A\u015fa\u011f\u0131daki \u00e7\u0131kt\u0131y\u0131 alacaks\u0131n\u0131z:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nDatabase changed<\/code><\/pre>\n<\/div>\n<p>Bir veritaban\u0131 se\u00e7tikten sonra, i\u00e7inde \u00f6rnek tablolar olu\u015fturabilirsiniz. Art\u0131k k\u0131lavuzun geri kalan\u0131n\u0131 takip etmeye ve MySQL&#039;de birincil anahtarlarla \u00e7al\u0131\u015fmaya haz\u0131rs\u0131n\u0131z.<\/p>\n<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87-%d8%a7%db%8c-%d8%a8%d8%b1-%da%a9%d9%84%db%8c%d8%af%d9%87%d8%a7%db%8c-%d8%a7%d8%b5%d9%84%db%8c\">Maj\u00f6r Tu\u015flara Giri\u015f<\/h2>\n<p>\u0130li\u015fkisel bir veritaban\u0131ndaki veriler, her bir sat\u0131rdan olu\u015fan belirli ve tekd\u00fcze bir yap\u0131ya sahip tablolarda saklan\u0131r. Tablo tan\u0131m\u0131, hangi s\u00fctunlar\u0131n bulundu\u011funu ve her bir s\u00fctunda ne t\u00fcr verilerin saklanabilece\u011fini a\u00e7\u0131klar. Bu, veritaban\u0131nda bilgi depolamak ve WHERE ifadesiyle \u00e7e\u015fitli filtre \u00f6l\u00e7\u00fctleri kullanarak bulmak i\u00e7in tek ba\u015f\u0131na yeterlidir. Ancak bu yap\u0131, her sat\u0131r\u0131n kesin olarak bulunabilece\u011fini garanti etmez.<\/p>\n<p>Kamu yollar\u0131nda trafi\u011fe \u00e7\u0131kmas\u0131na izin verilen t\u00fcm kay\u0131tl\u0131 ara\u00e7lar\u0131n bir veritaban\u0131n\u0131 hayal edin. Veritaban\u0131nda marka, model, \u00fcretim y\u0131l\u0131 ve boya rengi gibi bilgiler bulunur. Ancak, 2007 yap\u0131m\u0131 k\u0131rm\u0131z\u0131 bir Chevrolet Camaro ar\u0131yorsan\u0131z, birden fazla bulabilirsiniz. Sonu\u00e7ta, otomobil \u00fcreticileri ayn\u0131 arabalar\u0131 birden fazla m\u00fc\u015fteriye satar. Bu nedenle, kay\u0131tl\u0131 ara\u00e7lar\u0131n her birini tan\u0131mlayan plakalar\u0131 vard\u0131r. OFP857 plakal\u0131 bir ara\u00e7 arad\u0131ysan\u0131z, bu kriterin yaln\u0131zca bir ara\u00e7 bulaca\u011f\u0131ndan emin olabilirsiniz. Bunun nedeni, yasa gere\u011fi plakalar\u0131n kay\u0131tl\u0131 ara\u00e7lar\u0131 benzersiz \u015fekilde tan\u0131mlamas\u0131d\u0131r. \u0130li\u015fkisel bir veritaban\u0131nda, b\u00f6yle bir veri par\u00e7as\u0131na birincil anahtar denir.<\/p>\n<p>Birincil anahtarlar, bir veritaban\u0131 tablosundaki her sat\u0131r\u0131 a\u00e7\u0131k\u00e7a tan\u0131mlayabilen bir s\u00fctun veya s\u00fctun k\u00fcmesinde bulunan benzersiz tan\u0131mlay\u0131c\u0131lard\u0131r. Birka\u00e7 kural, birincil anahtarlar\u0131n teknik \u00f6zelliklerini yans\u0131t\u0131r:<\/p>\n<ul>\n<li>Birincil anahtar, benzersiz de\u011ferler kullanmal\u0131d\u0131r. Birincil anahtar birden fazla s\u00fctundan olu\u015fuyorsa, bu s\u00fctunlardaki de\u011ferlerin birle\u015fimi t\u00fcm tablo genelinde benzersiz olmal\u0131d\u0131r. Anahtar, her sat\u0131r\u0131 benzersiz \u015fekilde tan\u0131mlamak i\u00e7in kullan\u0131ld\u0131\u011f\u0131ndan, birden fazla kez kullan\u0131lamaz.<\/li>\n<li>Birincil anahtar NULL de\u011ferleri i\u00e7ermemelidir.<\/li>\n<li>Her veritaban\u0131 tablosu yaln\u0131zca bir birincil anahtar kullanabilir.<\/li>\n<\/ul>\n<p>Veritaban\u0131 motoru bu kurallar\u0131 uygular, dolay\u0131s\u0131yla bir tabloda birincil anahtar tan\u0131mlanm\u0131\u015fsa, bu \u00f6zniteliklerin do\u011fru oldu\u011fundan emin olabilirsiniz.<\/p>\n<p>Bu teknik \u00f6zelliklere ek olarak, birincil anahtar olarak hangi veri t\u00fcr\u00fcn\u00fcn iyi bir se\u00e7im oldu\u011funa karar vermek i\u00e7in verilerin i\u00e7eri\u011fini de g\u00f6z \u00f6n\u00fcnde bulundurmal\u0131s\u0131n\u0131z. Do\u011fal anahtarlar, veri k\u00fcmesinde zaten mevcut olan tan\u0131mlay\u0131c\u0131lard\u0131r; vekil anahtarlar ise yapay tan\u0131mlay\u0131c\u0131lard\u0131r.<\/p>\n<p>Baz\u0131 veri yap\u0131lar\u0131, veri k\u00fcmesinde do\u011fal olarak bulunan birincil anahtarlara sahiptir; \u00f6rne\u011fin, bir ara\u00e7 veritaban\u0131ndaki plaka numaralar\u0131 veya bir ABD vatanda\u015fl\u0131k kay\u0131t defterindeki Sosyal G\u00fcvenlik numaralar\u0131 gibi. Bazen bu t\u00fcr tan\u0131mlay\u0131c\u0131lar tek bir de\u011fer de\u011fil, birka\u00e7 de\u011ferin bir \u00e7ifti veya birle\u015fimi olabilir. \u00d6rne\u011fin, yerel bir \u015fehir ev rehberinde, bir sokak ad\u0131 veya sokak numaras\u0131 tek ba\u015f\u0131na bir evi benzersiz bir \u015fekilde tan\u0131mlayamaz. Bir sokakta birden fazla ev olabilir ve ayn\u0131 numara birden fazla sokakta g\u00f6r\u00fcnebilir. Ancak bir sokak ad\u0131 ve sokak numaras\u0131 \u00e7ifti, benzersiz bir ev tan\u0131mlay\u0131c\u0131s\u0131 olarak kabul edilebilir. Bu t\u00fcr do\u011fal olarak olu\u015fan tan\u0131mlay\u0131c\u0131lara do\u011fal anahtarlar denir.<\/p>\n<p>Ancak, veriler genellikle tek bir s\u00fctunun veya s\u00fctunlar\u0131n k\u00fc\u00e7\u00fck bir alt k\u00fcmesinin de\u011ferleriyle benzersiz bir \u015fekilde tan\u0131mlanamaz. Bu durumda, \u00f6rne\u011fin bir say\u0131 dizisi veya UUID&#039;ler gibi rastgele olu\u015fturulmu\u015f tan\u0131mlay\u0131c\u0131lar kullan\u0131larak yapay birincil anahtarlar olu\u015fturulur. Bu t\u00fcr anahtarlara vekil anahtarlar denir.<\/p>\n<p>A\u015fa\u011f\u0131daki b\u00f6l\u00fcmlerde, bir veya daha fazla s\u00fctuna dayal\u0131 do\u011fal anahtarlar olu\u015fturacak ve do\u011fal anahtar\u0131n bir se\u00e7enek olmad\u0131\u011f\u0131 tablolarda alternatif anahtarlar olu\u015fturacaks\u0131n\u0131z.<\/p>\n<h2 id=\"%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%db%8c%da%a9-%da%a9%d9%84%db%8c%d8%af-%d8%a7%d8%b5%d9%84%db%8c-%d8%af%d8%b1-%db%8c%da%a9-%d8%b3%d8%aa%d9%88%d9%86\">Bir s\u00fctunda birincil anahtar olu\u015fturun<\/h2>\n<p>\u00c7o\u011fu durumda, bir veri k\u00fcmesi do\u011fal olarak bir tablodaki sat\u0131rlar\u0131 benzersiz \u015fekilde tan\u0131mlamak i\u00e7in kullan\u0131labilecek bir s\u00fctun i\u00e7erir. Bu durumlarda, verileri tan\u0131mlamak i\u00e7in do\u011fal bir anahtar olu\u015fturabilirsiniz. Kay\u0131tl\u0131 ara\u00e7 veritaban\u0131na ili\u015fkin \u00f6nceki \u00f6rnekten devam edersek, a\u015fa\u011f\u0131daki yap\u0131ya sahip bir tablo hayal edelim:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Sample table\r\n+---------------+-----------+------------+-------+------+\r\n| license_plate | brand | model | color | year |\r\n+---------------+-----------+------------+-------+------+\r\n| ABC123 | Ford | Mustang | Red | 2018 |\r\n| CES214 | Ford | Mustang | Red | 2018 |\r\n| DEF456 | Chevrolet | Camaro | Blue | 2016 |\r\n| GHI789 | Dodge | Challenger | Black | 2014 |\r\n+---------------+-----------+------------+-------+------+<\/code><\/pre>\n<\/div>\n<p>\u0130lk ve ikinci sat\u0131rlar, k\u0131rm\u0131z\u0131 renkli 2018 Ford Mustang&#039;i tan\u0131ml\u0131yor. Arac\u0131n marka ve modelini kullanarak arac\u0131 benzersiz bir \u015fekilde tan\u0131mlayamazs\u0131n\u0131z. Plaka her iki durumda da farkl\u0131d\u0131r ve tablodaki her sat\u0131r i\u00e7in iyi bir benzersiz tan\u0131mlay\u0131c\u0131 sa\u011flar. Plaka numaras\u0131 zaten verinin bir par\u00e7as\u0131 oldu\u011fundan, birincil anahtar olarak kullan\u0131lmas\u0131 do\u011fal bir anahtar olu\u015fturur. &quot;Plaka&quot; s\u00fctununda birincil anahtar kullanmadan tabloyu olu\u015fturduysan\u0131z, veri k\u00fcmesinde bir noktada yinelenen veya bo\u015f bir sayfa g\u00f6r\u00fcnme riskiyle kar\u015f\u0131 kar\u015f\u0131ya kal\u0131rs\u0131n\u0131z.<\/p>\n<p>Daha sonra, birincil anahtar olarak License_plate s\u00fctununu ve a\u015fa\u011f\u0131daki s\u00fctunlar\u0131 kullanarak yukar\u0131dakine benzer bir tablo olu\u015fturun:<\/p>\n<ul>\n<li>Plaka: Bu s\u00fctun, varchar veri t\u00fcr\u00fcyle g\u00f6sterilen plaka numaras\u0131n\u0131 i\u00e7erir.<\/li>\n<li>Marka: Bu s\u00fctun, en fazla 50 karakter uzunlu\u011funda, varchar veri tipi kullan\u0131larak ifade edilen arac\u0131n markas\u0131n\u0131 temsil eder.<\/li>\n<li>Model: Bu s\u00fctun, varchar veri tipi kullan\u0131larak ifade edilen ve en fazla 50 karakterden olu\u015fan ara\u00e7 modelini tutar.<\/li>\n<li>Renk: Bu s\u00fctun, varchar veri t\u00fcr\u00fc kullan\u0131larak ifade edilen ve en fazla 20 karakterden olu\u015fan rengi tutar.<\/li>\n<li>y\u0131l: Bu s\u00fctun, say\u0131sal verileri depolamak i\u00e7in int veri t\u00fcr\u00fc kullan\u0131larak ifade edilen arac\u0131n \u00fcretim y\u0131l\u0131n\u0131 g\u00f6sterir.<\/li>\n<\/ul>\n<p>Makineler tablosunu olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki SQL ifadesini \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>CREATE TABLE cars (\r\nlicense_plate varchar(8) PRIMARY KEY,\r\nbrand varchar(50),\r\nmodel varchar(50),\r\ncolor varchar(20),\r\nyear int\r\n);... *\/<\/code><\/pre>\n<\/div>\n<p>PRIMARY KEY ifadesi, License_plate veri t\u00fcr\u00fcn\u00fcn tan\u0131m\u0131n\u0131 takip eder. Tek s\u00fctunlara dayal\u0131 birincil anahtarlarla \u00e7al\u0131\u015f\u0131rken, anahtar\u0131 olu\u015fturmak i\u00e7in basitle\u015ftirilmi\u015f s\u00f6zdizimini kullanabilir ve birincil anahtar\u0131 s\u00fctun tan\u0131m\u0131na yazabilirsiniz.<\/p>\n<p>A\u015fa\u011f\u0131daki \u00e7\u0131kt\u0131y\u0131 al\u0131rsan\u0131z tablo olu\u015fmu\u015f demektir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 0 rows affected (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Daha sonra yukar\u0131daki \u00f6rnekte verilen \u00f6rnek sat\u0131rlar\u0131 i\u00e7eren tabloyu a\u015fa\u011f\u0131daki INSERT INTO i\u015flemini \u00e7al\u0131\u015ft\u0131rarak y\u00fckleyin:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>INSERT INTO cars VALUES\r\n('ABC123', 'Ford', 'Mustang', 'Red', 2018),\r\n('CES214', 'Ford', 'Mustang', 'Red', 2018),\r\n('DEF456', 'Chevrolet', 'Camaro', 'Blue', 2016),\r\n('GHI789', 'Dodge', 'Challenger', 'Black', 2014);<\/code><\/pre>\n<\/div>\n<p>Veritaban\u0131 bir ba\u015far\u0131 mesaj\u0131yla yan\u0131t verecektir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 4 rows affected (0.010 sec)\r\nRecords: 4 Duplicates: 0 Warnings: 0<\/code><\/pre>\n<\/div>\n<p>Art\u0131k yeni olu\u015fturulan tablonun beklenen verileri ve bi\u00e7imi i\u00e7erdi\u011fini SELECT ifadesini kullanarak do\u011frulayabilirsiniz:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT * FROM cars;\r\n<\/code><\/pre>\n<\/div>\n<p>\u00c7\u0131kt\u0131, b\u00f6l\u00fcm\u00fcn ba\u015f\u0131ndakine benzer bir tabloyu g\u00f6sterir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+---------------+-----------+------------+-------+------+\r\n| license_plate | brand | model | color | year |\r\n+---------------+-----------+------------+-------+------+\r\n| ABC123 | Ford | Mustang | Red | 2018 |\r\n| CES214 | Ford | Mustang | Red | 2018 |\r\n| DEF456 | Chevrolet | Camaro | Blue | 2016 |\r\n| GHI789 | Dodge | Challenger | Black | 2014 |\r\n+---------------+-----------+------------+-------+------+<\/code><\/pre>\n<\/div>\n<p>Ard\u0131ndan, birincil anahtar kurallar\u0131n\u0131n veritaban\u0131 motoru taraf\u0131ndan garanti edilip edilmedi\u011fini kontrol edebilirsiniz. A\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak, ayn\u0131 plaka numaras\u0131na sahip bir ara\u00e7 eklemeyi deneyin:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>INSERT INTO cars VALUES ('DEF456', 'Jeep', 'Wrangler', 'Yellow', 2019);\r\n<\/code><\/pre>\n<\/div>\n<p>MySQL, DEF456 etiketinin birincil anahtar i\u00e7in yinelenen bir girdiyle sonu\u00e7land\u0131\u011f\u0131n\u0131 belirten bir hata mesaj\u0131yla yan\u0131t verir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\">Output\r\nERROR 1062 (23000): Duplicate entry 'DEF456' for key 'cars.PRIMARY'<\/pre>\n<\/div>\n<p><span style=\"color: #ff0000;\">Not: Birincil anahtarlar, temelde benzersiz dizinlerle uygulan\u0131r ve bir tablodaki di\u011fer s\u00fctunlar i\u00e7in manuel olarak olu\u015fturabilece\u011finiz dizinlerle bir\u00e7ok ortak \u00f6zelli\u011fe sahiptir. En \u00f6nemlisi, birincil anahtar dizinleri, dizinin tan\u0131mland\u0131\u011f\u0131 s\u00fctuna g\u00f6re tablo sorgulama performans\u0131n\u0131 da art\u0131r\u0131r. Bu ama\u00e7la dizin kullan\u0131m\u0131 hakk\u0131nda daha fazla bilgi i\u00e7in bu e\u011fitimdeki Dizinlerin Kullan\u0131m\u0131 k\u0131lavuzuna bak\u0131n.<\/span><\/p>\n<p>Art\u0131k \u00e7ift plakaya izin verilmedi\u011finden emin olabilirsiniz. Ard\u0131ndan, bo\u015f plakal\u0131 bir arac\u0131n ithal edilip edilemeyece\u011fini kontrol edin:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>INSERT INTO cars VALUES (NULL, 'Jeep', 'Wrangler', 'Yellow', 2019);\r\n<\/code><\/pre>\n<\/div>\n<p>Bu sefer veritaban\u0131 ba\u015fka bir hata mesaj\u0131yla yan\u0131t verecektir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nERROR 1048 (23000): Column 'license_plate' cannot be null<\/code><\/pre>\n<\/div>\n<p>Veritaban\u0131 taraf\u0131ndan uygulanan bu iki kural sayesinde, License_plate&#039;in tablodaki her sat\u0131r\u0131 benzersiz \u015fekilde tan\u0131mlad\u0131\u011f\u0131ndan emin olabilirsiniz. Tabloyu her plaka i\u00e7in sorgulad\u0131\u011f\u0131n\u0131zda, her seferinde bir sat\u0131r d\u00f6nd\u00fcrmeyi bekleyebilirsiniz.<\/p>\n<p>Bir sonraki b\u00f6l\u00fcmde, birden fazla s\u00fctuna sahip birincil anahtarlar\u0131n nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011freneceksiniz.<\/p>\n<h2 id=\"%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%db%8c%da%a9-%da%a9%d9%84%db%8c%d8%af-%d8%a7%d8%b5%d9%84%db%8c-%d8%af%d8%b1-%da%86%d9%86%d8%af%db%8c%d9%86-%d8%b3%d8%aa%d9%88%d9%86\">Birden fazla s\u00fctunda birincil anahtar olu\u015fturma<\/h2>\n<p>Bir tabloda bir sat\u0131r\u0131 benzersiz \u015fekilde tan\u0131mlamak i\u00e7in tek bir s\u00fctun yeterli olmad\u0131\u011f\u0131nda, birden fazla s\u00fctun kullanan birincil anahtarlar olu\u015fturabilirsiniz.<\/p>\n<p>\u00d6rne\u011fin, ne sokak ad\u0131n\u0131n ne de sokak numaras\u0131n\u0131n tek ba\u015f\u0131na her evi tan\u0131mlamaya yeterli olmad\u0131\u011f\u0131 bir ev kay\u0131t defterini d\u00fc\u015f\u00fcn\u00fcn:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Sample table\r\n+-------------------+---------------+-------------------+------+\r\n| street_name | street_number | house_owner | year |\r\n+-------------------+---------------+-------------------+------+\r\n| 5th Avenue | 100 | Bob Johnson | 2018 |\r\n| Broadway | 1500 | Jane Smith | 2016 |\r\n| Central Park West | 100 | John Doe | 2014 |\r\n| Central Park West | 200 | Tom Thompson | 2015 |\r\n| Lexington Avenue | 5001 | Samantha Davis | 2010 |\r\n| Park Avenue | 7000 | Michael Rodriguez | 2012 |\r\n+-------------------+---------------+-------------------+------+<\/code><\/pre>\n<\/div>\n<p>Central Park West sokak ad\u0131 ve 100 numaral\u0131 sokak numaras\u0131 tabloda birden fazla kez ge\u00e7iyor. Ancak, sokak ad\u0131 ve sokak numaras\u0131n\u0131n ayn\u0131 anda tekrarland\u0131\u011f\u0131 bir \u00e7ift g\u00f6r\u00fclm\u00fcyor. Bu durumda, s\u00fctunlardan hi\u00e7biri birincil anahtar olmasa da, bu iki de\u011ferin \u00e7ifti tablodaki her sat\u0131r\u0131 benzersiz \u015fekilde tan\u0131mlamak i\u00e7in kullan\u0131labilir.<\/p>\n<p>Daha sonra yukar\u0131da g\u00f6sterilene benzer bir tabloyu a\u015fa\u011f\u0131daki s\u00fctunlarla olu\u015fturun:<\/p>\n<ul>\n<li>street_name: Bu s\u00fctun evin bulundu\u011fu soka\u011f\u0131n ad\u0131n\u0131 temsil eder, varchar veri tipi 50 karakterle s\u0131n\u0131rl\u0131d\u0131r.<\/li>\n<li>sokak_numaras\u0131: Bu s\u00fctun, evin sokak numaras\u0131n\u0131 tutar ve varchar veri t\u00fcr\u00fcyle g\u00f6sterilir. Bu s\u00fctun en fazla 5 karakter depolayabilir. Baz\u0131 sokak numaralar\u0131 harf i\u00e7erebilece\u011finden (\u00f6rne\u011fin 200B), say\u0131sal int veri t\u00fcr\u00fcn\u00fc kullanmaz.<\/li>\n<li>house_owner: Bu s\u00fctun, 50 karakterle s\u0131n\u0131rl\u0131 varchar veri t\u00fcr\u00fcyle temsil edilen ev sahibinin ad\u0131n\u0131 i\u00e7erir.<\/li>\n<li>y\u0131l: Bu s\u00fctun evin in\u015fa edildi\u011fi y\u0131l\u0131 temsil eder ve say\u0131sal de\u011ferleri saklamak i\u00e7in int veri t\u00fcr\u00fcyle g\u00f6sterilir.<\/li>\n<\/ul>\n<p>Bu sefer birincil anahtar, yaln\u0131zca bir s\u00fctun yerine hem street_name hem de street_number s\u00fctunlar\u0131n\u0131 kullan\u0131r. Bunu yapmak i\u00e7in a\u015fa\u011f\u0131daki SQL ifadesini \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>CREATE TABLE houses (\r\nstreet_name varchar(50),\r\nstreet_number varchar(5),\r\nhouse_owner varchar(50),\r\nyear int,\r\nPRIMARY KEY(street_name, street_number)\r\n);<\/code><\/pre>\n<\/div>\n<p>Bu sefer, \u00f6nceki \u00f6rnekten farkl\u0131 olarak, PRIMARY KEY ifadesi s\u00fctun tan\u0131mlar\u0131n\u0131n alt\u0131nda g\u00f6r\u00fcn\u00fcr. PRIMARY KEY ifadesi, iki s\u00fctun ad\u0131yla parantez i\u00e7inde yer al\u0131r: sokak_ad\u0131 ve sokak_numaras\u0131. Bu s\u00f6zdizimi, iki s\u00fctunda bulunan evler tablosunda bir birincil anahtar olu\u015fturur.<\/p>\n<p>A\u015fa\u011f\u0131daki \u00e7\u0131kt\u0131y\u0131 al\u0131rsan\u0131z tablo olu\u015fmu\u015f demektir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 0 rows affected (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Daha sonra, a\u015fa\u011f\u0131daki INSERT INTO i\u015flemini y\u00fcr\u00fcterek \u00f6nceki \u00f6rnekte verilen \u00f6rnek sat\u0131rlar\u0131 i\u00e7eren tabloyu y\u00fckleyin:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>INSERT INTO houses VALUES\r\n('Central Park West', '100', 'John Doe', 2014),\r\n('Broadway', '1500', 'Jane Smith', 2016),\r\n('5th Avenue', '100', 'Bob Johnson', 2018),\r\n('Lexington Avenue', '5001', 'Samantha Davis', 2010),\r\n('Park Avenue', '7000', 'Michael Rodriguez', 2012),\r\n('Central Park West', '200', 'Tom Thompson', 2015);\r\n<\/code><\/pre>\n<\/div>\n<p>Veritaban\u0131 bir ba\u015far\u0131 mesaj\u0131yla yan\u0131t verecektir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 6 rows affected (0.000 sec)\r\nRecords: 6 Duplicates: 0 Warnings: 0<\/code><\/pre>\n<\/div>\n<p>Art\u0131k yeni olu\u015fturulan tablonun beklenen verileri ve bi\u00e7imi i\u00e7erdi\u011fini SELECT ifadesini kullanarak do\u011frulayabilirsiniz:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT * FROM houses;\r\n<\/code><\/pre>\n<\/div>\n<p>\u00c7\u0131kt\u0131, b\u00f6l\u00fcm\u00fcn ba\u015f\u0131ndakine benzer bir tabloyu g\u00f6sterir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------------+---------------+-------------------+------+\r\n| street_name | street_number | house_owner | year |\r\n+-------------------+---------------+-------------------+------+\r\n| 5th Avenue | 100 | Bob Johnson | 2018 |\r\n| Broadway | 1500 | Jane Smith | 2016 |\r\n| Central Park West | 100 | John Doe | 2014 |\r\n| Central Park West | 200 | Tom Thompson | 2015 |\r\n| Lexington Avenue | 5001 | Samantha Davis | 2010 |\r\n| Park Avenue | 7000 | Michael Rodriguez | 2012 |\r\n+-------------------+---------------+-------------------+------+\r\n6 rows in set (0.000 sec)<\/code><\/pre>\n<\/div>\n<p>\u015eimdi, veritaban\u0131n\u0131n sokak adlar\u0131n\u0131 ve sokak numaralar\u0131n\u0131 tekrarlayan sat\u0131rlara izin verip vermedi\u011fini, ancak tabloda tam adreslerin yinelenen \u015fekilde g\u00f6r\u00fcnmesini engelleyip engellemedi\u011fini kontrol edelim. Park Caddesi&#039;nde ba\u015fka bir ev ekleyerek ba\u015flayal\u0131m:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>INSERT INTO houses VALUES ('Park Avenue', '8000', 'Emily Brown', 2011);\r\n<\/code><\/pre>\n<\/div>\n<p>MySQL, 8000 Park Avenue adresinin daha \u00f6nce tabloda g\u00f6r\u00fcnmemesi nedeniyle bir ba\u015far\u0131 mesaj\u0131yla yan\u0131t verir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 1 row affected (0.010 sec)<\/code><\/pre>\n<\/div>\n<p>Benzer bir sonu\u00e7, 8000 Main Street adresindeki bir evi ekledi\u011finizde ve sokak numaras\u0131n\u0131 tekrarlad\u0131\u011f\u0131n\u0131zda ortaya \u00e7\u0131kar:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>INSERT INTO houses VALUES ('Main Street', '8000', 'David Jones', 2009);\r\n<\/code><\/pre>\n<\/div>\n<p>Bir kez daha, t\u00fcm adres tekrarlanmad\u0131\u011f\u0131 i\u00e7in bu yeni sat\u0131r\u0131 do\u011fru \u015fekilde ekler:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 1 row affected (0.010 sec)<\/code><\/pre>\n<\/div>\n<p>Ancak, a\u015fa\u011f\u0131daki INSERT ifadesini kullanarak 100 5. Cadde&#039;ye ba\u015fka bir ev ekleyin:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>INSERT INTO houses VALUES ('5th Avenue', '100', 'Josh Gordon', 2008);\r\n<\/code><\/pre>\n<\/div>\n<p>Veritaban\u0131, 5th Avenue ve 100 de\u011fer \u00e7ifti i\u00e7in birincil anahtar i\u00e7in yinelenen bir giri\u015f oldu\u011funu bildiren bir hata mesaj\u0131yla yan\u0131t verir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nERROR 1062 (23000): Duplicate entry '5th Avenue-100' for key 'houses.PRIMARY'<\/code><\/pre>\n<\/div>\n<p>Veritaban\u0131, bir s\u00fctun \u00e7iftinde tan\u0131mlanan anahtarla birincil anahtar kurallar\u0131n\u0131 do\u011fru bir \u015fekilde uygular. Sokak ad\u0131 ve sokak numaras\u0131 da dahil olmak \u00fczere tam adresin tabloda tekrarlanmayaca\u011f\u0131ndan emin olabilirsiniz.<\/p>\n<p>Bu b\u00f6l\u00fcmde, ana tablodaki her sat\u0131r\u0131 benzersiz \u015fekilde tan\u0131mlamak i\u00e7in bir \u00e7ift s\u00fctundan olu\u015fan do\u011fal bir anahtar olu\u015fturdunuz. Ancak birincil anahtarlar her zaman veri k\u00fcmesinden \u00e7\u0131kar\u0131lamaz. Bir sonraki b\u00f6l\u00fcmde, do\u011frudan verilerden gelmeyen yapay birincil anahtarlar kullanacaks\u0131n\u0131z.<\/p>\n<h2 id=\"%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%db%8c%da%a9-%da%a9%d9%84%db%8c%d8%af-%d8%a7%d8%b5%d9%84%db%8c-%d9%85%d8%aa%d9%88%d8%a7%d9%84%db%8c\">S\u0131ral\u0131 birincil anahtar olu\u015fturma<\/h2>\n<p>\u015eimdiye kadar, \u00f6rnek veri k\u00fcmesindeki s\u00fctunlar\u0131 kullanarak benzersiz birincil anahtarlar olu\u015fturdunuz. Ancak baz\u0131 durumlarda veriler ka\u00e7\u0131n\u0131lmaz olarak \u00e7o\u011falt\u0131l\u0131r ve bu da s\u00fctunlar\u0131n iyi benzersiz tan\u0131mlay\u0131c\u0131lar olmas\u0131n\u0131 engeller. Bu gibi durumlarda, olu\u015fturulan tan\u0131mlay\u0131c\u0131lar\u0131 kullanarak s\u0131ral\u0131 birincil anahtarlar olu\u015fturabilirsiniz. Verileriniz sat\u0131rlar\u0131 tan\u0131mlamak i\u00e7in yeni tan\u0131mlay\u0131c\u0131lar olu\u015fturman\u0131z\u0131 gerektirdi\u011finde, bu yapay tan\u0131mlay\u0131c\u0131lar \u00fczerinde olu\u015fturulan birincil anahtarlara vekil anahtarlar denir.<\/p>\n<p>Kitap kul\u00fcb\u00fc \u00fcyelerinin bir listesini d\u00fc\u015f\u00fcn\u00fcn; herkesin resmi kimlik g\u00f6stermeden kat\u0131labilece\u011fi gayriresmi bir toplant\u0131. Benzer isimlere sahip ki\u015filerin bir noktada kul\u00fcbe kat\u0131lmas\u0131 muhtemeldir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Sample table\r\n+------------+-----------+\r\n| first_name | last_name |\r\n+------------+-----------+\r\n| John | Doe |\r\n| Jane | Smith |\r\n| Bob | Johnson |\r\n| Samantha | Davis |\r\n| Michael | Rodriguez |\r\n| Tom | Thompson |\r\n| Sara | Johnson |\r\n| David | Jones |\r\n| Jane | Smith |\r\n| Bob | Johnson |\r\n+------------+-----------+<\/code><\/pre>\n<\/div>\n<p>Bob Johnson ve Jane Smith isimleri tabloda tekrarlan\u0131yor. Kimin kim oldu\u011fundan emin olmak i\u00e7in ek bir tan\u0131mlay\u0131c\u0131 kullanman\u0131z gerekir ve bu tablodaki sat\u0131rlar\u0131 benzersiz bir \u015fekilde tan\u0131mlaman\u0131n bir yolu yoktur. Kitap kul\u00fcb\u00fc \u00fcyelerinin bir listesini ka\u011f\u0131t \u00fczerinde tutuyor olsayd\u0131n\u0131z, grup i\u00e7inde benzer isimlere sahip ki\u015fileri ay\u0131rt etmenize yard\u0131mc\u0131 olacak yard\u0131mc\u0131 tan\u0131mlay\u0131c\u0131lar kullanabilirsiniz.<\/p>\n<p>\u0130li\u015fkisel bir veritaban\u0131nda da benzer bir \u015fey yapabilirsiniz. Bunun i\u00e7in, tablodaki t\u00fcm sat\u0131rlar\u0131 benzersiz bir \u015fekilde izole etmeyi ama\u00e7layan, \u00fcretilmi\u015f, ger\u00e7ek olmayan kimlikleri tutan ek bir s\u00fctun kullanabilirsiniz. Buna Member_id diyelim.<\/p>\n<p>Ancak, veritaban\u0131na her kitap kul\u00fcb\u00fc \u00fcyesi eklemek istedi\u011finizde b\u00f6yle bir tan\u0131mlay\u0131c\u0131 olu\u015fturmak zahmetlidir. Bu sorunu \u00e7\u00f6zmek i\u00e7in MySQL, say\u0131sal s\u00fctunlar\u0131n otomatik olarak art\u0131r\u0131lmas\u0131n\u0131 sa\u011flayan bir \u00f6zellik sunar; bu \u00f6zellik sayesinde veritaban\u0131, s\u00fctun de\u011ferini bir dizi tam say\u0131 kadar otomatik olarak art\u0131r\u0131r.<\/p>\n<p>Yukar\u0131dakine benzer bir tablo olu\u015ftural\u0131m. Her kul\u00fcp \u00fcyesi i\u00e7in otomatik olarak atanan bir numaray\u0131 tutmak \u00fczere ek bir otomatik artan s\u00fctun (member_id) ekleyeceksiniz. Otomatik olarak atanan bu numara, tablonun birincil anahtar\u0131 olarak kullan\u0131lacakt\u0131r:<\/p>\n<p>Member_id: Bu s\u00fctun, int veri t\u00fcr\u00fcyle temsil edilen otomatik artan say\u0131sal bir kimli\u011fe sahiptir.<\/p>\n<p>first_name: Bu s\u00fctun, kul\u00fcp \u00fcyelerinin adlar\u0131n\u0131 i\u00e7erir ve 50 karakterle s\u0131n\u0131rl\u0131 varchar veri t\u00fcr\u00fcyle g\u00f6sterilir.<\/p>\n<p>soyad\u0131: Bu s\u00fctun, kul\u00fcp \u00fcyelerinin soyadlar\u0131n\u0131 tutar ve 50 karakterle s\u0131n\u0131rl\u0131 varchar veri t\u00fcr\u00fcyle g\u00f6r\u00fcnt\u00fclenir.<\/p>\n<p>Tabloyu olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki SQL ifadesini \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>CREATE TABLE club_members (\r\nmember_id int AUTO_INCREMENT PRIMARY KEY,\r\nfirst_name varchar(50),\r\nlast_name varchar(50)\r\n);<\/code><\/pre>\n<\/div>\n<p>PRIMARY KEY ifadesi, t\u0131pk\u0131 tek s\u00fctunlu birincil anahtarlarda oldu\u011fu gibi, s\u00fctun t\u00fcr\u00fc tan\u0131m\u0131ndan sonra g\u00f6r\u00fcn\u00fcrken, \u00f6ncesinde ek bir \u00f6znitelik g\u00f6r\u00fcn\u00fcr: AUTO_INCREMENT. Bu \u00f6znitelik, MySQL&#039;e, a\u00e7\u0131k\u00e7a belirtilmedi\u011fi takdirde, artan say\u0131 dizisi kullanarak o s\u00fctun i\u00e7in otomatik olarak de\u011ferler \u00fcretmesini s\u00f6yler.<\/p>\n<p><span style=\"color: #ff0000;\">Not: S\u00fctun tan\u0131mlar\u0131 i\u00e7in AUTO_INCREMENT \u00f6zelli\u011fi MySQL&#039;e \u00f6zg\u00fcd\u00fcr. Di\u011fer veritabanlar\u0131 genellikle s\u0131ral\u0131 anahtarlar olu\u015fturmak i\u00e7in benzer y\u00f6ntemler sunar, ancak s\u00f6zdizimi motorlar aras\u0131nda farkl\u0131l\u0131k g\u00f6sterir. \u015e\u00fcpheniz varsa, RDBMS&#039;nizin resmi belgelerine ba\u015fvurman\u0131z\u0131 \u00f6neririz.<\/span><\/p>\n<p><span style=\"color: #000000;\">A\u015fa\u011f\u0131daki \u00e7\u0131kt\u0131y\u0131 al\u0131rsan\u0131z tablo olu\u015fmu\u015f demektir:<\/span><\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 0 rows affected (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Daha sonra yukar\u0131daki \u00f6rnekte verilen \u00f6rnek sat\u0131rlar\u0131 i\u00e7eren tabloyu a\u015fa\u011f\u0131daki INSERT INTO i\u015flemini \u00e7al\u0131\u015ft\u0131rarak y\u00fckleyin:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>INSERT INTO club_members (first_name, last_name) VALUES\r\n('John', 'Doe'),\r\n('Jane', 'Smith'),\r\n('Bob', 'Johnson'),\r\n('Samantha', 'Davis'),\r\n('Michael', 'Rodriguez'),\r\n('Tom', 'Thompson'),\r\n('Sara', 'Johnson'),\r\n('David', 'Jones'),\r\n('Jane', 'Smith'),\r\n('Bob', 'Johnson');<\/code><\/pre>\n<\/div>\n<p>INSERT ifadesi art\u0131k s\u00fctun adlar\u0131n\u0131n bir listesini (first_name ve last_name) i\u00e7erir; bu, veritaban\u0131n\u0131n Member_id s\u00fctununun veri k\u00fcmesinde sa\u011flanmad\u0131\u011f\u0131n\u0131 bilmesini sa\u011flar, bu nedenle bunun yerine varsay\u0131lan de\u011fer al\u0131nmal\u0131d\u0131r.<\/p>\n<p>Veritaban\u0131 bir ba\u015far\u0131 mesaj\u0131yla yan\u0131t verecektir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 10 rows affected (0.002 sec)\r\nRecords: 10 Duplicates: 0 Warnings: 0<\/code><\/pre>\n<\/div>\n<p>Yeni olu\u015fturulan tablodaki verileri do\u011frulamak i\u00e7in SELECT ifadesini kullan\u0131n:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT * FROM club_members;\r\n<\/code><\/pre>\n<\/div>\n<p>\u00c7\u0131kt\u0131, b\u00f6l\u00fcm\u00fcn ba\u015f\u0131ndakine benzer bir tabloyu g\u00f6sterir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-----------+------------+-----------+\r\n| member_id | first_name | last_name |\r\n+-----------+------------+-----------+\r\n| 1 | John | Doe |\r\n| 2 | Jane | Smith |\r\n| 3 | Bob | Johnson |\r\n| 4 | Samantha | Davis |\r\n| 5 | Michael | Rodriguez |\r\n| 6 | Tom | Thompson |\r\n| 7 | Sara | Johnson |\r\n| 8 | David | Jones |\r\n| 9 | Jane | Smith |\r\n| 10 | Bob | Johnson |\r\n+-----------+------------+-----------+\r\n10 rows in set (0.000 sec)<\/code><\/pre>\n<\/div>\n<p>Ancak bu sefer sonu\u00e7ta Member_id s\u00fctunu g\u00f6r\u00fcn\u00fcr ve 1&#039;den 10&#039;a kadar bir say\u0131 dizisi i\u00e7erir. Bu s\u00fctunla birlikte Jane Smith ve Bob Johnson i\u00e7in yinelenen sat\u0131rlar art\u0131k tan\u0131nmaz \u00e7\u00fcnk\u00fc her isim benzersiz bir tan\u0131mlay\u0131c\u0131yla (Member_id) ili\u015fkilendirilmi\u015ftir.<\/p>\n<p>\u015eimdi veritaban\u0131n\u0131n kul\u00fcb\u00fcn \u00fcyelik listesine ba\u015fka bir Tom Thompson eklememize izin verip vermedi\u011fini kontrol edelim:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>INSERT INTO club_members (first_name, last_name) VALUES ('Tom', 'Thompson');\r\n<\/code><\/pre>\n<\/div>\n<p>MySQL bir ba\u015far\u0131 mesaj\u0131yla yan\u0131t verecektir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 1 row affected (0.009 sec)\r\n<\/code><\/pre>\n<\/div>\n<p>Veritaban\u0131n\u0131n yeni girdiye hangi say\u0131sal kimli\u011fi atad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in SELECT sorgusunu tekrar \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT * FROM club_members;\r\n<\/code><\/pre>\n<\/div>\n<p>\u00c7\u0131kt\u0131da bir sat\u0131r daha var:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-----------+------------+-----------+\r\n| member_id | first_name | last_name |\r\n+-----------+------------+-----------+\r\n| 1 | John | Doe |\r\n| 2 | Jane | Smith |\r\n| 3 | Bob | Johnson |\r\n| 4 | Samantha | Davis |\r\n| 5 | Michael | Rodriguez |\r\n| 6 | Tom | Thompson |\r\n| 7 | Sara | Johnson |\r\n| 8 | David | Jones |\r\n| 9 | Jane | Smith |\r\n| 10 | Bob | Johnson |\r\n| 11 | Tom | Thompson |\r\n+-----------+------------+-----------+\r\n11 rows in set (0.000 sec)<\/code><\/pre>\n<\/div>\n<p>Veritaban\u0131n\u0131n AUTO_INCREMENT \u00f6zniteli\u011fi arac\u0131l\u0131\u011f\u0131yla Member_id s\u00fctununda yeni bir sat\u0131ra otomatik olarak 11 numaras\u0131 atand\u0131.<\/p>\n<p>\u00dczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z veriler birincil anahtarlar i\u00e7in do\u011fal adaylara sahip de\u011filse ve veritaban\u0131na her yeni veri ekledi\u011finizde uydurulmu\u015f tan\u0131mlay\u0131c\u0131lar \u00fcretmek istemiyorsan\u0131z, birincil anahtarlar olarak s\u0131ral\u0131 olarak olu\u015fturulan tan\u0131mlay\u0131c\u0131lara g\u00fcvenle g\u00fcvenebilirsiniz.<\/p>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\">Sonu\u00e7<\/h2>\n<p>Bu k\u0131lavuzu izleyerek, birincil anahtarlar\u0131n ne oldu\u011funu ve veritaban\u0131 tablolar\u0131ndaki benzersiz sat\u0131rlar\u0131 tan\u0131mlamak i\u00e7in MySQL&#039;de ortak t\u00fcrlerin nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 \u00f6\u011frendiniz. Do\u011fal birincil anahtarlar olu\u015fturdunuz, birden fazla s\u00fctuna yay\u0131lan birincil anahtarlar olu\u015fturdunuz ve do\u011fal anahtarlar\u0131n bulunmad\u0131\u011f\u0131 durumlarda otomatik artan s\u0131ral\u0131 anahtarlar kulland\u0131n\u0131z.<\/p>","protected":false},"excerpt":{"rendered":"Giri\u015f \u0130li\u015fkisel veritabanlar\u0131n\u0131n de\u011ferli \u00f6zelliklerinden biri, verilerin iyi tan\u0131mlanm\u0131\u015f bir yap\u0131da bi\u00e7imlendirilmesidir. Bu\u2026","protected":false},"author":1,"featured_media":15985,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u062f\u0631 SQL","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"193","footnotes":""},"categories":[193,349],"tags":[403,391],"class_list":{"0":"post-15984","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tutorials","8":"category-database","9":"tag-data-base","10":"tag-mysql"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u062f\u0631 SQL - \u0628\u0644\u0627\u06af ITPiran<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/how-to-use-primary-keys-in-sql\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u062f\u0631 SQL - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0627\u0631\u0632\u0634\u0645\u0646\u062f \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0631\u0627\u0628\u0637\u0647\u200c\u0627\u06cc\u060c \u0642\u0627\u0644\u0628\u200c\u06af\u06cc\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u062f\u0631 \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u0627\u0645\u0644\u0627\u064b \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/how-to-use-primary-keys-in-sql\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-29T10:57:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2024\/07\/29135935\/sql-key.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u062f\u0631 SQL\",\"datePublished\":\"2024-07-29T10:57:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/\"},\"wordCount\":140,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/29135935\\\/sql-key.jpg\",\"keywords\":[\"data base\",\"MySQL\"],\"articleSection\":[\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/\",\"name\":\"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u062f\u0631 SQL - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/29135935\\\/sql-key.jpg\",\"datePublished\":\"2024-07-29T10:57:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/29135935\\\/sql-key.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/29135935\\\/sql-key.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-use-primary-keys-in-sql\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u062f\u0631 SQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tr\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SQL&#039;de birincil anahtarlar nas\u0131l kullan\u0131l\u0131r - ITPiran Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/how-to-use-primary-keys-in-sql\/","og_locale":"tr_TR","og_type":"article","og_title":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u062f\u0631 SQL - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0627\u0631\u0632\u0634\u0645\u0646\u062f \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0631\u0627\u0628\u0637\u0647\u200c\u0627\u06cc\u060c \u0642\u0627\u0644\u0628\u200c\u06af\u06cc\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u062f\u0631 \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u0627\u0645\u0644\u0627\u064b \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/how-to-use-primary-keys-in-sql\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2024-07-29T10:57:12+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2024\/07\/29135935\/sql-key.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"admin","Tahmini okuma s\u00fcresi":"4 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u062f\u0631 SQL","datePublished":"2024-07-29T10:57:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/"},"wordCount":140,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/29135935\/sql-key.jpg","keywords":["data base","MySQL"],"articleSection":["\u0622\u0645\u0648\u0632\u0634\u06cc","\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/","url":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/","name":"SQL&#039;de birincil anahtarlar nas\u0131l kullan\u0131l\u0131r - ITPiran Blog","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/29135935\/sql-key.jpg","datePublished":"2024-07-29T10:57:12+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/"]}]},{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2024\/07\/29135935\/sql-key.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/29135935\/sql-key.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-use-primary-keys-in-sql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0648\u0632\u0634\u06cc","item":"https:\/\/www.itpiran.net\/blog\/category\/tutorials\/"},{"@type":"ListItem","position":3,"name":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u062f\u0631 SQL"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"ITPiran Blog","description":"\u0130ran S\u00fcrd\u00fcr\u00fclebilir Ticaret Haberleri ve Makaleleri","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"S\u00fcrd\u00fcr\u00fclebilir \u0130ran \u0130\u015fletmeleri Blogu","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"y\u00f6netici","url":"https:\/\/www.itpiran.net\/blog\/tr\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts\/15984","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/comments?post=15984"}],"version-history":[{"count":2,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts\/15984\/revisions"}],"predecessor-version":[{"id":15987,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts\/15984\/revisions\/15987"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/media\/15985"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/media?parent=15984"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/categories?post=15984"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/tags?post=15984"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}