bahasa pengaturcaraan SQL. Apakah itu "pengguna"? Sekatan lain – UNIK, LALAI, SEMAK

Dalam bab ini...

SQL ialah bahasa yang fleksibel yang boleh digunakan oleh kebanyakan orang cara yang berbeza. Ia adalah alat yang paling biasa digunakan untuk berkomunikasi dengan pangkalan data hubungan. Dalam bab ini, saya akan menerangkan apa itu SQL dan apa yang bukan, khususnya bagaimana SQL berbeza daripada bahasa komputer jenis lain. Kemudian anda akan menjadi biasa dengan arahan dan jenis data yang disokong oleh SQL standard. Selain itu, saya akan menerangkan konsep asas seperti nilai yang tidak ditentukan Dan sekatan. Akhir sekali, gambaran keseluruhan akan diberikan tentang cara SQL sesuai dengan persekitaran klien/pelayan, serta Internet dan intranet organisasi.

Apa itu SQL dan apa itu bukan

Perkara pertama yang perlu difahami tentang SQL ialah ia bukan a prosedural seperti FORTRAN, Basic, C, COBOL, Pascal dan Java. Untuk menyelesaikan masalah menggunakan salah satu bahasa prosedur ini, anda perlu menulis prosedur yang melaksanakan operasi tertentu satu demi satu sehingga tugasan selesai. Prosedur mungkin urutan linear atau mengandungi percabangan, tetapi dalam mana-mana kes pengaturcara menentukan susunan pelaksanaan.

Dengan kata lain, SQL adalah bukan prosedur lidah. Untuk menggunakannya untuk menyelesaikan masalah, beritahu SQL, Apa sebenarnya anda memerlukannya seolah-olah anda bercakap dengan jin dari lampu Aladdin. Dan pada masa yang sama tidak perlu mengatakan, bagaimana dapatkan apa yang anda mahukan. Sistem pengurusan pangkalan data (DBMS) akan memutuskan cara terbaik untuk memenuhi permintaan anda.

baik. Saya hanya mengatakan bahawa SQL bukan bahasa prosedur. Pada dasarnya, ini adalah benar. Walau bagaimanapun, berjuta-juta pengaturcara di sekeliling (dan anda mungkin salah seorang daripada mereka) terbiasa menyelesaikan masalah secara prosedur, jadi dalam tahun lepas Terdapat banyak tekanan untuk menambah beberapa keupayaan prosedur pada SQL. Oleh itu, kini dimasukkan versi baru Spesifikasi SQL, SQL:2003, terdapat alat bahasa prosedur seperti blok BEGIN, kenyataan bersyarat JIKA, fungsi dan prosedur. Dengan alatan baharu ini, atur cara boleh disimpan pada pelayan supaya ia boleh digunakan semula oleh ramai pengguna.

Untuk menggambarkan apa yang saya maksudkan apabila saya berkata "beritahu sistem dengan tepat apa yang anda perlukan", katakan anda mempunyai jadual PEKERJA dengan data pekerja dan anda mahu memilih semua baris daripadanya yang sepadan dengan semua pekerja "kanan". Pekerja "Senior" boleh ditakrifkan sebagai sesiapa sahaja yang berumur lebih dari 40 tahun atau yang memperoleh pendapatan lebih daripada $60,000 setahun. Pemilihan yang anda perlukan boleh dibuat menggunakan pertanyaan berikut:

PILIH * DARI PEKERJA DI MANA BERUMUR >40 ATAU GAJI >60000;

Penyata ini memilih daripada jadual PEKERJA semua baris di mana nilai lajur UMUR (umur) lebih besar daripada 40 atau nilai lajur GAJI (gaji) lebih besar daripada 60000. SQL sendiri tahu cara memilih maklumat. Enjin pangkalan data menyemak pangkalan data dan memutuskan sendiri bagaimana pertanyaan harus dilaksanakan. Apa yang anda perlu lakukan ialah menunjukkan data yang anda perlukan.

Ingat:
Pertanyaan ialah soalan yang anda ajukan kepada pangkalan data. Jika mana-mana datanya sepadan dengan syarat permintaan anda, maka SQL menyerahkannya kepada anda
.

Pelaksanaan SQL moden kekurangan banyak binaan pengaturcaraan mudah yang asas kepada kebanyakan bahasa lain. Dalam permohonan untuk Kehidupan seharian biasanya sekurang-kurangnya beberapa binaan ini diperlukan, jadi SQL sebenarnya subbahasa data. Walaupun dengan penambahan yang muncul dalam SQL bersama dengan standard SQL: 1999 dan sambungan tambahan ditambah dalam SQL:2003, anda masih perlu menggunakan salah satu daripada yang berikut bersama-sama dengan SQL untuk mencipta aplikasi yang lengkap. bahasa program, seperti S.

Anda boleh memilih maklumat daripada pangkalan data dalam salah satu cara berikut.

  • Menggunakan pertanyaan sekali sahaja, tidak boleh diprogramkan daripada konsol komputer, memasukkan arahan SQL dan membaca hasil pelaksanaannya pada skrin. Konsol ialah istilah tradisional yang bermaksud kelengkapan komputer, yang melaksanakan kerja papan kekunci dan skrin yang digunakan dalam PC moden. Pertanyaan konsol berguna apabila anda memerlukan respons pantas kepada permintaan tertentu. Untuk memenuhi beberapa keperluan semasa, anda mungkin memerlukan data daripada pangkalan data yang tidak pernah diperlukan sebelum ini. Anda mungkin tidak memerlukannya lagi, tetapi anda memerlukannya sekarang. Masukkan pertanyaan SQL yang sesuai dari papan kekunci, dan selepas beberapa ketika hasilnya akan muncul pada skrin anda.
  • Menggunakan program yang mendapatkan semula maklumat daripada pangkalan data dan kemudian mencipta laporan berdasarkan data ini, sama ada dipaparkan pada skrin atau dicetak. SQL juga boleh digunakan dengan cara ini. Sukar Pertanyaan SQL, yang mungkin masih berguna pada masa hadapan, boleh diletakkan terus ke dalam program. Ini membolehkan anda menggunakannya semula pada masa hadapan. Oleh itu, rumusan pertanyaan dilaksanakan sekali. Bab 15 merangkumi cara memasukkan kod SQL ke dalam atur cara yang ditulis dalam bahasa lain.

