SQL Dil Komutanlığı Yapısı. SQL Dil işlevselliği

  • 23.07.2019

Programlamada acemi misiniz yoksa SQL çalışmasından kaçındınız mı? Sonra istediğiniz adrese çarptınız, çünkü sonunda herhangi bir geliştirici bu istek dilini bilme ihtiyacı ile karşı karşıya kalır. Ana veritabanı tasarımcısı olmasın, ancak onlarla çalışmak neredeyse imkansız. Umarım Temel SQL sorgularının sözdizimine ilişkin bu kısa genel bakış, ilgilenen geliştiriciye ve ihtiyacı olan herkese yardımcı olacaktır.

SQL veritabanı nedir?

Yapılandırılmış sorgu dili ( S.terkedilmiş. S.uery. L.aguage) - ANSI tarafından desteklenen bir veritabanı ile iletişim standardı. En son sürüm SQL-99'dur, ancak yeni standart gelişiminde olmasına rağmen. Çoğu veritabanı, ANSI-92 standardına sıkıca yapışır. Daha modern standartların tanıtımı hakkında birçok tartışma vardı, ancak ticari veritabanlarının üreticileri bundan sapıyor, kayıtlı verilerin yeni manipülasyon kavramlarını geliştiriyor. Neredeyse her bireysel veritabanı, benzer bir standart ANSI'yı de olsa, benzersiz bir sözdizimi seti kullanır. Çoğu durumda, bu sözdizimi, temel standardın bir uzantısıdır, ancak böyle bir sözdizimi farklı veritabanları için çeşitli sonuçlara yol açtığında durumlar vardır. Her zaman iyi bir fikir, özellikle beklenmedik sonuçlar elde edilirse, veritabanı dokümantasyonunu görüntüleyecektir.

SQL ile ilk buluşuyorsanız, anlaşılması gereken temel kavramlarla tanışmanız gerekir.

Genel olarak, "Veritabanı" için ortak bir isimdir. ilişkisel veritabanı yönetim sistemi (RDBD). Bazı sistemler için, "veritabanı" ayrıca, benzer bir parçanın ayrılmaz bir parçası olan diğer benzer yapılardan bir grup tablo, veri, yapılandırma bilgisi ile ilgilidir. Bu durumda, SQL veritabanının her bir kurulumu birkaç veritabanından oluşabilir. Diğer sistemlerde, tablolar olarak bahsedilirler.

Tablo - oluşan veritabanı tasarımı sütunkapsamak teller veri. Tipik olarak, tablolar ilişkili bilgileri içerecek şekilde oluşturulur. Aynı veritabanı içinde, birkaç tablo oluşturulabilir.

Her sütun, çalışanların kimlik numaraları, büyüme, makine rengi vb. Gibi bir nitelik veya bir dizi nesne öznitelikleridir. Genellikle terim sütun açısından kullanılır. alan Adıyla, örneğin "Ad alanında". Dize alanı minimum bir tablo elemanıdır. Tablodaki her sütun belirli bir adı, veri türü ve boyutuna sahiptir. Sütun adları tabloda benzersiz olmalıdır.

Her satır (veya kayıt), belirli bir nesnenin bir özelliğidir, örneğin, bir dize, bir dize, çalışanın bir tanımlama numarası, maaşının boyutu, doğumunun yılı vb. Masaların satırları isimleri yoktur. Belirli bir satıra atıfta bulunmak için kullanıcı, benzersiz bir şekilde tanımlanabilir bir miktar nitelik (veya bir dizi öznitelik) belirtmelidir.

Verilerle çalışırken gerçekleştirilen en önemli işlemlerden biri, bilgi veritabanında depolanan bir örnektir. Bunu yapmak için kullanıcı yürütülmeli soruşturma (Sorgu).

Şimdi veritabanındaki veri manipülasyonuna odaklanan ana veri tabanlarını düşünelim. Amaçlarımız için, tüm örnekler herhangi bir ortamla eşleştirmek için standart bir SQL'de verilmiştir.

Veri Türleri Türleri

SQL'de, sözde verilen dört ana veri sorgusu vardır. veri işleme dili (Veri Manipülasyonu Dili veya DML):

  • Seçmek - Tablolardaki satırları seçin;
  • Ekle. - Tabloya satır ekleyin;
  • Güncelleme. - Tablodaki satırları değiştirin;
  • Silmek. - Tablodaki satırları silin;

Bu isteklerin her birinin, verilerle ilgili bazı eylemler üretmek için kullanılan çeşitli operatörler ve fonksiyonlara sahiptir. Sorgunun en büyük seçeneklere sahip seçeneklerini seçin. Ayrıca, birleşme ve sendika gibi seçilenler ile kullanılan ek sorgular vardır. Ancak şimdiye kadar, yalnızca ana taleplere odaklanacağız.

