Yanıtlar:
SQL'de bir dizenin başlangıcını ve sonunu belirtmek için tek tırnak işaretleri kullanılır. Çift tırnak işaretleri genellikle SQL'de kullanılmaz, ancak bu veritabanından veritabanına değişebilir.
Tek tırnak kullanmaya devam edin.
Zaten birincil kullanım bu. Sütun takma adı için tek tırnak işaretleri kullanabilirsiniz - burada uygulama kodunuzda başvuruda bulunduğunuz sütun adının, sütunun veritabanında gerçekten adlandırılandan başka bir şey olmasını istiyorsunuz. Örneğin: PRODUCT.id
olarak daha okunabilir olur product_id
, bu nedenle aşağıdakilerden birini kullanırsınız:
SELECT PRODUCT.id AS product_id
SELECT PRODUCT.id 'product_id'
Ya Oracle, SQL Server, MySQL… çalışır ama bazıları TOAD IDE tek tırnak yaklaşımı kullanırken bazı keder vermek gibi görünüyor dedi biliyorum.
Sütun takma adı boşluk karakteri içerdiğinde tek tırnak işareti kullanmanız gerekir product id
, ancak sütun takma adının birden fazla kelime olması önerilmez.
SELECT * FROM USERS 'Users'
SQL Server'da SELECT * FROM USERS "Users"
çalışmaz , ancak çalışır .
SELECT PRODUCT.id 'product_id'
olacak değil Oracle çalışır. Tek tırnak işaretleri yalnızca karakter değişmezleri içindir. (Standart)
Bu durumda ne kullanacağımızı hatırlamamız için basit bir kural:
MySQL ve mariadb olarak, ` (vurgu işareti) sembolü aynıdır " sembolü. Kullanabilirsiniz " senin zaman SQL_MODE
gelmiştir ANSI_QUOTES
sağladı.
Tek tırnak, bir dize sabitini veya bir tarih / saat sabitini sınırlar.
Çift tırnak işaretleri, tablo adları veya sütun adları için sınırlayıcı tanımlayıcıları içerir. Bu genellikle yalnızca tanımlayıcınız basit tanımlayıcıların kurallarına uymadığında gereklidir.
Ayrıca bakınız:
MySQL'in ANSI standardına göre çift tırnak kullanmasını sağlayabilirsiniz:
SET GLOBAL SQL_MODE=ANSI_QUOTES
Microsoft SQL Server'ın ANSI standardı başına çift tırnak kullanmasını sağlayabilirsiniz:
SET QUOTED_IDENTIFIER ON
ANSI SQL'de çift tırnak, başka türlü izin verilmeyen karakterleri içermelerine veya ayrılmış sözcüklerle aynı olmalarına izin veren nesne adlarını (örn. Tablolar) tırnak içine alır (Bundan kaçının).
Tek tırnak işaretleri dize içindir.
Bununla birlikte, MySQL (SQL_MODE değiştirilmediği sürece) standarda açık değildir ve dizeler için birbirlerinin yerine kullanılmasına izin verir.
Ayrıca, Sybase ve Microsoft, tanımlayıcı alıntıları için köşeli parantez kullanır.
Yani biraz satıcıya özel.
Postgres ve IBM gibi diğer veritabanları aslında ansi standardına uyar :)
Fark kullanımlarında yatıyor. Tek tırnaklar çoğunlukla WHERE, HAVING ve ayrıca CONCAT, STRPOS, POSITION gibi yerleşik SQL işlevlerinde bir dizeyi belirtmek için kullanılır.
Aralarında boşluk olan bir takma ad kullanmak istediğinizde, bu takma adı belirtmek için çift tırnak kullanabilirsiniz.
Örneğin
(select account_id,count(*) "count of" from orders group by 1)sub
Her hesabın kaç sipariş verdiğini bilmek için topladığım account_id yabancı anahtar olarak sipariş tablosundan bir alt sorgu. Burada bir sütun herhangi bir rastgele isim vermek amacıyla "saymak" olarak verdim.
Şimdi "sayım" ın 20'den büyük olduğu satırları görüntülemek için bir dış sorgu yazalım.
select "count of" from
(select account_id,count(*) "count of" from orders group by 1)sub where "count of" >20;
Aynı durumu Ortak Tablo ifadelerine de uygulayabilirsiniz.