Veritabanındaki kayıtların eklenmesi, silinmesi, güncellenmesi. SQL talimatlarına aşinalık; IN, BETWEEN, LIKE işleçleri GROUP BY yan tümcesini kullanarak SELECT komutunu kullanarak Access'te basit SQL sorguları oluşturma

06.04.2023

Kurallar: köşeli parantezler yapının [isteğe bağlı bölümünü] gösterir. Dikey çubuk, seçenekler (var1|var2) arasındaki seçimi gösterir. Üç nokta, birkaç kez tekrarlanabileceği anlamına gelir - 1 kez, 2 kez [, …]

SELECT ifadesi

Veritabanı motoruna talimat verir Microsoft Erişimi veritabanından bilgileri bir kayıt kümesi olarak döndürür.

Sözdizimi

SEÇME [ yüklem] { * | masa.* | [masa.]alan1

[, [masa.]alan2 [, ...]]}
İTİBAREN tablo_ifadesi [, ...]




SELECT deyimi aşağıdaki öğeleri içerir.

Öğe

Tanım

yüklem

Aşağıdaki yüklemlerden biri: ALL, DISTINCT, DISTINCTROW veya TOP. Tahminler, döndürülen kayıt sayısını sınırlamak için kullanılır. Hiçbir yüklem belirtilmemişse, varsayılan ALL'dir.

Belirtilen tablo veya tablolardan tüm alanların seçildiğini belirtir

Masa

Alanlarından kayıtların seçildiği tablonun adı

alan1, alan2

Alınacak verileri içeren alanların adları. Birden fazla alan belirtilirse veriler, adların listelendiği sıraya göre alınacaktır.

takma ad1, takma ad2

Orijinal sütun adları yerine sütun başlıkları olarak kullanılan adlar tablolar

tablo_ifadesi

Alınacak verileri içeren bir veya daha fazla tablo adı.

harici_veritabanı

Bileşende belirtilen tabloları içeren veritabanının adı tablo_ifadesi mevcut veritabanında yoksa

Notlar

Bu işlemi gerçekleştirmek için, Microsoft Access veritabanı motoru belirtilen tabloları arar, istenen sütunları alır, belirtilen koşulları karşılayan satırları seçer ve ortaya çıkan satırları belirtilen sıraya göre sıralar veya gruplandırır.

SELECT ifadeleri veritabanı verilerini değiştirmez.

SELECT ifadesi genellikle bir SQL ifadesinin ilk kelimesidir (SQL ifadesi (dize). SELECT, UPDATE veya DELETE gibi bir SQL komutunu tanımlayan ve WHERE veya ORDER BY gibi cümleleri içeren bir ifade. SQL ifadeleri/ dizeler sorgularda ve istatistiksel işlevlerde yaygın olarak kullanılır.) Çoğu SQL ifadesi ya SELECT ifadesi ya da SELECT...INTO ifadesidir.

Bir SELECT ifadesinin minimum sözdizimi aşağıdaki gibidir:

SEÇME alanlarİTİBAREN masa

Bir tablodaki tüm alanları seçmek için yıldız işareti (*) kullanabilirsiniz. Aşağıdaki örnek Çalışanlar tablosundaki tüm alanları seçmektedir.

Çalışanlardan * SEÇİN;

Alan adı FROM yan tümcesinde birden çok tabloya dahil edilmişse, önüne tablo adı ve ifade eklenir. «.» (nokta). Aşağıdaki örnekte "Çalışanlar" ve "Denetçiler" tablolarında "Departman" alanı bulunmaktadır. SQL deyimi, Çalışanlar tablosundan departmanları ve Yöneticiler tablosundan yönetici adlarını seçer.

Çalışanları SEÇİN. Bölüm başkanları. Yönetici Adı FROM Çalışanlar INNER JOIN Yöneticiler WHERE Çalışanları. Departman = Yöneticiler. Departman;

Bir RecordSet nesnesi oluşturduğunuzda, tablo alanı adı Microsoft Access veritabanı motoru tarafından nesnedeki "Alan" nesnesinin adı olarak kullanılır. Kayıt Kümesi. Alan adının değiştirilmesi gerekiyorsa veya alanı oluşturan ifade tarafından sağlanmıyorsa, ayrılmış bir sözcük (Ayrılmış sözcük. Bir dilin öğesi olan bir sözcük, örneğin) kullanın. Visual Basic. Ayrılmış sözcükler, talimatların adlarını, yerleşik işlevleri ve veri türlerini, yöntemleri, operatörleri ve nesneleri içerir.) AS. Aşağıdaki örnek, döndürülen nesneyi adlandırmak için "Gün" başlığının nasıl kullanıldığını gösterir Alan alınan nesnede Kayıt Kümesi.

Çalışanlardan Doğum Günü Günü Olarak SEÇİN;

Belirsiz veya aynı nesne adlarını döndüren toplu işlevlerle veya sorgularla çalışırken Alan farklı bir nesne adı oluşturmak için AS yan tümcesini kullanmalısınız Alan. Aşağıdaki örnekte döndürülen nesne Alan alınan nesnede Kayıt Kümesi"Nüfus Sayımı" adı verilmiştir.

Çalışanlardan Sayım OLARAK COUNT(ÇalışanKodu) SEÇİN;

Bir SELECT deyimiyle çalışırken, alınan verileri daha fazla kısıtlamak ve düzenlemek için ek ifadeler kullanabilirsiniz. Ek Bilgiler kullandığınız cümlenin yardım konusuna bakın.

FROM yan tümcesi

SELECT deyiminde listelenen alanları içeren tabloları ve sorguları belirtir.

Sözdizimi

SEÇME alan Listesi
İTİBAREN tablo_ifadesi

FROM yan tümcesini içeren bir SELECT ifadesi aşağıdaki öğeleri içerir:

Öğe

Tanım

alan Listesi

tablo_ifadesi

Bir veya daha fazla tabloyu (veri kaynağını) tanımlayan ifade. İfade bir tablo adı, saklanan bir sorgu adı veya INNER JOIN, LEFT JOIN veya RIGHT JOIN operatörü kullanılarak oluşturulan bir sonuç ifadesi olabilir.

harici_veritabanı

