SQL anahtar sözcükleri için büyük harf kullanmak için iyi bir neden var mı? [kapalı]


128

Varsayılan büyük harf gibi görünüyor, ancak anahtar kelimeler için büyük harf kullanmak için gerçekten herhangi bir neden var mı? Büyük harf kullanmaya başladım çünkü yeni bir saklı yordam gibi bir şey yaratmaya çalıştığımda SQL Server'ın bana verdiği ile eşleşmeye çalışıyordum. Ama sonra, her zaman Shiftdüğmeyi basılı tutması gereken bebeğim (5.) parmağım için kendimi kötü hissettim , bu yüzden büyük harf kullanmayı bıraktım. Büyük harfe dönmem için herhangi bir neden var mı?

Düzenleme : Cevaplar için teşekkürler arkadaşlar. COBOL'un kral olduğu günlerde henüz programlama yapmıyordum , bu yüzden bunun farkında değildim. Bundan sonra küçük harfle devam edeceğim.


9
CAPS LOCK tuşunu deneyin. :)
MusiGenesis

7
Anahtar sözcükler yazmak istediğimde hala CAPS LOCK'u açmam ve ardından anahtar sözcükler yazmadığım zaman ve CAPS LOCK'u tekrar açmam gerekiyor ve bu böyle devam ediyor. Bu sadece bir güçlük.
Hertanto Lie

17
BÜYÜK HARF ne ... Oh, üçüncü Ctrl tuşumu mu demek istiyorsun?
Dave Sherohman

2
IIRC, komik olan şey, MSSQL'deki sp_ prosedürlerini kontrol ederseniz, hepsi küçük harfle yazılır.
Benjol

1
@Benjol, hepsi değil ama kesinlikle sp_who gibi birçoğu. En azından aynı sproc'da tutarlı olmaya çalışmak iyi bir fikirdir , ki Microsoft pek çok durumda değildir. Pun, niyetlendi. LOL
Gordon Bell

Yanıtlar:


107

Bu sadece bir stil meselesi, muhtemelen editörlerin kod renklendirme yapmadıkları günlerde ortaya çıkıyor.

Eskiden tüm büyük harfleri tercih ederdim, ama şimdi tamamen aşağıya doğru eğiliyorum.


6
+1 Sanırım anahtar kelimeler için tüm alt anahtarları kullanan ben değildim.
dance2die

2
Editörlerin kod renklendirme yapmadıkları günlere geri döndüğü varsayımıyla giderdim.
Benjol

10
Pek çok makinenin küçük harfli karakterleri desteklemediği günlere oldukça eminim.
Nate CK

1
Sanırım renkli monitörlerden önceki günlere kadar uzanıyor;)
walrii

150

Kişisel olarak, SQL'imin bana bağırmasını sevmem. BU BANA TEMEL VEYA COBOL'U HATIRLADI.

Bu yüzden, MixedCase veritabanı nesne adlarıyla T-SQL küçük harfimi tercih ederim.

Okuması çok daha kolay ve edebi bilgiler ve yorumlar öne çıkıyor.


8
Bu çok büyük bir zevk meselesi. Tecrübelerime göre, bağırma miktarı çok fazla değil - büyük harf anahtar kelimeleri tercih ediyorum çünkü okunması çok daha kolay ve edebi bilgiler ve yorumlar öne çıkıyor.
Jonathan Leffler

93
"SQL'İMİ BENİMDE BAĞIRMAYI SEVMİYORUM" için +1
dance2die

8
Bana bağıran herhangi bir dilden hoşlanmıyorum, ancak bu, SQL'de büyük harfin iyi bir fikir olup olmadığı sorusuna gelmiyor.
bignose

86

SQL ESKİDİR. ÜST KASA BAĞIRIYOR. GÜÇLÜ GÖRÜNÜYOR VE ÇİRKİN BERABER

Muhtemelen doğru olsa da, bunların hiçbiri büyük harfli anahtar kelimelerin neden iyi bir kural olduğu SQL diline özgü nedenleri ele almıyor.