İstediğiniz verileri seçmek için İsteğini kullanarak

Veritabanında depolanan bilgi almak için İstek'yı seçin. Bu talebin temel etkisi aynı tablola sınırlıdır, ancak aynı anda birkaç tablodan bir örnek sağlayan yapılar bulunur. Belirli sütunlar için tüm veri satırlarını elde etmek için, bu tür için bir istek kullanılır:

SOGK1, SOGK1, SOG32 table_name;

Ayrıca, bir joker karakter kullanarak tüm sütunları masadan alabilirsiniz *:

Seçin * table_name;

Bu, durumun nerede olduğu gibi verileri seçeceğinizde faydalı olabilir. Aşağıdaki sorgu, tüm sütunları "sütun1" olan "3" değerini içerdiği tüm satırlardan iade edecektir:

(Eşit) ek olarak, aşağıdaki şartlı operatörler vardır:

Ek olarak, durumun nerede olduğu ve operatörlerin kombinasyonları ile karşılaştırılması için BITWEEN ve benzeri koşulları kullanabilirsiniz.

Rusça'ya çevrilmiş olan şu anlama gelir: Yaş sütununun değerinin 18'den büyük veya ona eşit olduğu ve aynı zamanda SONNAME sütun değerinin Ivanov'tan Sidorov'a kadar alfabetik aralıkta bulunduğu, Table_Name tablosundan tüm satırları seçin. Veya Şirket sütun değeri Motorola'dır.

Yeni veri eklemek için Ekle sorgusunu kullanarak

Ekle isteği için kullanılır oluşturmak Yeni çizgi verileri. Halen mevcut verileri veya boş dize alanlarını güncellemek için, güncelleme talebini kullanmanız gerekir.

Yaklaşık Ekleme Sorgu Sözdizimi:

Table_name (sütun1, sütun 2, sütun3) değerlerine ("Data1", "Data2", "Data3") içine yerleştirin;

Tablo sütunlarının bulunduğu sıraya tüm değerleri ekleyecekseniz, o zaman sütunların adlarını belirleyemezsiniz, ancak okunabilirlik için tercih edilir. Ek olarak, sütunları listeliyorsanız, veritabanında sırayla onları belirtmeniz gerekli değildir, girdiğiniz değerler bu siparişe karşılık gelir. Bilgilerin girilmediği sütunları listelemek zorunda değilsiniz.

Zaten veritabanındaki mevcut bilgiler çok benzer şekilde değişir.

Güncelleme talebi ve durum nerede

Güncelleme, mevcut değerleri değiştirmek veya dizgedeki alanı boşaltmak için kullanılır, bu nedenle yeni değerler mevcut veri türüne uymalı ve kabul edilebilir değerler sağlar. Değerleri tüm satırlarda değiştirmek istemiyorsanız, durumun nerede kullanılması gerekir.

Değiştirmek istediğiniz kişi de dahil olmak üzere herhangi bir sütun için nerede kullanabilirsiniz. Belirtilen bir değeri diğerine değiştirmeniz gerektiğinde kullanılır.

Dikkatli ol! İsteği silme tüm çizgileri siler

Sil isteği, veritabanından bir satırı tamamen çıkarır. Tek bir alanı silmek istiyorsanız, güncelleme sorgusunu kullanmanız ve bu alanın değerini programınızdaki NULL analogu olarak ayarlamanız gerekir. Dikkatli olun ve silme isteğinizi nerede, aksi takdirde tablonun tüm içeriğini kaybedebilirsiniz.

Dize veritabanınızdan kaldırıldıktan sonra, iyileşmeye tabi değildir, bu nedenle "ISACTION" adlı bir sütunun veya bu satırdan veri sunumunu engelleyeceğini gösterecek sıfır olarak değiştirebileceğiniz bir sütunun olması arzu edilir. .

Şimdi SQL isteklerinin temellerini biliyorsunuz

SQL - Veritabanı Dili ve veri sorgularında kullanılan en önemli ve temel komutları gözden geçirdik. Birçok temel kavramlar etkilenmedi (örneğin toplam ve sayım), ancak yukarıdaki listeyi yönetmeyi başaran az sayıdaki komut, sizi aktif olarak ve olağanüstü sorgu dilini SQL adı altında aktif olarak ve daha fazla dağıtmanıza teşvik etmelidir.

PHP ve Veritabanları

Büyük miktarda bilginin etkili depolanması ve örneklemesi, internetin başarılı gelişimine büyük katkı sağladı. Genellikle, veritabanları bilgi depolamak için kullanılır. Bu kadar iyi bilinen sitelerin Yahoo, Amazon ve Ebay olarak çalışması büyük ölçüde, büyük miktarda bilgi depolayan veritabanlarının güvenilirliğine bağlıdır. Tabii ki, veritabanı desteği sadece dev şirketlerin çıkarları için değil, veritabanlarının nispeten düşük bir fiyata (ve hatta ücretsiz olarak) dağıtılan birkaç güçlü uygulaması vardır.