Setiap arahan SQL bermula dengan kata kunci, kata kerja yang menerangkan tindakan yang dilakukan oleh arahan, seperti CREATE. Satu pasukan boleh mempunyai satu atau lebih ayat. Ayat itu menerangkan data yang digunakan oleh perintah atau mengandungi maklumat yang menjelaskan tentang tindakan yang dilakukan oleh arahan itu. Setiap klausa bermula dengan kata kunci, seperti WHERE Beberapa klausa dalam arahan diperlukan, yang lain tidak. Sesetengah ayat mungkin mengandungi kata kunci dan ungkapan tambahan. Banyak ayat termasuk nama jadual atau medan. Nama mestilah antara 1 dan 18 aksara, bermula dengan huruf, tidak mengandungi ruang dan Simbol khas tanda baca. Kata kunci tidak boleh digunakan sebagai nama.

52. SQL (Bahasa Pertanyaan Berstruktur) – Bahasa Berstruktur Permintaan- Ini bahasa standard permintaan untuk bekerja dengan pangkalan data hubungan data.

SQL tidak mengandungi pengendali tradisional, mengawal pelaksanaan program, ia hanya mengandungi satu set pengendali standard capaian kepada data yang disimpan dalam pangkalan data.

SQL boleh digunakan untuk mengakses pangkalan data dalam dua mod: kerja interaktif dan dalam program aplikasi .

Dengan menggunakan pengguna SQL mungkin dalam mod interaktif cepat mendapatkan jawapan kepada mana-mana, termasuk pertanyaan yang agak rumit, manakala untuk melaksanakan pertanyaan ini dalam bahasa lain adalah perlu untuk membangunkan program yang sepadan. Program aplikasi yang ditulis dalam bahasa pengaturcaraan tertentu menggunakan SQL sebagai terbina dalam bahasa untuk mengakses pangkalan data.

Mencirikan bahasa SQL secara keseluruhan, kami boleh menyerlahkan ciri berikut:

· struktur peringkat tinggi, mengingatkan Bahasa Inggeris;

· kebebasan daripada DBMS tertentu;

· ketersediaan piawaian pembangunan;

· keupayaan untuk melakukan pertanyaan interaktif untuk mendapatkan semula data dan mengubah suai strukturnya;

· peruntukan akses perisian kepada pangkalan data;

· sokongan seni bina klien/pelayan;

· kebolehlanjutan dan sokongan untuk teknologi berorientasikan objek;



· keupayaan untuk mengakses data di Internet.

Fungsi utama bahasa SQL:

SQL – bahasa pertanyaan interaktif. Pengguna masuk arahan SQL secara interaktif untuk mendapatkan semula data dan memaparkannya pada skrin, serta untuk membuat perubahan pada pangkalan data;

SQL – bahasa pengaturcaraan pangkalan data. Untuk mengakses pangkalan data, arahan SQL dimasukkan ke dalam program aplikasi;

SQL – bahasa pentadbiran pangkalan data. Pentadbir pangkalan data boleh menggunakan SQL untuk menentukan struktur pangkalan data dan mengawal akses kepada data;

SQL – bahasa aplikasi klien/pelayan. Dalam diaplikasikan program SQL digunakan sebagai alat untuk mengatur komunikasi rangkaian tempatan dengan pelayan pangkalan data yang menyimpan data kongsi, dsb.

55. Keupayaan bahasa Bahasa SQL, yang mematuhi standard terkini SQL:2003, SQL:1999, adalah bahasa yang sangat kaya dan Bahasa yang sukar, semua kemungkinan yang sukar untuk segera direalisasikan, apalagi memahami. Oleh itu, kita perlu memecahkan bahasa kepada peringkat. Dalam salah satu klasifikasi yang disediakan oleh standard SQL, bahasa ini dibahagikan kepada tahap "asas" (masuk), "perantaraan" (pertengahan) dan "penuh". Tahap asas mengandungi kira-kira empat puluh perintah yang boleh dikumpulkan ke dalam kategori mengikut fungsinya.

BUAT Butiran JADUAL (NOMZ INT, NAMA PENUH CHAR(15), TAHUN INT, JANTINA CHAR(3))

DROP TABLE Butiran

Ubah Butiran JADUAL (CONTOH CAR(10))

CIPTA PANDANGAN Kemajuan Akademik M1 SEBAGAI PILIH *DARI Prestasi Akademik WHERE GROUP= "M-1"

INSERT INTO Information NILAI (980101, "IVANOV I. I.", 1980, "HUSBAND")

PADAM DARI Butiran DI MANA NOMZ=980201

KEMASKINI SET Maklumat Nama penuh = "KRAVTSOVA I. I." DI MANA NOMZ=980201

PILIH * DARI Maklumat DI MANA NAMA PENUH="SIDOROV S. S." ATAU NAMA PENUH="PETROV P. P."