Pek çok yeni dilden farklı olarak, SQL çok sayıda anahtar kelimeye sahiptir ve okuyucunun sözdizimini zihinsel olarak ayrıştırmak için anahtar kelimeleri tanımlayıcılardan ayırt etme yeteneğine güvenir .

Öyleyse sorunuzun doğrudan cevabı, " SQL kodu okuyucusu, çoğu modern dil için doğru olmadığına rağmen neden büyük harfli anahtar kelimelerden bu kadar çok faydalanıyor? " Sorusunun cevabıdır :

  • Anahtar kelimeleri akılda tutmaya güvenmek birçok modern dil için makul, ancak SQL için mantıksız ; çok fazla anahtar kelimeye ve çok fazla değişkene sahip.

  • Noktalama işaretlerine güvenmek çoğu modern dil için makul, ancak SQL için mantıksız ; sözdizimini belirtmek için anahtar kelimelerin kesin sırasına bağlı olarak çok az vardır.

  • Anahtar kelimeleri ayırt etmek için otomatik vurgulayıcılara güvenmek, her zamanki durumlarda modern diller için mantıklıdır, ancak vurgulayıcıların SQL için neler yapabileceğinin gerçekliğini görmezden gelir . Çoğu, tüm SQL varyantlarının tüm anahtar kelimelerini kapsamaz ve ne olursa olsun, SQL, vurgulayıcının yardımcı olmayacağı bağlamlarda sık ve rutin olarak okunur.

Bunlar, SQL kodu okuyucusunun en iyi şekilde anahtar sözcükler için büyük harfleri standartlaştırarak ve tanımlayıcılar için yalnızca büyük olmayan (yani küçük veya karışık) harfleri kullanarak hizmet vermesinin SQL'e özgü nedenlerinden bazılarıdır .

Vurgulamak bazen yardımcı olabilir. Ancak yalnızca vurgulayıcı SQL'iniz olduğunu bilirse; ve genellikle düzenleyicinin / biçimlendiricinin SQL ile ilgilendiğini makul bir şekilde bilemediği bir bağlamda SQL'e sahibiz. Örnekler arasında satır içi sorgular, programcı dokümantasyonu ve başka bir dilin kodu içindeki metin dizeleri bulunur. Aynısı, Python veya C ++ gibi diller için yakın hiçbir yerde geçerli değildir; evet, kodları bazen bu yerlerde görünür, ancak bu rutin olarak SQL kodunda olduğu gibi yapılmaz.

Ayrıca, okuyucu genellikle belirli SQL uygulamanızın kullandığı anahtar kelimelerin yalnızca bir alt kümesini bilen bir vurgulayıcı kullanıyor olacaktır. Daha az yaygın olan anahtar kelimelerin çoğu, SQL varyantınızı yakından tanıyanlar dışında vurgulanmayacaktır. Dolayısıyla okuyucu, vurgulayıcı kullanıyor olsalar bile, orta derecede karmaşık herhangi bir SQL ifadesindeki anahtar kelimeleri ayırt etmek için daha doğrudan bir yönteme ihtiyaç duyar.

Böylece okuyucu sık sık - ve yazar bunun ne zaman olacağını önceden bilemez - yazarın anahtar kelime olarak neyi amaçladığını ve tanımlayıcı olarak neyin amaçlandığını bilmek için SQL ifadesinin içeriğinden yardıma ihtiyaç duyacaktır. Dolayısıyla, SQL içeriğinin okuyucu için anahtar kelimeleri ayırt etmesi gerekir ve büyük harf anahtar kelimeleri kullanmak, bunu yapmanın geleneksel ve kullanışlı yoludur.


Bu sorunun yakın nedeninin oldukça iyi olduğunu düşünüyorum. Cevabınız iyi açıklanmış, ancak yine de biraz fikirlere dayalı görünüyor. SQL'in bu kadar çok anahtar kelimeye sahip olduğunu düşünmüyorum. Her neyse, daha sık kullanılan 50 anahtar kelimeden sonra, diğerlerini ne sıklıkla görüyorsunuz? Onlara hala büyük harf göstermek önemli mi? Seyrek oldukları için yine de ilgi çekme eğilimindeler, değil mi? Tabii ki, sql-server olarak o lanet olası 'rezerve edilmemiş anahtar kelimeler' throwbazı özel muameleyi hak ediyor, ancak büyük harf, birçokları arasında sadece bir seçenektir.
Frédéric