Veritabanının doğru organizasyonu daha hızlı ve esnek veri örnek yetenekleri sağlar. Arama ve sıralama araçlarının uygulanmasını büyük ölçüde basitleştirir ve bilgi erişim hakları sorunları, birçok veritabanı yönetim sisteminde (DBMS) bulunan ayrıcalıklar üzerinde kontrol araçları kullanılarak çözülür. Ek olarak, veri çoğaltması ve arşivleme işlemleri basitleştirilmiştir.

Bölüm, MySQL'deki verilerin örneklemesinin ve güncellenmesinin ayrıntılı bir açıklaması ile başlar - muhtemelen PHP'de kullanılan en popüler DBM'ler (http://www.mysql.com). Örnekte, MySQL, PHP'nin veritabanındaki verileri nasıl indirdiğini ve güncellenmesini nasıl aldığını gösterecektir; Birçok web uygulamasında kullanılan temel arama ve sıralama araçlarına bakacağız. Sonra PHP'de uygulanan ODBC desteğine (açık veri tabanı bağlantısı) - farklı DBMS ile aynı anda bağlanması için kullanılabilecek genelleştirilmiş bir arayüz. PHP'deki ODBC desteği, Microsoft Access veritabanından bir bağlantı ve veri örneklemenin bir örneğinde gösterilecektir. Bölüm, PHP ve MySQL DBMS'nin, favori sitelerle ilgili bilgilerle hiyerarşik bir katalog oluşturmak için kullanıldığı proje tarafından tamamlanmıştır. Katalogda yeni siteleri etkinleştirdiğinizde, kullanıcı bunları Site Yöneticisi tarafından tanımlanan standart kategorilerden birine ilişkilendirir.

MySQL'in tartışılmasına geçmeden önce, SQL hakkında birkaç kelime söylemek istiyorum - veritabanları ile çalışmak için en yaygın dil. SQL dili, mevcut tüm DBMS'lerin neredeyse tümüdür. Veritabanlarıyla çalışma örneklerini dikkate almaya devam etmek için, en azından genel olarak SQL'in nasıl çalıştığını temsil etmelisiniz.

SQL tipik olarak ilişkisel veritabanlarıyla etkileşimde bulunmak için kullanılan standart bir dil olarak tanımlanır (aşağıya bakınız). Ancak, SQL C, C ++ veya PHP olarak programlama dili değildir. Aksine, bu, kullanıcıya standart bir komut kümesi sağlayan, veritabanlarıyla çeşitli işlemleri yapmak için bir arayüz aracıdır. SQL yetenekleri, veritabanından bir örnek verilerle sınırlı değildir. SQL, aşağıdakileri içeren veritabanıyla etkileşim için çeşitli fırsatları destekledi:

  • veri yapısının tanımı- Verileri depolarken kullanılan yapıların belirlenmesi;
  • veri örneklemesi- Veritabanından veri yükleme ve onların görünüm bir formatta, çıktı için uygun;
  • veri işleme- Bilgileri ekle, güncelle ve sil;
  • giriş kontrolu- Örneği çözme / yasaklama, bireysel kullanıcıların seviyesindeki verileri ekleme, ekleme, güncelleme ve silme yeteneği;
  • veri bütünlüğü kontrolü- Problemler paralel güncellemeler veya sistem arızaları olarak gerçekleştiğinde veri yapısını kaydetme.

Not: SQL tanımında, bu dilin çalışacak şekilde tasarlandığı söylendi. ilişkiselveritabanları. İlişkisel DBMS'de, veriler birbirine bağlı tablo dizi olarak düzenlenir. Tablolar arasında diğer tablolara referans olarak uygulanır. Tabloher bir elemanın konumunun, satır ve sütunun belirli değerleri ile karakterize olduğu iki boyutlu bir dizi olarak hayal edebilirsiniz. Şekil 2'de ilişkisel bir veritabanının bir örneği gösterilmiştir. 11.1.

İncir. 11.1.Örnek ilişkisel veritabanı