Belirtilen tüm tabloları içeren harici veritabanının tam yolu tablo_ifadesi

Notlar


SELECT deyiminden sonra FROM yan tümcesinin varlığı gereklidir.

Tabloların listelenme sırası tablo_ifadesiönemli değil.

Bağlantılı tabloları kullanma (Bağlantılı tablo. Açık veritabanının parçası olmayan ancak Microsoft Access'ten erişilebilen bir dosyaya kaydedilen bir tablo. Kullanıcı bağlantılı tablodaki kayıtları ekleyebilir, silebilir ve değiştirebilir ancak yapısını değiştiremez) .) IN cümlesi yerine veri çıkarma işlemini yapabilirsiniz. dış taban Verileri daha basit ve verimli bir şekilde

Aşağıdaki örnek, Çalışanlar tablosundan verilerin nasıl alınacağını gösterir.

SEÇ Soyadı, Adı

ÇALIŞANLARDAN;

SQL sorguları için seçilen kayıtları gösterir ( SQL dili(Yapılandırılmış sorgu dili). İlişkisel DBMS'lerdeki verilere erişmek, sorgulamak, güncellemek ve yönetmek için yaygın olarak kullanılan yapılandırılmış bir sorgu ve veritabanı programlama dili.

Sözdizimi

SEÇME ]]
İTİBAREN masa

Bu yüklemleri içeren SELECT ifadesi aşağıdaki bileşenleri içerir:

Bileşen

Tanım

Hiçbir yüklem dahil edilmemişse ima edilir. Microsoft Access veritabanı motoru, bir SQL ifadesinin (SQL ifadesi (dize)) koşullarıyla eşleşen tüm kayıtları seçer. SELECT, UPDATE veya DELETE gibi bir SQL komutunu tanımlayan ve WHERE veya ORDER BY gibi yan tümceleri içeren bir ifade. SQL ifadeleri/dizeleri genellikle sorgularda ve istatistiksel işlevlerde kullanılır). Aşağıdaki iki özdeş örnek, Çalışanlar tablosundaki tüm kayıtların nasıl döndürüleceğini göstermektedir.

ÇALIŞANLARDAN

ÇalışanKoduna Göre SİPARİŞ;

ÇALIŞANLARDAN

ÇalışanKoduna Göre SİPARİŞ;

Seçilen alanlarda yinelenen veriler içeren kayıtları hariç tutar. Sorgu sonuçları yalnızca şunları içerir: benzersiz değerler SELECT deyiminde listelenen alanların her biri. Örneğin Çalışanlar tablosunda listelenen bazı çalışanlar aynı soyadına sahip olabilir. Soyadı alanında iki kayıt "Ivanov" soyadını içeriyorsa, aşağıdaki SQL deyimi yalnızca "Ivanov" soyadını içeren bir kayıt döndürür.

FARKLI Soyadı SEÇİN

DISTINCT bileşeni atlanırsa sorgu "Ivanov" soyadına sahip her iki kaydı da döndürür.

SELECT yan tümcesi birden fazla alan içeriyorsa tüm alan değerlerinin birleşimi, yalnızca o kayıt için benzersiz olması durumunda sorgu sonuçlarına dahil edilir.

DISTINCT bileşenini kullanan bir sorgunun sonuçları, diğer kullanıcılar tarafından yapılan sonraki değişiklikleri yansıtacak şekilde güncellenmez.

Aynı verilere sahip tek tek alanları içermek yerine, bütünüyle tekrarlanan kayıtlardaki verileri hariç tutar. “Müşteri Kodu” alanını kullanarak “Müşteriler” ve “Siparişler” tablolarını birbirine bağlayan bir sorgu oluşturulduğunu varsayalım. Müşteriler tablosu mükerrer Müşteri Kimliği alanları içermez ancak her müşterinin birden fazla siparişi olabileceğinden bunlar Siparişler tablosunda mevcuttur. Aşağıdaki SQL deyimi, en az bir sipariş veren kuruluşları, bu siparişlerin ayrıntılarını belirtmeden listelemek için DISTINCTROW bileşeninin nasıl kullanılacağını gösterir.

Müşterilerden Ayırt Edici Başlığı Seçin INNER JOIN Siparişleri

AÇIK Müşteriler. Müşteri Kimliği = Siparişler. Müşteri kodu

Başlığa Göre Sıralama;

DISTINCTROW bileşeni atlanırsa sorgu, birden çok kez sipariş veren her kuruluş için birden çok satırla sonuçlanır.

DISTINCTROW bileşeni yalnızca sorguda kullanılan bazı tablolardan alanlar seçildiğinde etkili olur. Sorgu yalnızca bir tablo içeriyorsa veya alanlar tüm tablolardan alınıyorsa DISTINCTROW bileşeni yoksayılır.

TEPE N

İlk veya ilkler arasında yer alan belirtilen sayıda kaydı döndürür. son Girişler ORDER BY cümleciği tarafından belirtilen aralık. Diyelim ki 1994 yılının sınıfındaki en iyi 25 öğrencinin adını görüntülemek istiyorsunuz.

İsim soyisim

NEREDE Mezuniyet Yılı = 2003

GradePointAverage DESC'E GÖRE SİPARİŞ;

ORDER BY yan tümcesini eklemezseniz, sorgu, Öğrenciler tablosundan WHERE yan tümcesini karşılayan 25 kayıttan oluşan rastgele bir küme döndürür.

TOP yüklemi eşit değerler arasında bir seçim gerektirmez. Önceki örnekteki 25. ve 26. kayıtların not ortalaması aynıysa sorgu 26 kayıt döndürecektir.

ORDER BY yan tümcesi tarafından belirtilen aralıktaki ilk veya son kayıtların belirli bir yüzdesini almak için PERCENT ayrılmış sözcüğünü de kullanabilirsiniz. Mezun olan sınıftaki öğrencilerin ilk 25'i yerine en alttaki %10'unu görüntülemek istediğinizi varsayalım.

İLK YÜZDE 10'U SEÇİN

İsim soyisim

NEREDE Mezuniyet Yılı = 2003

GradePointAverage ASC'YE GÖRE SİPARİŞ;

