Apakah ada alasan bagus untuk menggunakan huruf besar untuk kata kunci SQL? [Tutup]

128

Default tampaknya menjadi huruf besar, tetapi apakah benar-benar ada alasan untuk menggunakan huruf besar untuk kata kunci? Saya mulai menggunakan huruf besar karena saya hanya mencoba mencocokkan apa yang diberikan SQL Server setiap kali saya mencoba membuat sesuatu, seperti prosedur tersimpan yang baru. Tapi kemudian, saya merasa tidak enak untuk jari bayi saya (ke-5), yang selalu perlu menahan Shifttombol, jadi saya berhenti menggunakan huruf besar. Ada alasan mengapa saya harus kembali ke huruf besar?

Sunting : Terima kasih atas jawabannya kawan. Saya belum pemrograman pada masa COBOL adalah raja, jadi saya tidak menyadarinya. Saya akan tetap dengan huruf kecil mulai sekarang.

Berbohong Hertanto
sumber
9
Coba tombol CAPS LOCK. :)
MusiGenesis
7
Saya masih harus mengaktifkan CAPS LOCK ketika saya ingin menulis kata kunci dan kemudian mematikan ketika saya tidak menulis kata kunci dan mengaktifkan CAPS LOCK lagi dan seterusnya dan seterusnya. Itu hanya merepotkan.
Hertanto Lie
17
CAPS wha ... Oh, maksud Anda kunci Ctrl ketiga?
Dave Sherohman
2
IIRC, lucunya adalah jika Anda memeriksa prosedur sp_ di MSSQL, mereka semua dalam huruf kecil.
Benjol
1
@ Benjol, tidak semuanya tetapi pasti banyak dari mereka seperti sp_who. Ide yang baik untuk setidaknya mencoba untuk konsisten dalam sproc yang sama , yang Microsoft tidak dalam banyak "kasus". Pun intended. LOL
Gordon Bell

Jawaban:

107

Ini hanya masalah gaya, mungkin berasal dari hari-hari ketika editor tidak melakukan pewarnaan kode.

Saya dulu lebih suka semua huruf besar, tapi sekarang saya condong ke bawah semua.

Mitch Wheat
sumber
6
+1 Kurasa aku bukan satu-satunya yang menggunakan semua kata kunci yang lebih rendah.
dance2die
2
Saya akan pergi dengan asumsi bahwa hal itu kembali ke masa ketika editor tidak melakukan pewarnaan kode.
Benjol
10
Saya cukup yakin itu kembali ke masa ketika banyak mesin tidak mendukung karakter huruf kecil.
Nate CK
1
Saya kira itu kembali ke hari-hari sebelum monitor warna;)
walrii
150

SECARA PRIBADI, SAYA TIDAK SUKA SQL SQL YELLING AT ME. ITU MENGINGAT SAYA DASAR ATAU COBOL.

Jadi saya lebih suka huruf kecil T-SQL saya dengan nama objek database MixedCase.

Jauh lebih mudah dibaca, dan literal serta komentar menonjol.

Gordon Bell
sumber
8
Ini adalah masalah selera. Dalam pengalaman saya, jumlah teriakan tidak terlalu besar - saya lebih suka kata kunci huruf besar karena lebih mudah dibaca dan literal dan komentar menonjol.
Jonathan Leffler
93
+1 untuk "SAYA TIDAK SUKA SAYA SQL YELLING AT ME"
dance2die
8
Saya tidak suka bahasa yang meneriaki saya, tapi itu tidak sampai pada pertanyaan apakah huruf besar adalah ide yang baik dalam SQL.
bignose
85

SQL IS LAMA. KASUS YANG LEBIH BANYAK BERUNTUNG. ITU TERLIHAT ANEH DAN MUNGKIN UGLY.

Meskipun bisa dibilang benar, tidak satupun dari mereka yang membahas alasan khusus untuk bahasa SQL mengapa kata kunci huruf besar adalah konvensi yang baik.

Tidak seperti banyak bahasa yang lebih baru, SQL memiliki sejumlah besar kata kunci dan bergantung pada kemampuan pembaca untuk membedakan kata kunci versus pengidentifikasi untuk menguraikan sintaksis secara mental.