Olarak Şekil l'de görülebilir. 11.1, her tablo (girişler) ve sütunlar (alanlar) oluşur. Her alan benzersiz bir şekilde atanır (bu tablonun çerçevesinde) adı. Ok ile gösterilen müşteri ve sipariş tabloları arasındaki bağlantıya dikkat edin. Sipariş bilgileri, isminin ve diğer müşteri detaylarının aşırı depolanmasını önleyen kısa bir müşteri tanımlayıcısı içerir. Veritabanında, siparişler ve ürünler tabloları arasında başka bir bağlantı var. Bu bağlantı, bu istemcinin sipariş ettiği ürün tanımlayıcısını (Custjd alanı tarafından tanımlanan) depolayan Prod_ID alanına ayarlanır. Bu bağlantıların varlığı, tam müşteri verilerine ve basit tanımlayıcılardaki mallara atıfta bulunmayı kolaylaştırır. Düzgün organize edilmiş bir veritabanı, minimum yedeklilik ile düzenlemek ve verimli veri depolama için güçlü bir araca dönüştürülür. Bu veritabanını hatırlayın, sık sık daha fazla örneklerde buna başvuracağım.

Peki, ilişkisel veritabanları olan işlemler nasıl yapılır? Bunu yapmak için, SQL'de, seçme, ekleme, güncelleme ve silme gibi özel bir ortak komut kümesi vardır. Örneğin, müşterinin e-posta adresini 2001CU tanımlayıcısıyla almanız gerekirse (bkz. Şekil 11.1), aşağıdaki SQL komutunu yürütmek için yeterlidir:

CustJD \u003d "2001CU" olan müşterilerden Cust_Email'i seçin.

Her şey oldukça mantıklı, doğru değil mi? Genelleştirilmiş bir formda, takım şöyle görünür:

Select_name_name name_table [nerede durum]

Kare parantezler, ekibin son bölümünün isteğe bağlı olduğu anlamına gelir. Örneğin, müşterilerin masalarından tüm müşterilerin e-posta adreslerini almak için, aşağıdaki sorguyu gerçekleştirmek için yeterlidir:

Müşterilerden Cust_Email'i seçin

Ürün tablosuna yeni bir giriş eklemek istediğinizi varsayalım. En basit ek takımı şuna benziyor:

Ürün değerlerine ("1009pr", "kırmızı domates", "1.43") ekleyin;

Daha sonra silinmesi gerekiyorsa, aşağıdaki komutu kullanın:

Prod_id \u003d 1009r ";

Çok sayıda SQL komutu var ve tam açıklamaları bu kitabın kapsamının ötesine geçiyor. Bu konu ayrı bir kitap yazılabilir! Örneklerde kullanılan SQL komutlarını nispeten basit, ancak oldukça gerçek olmaya çalıştım. Web'de, SQL'e adanmış birçok eğitim bilgisi ve kaynak vardır. Bazı bağlantılar bu bölümün sonunda gösterilmiştir.

SCRIBE SQL Komutları Üst Kayıt Sembolleri isteğe bağlıdır. Ancak, tam olarak böyle bir kaydı tercih ediyorum çünkü isteğin bileşenlerini ayırt etmeye yardımcı olur.

Bu kitabı okuduğunuzdan, muhtemelen web ortamındaki veritabanları ile çalışmanın nasıl organize edildiği soruyla ilgileniyorsunuzdur? Kural olarak, önce yardımı ile

arayüz dili (PHP, Java veya Perl), bir veritabanı bağlantısı oluşturur, ardından programın standart bir fon kümesini kullanarak istekleri olan veritabanını belirtir. Arabirim dili, veritabanını Web'den bağlayan bir tür "tutkal" olarak görülebilir. Favori arayüz dilime dönüyorum - PHP.

SQL, yapılandırılmış bir sorgu dilidir. SQL veritabanları olmadan yoktur - üzerinde program yazmak imkansızdır ve bu anlamda, pHR gibi bir programlama dili değildir, ancak belirli bir DBMS ile ilgilenmeniz gerektiğinde, SQL bilgisi olmadan artık yapılmadığında . Basit istekleri yazabilirsiniz ve birkaç karmaşık sorgudan oluşan büyük işlemler yapabilirsiniz. SQL Query, veritabanına bir tür komuttur. Böyle bir komut, belirli kriterlere göre düşen bilgileri iade edebilir veya herhangi bir girişleri silmek vb. SQL komutu basit bir dizedir, örneğin:

Bölümün nerede olduğu personelden * seçin

SQL sorguları genellikle İngilizce'de basit bir ifadeye yakındır. Yukarıdaki komutu aşağıdaki gibi Rusça'ya çevrilebilir.

Clwjiertme'nin tüm personelini seçin "

Tamamen anlaşılabilir bir ekip, yalnızca İngilizce olarak yazıldığı bir acıtır. Böyle bir talebin yürütülmesinin bir sonucu olarak, DBM'ler tüm kayıtları Personel tablosundan iade edecektir, burada Gitti * MIT_ID alanının üçü. Örneğimize göre, bu sorgu aslında yalnızca çalışanların tüm tabanından programcıları seçer.

Daha önce DBMS ile çalışmadıysanız, makul bir sorunuz olabilir: Bu istek nerede ve nasıl yapılabilir? SQL sorgularını gerçekleştirmenin üç yolu vardır.