ASC yüklemi, aralığın alt kısmındaki değerlerin çıktısını belirtir. TOP yüklemini takip eden değer, Tamsayı türünde bir değer olmalıdır (Tamsayı veri türü. Tamsayı değerlerini depolamak için kullanılan temel veri türü. Tür değişkeni Tamsayı -32768 ila 32767 aralığında 64 bitlik (8 baytlık) bir sayı olarak depolanır.) işaretsiz.

TOP yüklemi sorgunun güncellenip güncellenemeyeceğini etkilemez.

masa

Kayıtların alındığı tablonun adı.

Ayrıca bakınız

SELECT ifadesi

FROM yan tümcesi

WHERE yan tümcesi

FROM yan tümcesinde listelenen tablolardaki hangi kayıtların SELECT, UPDATE veya DELETE ifadeleriyle işleneceğini belirler.

Sözdizimi

SEÇME alan Listesi
İTİBAREN tablo_ifadesi
NEREDE seçim_koşulları

WHERE yan tümcesini içeren bir SELECT ifadesi aşağıdaki bölümleri içerir.

Parça

Tanım

alan Listesi

Herhangi bir takma adla birlikte alınan alan veya alanların adı (Takma ad (SQL). Bir ifadedeki bir tablo veya alan için alternatif bir ad. Takma adlar genellikle daha sonra başvuru kolaylığı sağlamak için daha kısa tablo veya alan adları olarak kullanılır. belirsiz başvuruları önlemek ve sorgu sonuçlarını görüntülerken daha açıklayıcı adlar elde etmek için, yüklemlerle (ALL, DISTINCT, DISTINCTROW veya TOP) veya SELECT ifadesinin diğer herhangi bir parametresiyle.

tablo_ifadesi

Verilerin alındığı tablo veya tabloların adı.

seçim_koşulları

İfade (İfade. Tek bir değerle sonuçlanan matematiksel ve mantıksal operatörler, sabitler, işlevler, alan adları, kontroller ve özelliklerin birleşimi. İfade, hesaplamaları gerçekleştirebilir, metni işleyebilir veya verileri doğrulayabilir.) dahil edilen kayıtlarla eşleşmelidir. sorgu sonuçlarında.

Notlar

Microsoft Access veritabanı motoru, WHERE yan tümcesinde listelenen koşulları karşılayan kayıtları seçer. WHERE yan tümcesi belirtilmezse sorgu, tablodaki tüm satırları döndürür. Bir sorgu birden fazla tablo belirtiyor ancak bir WHERE veya JOIN yan tümcesi belirtmiyorsa, sorgu bir Kartezyen ürün (Kartezyen ürün) üretir. İki veya daha fazla tabloya başvuran ve WHERE veya JOIN içermeyen bir FROM yan tümcesine sahip bir SQL SELECT ifadesinin yürütülmesinin sonucudur. Birleştirme yöntemini belirten JOIN yan tümcesi.) tablolar.

WHERE yan tümcesi gerekli değildir, ancak kullanılması durumunda FROM yan tümcesinin ardından gelmesi gerekir. Örneğin, satış departmanındaki tüm çalışanları (WHERE Departmanı = "Satış") veya 18 ile 30 yaş arasındaki tüm müşterileri (WHERE Yaş 18 ile 30 Arası) seçebilirsiniz.

Birden çok tablodaki SQL birleştirme işlemi için JOIN yan tümcesi kullanılmıyorsa, ortaya çıkan nesne Kayıt seti güncellemek imkansız olacaktır.

WHERE yan tümcesi HAVING yan tümcesine benzer ve seçilen kayıtları belirtir. Kayıtlar GROUP BY deyimine göre gruplandırıldıktan sonra HAVING deyimi de görüntülenecek kaydı belirler.

WHERE deyimi, GROUP BY deyimi kullanılarak gruplandırılması gerekmeyen kayıtları hariç tutmak için kullanılır.

SQL deyiminin hangi kayıtları döndürdüğünü belirlemek için çeşitli ifadeler kullanın. Örneğin, aşağıdaki SQL ifadesi, maaşı RUR'u aşan tüm çalışanları seçer.

SEÇİN Soyadı, Maaş Çalışandan NEREDE Maaş > 21000;

WHERE yan tümcesi, mantıksal işleçlerle birbirine bağlanan en fazla 40 ifade içerebilir (örneğin, VE Ve VEYA).

Boşluk veya noktalama işareti içeren bir alan adı girerseniz, bunu köşeli parantez () içine almanız gerekir. Örneğin, bir müşteri ayrıntıları tablosu belirli müşteriler hakkında bilgiler içerebilir.

SELECT [Müşterinin favori restoranı]