Maka, jawaban langsung untuk pertanyaan Anda lebih merupakan jawaban untuk “mengapa demikian pembaca kode SQL mendapat banyak manfaat dari kata kunci huruf besar, padahal itu tidak berlaku untuk kebanyakan bahasa modern?"

  • Untuk mengandalkan menjaga kata kunci di kepala seseorang masuk akal untuk banyak bahasa modern, tetapi tidak masuk akal untuk SQL ; ini memiliki terlalu banyak kata kunci, dan terlalu banyak varian.

  • Untuk mengandalkan isyarat tanda baca masuk akal untuk sebagian besar bahasa modern, tetapi tidak masuk akal untuk SQL ; terlalu sedikit, alih-alih bergantung pada urutan kata kunci yang tepat untuk menunjukkan sintaksis.

  • Untuk bergantung pada stabilo otomatis untuk membedakan kata kunci masuk akal untuk bahasa modern dalam kasus biasa, tetapi mengabaikan kenyataan apa yang dapat dicapai stabilo untuk SQL . Sebagian besar tidak mencakup semua kata kunci dari semua varian SQL, dan apa pun itu, SQL sering dan secara rutin dibaca dalam konteks di mana penyorot tidak akan membantu.

Ini adalah beberapa alasan, khusus untuk SQL, bahwa pembaca kode SQL paling baik dilayani oleh standardisasi pada huruf besar untuk kata kunci , dan hanya menggunakan huruf tidak-atas (yaitu lebih rendah, atau campuran) untuk pengidentifikasi.

Menyoroti terkadang dapat membantu. Tetapi hanya jika stabilo tahu Anda punya SQL; dan kami sangat sering memiliki SQL dalam konteks di mana editor / formatter tidak cukup tahu itu berurusan dengan SQL. Contohnya termasuk kueri in-line, dokumentasi programmer, dan string teks dalam kode bahasa lain. Hal yang sama tidak benar dimanapun dekat sesering untuk bahasa seperti Python atau C ++; ya, kode mereka kadang-kadang muncul di tempat-tempat itu, tetapi tidak secara rutin dilakukan dengan kode SQL.

Selain itu, pembaca biasanya akan menggunakan stabilo yang hanya tahu sebagian kata kunci yang digunakan implementasi SQL spesifik Anda. Banyak kata kunci yang kurang umum tidak akan disorot kecuali oleh salah satu yang mengetahui varian SQL Anda secara intim. Jadi pembaca, bahkan jika mereka menggunakan stabilo, masih memerlukan cara yang lebih langsung untuk membedakan kata kunci dalam pernyataan SQL yang cukup kompleks.

Dengan demikian pembaca akan sering - dan penulis tidak tahu sebelumnya kapan akan - membutuhkan bantuan dari isi pernyataan SQL itu sendiri, untuk mengetahui apa yang dimaksudkan oleh penulis sebagai kata kunci dan apa yang dimaksudkan sebagai pengidentifikasi. Jadi konten SQL itu sendiri perlu membedakan kata kunci untuk pembaca , dan menggunakan kata kunci huruf besar adalah cara konvensional dan berguna untuk melakukan itu.

hidung besar
sumber
Saya merasa alasan dekat dari pertanyaan ini cukup bagus. Jawaban Anda dijelaskan dengan baik, tetapi masih terlihat sedikit berdasarkan pendapat. Saya tidak merasakan SQL seperti memiliki banyak kata kunci. Lagi pula, setelah 50 kata kunci yang lebih sering, seberapa sering Anda melihat orang lain? Apakah masih penting untuk menunjukkan kepada mereka huruf besar? Karena jarang, mereka cenderung menarik perhatian, bukan? Tentu saja, 'kata kunci yang tidak diperuntukkan' yang rumit seperti sql-server throwlayak mendapatkan beberapa perlakuan khusus, tetapi huruf besar hanyalah pilihan di antara banyak.
Frédéric
1
@ Frédéric, Anda tampaknya berpendapat bahwa pembaca tidak perlu kata kunci yang kurang dikenal untuk ditandai sebagai kata kunci. Tidak, kata-kata seperti itu tidak menarik perhatian justru karena pembaca tidak dapat diharapkan mengetahui bahwa itu adalah kata kunci; itu sebabnya mereka perlu dibedakan sebagai kata kunci seperti yang lain.
bignose
Mungkin saya terlalu bodoh tentang SQL meskipun bertahun-tahun saya pemrograman dengan SQL, tetapi sampai sekarang saya percaya selalu menemukan kata kunci dengan segera yang saya tidak tahu, karena mereka menghasilkan konstruksi SQL yang tidak biasa, setidaknya untuk seseorang yang tidak kenal mereka.
Frédéric
33