1
Frédéric @, sen okuyucu savunarak gibi görünüyor gelmez anahtar kelimeler olarak işaretlenmesi az bilinen anahtar kelimeler gerekir. Hayır, bu tür kelimeler tam olarak dikkat çekmez çünkü okuyucunun bunların anahtar kelimeler olduğunu bilmesi beklenemez; bu nedenle, diğerleri gibi anahtar kelimeler olarak ayırt edilmeleri gerekir.
bignose

Belki de SQL ile yıllarca programlama yaptığım halde SQL hakkında çok cahilim, ancak şimdiye kadar bilmediğim anahtar kelimeleri hemen hemen fark ettiğime inanıyorum, çünkü bunlar en azından bilmeyen biri için alışılmadık bir SQL yapısı ile sonuçlanıyordu. onları tanı.
Frédéric

33

Gordon Bell'in örnekleri tam olarak doğru değil; genel olarak, tüm sorgu değil, yalnızca anahtar kelimeler vurgulanır. İkinci örneği şöyle görünecektir:

SELECT name, id, xtype, uid, info, status, 
base_schema_ver, replinfo, parent_obj, crdate, 
ftcatid, schema_ver, stats_schema_ver, type, 
userstat, sysstat, indexdel, refdate, version, 
deltrig, instrig, updtrig, seltrig, category, cache
FROM sysobjects
WHERE category = 0
AND xtype IN ('U', 'P', 'FN', 'IF', 'TF')
ORDER BY 1

Anahtar kelimeler daha fazla öne çıktığı için bunu okumayı çok daha kolay buluyorum. Sözdizimi vurgulamayla bile, büyük harf olmayan örneği okumayı çok daha zor buluyorum.

Şirketimde, SQL formatlamamızla biraz daha ileri gidiyoruz.

SELECT      name, id, xtype, uid, info, status, 
            base_schema_ver, replinfo, parent_obj, crdate, 
            ftcatid, schema_ver, stats_schema_ver, type, 
            userstat, sysstat, indexdel, refdate, version, 
            deltrig, instrig, updtrig, seltrig, category, cache
FROM sysobjects
LEFT JOIN systhingies ON
    sysobjects.col1=systhingies.col2
WHERE category = 0
    AND xtype IN ('U', 'P', 'FN', 'IF', 'TF')
ORDER BY 1

1
Evet, ben de böyle seviyorum.
David The Man

6
Sorun şu ki ... Bir komut isteminde ad-hoc komutları çalıştırırken büyük harf kullanırsanız, üretimde ad-hoc komutları çalıştırmanız gerektiğinde, bu komutlardan büyük harf kullanmayan biri kadar her zaman 1/2 oranında hızlı olursunuz. önemli. Bu yüzden hepsini küçük harflerle yazıyorum ve sonra birisi bir söz dizimi vurgulayıcıyı nasıl çalıştıracağını bilmediği için okuyamadığından şikayet ettiğinde check-in öncesinde "güzelleştiriyorum". Ve seni bilmiyorum, ama yılda 3 kez üretim hızında geçici komutlar çalıştırmam gerçekten önemli, bu yüzden çalışma günlerinin% 50'si tüm küçük harflerle test sorguları yazma alıştırması gerçekten işe yarıyor.