Bir argüman belirtme seçim_koşulları, tarih değişmez değerleri (Tarih değişmez değerleri. Sayı işaretleri (#) içine alınmış, geçerli bir biçimdeki herhangi bir karakter dizisi. Geçerli biçimler, Dil ve Standartlar ayarlarında belirtilen tarih biçimidir ve evrensel format Microsoft Access veritabanı motorunun ABD dışındaki bir sürümünü kullanıyor olsanız bile, ABD biçiminde sunulmalıdır. Örneğin "10 Mayıs 1996" tarihi İngiltere'de 10/5/96, Rusya'da 05/10/1996 olarak yazılır. Aşağıdaki örneklerde gösterildiği gibi tarih değişmezlerini sayı işaretlerine (#) eklemeyi unutmayın.

Birleşik Krallık veritabanındaki 10 Mayıs 1996 tarihli kayıtları bulmak için şunu kullanın: aşağıdaki talimatlar SQL:

* Siparişlerin NEREDEN Sevkiyat Tarihi = #10.05.1996#'dan SEÇİN;

Fonksiyonu da kullanabilirsiniz TarihDeğeri, uluslararası parametre setini tanıma Microsoft Windows®. Örneğin, Rusya için şu kodu kullanın:

SELECT * FROM Orders WHERE Gönderim Tarihi = DateValue("05/10/1996");

Ve aşağıdaki kod İngiltere içindir:

SELECT * FROM Orders WHERE Gönderim Tarihi = DateValue("10/5/96");

Not. Seçim ölçütleri satırında belirtilen sütun GUID (Çoğaltma Kimliği (GUID) türündeyse. Çoğaltmayı benzersiz şekilde tanımlamak için kullanılan Microsoft Access veritabanındaki 16 baytlık bir alan. GUID'ler kopyaları, çoğaltma kümelerini, tabloları, kayıtları ve kayıtları tanımlamak için kullanılır) Microsoft Access veritabanlarında GUID kodlarına çoğaltma kodları denir.), seçim koşulları biraz farklı bir sözdizimi kullanır.

NEREDE Çoğaltma Kimliği = (GUID (AB-CDEF0ABCDEF))

İç içe geçmiş parantezlerin ve kısa çizgilerin doğru konumlandırıldığından emin olun.

Kaynak sayfa: http://office. /ru-ru/access/HA.aspx? pid=CH

GROUP BY deyimi

Belirtilen alan listesindeki aynı değerlere sahip kayıtları tek bir kayıtta birleştirir. SELECT deyimine bir SQL toplama işlevi dahil edilmişse, her kayıt için bir özet değeri oluşturulur; Toplam veya Saymak.

Sözdizimi

SEÇME alan Listesi
İTİBAREN masa
NEREDE seçim_koşulu

GROUP BY yan tümcesini içeren bir SELECT ifadesi aşağıdaki öğeleri içerir:

Öğe

Tanım

alan Listesi

Herhangi bir takma adla birlikte alınan alanların adları (Takma Ad (SQL). Bir ifadedeki bir tablo veya alan için alternatif bir ad. Takma adlar genellikle programlarda daha sonra referans verilmesini kolaylaştırmak için daha kısa tablo veya alan adları olarak kullanılır, belirsiz başvuruları önlemek ve sorgu sonuçlarını görüntülerken daha bilgilendirici adlar elde etmek için.) ve SQL istatistiksel işlevlerini, tahminlerini (ALL, DISTINCT, DISTINCTROW veya TOP) veya diğer SELECT ifadesi parametrelerini kullanın.

masa

seçim_koşulları

Seçim koşulu. İfade bir WHERE cümlesi içeriyorsa, kayıtlara uygulandıktan sonra değerler Microsoft Access veritabanı motoru tarafından gruplandırılacaktır.

group_field_list

group_field_list

Notlar

GROUP BY deyimi isteğe bağlıdır.

SELECT deyiminde SQL istatistik fonksiyonları yer almıyorsa özet değerler hesaplanmaz.

GROUP BY alan değerleri Null (Null. Bir alana girilebilen veya eksik veya bilinmeyen verileri belirtmek için ifadelerde ve sorgularda kullanılabilen bir değer. Visual Basic'te anahtar kelime Null bir Null değeri belirtir. Birincil anahtar alanları gibi bazı alanlar Boş değerler içeremez.) gruplanır ve atlanmaz. Ancak değerler Hükümsüz SQL istatistik fonksiyonlarının hiçbiri tarafından değerlendirilmez.

WHERE deyimi, gruplandırılması gerekmeyen satırları hariç tutmak için kullanılır. HAVING deyimi, gruplamadan sonra kayıtları filtrelemek için kullanılır.

GROUP BY alan listesindeki Not veri türünü (MEMO Alanı veri türü. Microsoft Access veritabanındaki bir alan veri türü. Bir MEMO alanı en fazla 65535 karakter içerebilir.) veya OLE Nesnesini (OLE Nesne Alanı veri türü) içermeyen alanlar ) Bir Microsoft Access veritabanına bağlı veya gömülü diğer uygulamalardaki nesneleri kaydetmek için kullanılan bir alan veri türü.), alan SELECT deyiminde yer almasa bile, FROM yan tümcesinde belirtilen herhangi bir tablodaki herhangi bir alana başvuruda bulunabilir. Bunun için SELECT deyiminde en az bir SQL istatistik fonksiyonunun bulunması yeterlidir. Microsoft Access veritabanı motoru, MEMO Alanı veya OLE Nesnesi verilerini içeren alanlara göre gruplamaya izin vermez.

SELECT alan listesindeki tüm alanlar ya bir GROUP BY yan tümcesinde yer almalı ya da bir SQL toplama işlevine ilişkin argümanlar olmalıdır.

Ayrıca bakınız

SELECT ifadesi

SELECT...INTO ifadesi

ALL, DISTINCT, DISTINCTROW, TOP yüklemlerini belirtir

FROM yan tümcesi

Teklif var

ORDER BY cümleciği

WHERE yan tümcesi

SQL istatistik fonksiyonları

Kaynak sayfa: http://office. /ru-ru/access/HA.aspx? pid=CH

Teklif var

GROUP BY yan tümcesiyle bir SELECT deyiminde görünmesi gereken gruplandırılmış kayıtları tanımlar. Kayıtlar GROUP BY deyimine göre gruplandırıldıktan sonra HAVING deyimi, koşullarını karşılayanları gösterecektir.

Sözdizimi

SEÇME alan Listesi
İTİBAREN masa
NEREDE seçim_koşulları
GRUPLANDIRMA ŞEKLİ group_field_list

HAVING yan tümcesini içeren bir SELECT ifadesi aşağıdaki öğeleri içerir:

Öğe

Tanım

alan Listesi

Herhangi bir takma adla birlikte yüklenen alanların adları (Alias ​​(SQL). Bir ifadedeki bir tablo veya alan için alternatif bir ad. Takma adlar genellikle programlarda daha sonra referans verilmesini kolaylaştırmak için daha kısa tablo veya alan adları olarak kullanılır. belirsiz başvuruları önlemek ve sorgu sonuçlarını görüntülerken daha bilgilendirici adlar elde etmek için.) ve SQL istatistiksel işlevleri, yüklemleri (ALL, DISTINCT, DISTINCTROW veya TOP) veya SELECT ifadesinin diğer parametreleriyle birlikte kullanın.

masa

Kayıtların yüklendiği tablonun adı

seçim_koşulu

Seçim koşulu. Deyim bir WHERE yan tümcesi içeriyorsa, Microsoft Access veritabanı motoru, kayıtlara uygulandıktan sonra değerleri gruplayacaktır.

group_field_list

Kayıtları gruplamak için kullanılan alanların adları (en fazla 10). İsimlerin sıralaması group_field_list gruplandırma düzeyini belirler - en yüksekten en düşüğe

grup_koşulu

Görüntülenecek kayıtları belirten bir ifade

Notlar

HAVING yan tümcesi isteğe bağlıdır.

HAVING yan tümcesi, kayıtların seçimini belirleyen WHERE yan tümcesine benzer. GROUP BY deyimi ile kayıtlar gruplandıktan sonra HAVING deyimi görüntülenecek kayıtları belirler.

TürKodunu SEÇİN,

Toplam(Stokta)

ÜRÜNLERDEN

GRUPLAMAYA GÖRE TürKod

Toplam(InStock) > 100 OLAN Ve "TEL*" Gibi;

HAVING yan tümcesi, aşağıdaki gibi mantıksal işleçlerle bağlantılı en fazla 40 ifade içerebilir: Ve Ve Veya.

Kaynak sayfa: http://office. /ru-ru/access/HA.aspx? pid=CH

ORDER BY cümleciği

Sorgunun döndürdüğü kayıtları, belirtilen alan(lar)ın değerlerine göre artan veya azalan sırada sıralar.

Sözdizimi

SEÇME alan Listesi
İTİBAREN masa
NEREDE seçim_koşulu
[, alan2 ][, ...]]]