Contoh-contoh Gordon Bell tidak sepenuhnya benar; umumnya, hanya kata kunci yang disorot, bukan keseluruhan kueri. Contoh kedua akan terlihat seperti:

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

Saya menemukan ini jauh lebih mudah dibaca, karena kata kunci lebih menonjol. Bahkan dengan penyorotan sintaks, saya menemukan contoh uncapitalized jauh lebih sulit untuk dibaca.

Di perusahaan saya, kami sedikit lebih jauh dengan pemformatan SQL kami.

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
davidtbernal
sumber
1
Ya, itulah yang saya suka juga.
David The Man
6
Masalahnya adalah ... Jika Anda menggunakan huruf besar saat menjalankan perintah ad-hoc saat diminta, Anda akan selalu menjadi 1/2 secepat seseorang yang tidak menggunakan huruf besar jika Anda harus menjalankan perintah ad-hoc dalam produksi saat itu masalah. Jadi saya menulis semuanya huruf kecil dan kemudian "mempercantiknya" sebelum check-in ketika seseorang mengeluh mereka tidak bisa membacanya karena mereka tidak tahu bagaimana menjalankan stabilo sintaksis. Dan saya tidak tahu tentang Anda, tetapi 3 kali setahun saya harus menjalankan perintah ad-hoc dalam kecepatan produksi benar-benar penting sehingga 50% dari hari kerja saya berlatih menulis pertanyaan uji dalam semua huruf kecil benar-benar terbayar.
7
Dan dalam database perusahaan saya (dibuat di suatu tempat di tahun 90-an) semua nama, kolom, indeks, prosedur tersimpan dll semua huruf besar, maka kita pergi untuk kata kunci SQL huruf kecil. ;)
Andreas
1
Wow 1/2 lebih cepat. Saya kira tidak!
Iharob Al Asimi
33

ADA WAKTU KAPAN ORANG PALING TIDAK MEMILIKI KEMUNGKINAN ENCODING APA PUN DI LUAR KASUS SURAT KARENA KARENA PENCARIAN RELEVAN (ASCII) TIDAK BELUM DITEMUKAN. HANYA ENAM BIT YANG TERSEDIA . SAAT SQL LEBIH BARU, SURAT KASUS RENDAH TIDAK BERLAKU PRAKTEK UMUM DALAM PEMROGRAMAN BELUM.

CATATAN BAHWA BEBERAPA ORANG KLAIM YANG DATABASE AKAN MENDAPATKAN URGENSI DAN MENJALANKAN QUERIES ANDA LEBIH CEPAT.

Lukas Eder
sumber
Jadi, bukan alasan yang bagus hari ini.
bignose
1
@BIGNOSE: TIDAK, BENAR-BENAR TIDAK!
Lukas Eder
1
Saya pikir ini adalah jawaban terbaik. Sayangnya, saya hanya membenci huruf kecil dalam kata kunci SQL dan saya tidak dapat menemukan cara untuk menyukai huruf kecil, Apakah saya gila?
Iharob Al Asimi
@IharobAlAsimi YA ANDA GILA. MENGAPA ANDA MENULIS BAHASA INGGRIS DALAM KASUS RENDAH, TETAPI MOT TERSTRUKTUR BAHASA INGGRIS?
Lukas Eder
24

Kurang dari 10% dari huruf dalam teks yang kita baca adalah huruf besar. Karena itu otak kita lebih tertarik mengenali huruf kecil daripada huruf besar. Penelitian menunjukkan butuh waktu lebih lama untuk membaca teks huruf besar. Ini hanya satu contoh:

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