54. Jenis dan ungkapan data Untuk mengakses jadual hubungan dalam bahasa SQL anda perlu menulis (nyatakan) arahan. PILIH (pilih)kata kunci memberitahu DBMS tindakan yang akan dilakukannya perintah ini. Permintaan arahan bermula kata kunci. Selain SELECT, ini boleh menjadi perkataan CIPTA- mencipta, INSERT-masukkan, PADAM- padam, KOMITED- lengkap, dsb.

DARI – kata kunci seperti SELECT yang muncul dalam setiap arahan. Ia diikuti dengan ruang dan kemudian nama jadual yang digunakan sebagai sumber maklumat. Nama jadual dan medan mesti mengandungi daripada 1 hingga 18 aksara, bermula dengan huruf dan tidak mengandungi ruang atau aksara khas.

DI MANA kata kunci diikuti dengan predikat—syarat yang dikenakan pada entri jadual yang mesti dipenuhi untuk dimasukkan dalam pemilihan.

PERINTAH OLEH - pengisihan rekod yang dipaparkan (Asc – menaik, Desc – menurun. Jika jenis isihan tidak dinyatakan, maka isihan berlaku dalam tertib menaik).

CHAR(panjang) CHARACTER(panjang)Rentetan aksara panjang malar

INTEGER INTNombor bulat

KECILInteger kecil