ORDER BY yan tümcesini içeren bir SELECT ifadesi aşağıdaki öğeleri içerir.

Öğe

Tanım

alan Listesi

Herhangi bir takma adla birlikte alınan alanların adları (Takma Ad (SQL). Bir ifadedeki bir tablo veya alan için alternatif bir ad. Takma adlar genellikle programlarda daha sonra referans verilmesini kolaylaştırmak için daha kısa tablo veya alan adları olarak kullanılır, belirsiz başvuruları önlemek ve sorgu sonuçlarını görüntülerken daha bilgilendirici adlar elde etmek için.) ve SQL istatistiksel işlevleri, yüklemleri (ALL, DISTINCT, DISTINCTROW veya TOP) veya SELECT ifadesinin diğer parametreleriyle birlikte kullanın.

masa

Kayıtların alındığı tablonun adı

seçim_koşulları

Seçim koşulları. İfade bir WHERE cümlesi içeriyorsa, kayıtlara uygulandıktan sonra Microsoft Access veritabanı motoru kayıtların değerlerini sıralayacaktır.

alan1, alan2

Kayıtların sıralandığı alanların adları.

Notlar

ORDER BY deyimi isteğe bağlıdır. Verileri sıralanmış biçimde görüntülemeniz gerektiğinde kullanılmalıdır.

Varsayılan sıralama düzeni Sıralama Düzeni'dir. Veriler, değerlerine ve türüne göre alfabetik olarak sıralanabilir. Sayısal değerler veya tarihe göre. Sıralama düzeni artan (0'dan 100'e, A'dan Z'ye) veya azalan (100'den 0'a, Z'den A'ya) artan (A'dan Z'ye, 0'dan 9'a) olabilir. Aşağıdaki örnekler çalışan adlarının soyadına göre sıralanmasını göstermektedir.

SEÇ Soyadı, Adı

ÇALIŞANLARDAN

SİPARİŞ ŞEKLİ: Soyadı;

SEÇ Soyadı, Adı

ÇALIŞANLARDAN

SİPARİŞ BY Soyadı ASC;

Alanları azalan düzende sıralamak için (Z'den A'ya, 9'dan 0'a), her alanın adına ayrılmış DESC sözcüğünü ekleyin. Aşağıdaki örnek, çalışan maaşlarına göre azalan düzende sıralamayı göstermektedir.

SEÇİN Soyadı, Maaş

ÇALIŞANLARDAN

SIRALAMA Maaş TANIMI, Soyadı;

ORDER BY yan tümcesinde MEMO Alanı (Not Alanı veri türü. Microsoft Access veritabanındaki bir alan veri türü. Bir MEMO alanı en fazla 65.535 karakter içerebilir.) veya OLE Nesne Alanı (OLE Nesnesi) türünde veriler içeren alanlar belirtirseniz Alan veri türü "Microsoft Access veritabanına bağlı veya gömülü diğer uygulamalardaki nesneleri kaydetmek için kullanılan alan veri türü.), bu bir hata üretecektir. Microsoft Access veritabanı motoru bu alan türlerini sıralayamıyor.

ORDER BY yan tümcesi genellikle bir SQL ifadesindeki son yan tümcedir (SQL ifadesi (dize). SELECT, UPDATE veya DELETE gibi bir SQL komutunu tanımlayan ve WHERE veya ORDER BY gibi yan tümceleri içeren bir ifade. SQL ifadeleri /strings sorgularda ve istatistiksel işlevlerde yaygın olarak kullanılır.).

ORDER BY yan tümcesine ek alanlar ekleyebilirsiniz. Kayıtlar ilk önce ORDER BY yan tümcesinde belirtilen alana göre sıralanır. İlk alanda aynı değerlere sahip olan kayıtlar daha sonra ikinci alanda belirtilen alana göre sıralanır ve bu şekilde devam eder.
Ayrıca bakınız

SELECT ifadesi

SELECT...INTO ifadesi

ALL, DISTINCT, DISTINCTROW, TOP yüklemlerini belirtir

FROM yan tümcesi

GROUP BY deyimi

Teklif var

WHERE yan tümcesi

SQL istatistik fonksiyonları

Kaynak sayfa: http://office. /ru-ru/access/HA.aspx? pid=CH

İÇ BİRLEŞTİRME işlemi

Bu tabloların bağlantı alanları aynı değerleri içeriyorsa, iki tablodaki kayıtları birleştirir.

Sözdizimi

İTİBAREN tablo 1İÇ BİRLEŞİM Tablo 2 AÇIK tablo 1.alan1 karşılaştırma_operatörü tablosu2.alan2

INNER JOIN işlemi aşağıdaki unsurlardan oluşur:

Öğe

Tanım

tablo 1, Tablo 2

Birleştirilecek kayıtları içeren tabloların adları

alan1, alan2

Bağlanacak alanların adları. Sayısal olmayan alanlar aynı veri türünde olmalıdır (Veri Türü. Alanın içerebileceği veri türünü tanımlayan bir alan özelliği. Veri türleri şunları içerir: Boolean, Tamsayı, Uzun, Para Birimi, Tek, Çift, Tarih, Dize, ve Değişken (varsayılan).) ve aynı türdeki verileri içerir. Ancak bu alanların adları farklı olabilir.