Contoh di atas saya pikir menekankan bahwa bahkan ketika Anda berbicara tentang hanya satu atau dua kata, itu membuat perbedaan.

AaronLS
sumber
5
Kami tidak berbicara tentang membaca novel dalam huruf kapital semua; kita berbicara tentang beberapa kata kunci yang hanya sebagian dari teks.
Casey
6
Anda tidak mengerti intinya. Ini bukan tentang berapa banyak kata yang kita baca, ini tentang apa yang dilatih otak kita untuk dilakukan dengan cepat. Sebuah tanda jalan misalnya tentu bukan novel, tetapi mereka sampai pada kesimpulan yang sama. Ketika kita belajar membaca, kita mulai membaca setiap huruf, tetapi akhirnya otak kita mulai mengenali sebuah kata sebagai sekelompok pola. Lebih baik jika pola itu konsisten. Ingat huruf besar sering merupakan pola yang berbeda dari huruf kecil, dan bukan hanya versi yang lebih besar.
AaronLS
1
Tetapi ada sangat sedikit kata kunci dan mereka muncul berulang kali; karena itu pengakuan harus sama cepatnya bagi siapa saja yang telah menggunakan SQL untuk waktu berapa pun.
Casey
3
Benar, ini jelas bukan sesuatu yang keras dan cepat. Tetapi hanya ada beberapa kata kunci yang sangat umum. Ada satu set besar yang tidak, dan sering orang memperluas praktik casing atas ini ke hal-hal yang dibangun fungsi tetapi tidak harus kata kunci bahasa sintaksis. Dalam praktiknya saya sebenarnya masih berada di atas segelintir kata kunci kecil seperti SELECT / WHERE / GROUP BY yang menunjukkan awal bagian utama dari suatu permintaan. Tetapi semua kata kunci lainnya, seperti fungsi builtin seperti cast,, rankhuruf kecil.
AaronLS
19

Itu karena SQL adalah bahasa yang lama ( 1974 ) sehingga ketika dikandung, sebagian besar keyboard tidak memiliki huruf kecil! Dokumentasi bahasa hanya mencerminkan teknologi saat itu.

Penelitian telah membuktikan bahwa SEMUA CAPS lebih sulit untuk dibaca, sedemikian rupa sehingga Administrasi Jalan Raya Federal AS telah mengamanatkan penggunaan tanda-tanda campuran dalam Manual mereka tentang Perangkat Kontrol Lalu Lintas Seragam, yang menyatakan:

Huruf untuk nama tempat, jalan, dan jalan raya pada rambu-rambu panduan jalan konvensional harus merupakan kombinasi dari huruf kecil dengan huruf besar awal.

The New York Post juga menerbitkan:

Penelitian telah menunjukkan bahwa lebih sulit untuk membaca tanda-tanda lengkap, dan milidetik tambahan yang dihabiskan untuk menatap jauh dari jalan telah terbukti meningkatkan kemungkinan kecelakaan, terutama di antara pengemudi yang lebih tua.

Tidak ada alasan bagus untuk menggunakan huruf besar, dan alasan bagus untuk tidak.

Saya pribadi tidak suka menggunakan huruf besar untuk kata kunci SQL. Saya merasa lebih sulit untuk membaca dan absurd di zaman sekarang ini.

Bahasa SQL didefinisikan sebagai case-insensitive. Angkat jari Anda dari tombol shift!