NUMERIC(ketepatan, darjah) PERPULUHAN(ketepatan, darjah DEC(ketepatan, darjah)Nombor mata tetap

FLOAT (ketepatan)Nombor titik terapung

Ketepatan bergandanombor dengan kunci terapung, ketepatan yang tinggi

Ungkapan dalam SQL digunakan untuk menentukan kriteria untuk memilih data atau menjalankan operasi pada nilai yang dibaca daripada pangkalan data. Ungkapan ialah urutan khusus medan pangkalan data, pemalar, fungsi yang disambungkan oleh pengendali.

Pemalar digunakan untuk menunjukkan nilai data tertentu. Pemalar titik tetap, sebagai contoh: 21 -375.18 62.3

Pemalar titik terapung, contohnya: 1.5E7 -3.14E9 2.5E-6 0.783E24

Pemalar rentetan mesti dimasukkan ke dalam petikan tunggal. Contoh pemalar sedemikian: "Minsk" "New York" "Ivanov I. I."

Tiada nilai(NULL). SQL menyokong pengendalian data yang hilang menggunakan konsep nilai yang hilang.

Kebanyakan DBMS berorientasikan SQL menyokong apa yang dipanggil agregat (jumlah) fungsi. Untuk kerap digunakan fungsi agregat Perkara berikut boleh disertakan:

· COUNT– bilangan nilai dalam lajur jadual;

· JUMLAH– jumlah nilai dalam lajur;

· AVG– min aritmetik bagi nilai dalam lajur;

· MAXnilai maksimum dalam lajur;

· MINnilai minimum dalam lajur.

Ungkapan berikut boleh digunakan: jenis operator:

· aritmetik: + (tambahan), - (tolak), * (pendaraban), / (bahagian);

· perhubungan: = (sama), > (lebih besar),< (меньше), >= (lebih besar daripada atau sama dengan),<= (меньше или равно), <>(tidak sama);

· pengusik otak: DAN(logik "DAN"), ATAU(logik "ATAU"), TIDAK(penafian logik);

56. Perintah Kawalan Transaksi membolehkan anda memastikan integriti pangkalan data.

Urus niaga SQL ialah beberapa arahan SQL berurutan yang mesti dilaksanakan sebagai satu unit.

Dalam bahasa SQL, pemprosesan transaksi dilaksanakan menggunakan dua arahan - KOMITED Dan KEMBALIKAN. Mereka menguruskan perubahan yang dibuat oleh sekumpulan pasukan. Pasukan KOMITED melaporkan kejayaan menyelesaikan transaksi. Ia memberitahu DBMS bahawa transaksi telah selesai, semua arahannya telah berjaya diselesaikan, dan tiada ketidakkonsistenan telah timbul dalam pangkalan data. Pasukan KEMBALIKAN melaporkan penyiapan transaksi yang tidak berjaya. Ia memberitahu DBMS bahawa pengguna tidak mahu menyelesaikan transaksi, dan DBMS harus membuang sebarang perubahan yang dibuat pada pangkalan data akibat daripada transaksi tersebut. Dalam kes ini, DBMS mengembalikan pangkalan data kepada keadaan sebelum transaksi dilaksanakan.

Pasukan KOMITED Dan KEMBALIKAN digunakan terutamanya dalam mod program, walaupun ia juga boleh digunakan secara interaktif.

57. Untuk mengakses arahan kawalan Ini adalah arahan untuk melaksanakan fungsi pentadbiran yang menetapkan atau membatalkan hak (keistimewaan) untuk menggunakan jadual pangkalan data dengan cara tertentu. Setiap pengguna pangkalan data mempunyai hak tertentu berhubung dengan objek pangkalan data.

Hak– ini adalah tindakan dengan objek yang boleh dilakukan oleh pengguna. Hak boleh berubah dari semasa ke semasa: yang lama boleh dibatalkan, yang baharu boleh ditambah. Hak berikut disediakan:

· INSERT – hak untuk menambah data pada jadual;

· KEMASKINI – hak untuk menukar data jadual;

· PADAM – hak untuk memadam data daripada jadual;

· RUJUKAN – hak untuk menentukan kunci utama.

58 Membenamkan bahasa dalam program aplikasi..Kepada terbina dalam Ini adalah arahan yang direka untuk melaksanakan akses kepada pangkalan data daripada program aplikasi yang ditulis dalam bahasa pengaturcaraan tertentu.

Terjemahan: Alexandr Pyramidin

Artikel ini memperkenalkan anda kepada struktur bahasa SQL, serta beberapa konsep umum seperti jenis medan data yang boleh terkandung dan beberapa kesamaran yang wujud dalam SQL. Anda tidak perlu mengingati setiap butiran yang dinyatakan dalam artikel ini. Ini hanyalah gambaran ringkas; banyak butiran diberikan supaya anda boleh merujuknya kemudian apabila anda menguasai bahasa tersebut.

Bagaimanakah SQL berfungsi?

SQL ialah bahasa yang direka khusus untuk pangkalan data hubungan (RDB). Ia melakukan banyak kerja yang perlu anda lakukan jika anda menggunakan bahasa pengaturcaraan tujuan umum seperti C. Untuk membentuk RDB dalam C, anda perlu bermula dari awal. Anda akan mentakrifkan objek yang dipanggil jadual yang boleh berkembang untuk mempunyai sebarang bilangan baris, dan kemudian mencipta prosedur tambahan untuk memasukkan dan mendapatkan nilai.

Jika anda ingin mencari beberapa rentetan tertentu, anda perlu mengikuti prosedur langkah demi langkah seperti berikut:

  • Pertimbangkan barisan meja.
  • Semak untuk melihat sama ada rentetan ini adalah salah satu rentetan yang anda perlukan.
  • Jika ya, simpan di suatu tempat sehingga seluruh jadual telah diperiksa.
  • Semak sama ada terdapat baris lain dalam jadual.
  • Jika ada, kembali ke langkah 1.
  • Jika tiada lagi baris, cetak semua nilai yang disimpan dalam langkah 3.

(Sudah tentu, ini bukan set sebenar arahan C, hanya logik langkah-langkah yang akan disertakan dalam program sebenar.) SQL akan melakukan semua ini untuk anda. Perintah dalam SQL boleh beroperasi pada semua kumpulan jadual sebagai satu entiti dan boleh memproses sebarang jumlah maklumat yang diekstrak atau diperoleh daripadanya sebagai satu unit.

Apakah yang ANSI lakukan?

Seperti yang kami katakan dalam Pengenalan, standard SQL ditakrifkan menggunakan kod ANSI (American National Standards Institute). SQL tidak dicipta oleh ANSI. Ini pada asasnya adalah ciptaan IBM. Tetapi syarikat lain melompat pada SQL serta-merta. Sekurang-kurangnya satu syarikat (Oracle) telah memenangi hak untuk memasarkan produk SQL daripada IBM.

Selepas beberapa program SQL yang bersaing muncul di pasaran, ANSI mentakrifkan piawaian yang harus dipatuhi. (Mentakrifkan piawaian sedemikian ialah fungsi ANSI.) Namun, selepas ini beberapa masalah muncul. Mereka timbul sebagai hasil daripada penyeragaman ANSI, dalam bentuk beberapa sekatan. Memandangkan ANSI tidak selalu mentakrifkan perkara yang paling berguna, program cuba mematuhi piawaian ANSI tanpa membenarkannya mengehadkannya terlalu banyak. Ini, seterusnya, membawa kepada ketidakkonsistenan rawak. Program pangkalan data biasanya menambah ciri tambahan pada ANSI SQL dan sering melonggarkan banyak sekatan. Oleh itu, varian ANSI biasa juga akan dipertimbangkan. Walaupun kami jelas tidak dapat merangkumi setiap pengecualian atau variasi, idea yang baik cenderung untuk diterima pakai dan digunakan dalam pelbagai program, walaupun apabila ia tidak ditakrifkan oleh piawaian ANSI. ANSI ialah sejenis standard minimum, dan anda boleh melakukan lebih daripada yang dibenarkan, walaupun anda mesti mengikut garis panduannya semasa melaksanakan tugas yang ditentukannya.

SQL interaktif dan bersarang

Terdapat dua SQL: Interaktif dan Bersarang. Untuk sebahagian besar, kedua-dua borang berfungsi sama, tetapi digunakan secara berbeza. SQL interaktif digunakan untuk berjalan terus pada pangkalan data untuk menghasilkan output untuk digunakan oleh pelanggan. Dalam SQL ini - apabila anda memasukkan arahan, ia akan dilaksanakan dengan serta-merta, dan anda boleh segera melihat output (jika ada).

SQL bersarang terdiri daripada arahan SQL yang diletakkan di dalam atur cara yang biasanya ditulis dalam bahasa lain (seperti COBOL atau PASCAL). Ini menjadikan program sedemikian lebih berkuasa dan berkesan.

Walau bagaimanapun, membenarkan bahasa ini disertakan dengan struktur SQL dan gaya pengurusan data yang memerlukan beberapa sambungan SQL interaktif. Menghantar arahan SQL ke dalam SQL bersarang "diluluskan" untuk pembolehubah atau parameter yang digunakan oleh program di mana ia bersarang.

Dalam buku ini, kami akan membentangkan SQL secara interaktif. Ini akan memberi kita keupayaan untuk membincangkan arahan dan tindakannya tanpa perlu risau tentang cara ia disambungkan dengan bahasa lain. SQL Interaktif ialah bentuk yang paling berguna kepada bukan pengaturcara. Semua yang anda pelajari tentang SQL interaktif biasanya digunakan pada bentuk bersarang. Perubahan yang diperlukan untuk menggunakan borang bersarang akan dibincangkan dalam bab terakhir buku ini.

Subseksyen SQL

Kedua-dua bentuk SQL interaktif dan bersarang mempunyai banyak bahagian atau subseksyen. Memandangkan anda mungkin akan menemui istilah ini semasa membaca SQL, kami akan memberikan sedikit penjelasan. Malangnya, istilah ini tidak digunakan secara universal merentas semua pelaksanaan. Ia ditentukan oleh ANSI dan berguna pada peringkat konsep, tetapi kebanyakan program SQL tidak banyak membantu untuk mengendalikannya secara berasingan, jadi ia pada asasnya menjadi kategori berfungsi bagi arahan SQL.

  • DDL (Data Definition Language) - dipanggil Schema Description Language dalam ANSI - terdiri daripada arahan yang mencipta objek (jadual, indeks, pandangan, dan sebagainya) dalam pangkalan data.
  • DML (Bahasa Manipulasi Data) ialah satu set arahan yang menentukan nilai yang diwakili dalam jadual pada bila-bila masa.
  • DCD (Bahasa Kawalan Data) terdiri daripada alat yang menentukan sama ada membenarkan pengguna melakukan tindakan tertentu atau tidak. Mereka adalah sebahagian daripada ANSI DDL.

Jangan lupa nama-nama ini. Ini bukan bahasa yang berbeza, tetapi bahagian perintah SQL dikumpulkan mengikut fungsinya.

Pelbagai Jenis Data

Tidak semua jenis nilai yang boleh didapati dalam medan jadual secara logiknya sama. Perbezaan yang paling jelas adalah antara nombor dan teks. Anda tidak boleh meletakkan nombor dalam susunan abjad atau menolak satu nama daripada nama lain.

Memandangkan sistem DDB adalah berdasarkan perhubungan antara cebisan maklumat, jenis data yang berbeza mesti dibezakan antara satu sama lain supaya proses dan perbandingan yang sesuai boleh dibuat merentasnya. Dalam SQL, ini dilakukan dengan memberikan setiap medan jenis data yang menunjukkan jenis nilai yang boleh disimpan oleh medan itu. Semua nilai dalam medan ini mestilah daripada jenis yang sama. Dalam jadual Pelanggan, sebagai contoh, cname dan bandar mengandungi baris teks untuk dinilai, dan snum dan cnum ialah nombor. Atas sebab ini, anda tidak boleh memasukkan nilai Tertinggi atau Nilai Tiada dalam medan penilaian, iaitu jenis data berangka. Kekangan ini bagus kerana ia mengenakan beberapa struktur pada data anda. Anda selalunya akan membandingkan beberapa atau semua nilai dalam medan tertentu, jadi anda mungkin hanya mahu melakukan tindakan pada baris tertentu berbanding kesemuanya. Anda tidak boleh melakukan ini jika nilai medan adalah daripada jenis data bercampur.

Malangnya, mentakrifkan jenis data ini adalah bidang utama di mana kebanyakan program pangkalan data komersial dan standard SQL rasmi tidak selalu bersetuju. Standard ANSI SQL hanya mengenali teks dan nombor, manakala kebanyakan program komersial menggunakan jenis khas lain. Seperti DATA dan MASA, sebenarnya, hampir jenis standard (walaupun format tepatnya berbeza-beza). Sesetengah pakej juga menyokong jenis seperti WANG dan BINARI. (WANG ialah sistem "mata wang" khas yang digunakan oleh komputer.)

Semua maklumat dalam komputer dihantar dalam nombor binari dan kemudian ditukar kepada sistem lain supaya kita boleh menggunakan dan memahaminya dengan mudah.

ANSI mentakrifkan beberapa jenis angka, perbezaan antara yang agak halus dan kadangkala keliru. Jenis data ANSI yang dibenarkan disenaraikan dalam Lampiran B. Kerumitan jenis angka ANSI boleh dikaitkan, sekurang-kurangnya sebahagiannya, kepada usaha untuk menjadikan SQL bersarang serasi dengan beberapa bahasa lain. Dua jenis nombor ANSI, INTEGER dan PERPULUHAN (yang masing-masing boleh disingkatkan sebagai INT dan DEC), akan mencukupi untuk tujuan kami, serta untuk tujuan kebanyakan aplikasi perniagaan praktikal. Sememangnya, jenis INTEGER boleh diwakili sebagai NOMBOR PERPULUHAN, yang tidak mengandungi sebarang digit di sebelah kanan titik perpuluhan.

Jenis untuk teks ialah CHAR (atau CHAR), merujuk kepada rentetan teks. Medan CHAR mempunyai panjang yang ditentukan oleh bilangan maksimum aksara yang boleh dimasukkan dalam medan. Kebanyakan pelaksanaan juga mempunyai jenis bukan standard yang dipanggil VARCHAR, yang merupakan rentetan teks dan boleh mempunyai sebarang panjang sehingga maksimum yang ditentukan pelaksanaan (biasanya 254 aksara). Nilai CHARACTER dan VARCHAR disertakan dalam petikan tunggal sebagai "teks". Perbezaan antara CHAR dan VARCHAR ialah CHAR mesti menyimpan memori yang mencukupi untuk panjang maksimum rentetan, manakala VARCHAR memperuntukkan memori mengikut keperluan.

Jenis aksara terdiri daripada semua aksara yang boleh dicetak, termasuk nombor. Walau bagaimanapun, nombor 1 tidak sama dengan simbol "1". Aksara "1" hanyalah sekeping teks bercetak, tidak ditakrifkan oleh sistem sebagai nilai berangka 1. Contohnya, 1 + 1 = 2, tetapi "1" + "1" tidak sama dengan "2". Nilai aksara disimpan dalam komputer sebagai nilai binari, tetapi dipaparkan kepada pengguna sebagai teks bercetak.

Penukaran dilakukan dalam format yang ditentukan oleh sistem yang anda gunakan. Format penukaran ini akan menjadi salah satu daripada dua jenis standard (mungkin dengan sambungan) yang digunakan dalam sistem komputer: kod ASCII (digunakan dalam semua komputer peribadi dan kecil) dan kod EBCDIC (Kod Pertukaran Maklumat Perpuluhan Binari Lanjutan) (digunakan dalam komputer besar). Operasi tertentu, seperti abjad nilai medan, akan berubah mengikut format.

Kita mesti mengikuti pasaran, bukan ANSI, dalam penggunaan jenis DATE. (Pada sistem yang tidak mengenali jenis DATE, anda sudah tentu boleh mengisytiharkan tarikh sebagai medan aksara atau angka, tetapi ini akan menjadikan kebanyakan operasi lebih intensif buruh.)

Anda harus menyemak dokumentasi anda untuk pakej perisian yang akan anda gunakan untuk mengetahui dengan tepat jenis data yang disokongnya.

SQL. Ketidakkonsistenan.

Anda boleh memahami daripada perbincangan sebelumnya bahawa terdapat percanggahan berasingan antara produk dunia SQL. SQL muncul daripada dunia pangkalan data komersial sebagai alat dan kemudiannya dibangunkan menjadi piawaian ANSI. Malangnya, ANSI tidak selalu menentukan perkara yang paling berguna, jadi program cuba mematuhi piawaian ANSI tanpa membiarkannya mengehadkannya terlalu banyak. ANSI ialah sejenis standard minimum - anda boleh melakukan lebih daripada yang dibenarkan, tetapi anda mesti boleh mendapatkan hasil yang sama apabila melakukan tugas yang sama.

APA ITU "PENGGUNA"?

SQL biasanya berada pada sistem komputer yang mempunyai lebih daripada satu pengguna dan oleh itu perlu membezakan antara mereka (keluarga PC anda boleh mempunyai sebarang bilangan pengguna, tetapi ia biasanya tidak mempunyai cara untuk membezakan satu pengguna daripada yang lain).

Biasanya, dalam sistem sedemikian, setiap pengguna mempunyai beberapa jenis kod pengesahan hak yang mengenal pasti dirinya (istilah berbeza-beza). Pada permulaan sesi dengan komputer, pengguna log masuk (mendaftar), memberitahu komputer siapa pengguna dengan mengenal pasti dirinya menggunakan ID tertentu. Sebarang bilangan orang yang menggunakan ID akses adalah pengguna individu; dan begitu juga, seorang boleh mewakili sejumlah besar pengguna (pada masa yang berbeza) menggunakan ID akses SQL yang berbeza. Tindakan dalam kebanyakan persekitaran SQL dipetakan kepada Pengecam Akses tertentu yang betul-betul sepadan dengan pengguna tertentu. Jadual atau objek lain dimiliki oleh pengguna yang mempunyai kawalan penuh ke atasnya. Pengguna mungkin atau mungkin tidak mempunyai keistimewaan untuk melakukan tindakan pada objek. Untuk tujuan kami, kami akan bersetuju bahawa mana-mana pengguna mempunyai keistimewaan yang diperlukan untuk melakukan sebarang tindakan sehingga kami kembali secara khusus kepada perbincangan tentang keistimewaan dalam Bab 22. Nilai istimewa USER boleh digunakan sebagai hujah dalam arahan. Ia menunjukkan ID yang tersedia bagi pengguna yang mengeluarkan arahan.

Konvensyen dan istilah

Kata kunci ialah perkataan yang mempunyai makna khusus dalam SQL. Ia boleh menjadi arahan, tetapi bukan teks atau nama objek. Kami akan menyerlahkan kata kunci dengan menaipnya dalam HURUF BESAR. Anda mesti berhati-hati untuk tidak mengelirukan kata kunci dengan istilah.

SQL mempunyai istilah khas tertentu yang digunakan untuk menerangkannya. Antaranya ialah perkataan seperti "pertanyaan", "klausa" dan "predikat", yang merupakan yang paling penting dalam penerangan dan pemahaman bahasa, tetapi tidak bermakna apa-apa yang bebas untuk SQL.

Perintah atau pernyataan ialah arahan yang anda gunakan untuk mengakses pangkalan data SQL.

Perintah terdiri daripada satu atau lebih bahagian logik berasingan yang dipanggil klausa.

Ayat bermula dengan kata kunci dan terdiri daripada kata kunci dan hujah. Contohnya, klausa yang mungkin anda hadapi ialah "DARI Jurujual" dan "WHERE city = "London"". Hujah melengkapkan atau mengubah maksud ayat. Dalam contoh di atas, Jurujual ialah hujah dan FROM ialah kata kunci klausa FROM. Begitu juga, "city = "London"" ialah hujah kepada klausa WHERE.

Objek ialah struktur pangkalan data yang diberi nama dan disimpan dalam ingatan. Ini termasuk jadual asas, paparan dan indeks.

Untuk menunjukkan kepada anda cara pasukan dibentuk, kami akan melakukan ini dengan contoh. Walau bagaimanapun, terdapat kaedah yang lebih formal untuk menerangkan arahan yang menggunakan konvensyen piawai. Kami akan menggunakannya dalam bab kemudian sebagai kemudahan untuk memahami konvensyen ini sekiranya anda menemuinya dalam dokumen SQL yang lain.

Tanda kurung segi empat sama () akan menunjukkan bahagian yang mungkin tidak digunakan, dan elips (...) menunjukkan bahawa semua yang mendahuluinya boleh diulang beberapa kali. Perkataan dalam kurungan sudut () ialah istilah khas yang menerangkan maksudnya. Kami telah sangat memudahkan istilah SQL standard tanpa menyukarkan untuk difahami.

Ringkasan

Kami membincangkan secara ringkas asas-asas dalam bab ini. Tetapi niat kami adalah untuk cepat merangkumi asas SQL supaya anda boleh merangkumi keseluruhan skop maklumat.

Kini anda mengetahui beberapa perkara tentang SQL: apakah strukturnya, cara ia digunakan, cara ia mewakili data dan cara ia ditakrifkan (dan beberapa ketidakkonsistenan yang datang bersamanya), beberapa konvensyen dan istilah yang digunakan untuk menerangkannya. Semua ini adalah terlalu banyak maklumat untuk satu bab; Kami tidak mengharapkan anda mengingati semua butiran ini, tetapi anda boleh merujuknya kembali kemudian jika perlu.

Hari ini, kursus SQL "untuk dummies" menjadi semakin popular. Ini boleh dijelaskan dengan sangat mudah, kerana dalam dunia moden anda semakin boleh mencari perkhidmatan web yang dipanggil "dinamik". Mereka dibezakan oleh shell yang agak fleksibel dan berdasarkan Semua pengaturcara baru yang memutuskan untuk mendedikasikan tapak web, pertama sekali mendaftar dalam kursus SQL "untuk dummies".

Mengapa belajar bahasa ini?

Pertama sekali, SQL diajar untuk terus mencipta pelbagai jenis aplikasi untuk salah satu enjin blog paling popular hari ini - WordPress. Selepas menyelesaikan beberapa pelajaran mudah, anda akan dapat membuat pertanyaan tentang sebarang kerumitan, yang hanya mengesahkan kesederhanaan bahasa ini.

Apakah SQL?

Atau bahasa pertanyaan berstruktur, dicipta untuk satu tujuan: untuk menentukan, menyediakan akses kepada dan memprosesnya dalam tempoh masa yang agak singkat. Jika anda tahu maksud SQL, maka anda akan faham bahawa pelayan ini diklasifikasikan sebagai bahasa yang dipanggil "bukan prosedur". Iaitu, keupayaannya hanya menyertakan penerangan tentang mana-mana komponen atau hasil yang anda mahu lihat pada masa hadapan di tapak. Tetapi apabila tidak menunjukkan dengan tepat apa keputusan yang akan diperolehi. Setiap permintaan baharu dalam bahasa ini adalah seperti "struktur atas" tambahan. Ia adalah mengikut urutan di mana mereka dimasukkan ke dalam pangkalan data bahawa pertanyaan akan dilaksanakan.

Apakah prosedur yang boleh dilakukan menggunakan bahasa ini?

Walaupun kesederhanaannya, pangkalan data SQL membolehkan anda membuat pelbagai jenis pertanyaan. Jadi apa yang boleh anda lakukan jika anda mempelajari bahasa pengaturcaraan yang penting ini?

  • buat pelbagai jenis jadual;
  • menerima, menyimpan dan mengubah suai data yang diterima;
  • tukar struktur jadual mengikut budi bicara anda;
  • menggabungkan maklumat yang diterima menjadi satu blok;
  • mengira data yang diterima;
  • memastikan perlindungan maklumat yang lengkap.

Apakah arahan yang paling popular dalam bahasa ini?

Jika anda memutuskan untuk mengambil kursus SQL for Dummies, maka anda akan menerima maklumat terperinci tentang arahan yang digunakan dalam membuat pertanyaan menggunakannya. Yang paling biasa hari ini ialah:

  1. DDL ialah arahan yang mentakrifkan data. Ia digunakan untuk mencipta, mengubah suai dan memadam pelbagai jenis objek dalam pangkalan data.
  2. DCL ialah arahan yang memanipulasi data. Ia digunakan untuk menyediakan pengguna yang berbeza dengan akses kepada maklumat dalam pangkalan data, serta menggunakan jadual atau pandangan.
  3. TCL ialah pasukan yang menguruskan pelbagai transaksi. Tujuan utamanya adalah untuk menentukan kemajuan sesuatu transaksi.
  4. DML - memanipulasi data yang diterima. Tugasnya adalah untuk membolehkan pengguna memindahkan pelbagai maklumat dari pangkalan data atau memasukkannya ke sana.

Jenis keistimewaan yang wujud dalam pelayan ini

Keistimewaan merujuk kepada tindakan yang boleh dilakukan oleh pengguna tertentu mengikut statusnya. Yang paling minimum, sudah tentu, adalah log masuk biasa. Sudah tentu, keistimewaan mungkin berubah dari semasa ke semasa. Yang lama akan dipadamkan dan yang baharu akan ditambah. Hari ini, semua mereka yang mengambil kursus SQL Server "for dummies" tahu bahawa terdapat beberapa jenis tindakan yang dibenarkan:

  1. Jenis objek - pengguna dibenarkan untuk melaksanakan sebarang arahan hanya berkaitan dengan objek tertentu yang terletak dalam pangkalan data. Pada masa yang sama, keistimewaan berbeza untuk objek yang berbeza. Mereka juga terikat bukan sahaja kepada pengguna tertentu, tetapi juga pada jadual. Jika seseorang, menggunakan keupayaannya, mencipta jadual, maka dia dianggap pemiliknya. Oleh itu, dia mempunyai hak untuk memberikan keistimewaan baru kepada pengguna lain yang berkaitan dengan maklumat di dalamnya.
  2. Jenis sistem ialah hak cipta data yang dipanggil. Pengguna yang telah menerima keistimewaan tersebut boleh mencipta pelbagai objek dalam pangkalan data.

Sejarah SQL

Bahasa ini dicipta oleh IBM Research Laboratory pada tahun 1970. Pada masa itu, namanya sedikit berbeza (SEQUEL), tetapi selepas beberapa tahun penggunaan ia ditukar, dipendekkan sedikit. Walaupun begitu, sehingga hari ini ramai pakar pengaturcaraan yang terkenal di dunia masih menyebut nama itu dengan cara lama. SQL dicipta dengan satu matlamat - untuk mencipta bahasa yang sangat mudah sehinggakan pengguna Internet biasa pun boleh mempelajarinya tanpa sebarang masalah. Fakta menarik ialah pada masa itu SQL bukan satu-satunya bahasa sedemikian. Di California, kumpulan pakar lain membangunkan Ingres yang serupa, tetapi ia tidak pernah tersebar secara meluas. Sebelum tahun 1980, terdapat beberapa variasi SQL yang hanya berbeza sedikit antara satu sama lain. Untuk mengelakkan kekeliruan, versi standard telah dicipta pada tahun 1983, yang masih popular hari ini. Kursus SQL "for dummies" membolehkan anda mempelajari lebih banyak lagi tentang perkhidmatan dan mengkajinya sepenuhnya dalam beberapa minggu.

Hari ini kita akan beralih kepada topik komputer, jadi artikel ini akan menjadi minat khusus, pertama sekali, kepada pengaturcara. Kami, pembaca yang budiman, akan bercakap tentang bahasa pertanyaan berstruktur, yang dalam bahasa Inggeris disulitkan sebagai SQL (Bahasa Pertanyaan Berstruktur). Jadi, mari kita ke intipati. Sekarang mari kita bercakap tentang apa itu SQL dan untuk apa ia diperlukan.

Bahasa Pertanyaan Berstruktur ialah bahasa universal untuk mencipta, mengubah suai dan mengurus maklumat yang merupakan sebahagian daripada pangkalan data hubungan. Pada mulanya, SQL adalah cara utama untuk bekerja dengan data. Menggunakannya, pengguna boleh melakukan tindakan berikut:

  • mencipta jadual baharu dalam pangkalan data (DB);
  • menambah rekod baharu pada jadual sedia ada;
  • menyunting rekod;
  • pemadaman lengkap rekod;
  • memilih rekod daripada jadual yang berbeza mengikut syarat yang ditetapkan;
  • menukar rupa dan struktur satu atau lebih jadual.

Apabila ia berkembang, SQL berubah dengan banyak dan diperkaya dengan fungsi berguna baharu, akibatnya ia mula kelihatan lebih dan lebih seperti bahasa pengaturcaraan sebenar. Hari ini, SQL adalah satu-satunya mekanisme yang boleh memautkan perisian aplikasi dan pangkalan data. Itulah SQL.

SQL mempunyai beberapa jenis pertanyaan. Perlu diingat bahawa sebarang pertanyaan SQL membayangkan sama ada permintaan untuk data daripada pangkalan data yang dikehendaki, atau akses kepada pangkalan data dengan perubahan wajib data di dalamnya. Dalam hal ini, adalah kebiasaan untuk membezakan jenis permintaan berikut:

  • mencipta atau menukar objek baharu atau sedia ada dalam pangkalan data;
  • menerima data;
  • menambah data baharu pada jadual;
  • pemadaman data;
  • akses kepada sistem pengurusan pangkalan data (DBMS).

Sedikit mengenai kelebihan dan kekurangan sistem pemprosesan data ini.

Faedah SQL

  • Kebebasan daripada DBMS sedia ada dalam sistem yang diberikan. Teks SQL adalah universal untuk banyak DBMS. Walau bagaimanapun, peraturan ini digunakan untuk tugas mudah yang berkaitan dengan pemprosesan data dalam jadual.
  • Kehadiran piawaian SQL membantu "menstabilkan" bahasa.
  • Perisytiharan. Kelebihan ini ialah apabila bekerja dengan data, pengaturcara memilih hanya maklumat yang perlu diubah atau diubah suai. Cara ini akan dilakukan ditentukan secara automatik pada peringkat perisian DBMS itu sendiri.

Kelemahan SQL

  • SQL tidak mengikut model data hubungan. Dalam hal ini, SQL menggantikan bahasa Tutorial D, yang benar-benar berkaitan.
  • Kerumitan SQL menentukan tujuannya. Bahasa ini sangat kompleks sehingga hanya seorang pengaturcara boleh menggunakannya. Walaupun pada asalnya ia dianggap sebagai alat kawalan yang biasa digunakan oleh pengguna.
  • Beberapa ketidakkonsistenan piawaian. Banyak syarikat yang membangunkan DBMS menambah ciri mereka sendiri pada dialek bahasa SQL, yang memberi kesan ketara kepada kesejagatan bahasa tersebut.

Satu perkara terakhir: apakah SQL Server? Ini adalah sistem pengurusan pangkalan data yang dibangunkan di dalam dinding syarikat terkenal Microsoft. Sistem ini berjaya berfungsi dengan pangkalan data kedua-dua komputer peribadi rumah dan pangkalan data besar perusahaan besar. Dalam segmen pasaran ini, SQL Server lebih kompetitif.

Baiklah, mari kita ingat MySQL secara ringkas. Aplikasi ini biasanya digunakan sebagai pelayan yang menerima permintaan daripada pelanggan tempatan atau jauh. MySQL juga boleh disertakan dalam program kendiri. Perlu diingatkan bahawa aplikasi ini adalah salah satu sistem pengurusan data yang paling fleksibel, kerana ia merangkumi pelbagai jenis jadual.