karşılaştırma_operatörü

Herhangi bir karşılaştırma operatörü: (=,<, >, <=, >= veya<>)

SELECT ifadesi, Microsoft Access veritabanı motoruna, veritabanından bilgileri bir kayıt kümesi olarak döndürmesi talimatını verir.

Sözdizimi

SEÇME [ yüklem] { * | masa.* | [masa.]alan1 [, [masa.]alan2 [, ...]]}
İTİBAREN tablo_ifadesi [, ...]




SELECT deyimi aşağıdaki öğeleri içerir.

Öğe

Tanım

yüklem

Aşağıdaki yüklemlerden biri: ALL, DISTINCT, DISTINCTROW veya TOP. Tahminler, döndürülen kayıt sayısını sınırlamak için kullanılır. Hiçbir yüklem belirtilmemişse, varsayılan ALL'dir.

Belirtilen tablo veya tablolardan tüm alanların seçildiğini belirtir.

masa

Seçilen kayıtların bulunduğu alanları içeren tablonun adı.

alan1, alan2

Alınacak verileri içeren alanların adları. Birden fazla alan belirtilirse veriler, adların listelendiği sıraya göre alınacaktır.

takma ad1, takma ad2

Orijinal sütun adları yerine sütun başlıkları olarak kullanılan adlar masa.

tablo_ifadesi

Alınacak verileri içeren bir veya daha fazla tablo adı.

harici_veritabanı

Bileşende belirtilen tabloları içeren veritabanının adı tablo_ifadesi, eğer mevcut veritabanında bulunmuyorlarsa.

Notlar.

Bu işlemi gerçekleştirmek için Microsoft Access veritabanı motoru belirtilen tablo veya tabloları arar, belirtilen sütunları alır, koşulu karşılayan satırları seçer ve sonuçta ortaya çıkan satırları belirtilen sıraya göre sıralar.

SELECT ifadeleri veritabanındaki verileri değiştirmez.

SELECT genellikle bir SQL ifadesindeki ilk kelimedir. SELECT ve SELECT...INTO en yaygın SQL ifadeleridir.

Bir SELECT ifadesinin minimum sözdizimi aşağıdaki gibidir:

SEÇME alanlarİTİBAREN masa

Bir tablodaki tüm alanları seçmek için yıldız işareti (*) kullanabilirsiniz. Aşağıdaki örnek, Çalışanlar tablosunda tüm alanların seçili olduğunu göstermektedir.

Çalışanlardan * SEÇİN;

Alan adı FROM yan tümcesinde birden çok tabloya dahil edilmişse, önüne tablo adı ve ifade eklenir. . (nokta). Aşağıdaki örnekte, "Departman" alanı aynı anda iki tabloda görünmektedir: "Çalışanlar" ve "Yöneticiler". Çalışanlar tablosundan departmanları ve Yöneticiler tablosundan yönetici adlarını seçmek için bir SQL ifadesi kullanabilirsiniz.

SELECT Employees.Department, Supervisors.SupvName FROM Employees INNER JOIN Supervisors WHERE Employees.Department = Supervisors.Department;

Bir RecordSet nesnesi oluşturulduğunda tablo alanı adı, Microsoft Access Veritabanı Altyapısı tarafından nesnedeki "Alan" nesnesinin adı olarak kullanılır. Kayıt kümesi. Alan adının değiştirilmesi gerekiyorsa veya alanı oluşturan ifade tarafından sağlanmıyorsa, ayrılmış AS sözcüğünü kullanın. Aşağıdaki örnek, döndürülen nesneyi adlandırmak için BirthDate başlığının nasıl kullanıldığını gösterir. Alan alınan nesnede Kayıt kümesi.

Çalışanlardan Doğum Tarihini Doğum Olarak SEÇİN;

Belirsiz veya yinelenen nesne adlarını döndüren toplu işlevler veya sorgular kullanıldığında Alan nesneyi atamak için AS yan tümcesini kullanmalısınız Alan başka bir isim. Aşağıdaki örnekte döndürülen nesne Alan alınan nesnede Kayıt kümesi"Çalışan_sayısı" adı atanır.

Çalışanlardan HeadCount OLARAK COUNT(EmployeeID) SEÇİN;

Bir SELECT deyimiyle çalışırken, alınan verileri daha fazla kısıtlamak ve düzenlemek için ek ifadeler kullanabilirsiniz. Daha fazla bilgi için kullandığınız teklifin yardım konusuna bakın.

1 numaralı laboratuvar çalışması

SQL: VERİ EKSTRESİ - komutSEÇME

Çalışmanın amacı:

  • SQL ifadelerine aşina olun;
  • SELECT komutunu kullanarak Access'te basit SQL sorgularının nasıl oluşturulacağını öğrenin;

· IN, BETWEEN, LIKE operatörlerinin kullanımı NULL'dur.

Egzersiz yapmak№1. STUDENTS tablosundan FIRST NAME ve LAST NAME alanlarının tüm değerlerini SQL modunda seçmek için bir sorgu oluşturun.

İSİM, SOYADI SEÇİN

ÖĞRENCİLERDEN;

Egzersiz yapmak№2 . STUDENTS tablosunun tüm sütunlarını SQL modunda seçmek için bir sorgu oluşturun.

SEÇME *

ÖĞRENCİLERDEN;


Görev No.3. KİŞİSEL VERİLER tablosunda yer alan, öğrencilerin yaşadığı şehirlerin adlarını SQL modunda seçmek için bir sorgu oluşturun.

FARKLI ŞEHİR SEÇİN

[KİŞİSEL VERİLERDEN];

Görev No.4. SQL modunda, Ivanov soyadına sahip tüm öğrencilerin adlarını alan ve bilgileri STUDENTS tablosunda bulunan bir seçim sorgusu oluşturun.

SOYADI, ADI SEÇİN

ÖĞRENCİLERDEN

NEREDE SOYADI = "İvanov";

Görev No.5. UIT-22 grubunda bütçeli bir eğitim biçiminde okuyan öğrencilerin adlarını ve soyadlarını almak için SQL modunda bir seçim sorgusu oluşturun.