Bohemian
sumber
3
Saya pikir prevalensi alasan baik yang disajikan dalam jawaban lain berbicara menentang pernyataan Anda "tidak ada alasan bagus untuk menggunakan huruf besar".
bignose
7
@Bignose Oh ada alasan ... Saya hanya tidak berpikir itu bagus. Dalam pengalaman saya, semakin junior programmer SQL, semakin besar kemungkinan mereka menggunakan huruf besar. Sebaliknya, saya belum pernah bertemu pembuat kode SQL yang kompeten yang menggunakan huruf besar.
Bohemian
3
Sangat setuju. Prevalensi "jawaban" lainnya tidak membuat mereka benar, itu hanya membuat mereka unggul. SEMUA KASUS YANG BERLAKU ADALAH KERAJINAN DARI KOMPUTER YANG TIDAK MEMILIKI KASUS PADA KEYBOARDS ATAU DALAM PERWAKILAN KARAKTER MEREKA. INI HANYA SILLY HARI INI.
Charles Bretana
Ya dan memakai kunci CAPS LOCK Anda atau kramkan jari Anda dengan menahan tombol Shift secara tidak perlu.
Gordon Bell
9
Saya mencium alasan melingkar di sini. Jika alasannya disajikan untuk membedakan kata kunci dengan huruf besar-kecil, Anda menganggapnya bukan alasan yang bagus . Jika alasannya disajikan oleh SQL coder tetapi tidak setuju dengan posisi Anda, Anda menganggapnya bukan SQL coder yang kompeten . Saya pikir atas dasar itu kita dapat menganggap ini sebagai argumen yang tidak valid.
Bignose
8

Huruf besar dapat memberikan peningkatan visibilitas kata kunci, tetapi Anda dapat mengimbanginya dengan sorotan dan lekukan kode.
Kami menggunakan huruf kecil karena editor kueri dan alat lain melakukan keajaiban dalam mengedit kode t-sql, dan kami melihat tidak perlu menyiksa jari kelingking.

Ovidiu Pacurar
sumber
2
Apakah editor kueri dan t-sql satu-satunya tempat di mana orang akan membaca kode SQL Anda? Bagaimana Anda tahu?
bignose
8

Monyet lihat, monyet lakukan untukku. Pencocokan pola - jika saya melakukannya dengan cara yang saya lihat dilakukan, struktur klausa berbaris secara mental lebih mudah.

dkretz
sumber
7

Huruf besar kurang bisa dibaca. Garis besar dari semua kata berbentuk seperti kotak; tidak ada keturunan atau ascenders. FTW huruf kecil!

Lance Fisher
sumber
3
Alasan yang Anda berikan mendukung posisi yang huruf besar membantu membedakan kata kunci dari yang lain.
bignose
5
@ Bignose Jika SQL dibaca seperti bahasa manusia, mengapa kita perlu huruf besar? Kita tidak perlu huruf besar kata kerja ATAU preposisi dalam bahasa manusia. Bayangkan JIKA SETIAP kalimat tampak seperti ini. Saya menemukan itu kurang dapat dibaca daripada tulisan biasa. Kata-kata yang ditulis dengan huruf besar dalam dua kalimat itu menyebabkan otak saya berhenti dan mengatakannya lebih lambat daripada kalimat lainnya, memperlambat pembacaan saya dan membuat alirannya menjadi kurang alami.
Chris Middleton
1
Bahasa manusia sangat memaafkan ambiguitas dalam sintaksis. Bahasa komputer tidak, itu sebabnya ambiguitas itu perlu diminimalkan. Sintaks SQL tidak membantu dengan itu, jadi kita manusia perlu menggunakan alat yang tersedia; Sintaks SQL tidak memiliki banyak, jadi kami telah mengembangkan konvensi kapitalisasi kata kunci.
bignose
5

Saya merasa lebih mudah dibaca. Sama untuk memiliki baris baru untuk awal setiap klausa dan indentasi antar klausa.

Mark Bostleman
sumber
2

Coba produk pemformatan (saya menggunakan SQL Prompt / SQL Refactor dari Red Gate). Anda dapat mengatur bagaimana Anda ingin kapitalisasi berfungsi, dan kode Anda akan selalu diformat secara konsisten. Istirahatkan kelingking Anda dan biarkan komputer melakukan pekerjaan untuk Anda.

gfrizzle
sumber
1
Nasihat ini mengabaikan banyak konteks di mana SQL sedang dibaca. Sama sekali tidak praktis untuk membaca kode yang sudah ditulis oleh orang lain; jika alat seperti ini diperlukan hanya untuk membuat SQL yang berformat buruk dapat dibaca, itu argumen yang mendukung konvensi seperti yang dibahas oleh pertanyaan ini.
bignose
tetapi pendekatan ini bagus jika Anda menginginkan standar di seluruh organisasi Anda. Jika Anda menginginkan standar, pendapat tidak masalah
Trubs
2