1. DBMS ile etkileşimli etkileşim ortamı. Çoğu DBMS sunucusu için, Müşteriler (üçüncü şahıslar tarafından yerleşik veya tedarik edilen), çalışma ortamında, SQL sorgularını yazabileceğiniz, bunları gerçekleştirebilir ve sonucu alabilirsiniz. Tipik olarak, bu tür fonlar veritabanı yöneticileri tarafından kullanılır ve doğrudan ilişkinin RNR programlamasına sahip değildir. MySQL ile çalışmak için bir istemci programının bir örneği MySQL yöneticisi (http: /www.mysgl.coin/ product-s / yönetici /) veya çok popüler bir phpmyadmin RNR sistemi (http: / / www. Phpmyadi'ln. R »ET / İTUMM KOYA / Dizin. PHP). Çalışmaya başlamak için, konsol arayüzüne sahip olan yeterince kurulu bir dağıtım olacaktır. Linux'ta, SQL sorgularını girmek için davetiye penceresini açmak için MySQL komutunu komut satırından çevirmeniz gerekir ve Windows'ta aynı arabirimi başlatmak için MySQL dosyasını başlatmanız gerekir. Bin kataloğundan EXE.

2. Statik SQL sorguları. Tipik olarak, bu tür talepler, veritabanlarında depolanan prosedürlerin içinde kendileri veya uygulamalarda sert bir şekilde flaşın içinde öngörülmektedir. Statik bir SQL sorgusu önceden tanımlanır ve yalnızca elle manuel olarak program koduna veya saklı yordamaya karşılık gelirse değişiklikler. RNR'den böyle bir SQL sorgusu aşağıda tartışılacak özel işlevler kullanılarak gerçekleştirilir.

3. Dinamik SQL sorguları. Bu tür bu tür talepleri içerir, bir uygulama yazarken çavdar tamamen belirlenemez. Ben "Örnek olarak," MT, çeşitli kurumsal bölümler programcı bilmiyor, CI "\u003e Şirket hakkında bir ünite olacak ve burada çalışanların burada olacağı birim olacak. Tabii ki bu veriler, bu veriler Programda öngörülebilir, ancak Şirketin yapısındaki ilk değişiklik, yeniden yazmanız gerekip gerekmediğine göre program atılabilir. Dinamik sorgular, veri değişikliklerine esnek bir gram oluşturmanıza izin verir. RNR'de , bu tür talepler pratik olarak statik olarak aynı fonksiyonlarla gerçekleştirilir, yalnızca bunlarda G '"^'\u003e \u003e\u003e Bazı parametreleri iletme yeteneğidir.

Bir özet olarak, yukarıda açıklanan üç madde, SQL sorgularının özel idari programlardan veya PNP komut dosyalarından çeşitli şekillerde yürütüldüğü söylenebilir.

DBMS birçok görevi çözdüğünden, SQL de çok dilli bir dil olmak zorunda kalır. Yapabilecek birkaç işlem türü vardır.< \ ществлять с помощью SQL.

1. Veritabanı yapısını belirlemek. Bu tür, tabloların ve dizinlerin oluşturulduğu ve değiştirildiği istekleri içerir. Genellikle CRE; "E 'le, ali'r ta' le, '" .. Endeks ve diğerleri.

2. Veri manipülasyonu. Bu tür, tablolardaki verileri silmek veya değiştirmek, sorguları (DV1 * ve\u003e döşeme) içerir. Bunlar üç ana komuttur. Sil ve güncelleme.

3. Veri örneklemesi Bu, yalnızca bir seçim komutunu içerir. Verilerin kendisinde değişiklik yapmaz, ancak bunları veritabanından almanızı sağlar. Sadece bir komutun verilere örnekleme için kullanılması gerçeğine rağmen, çok büyük fırsatlara sahiptir ve uygulamalarda çok sık kullanılır.

4. DBMS sunucusunun yönetimi. Bu tip temel olarak kullanıcıları ve erişim haklarını yönetmek için sorguları içerir (örneğin, bir hibe komutu).

SQL hakkında iyi bilgi, veritabanıyla çalışırken programcının çalışmasını büyük ölçüde kolaylaştırır. Uygulamalar küçük olabilir, ancak yalnızca birçok görevin SQL alacağı gerçeğinden dolayı büyük bir işlevselliğe sahiptir.

Başka bir BT alanında olduğu gibi, SQL'de standartlar var - bu ANSI SQL. ANSI kısaltması, Ambian Ulusal Standartları Enstitüsü (Amerikan Ulusal Standartları Enstitüsü) olarak şifresi çözülür. Bununla birlikte, en azından, SQL uygulamasının DBM'lerinin işlevselliğindeki farklılık nedeniyle, çeşitli

DBMS hala birbirinden farklıdır. Şu anda, hemen hemen her DBMS, genellikle genel standarttan çok farklı olmayan, ancak kendi özelliklerine sahip olan kendi lehçesi vardır. Örneğin, Oracle ve PostgreSQL ile, PL / SQL dili uyumludur ve T-SQL, MS SQL Server ile çalışmak için kullanılır.

Veritabanlarıyla sonraki çalışma için, hemen gelecekte çalışmayı planladığınız standardı derhal incelemenizi öneririz. Çoğu web geliştiricisi için, şu an kafayla, MySQL DBM'lerin işlevselliği (yanı sıra, ücretsiz olarak kullanılabilir), bu nedenle bu kitapta, bu DBMS'nin lehçesinde, MySQL'li tüm örnekler verilecektir. MySQL için sorgu sorgusu için belgeler www.mysql.com adresinde bulunabilir.

Çeşitli türlerin çok sayıda bilgisayar sisteminde çalışabilecek veritabanları. Gerçekten de, kullanıcılar, kişisel bir bilgisayarda, bir ağ iş istasyonu veya evrensel bir bilgisayarda olup olmadığına bakılmaksızın verileri manipüle edebilir.

Bir ilişkisel veri modelinin gelişmesinin bir sonucu olarak ortaya çıkan dillerden biri, şu anda çok yaygınlaşan ve aslında çevrilmiş olan SQL dili (yapılandırılmış sorgu dili). standart dil İlişkisel Veritabanları. Standart SQL dili, 1986 yılında Amerikan Ulusal Standartlar Enstitüsü (ANSI) tarafından yayınlandı ve 1987'de uluslararası standartların (ISO) organizasyonu uluslararası bir olarak kabul etti. Mevcut SQL standardı, SQL / 92 olarak adlandırılır.

Herhangi bir standart kullanımı ile sadece çok sayıda ve oldukça açık avantajlar bağlanmaz, aynı zamanda bazı dezavantajlardır. Her şeyden önce, standartlar ilgili endüstriyi geliştirmek için belirli bir yöne gönderilir; SQL dili durumunda, katı temel ilkelerin varlığı, nihayetinde çeşitli uygulamalarının uyumluluğuna ve her ikisinin de genel olarak yazılım ve veritabanlarının taşınabilirliğini ve veritabanı yöneticilerinin çalışmalarının evrenselliğini geliştirmeye katkıda bulunur. Öte yandan, standartlar belirli bir uygulamanın esnekliğini ve işlevselliğini sınırlar. Altında dil Uygulama SQL, ilgili üreticinin SQL yazılım ürünü tarafından anlaşılmaktadır. İşlevselliği genişletmek için, pek çok geliştirici kabul edilen standartlara bağlı olarak eklenir. standart dil SQL farklı uzantılar. Standartların tamamlanmış herhangi bir şekilde gerektiğine dikkat edilmelidir. dil Uygulamaları SQL Belirli özelliklerin varlığı ve genel olarak, yalnızca tüm rakip uygulamalar arasında uyumluluğa yol açan, ancak SQL ve kullanıcıların önemi arasındaki artışa katkıda bulunmayan ana eğilimleri yansıtır. İlişkisel Veritabanları Modern yazılım pazarında.

Tüm özel dil Uygulamaları Birbirinden biraz farklı. Üreticilerin çıkarlarına, uygulamalarının, kullanıcıların taşınabilirliği ve kolaylığı açısından modern ANSI standartlarına uymalarını sağlayın. Bununla birlikte, her SQL uygulaması, bir veritabanı sunucusunun gereksinimlerini karşılayan geliştirmeler içerir. SQL dilinin bu gelişmeleri veya uzantıları, standart pakete eklenen ve bu özel uygulamada mevcut olan ek komutlar ve seçeneklerdir.

Halen, SQL dili, kişisel bilgisayarlardan değişen ve minframes ile biten çok çeşitli bilgisayar platformları için geliştirilen çeşitli türlerin birçok düzine DBM'si tarafından tutulur.

Tüm Veri Manipülasyonu, görünümden önce birçok DBM için oluşturuldu. İlişkisel VeritabanlarıMantıksal dosya girişleri biçiminde sunulan veri işlemlerine odaklandı. Tabii ki, bu, depolama organizasyonu ve hangi verilerin gerekli olduğunu, nereye verildiklerini ve bunları nasıl elde edeceğini belirtmek için ayrıntılı bir bilgidir.

Söz konusu SQL dili, mantıklı ilişkili tablo setleri şeklinde sunulan veri işlemlerine odaklanmıştır. Yapılarının en önemli özelliği, bu işlemin prosedüründe olmayan, veri işleme sonu sonucuna yöneliktir. SQL dili, verilerin, indekslerin nerede olduğunu ve hatta sonuçları elde etmek için en etkili işlemlerin ne olduğunu belirler ve bu nedenle bu parçaları veritabanı isteğinde belirtmesi gerekmez.

Müşteri sunucu teknolojisine giriş

Bilgi Hizmetleri Pazarı'nın genişlemesiyle bağlantılı olarak, yazılım üreticileri giderek daha zeki ve bu nedenle çevresel yazılım komplekslerini üretmeye başladı. Birçok kuruluş ve bireysel kullanıcılar genellikle satın alınan ürünleri kendi bilgisayarlarına yerleştiremedi. EMM ağları, bilgi alışverişinde bulunmak ve dağıtımı ve programları genelleme ve verileri özel dosya sunucularına yüklemeye başladı.

Dosya sunucularıyla çalışan DBMS sayesinde birçok kullanıcı aynı veritabanlarına erişebilir. Kuruluşların çeşitli otomatik yönetim sistemlerinin geliştirilmesini basitleştirir. Bununla birlikte, bu yaklaşımla, taleplerin tümü programlardan veya kullanıcı tanımlı terminallerden işlenmesi, bunlar üzerinde gerçekleştirilir, bu nedenle, basit bir sorguyu bile uygulamak veya tüm dosyaları yazmak için bir dosya sunucusundan tüm dosyaları okumak için gereklidir. Bu, çatışma durumlarına ve ağ aşırı yüklemesine yol açar. Bu eksiklikleri ortadan kaldırmak için önerildi teknoloji İstemci SunucusuAncak aynı zamanda sunucu ile tek bir iletişim aldı - seçim SQL'e düştü.

Teknoloji İstemci Sunucusu Birleşik bir sistem oluşturdukları program bileşenlerinin etkileşimi için böyle bir yöntem anlamına gelir. İsminden görülebileceği gibi, belirli kaynaklar gerektiren belirli bir müşteri süreci vardır. sunucu işlemibu kaynakların sağladığı. Mutlaka bir bilgisayarda oldukları mutlaka değil. Genellikle, sunucuyu yerel ağın bir düğümüne ve diğer düğümlerdeki müşterileri yerleştirmesidir.

Veritabanı bağlamında, müşteri kullanıcı arayüzü ve uygulama mantığını yönetir, veri tabanı uygulamalarının yapıldığı bir iş istasyonu olarak hareket eder. Müşteri kullanıcıdan bir istek alır, sözdizimini kontrol eder ve veritabanına, SQL veya diğer veritabanı dilinde uygulama mantığına karşılık gelen bir istek oluşturur. Ardından mesajı sunucuya iletir, yanıtı bekler ve bunları kullanıcıya temsil etmek için elde edilen verileri biçimlendirin. Sunucu, veritabanı isteklerini alır ve işler, ardından sonuçları müşteriye geri gönderir. Bu işleme, bir müşteri yetki kontrolü, dürüstlük gereksinimlerini ve sorgunun yürütülmesini ve verilerin güncellenmesini sağlar. Ayrıca, paralellik ve iyileşmeyi yöneterek desteklenir.

Mimarlık istemcisi sunucusunun çok sayıda avantajı vardır.

Bu bölümde ...

  • SQL nedir
  • SQL ile ilgili sanrılar
  • Farklı SQL standartlarına bakın
  • Standart ekiplerle tanışma ve ayrılmış kelimeler SQL
  • Sayıları, sembolleri, tarihleri, zamanları ve diğer verileri görüntüleyin
  • Belirsiz değerler ve kısıtlamalar
  • Müşteri / Sunucu Sisteminde SQL Kullanımı
  • SQL Online

Sql - Bu, birçok şekilde kullanılabilecek esnek bir dildir. İlişkisel veritabanıyla iletişim kurmak için kullanılan en yaygın araçtır. Bu bölümde, SQL'in ne olduğunu ve özellikle de SQL'in diğer türlerin bilgisayar dillerinden farklı olduğunu açıklayacağım. O zaman standart SQL'yi destekleyen veri komutları ve türleri ile tanışacaksınız. Ayrıca, böyle temel kavramları açıklayacağım. belirsiz değerler ve kısıtlamalar. Ve Son olarak, SQL'in istemci / sunucu ortamına ve internet ve intranet organizasyon ağlarına nasıl uyduğuna genel bir bakış.

SQL nedir ve ne değil

SQL hakkında anlayacak ilk şey bu dil değil prosedürelFortran, Basic, C, COBOL, Pascal ve Java gibi. Görevi bu prosedürel dillerden birinin yardımıyla çözmek için, görev tamamlanıncaya kadar bir tane belirtilen işlemlerle gerçekleştiren bir prosedür yazmanız gerekir. Prosedür bir doğrusal bir sekans olabilir veya dallanma içerebilir, ancak her durumda programcı yürütme prosedürünü gösterir.

Başka bir deyişle, SQL nekrotik dil. Görevi çözmek için lütfen SQL bilgilendirin, tam olarak ne Aladdin'in lambasından cinlerle konuştuğunuz gibi ihtiyacınız var. Ve aynı zamanda konuşmuyor, nasıl Ne istediğini senin için al. Veritabanı Veritabanı Yönetim Sistemi (DBMS), isteğinizin nasıl yerine getirileceğine karar verecektir.

Tamam. Sadece SQL'nin prosedürel bir dil olmadığını söyledim. Özünde, doğru. Bununla birlikte, etrafındaki milyonlarca programcı (ve bunlardan birinden birine sahip olabilirsiniz) usule ilişkin sorunları çözmek için alışmıştır, bu nedenle son yıllarda bazı usul yetenekleri ile SQL'yi takviye etmek için önemli bir baskı olmuştur. Bu nedenle, şimdi SQL spesifikasyonunun yeni sürümünün bir parçası olarak, SQL: 2003, operatörler, fonksiyonlar ve prosedürler varsa, bloklar, koşullu gibi prosedür araçları vardır. Bu yeni fonlar sayesinde, birçok kullanıcının bunları yeniden kullanabilmesi için sunucudaki programları saklayabilirsiniz.

Demek istediğimi göstermek için, "Sistemi tam olarak ihtiyacınız olanı bilgilendirin" dedim, çalışanların çalışanlarla ilgili verileri olan ve tüm "kıdemli" çalışanlarına karşılık gelen tüm satırları seçmek istediğinizi varsayalım. "Kıdemli" işçiler altında, herkes 40 yaşından büyük herkes ya da yılda 80.000 dolardan fazla alan herkes anlamına gelebilir. İhtiyacınız olan örnek, aşağıdaki sorgu kullanılarak yapılabilir:

SEÇ\u003e 40 veya maaş\u003e 60000;

Bu operatör, Çalışan tablosundan seçer. Tüm çizgilerin, yaş sütununun (yaş) 40'ın üzerinde veya maaş sütununda (maaş) değerinin 60000'den fazla olduğunu veya değerinin 60000'den fazla olduğunu veya değerinden birini seçer. Veritabanı çekirdeği veritabanını kontrol eder ve kendisi için bir çözüm oluşturur. Sizden gereken tek şey, hangi verilerin ihtiyacınız olduğunu belirtmektir.

Hatırlamak:
Bir sorgu, veritabanını belirttiğiniz bir sorudur. Verilerinden herhangi biri isteğinizin koşullarını yerine getirirse, SQL onları size iletir.
.

Modern uygulamalarda, SQL, diğer birçok dil için temel olan birçok basit yazılım yapısından yoksundur. Günlük yaşam için başvurularda, kural olarak, en azından bu yapılardan bazıları gereklidir, bu yüzden SQL aslında poz veriyor subanguage veri. SQL'de SQL standardıyla birlikte ortaya çıkan takviyeler bile var: 1999 ve SQL: 2003'e eklenen ek uzantılar, yine de S. gibi yazılım dillerinden birini kullanmak için tam bir uygulama oluşturmaktır.

Veritabanından gelen bilgileri aşağıdaki yöntemlerden birinde seçebilirsiniz.

  • Bilgisayar konsolundan, SQL komutunu giren ve ekrandaki yürütmesinin sonuçlarını okuyarak, bilgisayar konsolundan bir prografsız sorgu kullanarak. Konsol, klavyenin çalışmasını ve modern PC'lerde kullanılan ekranı uygulayan bilgisayar ekipmanları anlamına gelen geleneksel bir terimdir. Konsoldan gelen talepler, belirli bir talebe hızlı bir cevap gerektiğinde uygundur. Mevcut herhangi bir ihtiyacı karşılamak için, veritabanından daha önce hiç gerekli olmadığı verilere ihtiyacınız olabilir. Belki artık size asla ihtiyaç duymayacaklar, ama şimdi onlar gerekli. Klavyedeki karşılık gelen SQL sorgusunu girin ve bir süre sonra sonuç ekranınızda görünecektir.
  • Veritabanından bilgi alan bir programı kullanarak ve ardından bu veri çıkışına veya ekranda veya yazdırmaya dayanan bir rapor oluşturur. SQL dili böylece kullanılabilir. Gelecekte hala kullanışlı olabilecek karmaşık bir SQL sorgusu doğrudan programa yerleştirilebilir. Bu, gelecekte tekrarlamanızı sağlar. Böylece, istek formülasyonu bir kez yapılır. SQL kodunu başka bir dilde yazılmış bir programa eklenecek Bölüm 15'te açıklanmıştır.