SOYADI, ADI SEÇİN

ÖĞRENCİLERDEN

WHERE GROUP = "UIT-22" VE BÜTÇE = doğru;

Görev No. 6. SQL modunda bir sorgu oluşturun. SINAV tablosundan bir örnek için sadece 4 ve 5. sınıftaki öğrencilere ilişkin bilgiler.

SEÇME *

İTİBAREN [DEĞİŞTİRMEKSINAVLAR]

NEREDESEVİYEIN(4,5);

Görev No.7. IOSU konusunda sınav notu 3 olan öğrenciler hakkında bilgi seçmek için bir zanpoc ve SQL modu oluşturun.

SEÇME *

İTİBAREN [DEĞİŞTİRMEKSINAVLAR]

NEREDEÖĞE=" IOSU"VeSEVİYE(4,5)'te Değil;

Görev No.8. Saatleri 100 ile 130 arasında olan öğelere ilişkin kayıtları seçmek için SQL modunda bir sorgu oluşturun.

SEÇME *

İTİBARENÖĞELER

NEREDEKOL SAATİ100 İLE 130 ARASI;


Görev No.9. Soyadları örneğin “C” harfiyle başlayan öğrenciler hakkında ÖĞRENCİLER tablosundan bilgi seçmek için SQL modunda bir sorgu oluşturun.

SEÇME *

İTİBARENÖĞRENCİLER

NEREDESOYADIBEĞENMEK"İLE*";

Çözüm: Sırasında laboratuvar işi SQL talimatlarıyla tanıştım, IN, BETWEEN, LIKE operatörlerini kullanarak SELECT komutunu kullanarak Access'te basit SQL sorgularının nasıl oluşturulacağını öğrendim.

Örnek SQL sorguları, MS Access'te SQL sorguları yazmayı öğrenmek ve pratik yapmak için kullanılabilir.

Bir SQL sorgusu diğerinin içine yerleştirilebilir. Alt sorgu, bir sorgu içindeki sorgudan başka bir şey değildir. Genellikle WHERE yan tümcesinde bir alt sorgu kullanılır. Ancak alt sorguları kullanmanın başka yolları da vardır.

Q011'i sorgulayın. Kodları m_income tablosunda da bulunan m_product tablosundaki ürünlerle ilgili bilgiler görüntülenir:

SEÇME *
m_product'DAN
WHERE id IN (m_income'dan ürün_id'sini SEÇİN);

Q012'yi isteyin. Kodları m_outcome tablosunda bulunmayan m_product tablosundaki ürünlerin bir listesi görüntülenir:

SEÇME *
m_product'DAN
NEREDE id NOT IN (m_outcome'dan ürün_id'sini SEÇİN);

Q013'ü isteyin. Bu SQL sorgusu, m_income tablosunda bulunan ancak m_outcome tablosunda bulunmayan ürün kodlarının ve adlarının benzersiz bir listesini görüntüler:

FARKLI ürün_kimliği, başlık SEÇİN
m_income INNER'DAN m_product'a katılın
AÇIK m_income.product_id=m_product.id
NEREDE ürün_kimliği DEĞİLDİR (m_outcome'dan ürün_kimliğini SEÇİN);

Q014'ü sorgulayın. Adları M harfiyle başlayan benzersiz bir kategori listesi m_category tablosunda görüntülenir:

FARKLI BAŞLIK SEÇİN
m_product'DAN
"M*" GİBİ başlık NEREDE;

Q015'i sorgulayın. Bir sorgudaki alanlar üzerinde aritmetik işlemler gerçekleştirmeye ve sorgudaki alanları (takma ad) yeniden adlandırmaya bir örnek. Bu örnekte, kârın satışların yüzde 7'si olduğu varsayılarak, her bir kalem gider girişi için gider = miktar*fiyat ve kâr hesaplanır:


miktar*fiyat/100*7 AS kâr
m_outcome'dan;

Q016'yı sorgulayın. Analiz edip basitleştirdikten sonra Aritmetik işlemler sorgu yürütme hızını artırabilirsiniz:

Sonuç_sum OLARAK dt, ürün_kimliği, tutar, fiyat, tutar*fiyat SEÇİN,
result_sum*0,07 AS karı
m_outcome'dan;

Q017'yi isteyin. Birden fazla tablodaki verileri birleştirmek için INNER JOIN deyimini kullanabilirsiniz. Aşağıdaki örnekte ctgry_id değerine bağlı olarak m_income tablosundaki her giriş, ürünün ait olduğu m_category tablosundaki kategorinin adıyla eşleştirilir:

c.başlık, b.başlık, dt, tutar, fiyat, tutar*fiyat AS gelir_sum'unu SEÇİN
FROM (m_income AS a INNER JOIN m_product AS b ON a.product_id=b.id)
INNER JOIN m_category AS c ON b.ctgry_id=c.id
SİPARİŞ BY c.başlık, b.başlık;

Q018'i isteyin. SUM - toplam, COUNT - miktar, AVG - aritmetik ortalama, MAX - maksimum değer, MIN - minimum değer gibi fonksiyonlara toplama fonksiyonları denir. Birçok değeri kabul ederler ve bunları işledikten sonra tek bir değer döndürürler. Tutar ve fiyat alanlarının çarpımının toplamının hesaplanmasına bir örnek toplama işlevi TOPLA.

Bu ders şunlara adanmıştır: SQL sorgularıüzerindeki veritabanına VBA Erişimi. Bunu VBA'da nasıl yapacağımıza bakacağız. INSERT sorguları, UPDATE, DELETE ve ayrıca bir SELECT sorgusundan belirli bir değerin nasıl alınacağını öğrenin.

Programlayanlar VBA Erişimi ve tabanla çalışırken SQL verileri sunucular genellikle INSERT, UPDATE veya basit bir SQL SELECT sorgusu olsun, bir veritabanına bir SQL sorgusu göndermek gibi basit ve gerekli bir görevle karşı karşıya kalır. Ve biz acemi programcılar olduğumuz için bunu da yapabilmeliyiz, o yüzden bugün tam da bunu yapacağız.

Bu verileri elde etmek için VBA'da kod yazdığımız SQL sunucusundan veri alma konusuna, örneğin MSSql 2008'den bir metin dosyasına veri yükleme hakkındaki makalede zaten değinmiştik veya bu konuya da değinmiştik. Access'ten Word ve Excel şablonuna veri yükleme konusunda materyalde çok az şey var, ancak öyle ya da böyle buna yüzeysel olarak baktık ve bugün bunun hakkında biraz daha ayrıntılı konuşmayı öneriyorum.

Not! Aşağıdaki örneklerin tümü Access 2003 ADP projesi ve MSSql 2008 veritabanı kullanılarak ele alınmıştır. Bir ADP projesinin ne olduğunu bilmiyorsanız, buna Access ADP projesi nasıl oluşturulur ve yapılandırılır adlı materyalde baktık.

Örnekler için kaynak verileri

Diyelim ki, yılın aylarının sayılarını ve adlarını içerecek bir test_table tablomuz var (sorgular kullanılarak yürütülür). Yönetim Stüdyosu)