7
Ve şirketimin veritabanında (90'larda bir yerde oluşturulmuş) tüm tablo adları, sütunlar, dizinler, depolanmış prosedürler vb. Büyük harfle yazılmıştır, bu nedenle küçük harfli SQL anahtar kelimeleri kullanıyoruz. ;)
Andreas

1
1/2 kadar hızlı vay. Ben öyle düşünmüyorum!
Iharob Al Asimi

33

İLGİLİ KODLAMA (ASCII) HENÜZ İCAT EDİLMEMİŞ OLDUĞUNDAN ÇOĞU KİŞİNİN BÜYÜK HARFLERİN ÖTESİNDE HERHANGİ BİR ŞEYİ KODLAMA OLASILIĞINA SAHİP OLMADIĞI BİR ZAMANDA OLDU. SADECE ALTI BİT MEVCUTTUR . SQL DAHA SON OLDUĞUNDA, ALT DURUM HARFLERİ HENÜZ PROGRAMLAMADA YAYGIN BİR UYGULAMA DEĞİLDİ.

NOT BU BAZI İNSANLAR İDDİA VERİTABANI aciliyet hissi GET VE HIZLI SİZİN SORGULARINIZI çalıştıracağını.


Öyleyse, bugün iyi bir neden değil.
bignose

1
@BIGNOSE: HAYIR, KESİNLİKLE HAYIR!
Lukas Eder

1
Bunun en iyi cevap olduğunu düşünüyorum. Ne yazık ki, SQL anahtar sözcüklerinde küçük harflerden nefret ediyorum ve küçük harfleri sevmenin bir yolunu bulamıyorum, Deli miyim?
Iharob Al Asimi

@IharobAlAsimi EVET SEN ÇILGINSIN. NEDEN KÜÇÜK DURUMDA İNGİLİZCE YAZIYORSUN, ANCAK MOT YAPISI İNGİLİZCE?
Lukas Eder

24

Okuduğumuz metindeki harflerin% 10'undan azı büyük harftir. Bu nedenle beyinlerimiz, büyük harflere göre küçük harfleri tanımaya daha isteklidir. Çalışmalar, büyük harfli metni okumanın daha uzun sürdüğünü göstermiştir. İşte sadece bir örnek:

http://www.guardian.co.uk/media/mind-your-language/2010/oct/04/new-york-street-signs-capitals

Yukarıdaki örnek sanırım sadece bir veya iki kelimeden bahsederken bile fark yarattığını vurguluyor.


5
Büyük harflerle bir roman okumaktan bahsetmiyoruz; metnin sadece bir kısmı olan bir avuç anahtar kelimeden bahsediyoruz.
Casey

6
Asıl noktayı kaçırıyorsun. Kaç kelime okuduğumuz değil, beynimizin hızlı bir şekilde ne yapmak için eğitildiği ile ilgili. Örneğin bir sokak tabelası kesinlikle bir roman değildir, ancak aynı sonuca vardılar. Okumayı öğrendiğimizde, her harfi okumaya başlarız, ancak sonunda beynimiz bir kelimeyi kalıplar grubu olarak tanımaya başlar. Bu kalıpların tutarlı olması daha iyi. Büyük harflerin genellikle küçük harflerden farklı bir kalıp olduğunu ve yalnızca daha büyük bir sürüm olmadığını unutmayın.
AaronLS

1
Ancak çok az anahtar kelime vardır ve bunlar tekrar tekrar görünür; bu nedenle tanıma, SQL'i herhangi bir süredir kullanan herkes için eşit derecede hızlı olmalıdır.
Casey

3
Doğru, kesinlikle zor ve hızlı bir şey değil. Ancak çok yaygın olan yalnızca birkaç anahtar kelime var. Olmayan büyük bir küme var ve çoğu zaman insanlar bu üst harf uygulamalarını yerleşik işlevler olan, ancak sözdizimsel dil anahtar sözcükleri olması gerekmeyen şeylere genişletir. Pratikte, bir sorgunun ana bölümünün başlangıcını belirten SELECT / WHERE / GROUP BY gibi küçük bir avuç anahtar kelimeyi hala üst sıralara koyuyorum. Ama böyle fonksiyonlar gibi yerleşik diğer tüm anahtar kelimeleri, cast, rank, ben küçük harfe.
AaronLS

19

Çünkü SQL o kadar eski bir dildir ( 1974 ), tasarlandığında çoğu klavyede küçük harfler yoktu! Dil dokümantasyonu zamanın teknolojisini basitçe yansıtıyordu.

Araştırmalar, TÜM BÜYÜK HARFLERİN okunmasının daha zor olduğunu kanıtlamıştır, öyle ki ABD Federal Karayolu İdaresi, Tek Tip Trafik Kontrol Cihazları El Kitabında karışık harfli işaretlerin kullanılmasını zorunlu kılmıştır:

Konvansiyonel yol kılavuzu işaretlerindeki yerlerin, caddelerin ve otoyolların adları için harfler, küçük harflerle ilk büyük harflerin birleşimi olacaktır.

New York Post ayrıca şunları da yayınladı:

Çalışmalar, tüm büyük harfleri okumanın daha zor olduğunu ve yoldan uzaklaşarak harcanan ekstra milisaniyelerin, özellikle yaşlı sürücüler arasında kaza olasılığını artırdığını göstermiştir.

Büyük harf kullanmak için iyi bir neden ve kullanmamak için iyi nedenler yoktur.

Kişisel olarak SQL anahtar kelimeleri için büyük harf kullanmaktan nefret ediyorum. Bu çağda okumayı daha zor ve absürt buluyorum.

SQL dili büyük / küçük harf duyarlı olarak tanımlanır. Parmağınızı o shift tuşundan çekin!


3
Bence diğer cevaplarda sunulan iyi nedenlerin yaygınlığı, "büyük harf kullanmak için iyi bir neden yoktur" iddianıza karşı çıkıyor.
bignose

7
@bignose Oh sebepler var ... Sadece iyi olduklarını düşünmüyorum. Deneyimlerime göre, SQL programcısı ne kadar genç olursa, büyük harf kullanma olasılıkları o kadar artar. Tersine, büyük harf kullanan yetkin bir SQL kodlayıcısıyla hiç tanışmadım.
Bohemian

3
Kesinlikle katılıyorum. Diğer "cevapların" yaygınlığı onları doğru yapmaz, sadece onları öne çıkarır. TÜM BÜYÜK KASA, BİLGİSAYARLARIN KLAVYELERDE VEYA KARAKTER TEMSİLCİLERİNİN ÜZERİNDE DURUM BULUNMADIĞINDAN KAYNAKLANAN BİR ASKIDIR. BUGÜN SADECE ŞIK.
Charles Bretana

Evet ve CAPS LOCK tuşunuzu yıpratmak veya gereksiz yere Shift tuşlarını basılı tutarak parmaklarınızı sıkıştırmak.
Gordon Bell

9
Burada döngüsel mantık kokusu alıyorum. Gerekçe, anahtar kelimelerin harf durumu ile ayırt edilmesi lehine sunulursa, bunu iyi bir gerekçe olmadığı için reddedersiniz . Sebep bir SQL kodlayıcı tarafından sunulduğu halde konumunuzla aynı fikirde değilse, yetkili bir SQL kodlayıcı olmadığı için onları reddedersiniz . Sanırım bu temelde, bunu geçersiz bir argüman olarak reddedebiliriz.
bignose

8

Büyük harf, anahtar kelime görünürlüğünde bir kazanç sağlayabilir, ancak kod vurgulama ve girinti ile bunu telafi edebilirsiniz.
Küçük harf kullanıyoruz çünkü sorgu editörü ve diğer araçlar t-sql kodunu düzenlemede harikalar yaratıyor ve küçük parmağa işkence etmeye gerek görmüyoruz.


2
Sorgu düzenleyicisi ve t-sql, herkesin SQL kodunuzu okuyacağı tek yer mi? Nereden biliyorsunuz?
2013

8

Maymun bak, maymun benim için yap. Örüntü eşleştirme - bunu yaptığım gibi yaparsam, cümleciklerin yapısı zihinsel olarak daha kolay hizalanır.


7

Büyük harf daha az okunabilir. Tüm kelimelerin ana hatları kutu şeklindedir; hiçbir iniş veya çıkış yoktur. Küçük FTW!


3
Verme nedeniniz, büyük harflerin anahtar kelimeleri diğerlerinden ayırmaya yardımcı olduğu konumu destekler.
bignose

5
@bignose SQL insan dili gibi okunuyorsa, neden büyük harfe ihtiyacımız var? Fiillerimizi VEYA edatlarımızı insan dilinde büyük harfle yazmamıza gerek yok. HER cümlenin buna benzediğini hayal edin. Bunu normal yazıdan daha az okunaklı buluyorum. Bu iki cümlede büyük harfli kelimeler beynimin durmasına ve cümlenin geri kalanından daha yavaş söylemesine neden oluyor, okumamı yavaşlatıyor ve akışı daha az doğal hale getiriyor.
Chris Middleton

1
İnsan dili, sözdizimindeki belirsizliği çok bağışlayıcıdır. Bilgisayar dilleri değildir, bu yüzden bu belirsizliklerin en aza indirilmesi gerekir. SQL sözdizimi bu konuda yardımcı olmuyor, bu yüzden mevcut araçları kullanma ihtiyacımız var; SQL sözdiziminde fazla bir şey yok, bu yüzden anahtar kelimelerin büyük harfle yazılması kuralını geliştirdik.
bignose

5

Daha okunaklı buluyorum. Her cümlenin başlangıcı için bir satırsonu olması ve tümcecikler arasında girinti yapmak için aynıdır.


2

Bir biçimlendirme ürününü deneyin (Red Gate'den SQL Prompt / SQL Refactor kullanıyorum). Büyük harf kullanımının nasıl çalışmasını istediğinizi ayarlayabilirsiniz ve kodunuz her zaman tutarlı bir şekilde biçimlendirilir. Serçe parmağınızı dinlendirin ve bırakın işi sizin yerinize bilgisayar yapsın.


1
Bu tavsiye, SQL'in okunduğu birçok bağlamı göz ardı eder. Zaten başkası tarafından yazılmış bir kodu okumak tamamen pratik değildir; Böyle bir araca sadece kötü biçimlendirilmiş SQL'i okunabilir hale getirmek için gerekliyse, bu soruda ele alınan gibi bir kural lehine bir argümandır.
2013

ancak kuruluşunuz genelinde standartlar istiyorsanız bu yaklaşım iyidir. Standartlar istiyorsanız, görüş önemli değil
Trubs

2

Büyük harf kullanmayı sürdürmenin nedenlerinden biri, siz (veya başka biri) kodu not defteri gibi bir şeyle görüntülediğinizde, okumayı kolaylaştırır. yani, "anahtar kelimeler" ile tablo adları, SP'ler, udf'ler vb. arasında kolayca ayrım yapabilirsiniz.


1

Uygunluk adına uygunluk dışında, hayır. Çok öznel bir konu olmasına rağmen, tüm SQL için karışık büyük / küçük harf kullanmayı tercih ederim. SQL'in okunması çok daha kolaydır ve anahtar kelimelerin zaten renk kodlu olduğu modern IDE'lerde hiçbir şey kaybolmaz.


Burada birçok diğer cevaplar sebebi ortaya olarak, senin cevap doğru olduğunu düşünmüyorum: Orada olan “elzem aşkına uygunluk dışında” nedenler.
bignose

... o zaman bunlar nedir? Her zaman yeni bilgilere açık olmama rağmen, açıkçası, hiçbirinin farkında değildim.
Charles Bretana

Zaten birçok neden verdim , bu yüzden artık farkındasınız.
bignose

2
bunların hiçbiri geçerli nedenler değil, kişisel tercihler. Kendi kişisel tercihinizin gerektirdiği gibi yapmaktan çekinmeyin, ancak bir tercihi bir kural veya en iyi uygulama olarak nitelendirmeyin.
Charles Bretana

1

Microsoft SQL Server Management Studio'daki intellisense / otomatik tamamlama, ayrılmış sözcükler için büyük ya da küçük harfe izin verir, ancak büyük harfler MAX (), SUM () gibi işlev çağrıları yapar.

Buna rağmen, ayrıştırıcı hala max () ve sum () 'un küçük harf sürümlerinin işlenmesine izin verir.

Bu, uygulamanın doğasına ilişkin bir kararsızlık anlamına gelir ve bu nedenle, sadece kişisel bir tercih meselesidir.


4
Evet ve SSMS'de "Seçenekler -> Metin Düzenleyici -> Transact-SQL -> Intellisense" de isterseniz varsayılanı 'Küçük harf' olarak ayarlayabilirsiniz.
Gordon Bell

0

Büyük harflerle yazılan hiçbir şeyden hoşlanmıyorum (ve tüm büyük harfleri yazmaktan daha fazla nefret ediyorum), ancak kendimi topluluğa karşı çıkmaya ikna edemedim. Her zamanki gibi Vim ve ilişkili paketleri pek çok sorunun çözümüdür:

http://www.vim.org/scripts/script.php?script_id=305

Normal olarak yazmanız yeterlidir; siz yazarken anahtar kelimeleri otomatik olarak büyük harf yapar. Tüm belirsiz SQL sözlerini kullanmadım ama henüz beni hayal kırıklığına uğratmadı.


-2

MySQL kodumun çoğunu PHP içinden çağırıyorum ve tüm PHP düzenlemelerimi vim içinde yapıyorum (veya bu durumda, VIM ;-). Şimdi, PHP içinde mySQL kodunu vurgulamak için eklentiler olduğundan eminim, ancak onu bulamadım ve aramaya gitmek için vaktim yok. Bu nedenle, her şeyin allcaps'te olmasını tercih ederim . Bunu buldum:

if ( !$bla ) 
{
   echo "select something from something where something";
}

if ( !$beepboop ) 
{
   echo "create table if not exists loremIpsum;
}

$query = "
CREATE TABLE IF NOT EXISTS HISTORY
(
   ID INT NOT NULL AUTO_INCREMENT,
   INSERTDATE TIMESTAMP DEFAULT NOW(),
   ALTERDATE TIMESTAMP(8) DEFAULT NOW(),
   DELETEDATE TIMESTAMP(8),
   ALTERCOUNT INT DEFAULT 0,
   SELECTCOUNT INT DEFAULT 0,

   PRIMARY KEY(ID),
)ENGINE=InnoDB
";

mysqlQuery( $query, $con );

PHP ile SQL arasında bundan çok daha iyi bir ayrım yapmama yardımcı oluyor:

if ( !$bla ) 
{
   echo "select something from something where something";
}

if ( !$beepboop ) 
{
   echo "create table if not exists loremIpsum;
}

$query = "
create table if not exists history
(
   id int not null auto_increment,
   insertdate timestamp default now(),
   alterdate timestamp(8) default now(),
   deletedate timestamp(8),
   altercount int default 0,
   selectcount int default 0,

   primary key(id),
)engine=InnoDB
";

mysqlQuery( $query, $con );

Ayrıca, bazı nedenlerden dolayı, allcaps'leri deve kılıfıyla karıştırmaktan nefret ediyorum, örneğin:

CREATE TABLE IF NOT EXISTS history
(
   ID INT NOT NULL AUTO_INCREMENT,
   insertDate TIMESTAMP DEFAULT NOW(),
   alterDate TIMESTAMP(8) DEFAULT NOW(),
   deleteDate TIMESTAMP(8),
   alterCount INT DEFAULT 0,
   selectCount INT DEFAULT 0,

   PRIMARY KEY(ID),
)ENGINE=InnoDB

Bu IDbeni rahatsız ediyor. Bunun yerine olmalı idmı? veya iD?


3
Hayır, hayır, hayır, camelCase sütun adları değil, değişken adları içindir. Sütun adları için Uygun Durum Kullanın ... InsertDate, AlterDate, ...
Gordon Bell

1
SQL standardı, uygulamaların tanımlayıcılardaki durumu göz ardı etmesini gerektirir (bunları büyük harfe katlar). Dolayısıyla kodunuz, tanımlayıcılardaki büyük / küçük harf farklılıklarına bağlı olmamalıdır ve bunu yapmanın geleneksel yolu tanımlayıcılar yapmaktır all_lower_case.
2013

3
@bignose wpm azaldığı için alt çizginin büyük bir hayranı değilim
puk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.