Salah satu alasan untuk terus menggunakan huruf besar adalah ketika Anda (atau orang lain) melihat kode dalam sesuatu seperti notepad, membuatnya lebih mudah untuk dibaca. yaitu Anda dapat membedakan dengan mudah antara "kata kunci" dan nama-nama tab, SP, udf, dll

CPU_BUSY
sumber
1

Selain konformitas demi konformitas, no. Meskipun ini adalah topik yang sangat subyektif, saya lebih suka menggunakan case campuran untuk semua SQL. SQL jauh lebih mudah dibaca, dan tidak ada yang hilang dalam IDE modern di mana kata kunci semua kode warna.

Charles Bretana
sumber
Seperti banyak jawaban lain di sini telah disajikan alasan, saya tidak berpikir jawaban Anda benar: Ada yang alasan “selain kesesuaian demi kesesuaian ini”.
bignose
... lalu apa mereka? Meskipun selalu terbuka terhadap informasi baru, terus terang, saya tidak pernah menyadari adanya informasi tersebut.
Charles Bretana
Saya sudah memberikan banyak alasan , jadi sekarang Anda sadar.
bignose
2
tidak satu pun dari itu alasan yang sah, itu adalah preferensi pribadi. Jangan ragu untuk melakukan apa yang preferensi pribadi Anda tentukan, tetapi jangan mencirikan preferensi sebagai aturan atau praktik terbaik.
Charles Bretana
1

Intellisense / pelengkapan otomatis di Microsoft SQL Server Management Studio memungkinkan huruf besar atau kecil untuk kata-kata yang dipesan, tetapi fungsi huruf besar panggilan seperti MAX (), SUM ().

Meski begitu, parser masih memungkinkan versi huruf kecil dari max () dan jumlah () diproses.

Ini menyiratkan ambivalensi berkenaan dengan sifat eksekusi, dan karena itu hanyalah masalah preferensi pribadi.

Tagihan
sumber
4
Ya, dan di SSMS "Opsi -> Editor Teks -> Transact-SQL -> Intellisense" Anda dapat mengatur default ke 'Huruf kecil' jika Anda mau.
Gordon Bell
0

Saya tidak suka apa pun yang ditulis dengan huruf besar semua (dan benci mengetik huruf besar semua lebih), tetapi tidak bisa meyakinkan diri saya untuk melawan komunitas. Seperti biasa Vim dan paket-paket terkaitnya adalah solusi untuk begitu banyak masalah:

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

Cukup ketik seperti biasa dan itu akan menggunakan huruf besar kata kunci saat Anda mengetik. Saya belum menggunakan semua mantra SQL yang tidak jelas, tetapi itu belum mengecewakan saya.

Ferdinand van Wyk
sumber
-2

Saya memanggil sebagian besar kode mySQL saya dari dalam PHP, dan saya melakukan semua pengeditan PHP saya dalam vim (atau saya kira dalam hal ini, VIM ;-). Sekarang saya yakin ada plugin di luar sana untuk menyorot kode mySQL dalam PHP, tetapi saya belum menemukannya, dan saya tidak perlu waktu untuk mencarinya. Karena itu, saya lebih suka memiliki semua yang ada di allcaps. Saya menemukan ini:

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 );

Bantu saya membedakan antara PHP dan SQL jauh lebih baik daripada ini:

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 );

Juga, untuk beberapa alasan, saya benci mencampur allcaps dengan case unta, seperti:

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

Itu IDmengganggu saya. Bukankah seharusnya demikian id? atau iD?

puk
sumber
3
Tidak, tidak, tidak, camelCase adalah untuk nama variabel, bukan nama kolom. Gunakan Proper Case untuk nama kolom ... InsertDate, AlterDate, ...
Gordon Bell
1
Standar SQL memerlukan implementasi untuk mengabaikan case di pengidentifikasi (itu melipat mereka ke huruf besar). Jadi kode Anda seharusnya tidak tergantung pada perbedaan pengidentifikasi kasus, dan cara konvensional untuk melakukannya adalah dengan membuat pengidentifikasi all_lower_case.
bignose
3
@Bignose Saya bukan penggemar garis bawah karena mengurangi wpm
puk