HAREKET HALİNDE TABLO OLUŞTUR .( NULL DEĞİL, (50) NULL)

Daha önce de söylediğim gibi, MS SQL 2008 ile çalışacak şekilde yapılandırılmış, bir test formu oluşturduğum ve imzalı bir başlat düğmesi eklediğim bir ADP projesi kullanacağız. "Koşmak" kodumuzu test etmemiz gerekecek, yani. Tüm kodu olay işleyicisine yazacağız " Düğmeye basma».

VBA'da veritabanı sorguları INSERT, UPDATE, DELETE

Çok uzatmamak için hemen başlayalım, diyelim ki test tablomuza bir satır eklememiz gerekiyor ( kod yorumlandı)/

Private Sub start_Click() "Sorgu dizesini depolamak için bir değişken bildirin Dim sql_query As String "İhtiyacımız olan sorguyu buna yazın sql_query = "INSERT INTO test_table (id, name_mon) VALUES ("6", "June")" "Yürüt it DoCmd RunSQL sql_query End Sub

Bu durumda istek, geçerli veritabanı bağlantı parametreleri kullanılarak yürütülür. Verilerin eklenip eklenmediğini kontrol edebiliriz.

Gördüğünüz gibi veriler eklendi.

Bir satırı silmek için aşağıdaki kodu yazıyoruz.

Private Sub start_Click() "Sorgu dizesini depolamak için bir değişken bildirin Dim sql_query As String "Buna bir silme sorgusu yazın sql_query = "DELETE test_table WHERE id = 6" "Çalıştırın DoCmd.RunSQL sql_query End Sub

Kontrol ettiğimizde istenilen satırın silindiğini göreceğiz.

Verileri güncellemek için sql_query değişkenine yazın güncelleme isteği Umarım anlamı açıktır.

VBA'daki bir veritabanına sorguyu SEÇİN

Burada işler diğer SQL yapılarından biraz daha ilginç.

Öncelikle diyelim ki tablodaki tüm verileri almamız gerekiyor ve örneğin bunu işleyip bir mesajda göstereceğiz ve siz de elbette başka amaçlar için kullanabilirsiniz, bunun için aşağıdakileri yazıyoruz kod

Private Sub start_Click() "Değişkenleri bildir "Veritabanından bir dizi kayıt için Dim RS As ADODB.Recordset "Sorgu dizisi Dim sql_query As String "Bir mesajda özet verileri görüntülemek için dize Dim str As String "Kayıtlar için yeni bir nesne oluştur set RS = Yeni ADODB .Recordset "Sorgu satırı sql_query = "SELECT id, name_mon FROM test_table" "Sorguyu geçerli proje bağlantı ayarlarını kullanarak çalıştırın RS.open sql_query, CurrentProject.Connection, adOpenDynamic, adLockOptimistic "Değilken kayıtlar arasında döngü yapın ( RS.EOF) "Mesajı görüntülemek için değişkeni doldurun str = str & RS.Fields("id") & "-" & RS.Fields("name_mon") & vbnewline "sonraki kayda git RS.MoveNext Wend " Mesajın çıktısını alın msgbox str End Sub

Burada zaten kayıt kümemizdeki tüm değerleri yinelemek için VBA Access döngülerini kullanıyoruz.

Ancak çoğu zaman bir dizi kayıttan tüm değerleri değil, yalnızca bir tanesini, örneğin ayın adını koduna göre elde etmek gerekir. Ve bunu yapmak için döngü kullanmak biraz pahalıdır, bu yüzden yalnızca bir değer döndürecek bir sorgu yazıp ona erişebiliriz, örneğin, 5 kodunu kullanarak ayın adını alırız.

Private Sub start_Click() "Değişkenleri bildir" Veritabanından bir dizi kayıt için Dim RS As ADODB.Recordset "Sorgu dizesi Dim sql_query As String "Son değeri görüntülemek için dize Dim str As String "RS kayıt kümesi için yeni bir nesne oluşturun = Yeni ADODB.Recordset "Sorgu satırı sql_query = "SELECT name_mon FROM test_table WHERE id = 5" "Sorguyu geçerli proje bağlantı ayarlarını kullanarak çalıştırın RS.open sql_query, CurrentProject.Connection, adOpenDynamic, adLockOptimistic "Str = RS değerimizi alın. Alanlar(0) msgbox str End Sub

Evrensellik için, burada zaten hücre adına göre değil, indeksine göre ele aldık, yani. 0 ve bu ilk değerdir Kayıt kümesi, sonunda değeri elde ettik "Mayıs".

Gördüğünüz gibi her şey oldukça basit. Sık sık veritabanından belirli bir değer almanız gerekiyorsa ( son örnekte olduğu gibi), ardından tüm kodu ayrı bir işleve (VBA Access 2003'te bir işlev nasıl yazılır) tek bir giriş parametresiyle, örneğin ay koduyla ( örneğimizi düşünürsek) ve basitçe, bu değeri görüntülemenin gerekli olduğu yerde, ihtiyacımız olan işlevi gerekli parametreyle çağırın ve işte bu kadar, bunu yaparak VBA kodunu önemli ölçüde azaltacağız ve programımızın algısını iyileştireceğiz.

Hepsi bugün için. İyi şanlar!