Pernyataan bahasa projek sql direka untuk. Penyataan SQL asas. Sintaks dan contoh penggunaan pernyataan SELECT. SELECT sintaks pernyataan dan susunan pemprosesan

Bahasa pertanyaan berstruktur SQL adalah berdasarkan kalkulus hubungan dengan tupel boleh ubah. Bahasa SQL direka untuk melaksanakan operasi pada jadual, mencipta, memadam, menukar struktur, dan pada data jadual, pilih, tukar, tambah dan padam, serta beberapa operasi yang berkaitan. SQL ialah bahasa bukan prosedur dan tidak mengandungi pernyataan kawalan untuk mengatur rutin, input, output, dll.


Kongsi kerja anda di rangkaian sosial

Jika kerja ini tidak sesuai dengan anda, di bahagian bawah halaman terdapat senarai karya yang serupa. Anda juga boleh menggunakan butang carian


Bahasa pertanyaan berstruktur SQL: sejarah, piawaian,

Pengendali bahasa asas.

Bahasa pertanyaan berstruktur SQL adalah berdasarkan kalkulus hubungan dengan tupel boleh ubah. Bahasa mempunyai beberapa piawaian. Bahasa SQL direka bentuk untuk melaksanakan operasi pada jadual (membuat, memadam, menukar struktur) dan pada data jadual (memilih, mengubah suai, menambah dan memadam), serta beberapa operasi yang berkaitan. SQL ialah bahasa bukan prosedur dan tidak mengandungi pernyataan kawalan, organisasi subrutin, input-output, dsb. Dalam hal ini, SQL tidak digunakan secara autonomi; ia biasanya direndam dalam persekitaran bahasa pengaturcaraan DBMS terbina dalam (contohnya, FoxPro DBMS Visual FoxPro, ObjectPAL DBMS Paradox, Visual Basic for Applications DBMS Access).

Dalam DBMS moden dengan antara muka interaktif, anda boleh membuat pertanyaan menggunakan alat lain, seperti QBE. Walau bagaimanapun, penggunaan SQL selalunya boleh meningkatkan kecekapan pemprosesan data dalam pangkalan data. Contohnya, apabila menyediakan pertanyaan dalam persekitaran Access, anda boleh beralih daripada tetingkap Pembina Pertanyaan (merumuskan pertanyaan sampel dalam bahasa QBE) ke tetingkap dengan pernyataan SQL yang setara. Dalam sesetengah kes, menyediakan pertanyaan baharu dengan mengedit pertanyaan sedia ada lebih mudah dilakukan dengan menukar pernyataan SQL. Komposisi pernyataan SQL mungkin berbeza sedikit dalam DBMS yang berbeza. Bahasa SQL tidak mempunyai fungsi bahasa pembangunan sepenuhnya, tetapi tertumpu pada akses data, jadi ia termasuk dalam alat pembangunan program. Dalam kes ini ia dipanggil SQL terbenam. Standard bahasa SQL disokong oleh pelaksanaan moden bahasa pengaturcaraan berikut: PL/1, Ada, C, COBOL, Fortran, MUMPS dan Pascal.

Dalam sistem pembangunan aplikasi khusus jenis pelayan-pelanggan, persekitaran pengaturcaraan, sebagai tambahan, biasanya ditambah dengan alat komunikasi (mewujudkan dan memutuskan sambungan dengan pelayan pangkalan data, mengesan dan memproses ralat yang berlaku dalam rangkaian, dsb.), alat untuk membangunkan antara muka pengguna, alat reka bentuk dan penyahpepijatan Terdapat dua kaedah utama untuk menggunakan SQL terbenam: statik dan dinamik. Apabila menggunakan bahasa secara statik (SQL statik), teks program mengandungi panggilan ke fungsi bahasa SQL, yang disertakan secara tegar dalam modul boleh laku selepas penyusunan.

Perubahan dalam fungsi yang dipanggil boleh berada pada tahap parameter panggilan individu menggunakan pembolehubah bahasa pengaturcaraan. Apabila menggunakan bahasa secara dinamik (dinamik SQL), diandaikan bahawa panggilan ke fungsi SQL dibina secara dinamik dan tafsiran panggilan ini, sebagai contoh, mengakses data daripada pangkalan data jauh, semasa pelaksanaan program. Kaedah dinamik biasanya digunakan dalam kes di mana aplikasi tidak mengetahui jenis panggilan SQL terlebih dahulu dan ia dibina dalam dialog dengan pengguna. Tujuan utama bahasa SQL (serta bahasa lain untuk bekerja dengan pangkalan data) adalah untuk menyediakan dan melaksanakan pertanyaan. Mendapatkan semula data daripada satu atau lebih jadual boleh menghasilkan satu set rekod yang dipanggil paparan. Paparan pada asasnya ialah jadual yang dijana hasil daripada pertanyaan. Kita boleh mengatakan bahawa ia adalah jenis pertanyaan yang disimpan. Anda boleh membina berbilang paparan menggunakan jadual yang sama. Pandangan itu sendiri diterangkan dengan menyatakan pengecam paparan dan permintaan yang mesti dibuat untuk mendapatkannya.

Untuk kemudahan bekerja dengan pandangan, konsep kursor telah diperkenalkan ke dalam bahasa SQL. Kursor ialah sejenis penunjuk yang digunakan untuk bergerak melalui set rekod semasa memprosesnya. Penerangan dan penggunaan kursor dalam SQL adalah seperti berikut. Dalam bahagian deskriptif program, pembolehubah jenis kursor (CURSOR) dikaitkan dengan pernyataan SQL (biasanya pernyataan SELECT). Dalam bahagian pelaksanaan program, kursor dibuka (OPEN<имя курсора>), menggerakkan kursor melalui rekod (FETCH<имя курсора>...), diikuti dengan pemprosesan yang sesuai, dan akhirnya menutup kursor (CLOSE<имя курсора>).

Pengendali bahasa asas

Mari kita terangkan subset minimum bahasa SQL, berdasarkan pelaksanaannya dalam antara muka ODBC (Open Database Connectivity) standard daripada Microsoft. Pengendali bahasa SQL boleh dibahagikan kepada dua subbahasa: Bahasa Definisi Data (DDL) dan Bahasa Manipulasi Data (DML). Operator bahasa SQL utama dibentangkan dalam jadual.

Mari kita pertimbangkan format dan keupayaan asas pengendali yang paling penting, kecuali operator tertentu yang ditandakan dalam jadual dengan simbol “*”. Kami akan meninggalkan operan dan elemen sintaks yang tidak penting (sebagai contoh, peraturan yang diterima pakai dalam banyak sistem pengaturcaraan untuk meletakkan ";" pada penghujung operator).

1. Operator mencipta jadualmempunyai format:

BUAT JADUAL<имя таблицы>

(<имя столбца> <тип данных>

[,<имя столбца> <тип данных> ]...)

Operan pengendali yang diperlukan ialah nama jadual yang dibuat dan nama sekurang-kurangnya satu lajur (medan) yang menunjukkan jenis data yang disimpan dalam lajur ini.

Apabila membuat jadual, beberapa peraturan tambahan untuk mengawal nilai yang dimasukkan ke dalamnya boleh ditentukan untuk medan individu. Pembinaan NOT NULL berfungsi dengan tepat untuk tujuan ini dan, untuk lajur jadual, bermakna nilai mesti ditakrifkan dalam lajur itu.

pernyataan SQL

Lihat

Nama

Tujuan

BUAT JADUAL

JATUH MEJA

UBAH JADUAL

BUAT INDEKS

DROP INDEX

CIPTA PANDANGAN

DROP VIEW

BESAR*

MEMBATALKAN*

mencipta jadual

memadam jadual

mengubah struktur meja

penciptaan indeks

memadam indeks

mencipta pandangan

memadam pandangan

memberikan keistimewaan

penghapusan keistimewaan

PILIH

UPDAT

INSERT

PADAM

rekod sampel

menukar rekod

memasukkan rekod baru

memadamkan entri

Secara umum, DBMS yang berbeza boleh menggunakan jenis data yang berbeza. Antara muka ODBC menyokong jenis data standardnya sendiri, contohnya, aksara (SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR), dsb. Apabila bekerja dengan pangkalan data DBMS tertentu melalui antara muka ODBC, jenis data standard yang disokong oleh antara muka ditukar secara automatik ke dalam jenis data sumber dan sebaliknya. Jika perlu, pertukaran data antara program dan sumber data boleh dijalankan tanpa penukaran dalam format data dalaman sumber.

Contoh 1 . Mencipta jadual.

Katakan anda ingin mencipta barang meja yang menerangkan barangan yang mempunyai medan berikut: jenis jenis produk, pengecam kom_id syarikat pembuatan, nama nama produk dan harga harga produk. Pernyataan definisi jadual boleh kelihatan seperti ini:

CIPTA barangan JADUAL (taip SQL_CHAR(8) BUKAN NULL,

comp_id SQL_CHAR(10) BUKAN NULL, namakan SQL_VARCHAR(20),

harga SQL_DECIMAL(8,2)).

2. Operator perubahan struktur jadualmempunyai format:

UBAH JADUAL<имя таблицы>

((TAMBAH, UBAHSUAI, GUGUR)<имя столбца> [<тип данных>]

[,(TAMBAH, UBAHSUAI, GUGUR)<имя столбца> [<тип данных>]]...)

Menukar struktur jadual boleh terdiri daripada menambah (TAMBAH), menukar (MODIFY) atau mengalih keluar (DROP) satu atau lebih lajur jadual. Peraturan untuk menulis pernyataan ALTER TABLE adalah sama seperti untuk pernyataan CREATE TABLE. Apabila memadamkan lajur, nyatakan<тип данных>tidak perlu.

3. Operator memadam jadualmempunyai format:

JATUH MEJA<имя таблицы>

Operator membenarkan anda memadam jadual sedia ada. Sebagai contoh, untuk memadamkan jadual bernama item, sudah cukup untuk menulis pernyataan seperti: DROP TABLE item.

4. Operator mencipta indeksmempunyai format:

BUAT INDEKS< имя индекса >

HIDUP< имя таблицы >

(<имя столбца>[ASC | DESC ]

[,<имя столбца>[ASC | DESC]...)

Operator membenarkan anda membuat indeks pada satu atau lebih lajur jadual tertentu untuk mempercepatkan pelaksanaan pertanyaan dan operasi carian pada jadual. Anda boleh mencipta berbilang indeks pada satu jadual. Dengan menentukan pilihan UNIK pilihan, anda boleh memastikan bahawa nilai dalam semua lajur yang dinyatakan dalam pernyataan adalah unik. Pada asasnya, mencipta indeks menggunakan atribut UNIK bermakna menentukan kunci dalam jadual yang dibuat sebelum ini. Apabila anda membuat indeks, anda boleh menetapkan nilai dalam lajur untuk diisih secara automatik dalam tertib menaik ASC (lalai), atau tertib menurun DESC. Anda boleh menetapkan susunan isihan yang berbeza untuk lajur yang berbeza.

5. Operator memadam indeksmempunyai format:

DROP INDEX<имя индекса>

Operator ini membenarkan anda memadamkan indeks yang dibuat sebelum ini dengan nama yang sepadan. Jadi, sebagai contoh, untuk memusnahkan indeks main_indx pada jadual emp, sudah cukup untuk menulis pernyataan DROP INDEX main_indx.

6. Operator mencipta pandanganmempunyai format:

CIPTA PANDANGAN<имя представления>

[(<имя столбца> [,<имя столбца> ]...)]

AS<оператор SELECT>

Operator ini membenarkan anda membuat paparan. Jika nama lajur tidak dinyatakan dalam paparan, nama lajur daripada pertanyaan yang diterangkan oleh pernyataan SELECT yang sepadan akan digunakan.

7. Padam operator perwakilan mempunyai format berikut:

DROP VIEW<имя представления>

Pengendali membenarkan anda memadam paparan yang dibuat sebelum ini. Ambil perhatian bahawa apabila anda memadamkan paparan, jadual yang mengambil bahagian dalam pertanyaan tidak dipadamkan. Mengalih keluar perwakilan gerg dilakukan dengan pengendali borang: DROP VIEW repr.

8. Operator pemilihan rekod mempunyai format:

PILIH

< список данных >

DARI<список таблиц>

... ]

...]

Ini adalah pernyataan yang paling penting dari semua pernyataan SQL. Fungsinya sangat besar. Mari lihat yang utama. Pernyataan SELECT membolehkan anda memilih dan melakukan pengiraan pada data daripada satu atau lebih jadual. Hasil penyataan ialah jadual respons, yang mungkin mempunyai baris pendua (DISTINCT) atau tidak. Secara lalai, semua baris, termasuk yang pendua, disertakan dalam jadual respons. Pemilihan data melibatkan rekod daripada satu atau lebih jadual yang disenaraikan dalam senarai operan FROM. Senarai data boleh mengandungi nama lajur yang mengambil bahagian dalam pertanyaan, serta ungkapan di atas lajur. Dalam kes yang paling mudah, ungkapan boleh mengandungi nama lajur, simbol aritmetik (+, , *, /), pemalar dan kurungan. Jika ungkapan ditulis dalam senarai data, maka bersama-sama dengan pemilihan data, pengiraan dilakukan, hasilnya jatuh ke dalam lajur baru (dicipta) jadual respons. Apabila menggunakan nama lajur beberapa jadual dalam senarai data, pembinaan borang digunakan untuk menunjukkan bahawa lajur tergolong dalam jadual tertentu:<имя таблицы>.<имя столбца>.

Operan WHERE menentukan syarat yang mesti dipenuhi oleh rekod dalam jadual yang terhasil. Ungkapan<условие выборки>ialah Boolean. Elemennya boleh menjadi nama lajur, operasi perbandingan, operasi aritmetik, penyambung logik (DAN, ATAU, BUKAN), kurungan, fungsi khas LIKE, NULL, IN, dsb. Operan GROUP BY membolehkan anda memilih kumpulan dalam set rekod yang terhasil.

9. Operator rekod perubahanmempunyai format:

KEMASKINI<имя таблицы>

SET<имя столбца> = {<выражение>, NULL )

[, SET<имя столбца> = {<выражение>, NULL)...]

Pelaksanaan pernyataan UPDATE terdiri daripada menukar nilai dalam lajur jadual yang ditentukan oleh operan SET untuk rekod yang memenuhi syarat yang ditentukan oleh operan WHERE. Nilai medan baharu dalam rekod boleh kosong (NULL) atau dikira mengikut ungkapan aritmetik. Peraturan untuk menulis ungkapan aritmetik dan logik adalah serupa dengan peraturan yang sepadan untuk pernyataan SELECT.

10. Operator memasukkan rekod barumempunyai dua jenis format:

MASUKKAN KE DALAM<имя таблицы>

[(<список столбцов>)]

NILAI (<список значений>)

MASUKKAN KE DALAM<имя таблицы>

[(<список столбцов>)]

<предложение SELECT>

Dalam format pertama, pernyataan INSERT digunakan untuk memasukkan rekod baru dengan nilai yang ditentukan dalam lajur. Susunan penyenaraian nama lajur mesti sepadan dengan susunan nilai yang disenaraikan dalam senarai operan VALUES. Jika<список столбцов>ditinggalkan, kemudian masuk<списке значений>Semua nilai mesti disenaraikan dalam susunan lajur struktur jadual.Dalam format kedua, penyataan INSERT bertujuan untuk dimasukkanjadual yang diberi bagi baris baharu yang dipilih daripada jadual lain denganmenggunakan klausa SELECT.

MUKA SURAT 1

Kerja lain yang serupa yang mungkin menarik minat anda.vshm>

16. Ketahui asas bahasa pertanyaan berstruktur T-SQL 34.15 KB
Untuk mencapai matlamat ini, adalah perlu untuk menyelesaikan tugas-tugas berikut: membuat pertanyaan untuk pemilihan daripada beberapa jadual dalam bahasa SQL menggunakan kriteria pemilihan yang ditentukan; buat pertanyaan pemilihan dalam SQL yang mengandungi fungsi agregat statik; buat pertanyaan yang menggabungkan hasil dua atau lebih pertanyaan ke dalam satu set hasil menggunakan arahan UNION. Hasil daripada menyiapkan kerja, pelajar harus mengetahui: kategori arahan SQL; arahan SQL asas yang digunakan untuk membina pertanyaan; prinsip mencipta pertanyaan SQL...
6030. BAHASA SEBAGAI FENOMENA PEMBANGUNAN. FAKTOR LUARAN DAN DALAMAN PERKEMBANGAN BAHASA 17.38 KB
Masalah asal usul bahasa melibatkan dua persoalan. Persoalan pertama adalah berkaitan dengan masalah asal usul bahasa secara umum, bagaimana bahasa manusia berkembang, bagaimana seseorang belajar bercakap yang kedua dengan asal usul setiap bahasa individu. Tiada bukti tempoh ini dipelihara, oleh itu, apabila mengkaji asal usul bahasa secara umum, ahli bahasa perlu beroperasi bukan sahaja dengan fakta linguistik tetapi juga dengan data dari sains yang berkaitan. Minat terhadap masalah asal usul bahasa timbul sejak dahulu lagi.
10870. Sambungan antara disiplin kursus "Bahasa Rusia Profesional". Transformasi dan pembezaan bahasa Rusia profesional 10.57 KB
Transformasi dan pembezaan bahasa Rusia profesional 1. Transformasi dan pembezaan bahasa Rusia profesional. Norma sintaksis ditentukan oleh struktur bahasa dan, seperti norma ortoepik, leksikal dan morfologi yang lain, mengalami perubahan dalam proses perkembangan bahasa. Apabila menguasai sintaks bahasa bukan ibunda, terdapat beberapa kesukaran yang timbul apabila memilih bentuk kawalan dan menyelaraskan pembinaan ayat, menggunakan kata bahagian, memilih preposisi yang betul, dan sebagainya.
6929. Sejarah bahasa Delphi 13.01 KB
Delphi adalah bandar Yunani di mana oracle Delphic tinggal. Delphi ialah gabungan beberapa teknologi penting: Pengkompil berprestasi tinggi kepada kod mesin Model komponen berorientasikan objek Visual dan oleh itu pembinaan aplikasi berkelajuan tinggi daripada prototaip perisian Alat berskala untuk membina pangkalan data Pengkompil kepada kod mesin Pengkompil terbina dalam Delphi menyediakan prestasi tinggi yang diperlukan untuk membina aplikasi dalam seni bina ...
10869. Konsep "bahasa profesional", "bahasa kepakaran", pembezaan mereka. Bahasa Rusia profesional: asal, fungsi, skop fungsinya (dengan mengambil kira spesifik kepakaran) 9.5 KB
Pembezaan bahasa. Setiap keistimewaan ekonomi, sebagai tambahan kepada bahasa umum yang biasa digunakan oleh semua ahli ekonomi, juga mempunyai bahasa khas dan khususnya sendiri. Pakar berkomunikasi dalam bahasa profesional ini secara lisan dan bertulis; bahasa profesional ini diajar kepada pelajar; bahasa profesional tersebut menerangkan sistem pengetahuan dan kemahiran dalam rujukan pendidikan saintifik dan kesusasteraan lain. Dalam sistem bahasa ekonomi, terdapat masalah yang biasa dialami oleh semua bahasa profesional.
1335. Model pembentukan kata asas dalam bahasa Inggeris Amerika moden 117.01 KB
Perbezaan utama antara bahasa Inggeris Amerika dan Inggeris. Masalah menentukan status dunia Bahasa Inggeris Amerika. Bahasa Inggeris Amerika di dunia moden. Ciri leksikal Bahasa Inggeris Amerika.
1936. SEJARAH, STRUKTUR DAN KONSEP ASAS EKOLOGI 495.77 KB
Istilah "ekologi" terbentuk daripada akar Yunani "oikos" - rumah, persekitaran terdekat seseorang dan "logos" - sains. Oleh itu, dalam erti kata literal, ekologi ialah sains organisma, termasuk manusia, yang diperhatikan dalam lingkungan rumah mereka, dengan perhatian khusus diberikan kepada sifat hubungan antara organisma dan persekitaran mereka.
17746. Pedagogi seni halus: sejarah dan trend pembangunan utama 25.96 KB
Tugas ujian adalah untuk mempertimbangkan konsep kreativiti artistik kanak-kanak, untuk mengenal pasti penyelidikan guru dan ahli psikologi yang cemerlang dan sejarah pembentukan kreativiti artistik kanak-kanak. Manifestasi kreativiti artistik boleh menjadi karya individu - dilakukan secara bebas atau di bawah bimbingan orang dewasa, lukisan, pemodelan, seni lisan dan bertulis, melodi, dramatisasi, tarian, serta nyanyian koral, persembahan teater, seni dan kraf, ukiran, teater boneka, filem lukisan dan fiksyen, dan...
6285. Kenyataan kawalan 103.51 KB
Operator Gelung Operator gelung digunakan untuk mengatur pengiraan berulang. Untuk mengatur gelung, anda memerlukan pembolehubah yang dipanggil parameter gelung atau pembolehubah kawalan gelung. Sebarang kitaran terdiri daripada: tetapan awal atau blok pemula parameter kitaran; badan gelung, iaitu, pernyataan yang dilaksanakan beberapa kali; blok pengubahsuaian parameter kitaran; menyemak keadaan untuk keluar dari gelung, yang boleh diletakkan sama ada sebelum badan gelung, kemudian mereka bercakap tentang gelung dengan prasyarat atau selepas badan...
2784. Kenyataan bersyarat dan pemilihan 16 KB
Pengendali keadaan Jika. Oleh itu, anda sudah boleh menulis pengendali tugasan berikut: Koren:=Sqrtxy; Modul:=bsxy. Untuk melaksanakan lompatan bersyarat sedemikian dalam bahasa Pascal, pengendali If dan Else digunakan, serta pengendali lompat tanpa syarat Goto. Mari kita lihat kenyataan If.

Penyataan SQL asas. Sintaks dan contoh penggunaan pernyataan SELECT.

Asas bahasa SQL terdiri daripada operator, dibahagikan secara bersyarat kepada beberapa kumpulan mengikut fungsi yang mereka lakukan.

Kumpulan pengendali berikut boleh dibezakan (tidak semua pengendali SQL disenaraikan):

Pernyataan DDL (Data Definition Language) - pernyataan untuk mentakrifkan objek pangkalan data

· CIPTA SKEMA - cipta skema pangkalan data

· DROP SHEMA - padam skema pangkalan data

· CIPTA JADUAL - cipta jadual

ALTER TABLE - tukar jadual

· DROP TABLE - padam jadual

· CIPTA DOMAIN - cipta domain

ALTER DOMAIN - tukar domain

· DROP DOMAIN - padam domain

· CIPTA KOLEKSI - cipta urutan

· DROP COLLATION - padam urutan

· CIPTA PANDANGAN - cipta paparan

· DROP VIEW - padamkan paparan

Pengendali DML (Bahasa Manipulasi Data) - pengendali manipulasi data

· PILIH - pilih baris daripada jadual

· INSERT - tambah baris pada jadual

· KEMASKINI - tukar baris dalam jadual

· PADAM - padam baris dalam jadual

· COMMIT - melakukan perubahan yang dibuat

· ROLLBACK - gulung balik perubahan yang dibuat

Pengendali perlindungan dan pengurusan data

· CIPTA PENEGASAN - buat kekangan

· DROP ASSERTION - keluarkan sekatan

· GERAN - memberikan keistimewaan kepada pengguna atau aplikasi untuk memanipulasi objek

BATALKAN - membatalkan keistimewaan pengguna atau aplikasi

Pada masa yang sama, terdapat kumpulan pengendali untuk menetapkan parameter sesi, mendapatkan maklumat tentang pangkalan data, pengendali SQL statik dan pengendali SQL dinamik.

Yang paling penting kepada pengguna ialah pernyataan manipulasi data (DML).

Contoh penggunaan operator manipulasi data

INSERT - memasukkan baris ke dalam jadual

Contoh 1. Memasukkan satu baris ke dalam jadual:

NILAI(4, "Ivanov");

KEMASKINI - mengemas kini baris dalam jadual

Contoh 3. Mengemas kini berbilang baris dalam jadual:

SET PNAME = "Pushnikov"

DIMANA P.PNUM = 1;

PADAM - memadam baris dalam jadual

Contoh 4. Memadamkan berbilang baris dalam jadual:

DIMANA P.PNUM = 1;

Contoh penggunaan pernyataan SELECT

Pernyataan SELECT sebenarnya adalah pernyataan SQL yang paling kritikal pengguna dan paling kompleks. Ia direka untuk mendapatkan semula data daripada jadual, ᴛ.ᴇ. ia, sebenarnya, melaksanakan salah satu tujuan asas pangkalan data - untuk memberikan maklumat kepada pengguna.

Pernyataan SELECT sentiasa dilaksanakan pada beberapa jadual yang merupakan sebahagian daripada pangkalan data.

Komen. Malah, dalam pangkalan data bukan sahaja terdapat jadual yang disimpan secara kekal, tetapi juga jadual sementara dan apa yang dipanggil pandangan. Paparan hanyalah ungkapan SELECT yang disimpan dalam pangkalan data. Dari sudut pandangan pengguna, paparan ialah jadual yang tidak disimpan secara kekal dalam pangkalan data, tetapi "muncul" apabila ia diakses. Dari sudut pandangan pernyataan SELECT, kedua-dua jadual berterusan dan jadual sementara dan paparan kelihatan sama. Sudah tentu, apabila sistem benar-benar melaksanakan pernyataan SELECT, perbezaan antara jadual yang disimpan dan pandangan diambil kira, tetapi perbezaan ini tersembunyi daripada pengguna.

Hasil daripada pernyataan SELECT sentiasa jadual. Walau bagaimanapun, berdasarkan keputusan tindakannya, pernyataan SELECT adalah serupa dengan pengendali algebra hubungan. Mana-mana pengendali algebra hubungan mesti dinyatakan dengan pernyataan SELECT yang sesuai. Kerumitan pernyataan SELECT ditentukan oleh fakta bahawa ia mengandungi semua keupayaan algebra hubungan, serta keupayaan tambahan yang tidak terdapat dalam algebra hubungan.

PILIH Perintah Pelaksanaan Penyata

Untuk memahami bagaimana hasil pelaksanaan pernyataan SELECT diperoleh, pertimbangkan gambar rajah konsep pelaksanaannya. Skim ini adalah konseptual semata-mata, kerana ia dijamin bahawa hasilnya akan sama seperti jika ia dilaksanakan langkah demi langkah mengikut skema ini. Malah, keputusan sebenar diperolehi oleh algoritma yang lebih canggih yang "milik" DBMS tertentu.

Peringkat 1: Melaksanakan Pernyataan SELECT Tunggal

Jika operator mengandungi kata kunci UNION, EXCEPT dan INTERSECT, pertanyaan dibahagikan kepada beberapa pertanyaan bebas, setiap satunya dilaksanakan secara berasingan:

Langkah 1 (DARI). Hasil darab langsung Cartesian bagi semua jadual yang dinyatakan dalam bahagian FROM mandatori dikira. Hasil daripada langkah 1, kami memperoleh jadual A.

Langkah 2 (DIMANA). Jika pernyataan SELECT mengandungi klausa WHERE, maka jadual A, yang diperoleh dalam langkah 1, diimbas. Dalam kes ini, untuk setiap baris daripada jadual A, ungkapan bersyarat yang diberikan dalam klausa WHERE dikira. Hanya baris yang ungkapan bersyarat mengembalikan TRUE disertakan dalam hasilnya. Jika bahagian WHERE ditinggalkan, maka teruskan ke langkah 3 dengan segera. Jika subkueri bersarang terlibat dalam ungkapan bersyarat, maka ia dikira mengikut skema konsep ini. Hasil daripada langkah 2, kami memperoleh jadual B.

Langkah 3 (KUMPULAN MENGIKUT). Jika pernyataan SELECT mengandungi bahagian GROUP BY, maka baris jadual B yang diperolehi dalam langkah kedua dikumpulkan mengikut senarai kumpulan yang diberikan dalam bahagian GROUP BY. Jika bahagian GROUP BY diabaikan, maka teruskan ke langkah 4 dengan segera. Hasil daripada langkah 3, kami memperoleh jadual C.

Langkah 4 (MEMILIH). Jika pernyataan SELECT mengandungi bahagian HAVING, maka kumpulan yang tidak memenuhi ungkapan bersyarat yang diberikan dalam bahagian HAVING akan dikecualikan. Jika bahagian HAVING diabaikan, maka teruskan ke langkah 5 dengan segera. Hasil daripada langkah 4, kami memperoleh jadual D.

Langkah 5 (PILIH). Setiap kumpulan yang diperoleh dalam langkah 4 menjana satu baris hasil seperti berikut. Semua ungkapan skalar yang dinyatakan dalam bahagian SELECT dinilai. Mengikut peraturan untuk menggunakan klausa GROUP BY, ungkapan skalar tersebut mestilah sama untuk semua baris dalam setiap kumpulan. Bagi setiap kumpulan, nilai fungsi agregat yang diberikan dalam bahagian SELECT dikira. Sekiranya tiada bahagian GROUP BY, tetapi terdapat fungsi agregat dalam bahagian SELECT, maka ia dianggap hanya terdapat satu kumpulan. Jika tiada KUMPULAN OLEH bahagian mahupun fungsi agregat, maka ia dianggap bahawa terdapat banyak kumpulan kerana terdapat baris yang dipilih pada masa ini. Hasil daripada langkah 5, kami memperoleh jadual E, yang mengandungi seberapa banyak lajur sebagai bilangan elemen yang disenaraikan dalam bahagian SELECT dan seberapa banyak baris sebagai bilangan kumpulan yang dipilih.

Peringkat 2. Melakukan operasi UNION, KECUALI, INTERSECT

Jika pernyataan SELECT mengandungi kata kunci UNION, EXCEPT dan INTERSECT, maka jadual yang diperoleh hasil daripada peringkat 1 digabungkan, ditolak atau bersilang.

Peringkat 3. Menyusun keputusan

Jika pernyataan SELECT mengandungi bahagian ORDER BY, maka barisan jadual yang diperolehi dalam langkah sebelumnya disusun mengikut senarai pesanan yang diberikan dalam bahagian ORDER BY.

Penyataan SQL asas. Sintaks dan contoh penggunaan pernyataan SELECT. - konsep dan jenis. Klasifikasi dan ciri kategori "Pengendali SQL asas. Sintaks dan contoh penggunaan operator SELECT." 2017, 2018.

Dan di atas data jadual.

Bahasa SQL dipanggil terbina dalam, kerana Ia mengandungi fungsi bahasa pembangunan sepenuhnya, dan tertumpu pada akses data, akibatnya ia adalah sebahagian daripada alat pembangunan aplikasi. Piawaian bahasa SQL menyokong bahasa pengaturcaraan Pascal, Fortran, COBOL, C, dll.

wujud 2 Kaedah Menggunakan SQL Terbenam:

  • statik penggunaan bahasa ( SQL statik) – teks program mengandungi panggilan ke fungsi SQL, yang disertakan dalam modul boleh laku selepas penyusunan.
  • dinamik penggunaan bahasa ( SQL dinamik) – pembinaan dinamik panggilan fungsi SQL dan tafsirannya. Sebagai contoh, anda boleh mengakses data daripada pangkalan data jauh semasa pelaksanaan program.

Bahasa SQL (seperti bahasa lain untuk bekerja dengan pangkalan data) direka untuk menyediakan dan melaksanakan pertanyaan. Hasil daripada melaksanakan pertanyaan data daripada satu atau lebih jadual, satu set rekod diperoleh, yang dipanggil pembentangan.

Definisi 1

Prestasi ialah jadual yang terbentuk hasil daripada melaksanakan pertanyaan.

Operator Bahasa Pertanyaan SQL Asas

Pengendali bahasa SQL secara konvensional dibahagikan kepada 2 subbahasa:

  1. Bahasa Definisi Data DDL;
  2. Bahasa manipulasi data DML.

Dalam jadual, mereka ditandakan dengan * pengendali tertentu bahasa.

Mari kita lihat pernyataan SQL yang paling penting.

    Pernyataan penciptaan jadual:

    Nama jadual yang sedang dibuat dan nama sekurang-kurangnya satu lajur (medan) diperlukan operan. Untuk nama lajur, anda mesti menentukan jenis data yang akan disimpan di dalamnya.

    Untuk medan individu, anda boleh menentukan peraturan tambahan untuk mengawal nilai yang dimasukkan ke dalamnya. Sebagai contoh, BUKAN NULL menunjukkan bahawa medan tidak boleh kosong dan mesti diisi dengan nilai.

    Contoh 1

    Untuk membuat jadual buku katalog buku, yang mengandungi medan:

    menaip- jenis buku,

    nama- tajuk buku,

    harga– harga buku

    pernyataan mungkin kelihatan seperti ini:

    Operator untuk menukar struktur jadual:

    Apabila menukar struktur jadual, anda boleh menambah ( TAMBAH), ubah ( UBAHSUAI) atau padam ( JATUHKAN) satu atau lebih lajur jadual. Peraturan untuk merekod operator ini adalah sama seperti untuk operator BUAT JADUAL. Untuk memadamkan lajur anda tidak perlu menentukannya.

    Contoh 2

    Untuk menambah pada jadual buku padang nombor, di mana bilangan buku akan disimpan, anda boleh menulis pengendali:

    Operator jatuh meja:

    Contoh 3

    Sebagai contoh, untuk menggugurkan jadual sedia ada bernama buku ia cukup untuk menggunakan operator:

    Operator penciptaan indeks:

    Operator mencipta indeks pada satu atau lebih lajur jadual tertentu, yang boleh mempercepatkan operasi pertanyaan dan carian. Berbilang indeks boleh dibuat untuk satu jadual.

    Pilihan pilihan UNIK bertanggungjawab untuk memastikan bahawa nilai dalam semua lajur yang dinyatakan dalam pernyataan adalah unik.

    A.S.C. menetapkan nilai dalam lajur untuk diisih secara automatik dalam tertib menaik (lalai), dan DESC– dalam susunan menurun.

    Operator penurunan indeks:

    Lihat operator penciptaan:

    Apabila anda membuat paparan, anda tidak perlu menentukan nama lajur. Kemudian nama lajur daripada pertanyaan, yang diterangkan oleh pengendali yang sepadan, akan digunakan PILIH.

    Lihat operator penyingkiran:

    Operator pemilihan rekod:

    Operator PILIH melakukan pensampelan dan pengiraan pada data daripada satu atau lebih jadual. Hasil daripada melaksanakan pengendali ialah jadual tindak balas yang mengandungi ( SEMUA) atau tidak mengandungi ( BERBEZA) baris yang diulang.

    Operand DARI mengandungi senarai jadual dari mana rekod diambil untuk pemilihan data.

    Operator pengubahsuaian rekod:

    Nilai medan baharu dalam rekod mungkin tidak mengandungi nilai ( NULL) atau dikira mengikut ungkapan aritmetik.

    Operator untuk memasukkan rekod baharu:

    Dalam rekod operator pertama INSERT Rekod baharu dimasukkan dengan nilai yang ditentukan dalam lajur.

    Dalam rekod operator kedua INSERT baris baharu dimasukkan, dipilih daripada jadual lain melalui klausa PILIH.

    Operator pemadaman rekod:

    Hasil daripada melaksanakan operator, baris yang memenuhi syarat yang ditentukan oleh operan pilihan dipadamkan daripada jadual yang ditentukan DI MANA. Jika operan DI MANA tidak dinyatakan, semua rekod jadual dipadamkan.

Soalan No 1. SQL dan sejarahnya. 1

Soalan No 2. Penerangan tentang pernyataan SQL asas.. 1

Fungsi aritmetik. 4

Fungsi pemprosesan rentetan. 5

Fungsi khas. 6

Fungsi untuk pemprosesan tarikh... 7

Menggunakan fungsi agregat dalam pertanyaan. 7

Soalan No 1. SQL dan sejarahnya

Satu-satunya cara komunikasi antara pentadbir pangkalan data, pereka bentuk, pembangun dan pengguna dengan pangkalan data hubungan ialah bahasa pertanyaan berstruktur SQL (Bahasa Pertanyaan Berstruktur). SQL ialah bahasa berciri penuh untuk memanipulasi data dalam pangkalan data hubungan. Pada masa ini, ia adalah antara muka standard yang diterima umum untuk pangkalan data hubungan seperti Oracle, Informix, Sybase, DB/2, MS SQL Server dan beberapa yang lain (standard ANSI dan ISO). SQL ialah bahasa bukan prosedur yang direka untuk memproses set yang terdiri daripada baris dan lajur jadual pangkalan data hubungan. Walaupun terdapat lanjutan daripadanya yang membenarkan pemprosesan prosedur. Pereka pangkalan data menggunakan SQL untuk mencipta semua objek fizikal pangkalan data hubungan.

Asas teori SQL diletakkan dalam artikel terkenal oleh Codd, yang meletakkan asas untuk pembangunan teori pangkalan data hubungan. Pelaksanaan praktikal pertama telah dijalankan di makmal penyelidikan IBM Chamberlin D.D. dan Royce R.F. Penggunaan industri SQL pertama kali dilaksanakan dalam DBMS Ingres. Salah satu DBMS perhubungan industri pertama ialah Oracle. Pada asasnya, DBMS hubungan ialah perisian yang menguruskan operasi pangkalan data hubungan.

Piawaian antarabangsa pertama untuk bahasa SQL telah diterima pakai pada tahun 1989 (SQL-89). Pada penghujung tahun 1992, piawaian antarabangsa baharu, SQL-92, telah diterima pakai. Pada masa ini, kebanyakan pengeluar DBMS hubungan menggunakannya sebagai asas. Walau bagaimanapun, kerja untuk menyeragamkan bahasa SQL masih jauh dari lengkap dan draf standard SQL-99 telah pun dibangunkan, yang memperkenalkan konsep objek ke dalam bahasa dan membolehkannya dirujuk dalam pernyataan SQL: Dalam versi asal SQL tiada arahan kawalan aliran data, ia muncul dalam ISO/IEC 9075-5: 1996 Bahagian Tambahan SQL yang baru diterima pakai.

Setiap DBMS khusus mempunyai pelaksanaan SQL sendiri, yang secara amnya menyokong standard tertentu, tetapi mempunyai ciri-cirinya sendiri. Pelaksanaan ini dipanggil dialek. Oleh itu, piawaian 1SO/IEC 9075-5 menyediakan objek yang dipanggil modul tersimpan berterusan atau modul PSM (Modul Tersimpan Gigih). Dalam Oracle DBMS, sambungan PL/SQL adalah analog daripada sambungan standard di atas."

Soalan No 2. Penerangan tentang pernyataan SQL asas

SQL terdiri daripada satu set arahan untuk memanipulasi data dalam pangkalan data hubungan, yang membolehkan anda mencipta objek pangkalan data hubungan, mengubah suai data dalam jadual (memasukkan, memadam, membetulkan), menukar skema hubungan pangkalan data, melakukan pengiraan pada data, membuat pilihan daripada pangkalan data, mengekalkan keselamatan dan integriti data.

Seluruh set perintah SQL boleh dibahagikan kepada kumpulan berikut:

· arahan definisi data (DDL - Bahasa Definisi Data);

· arahan manipulasi data (DML - Bahasa Manipulasi Data);

· arahan pensampelan data (DQL - Bahasa Pertanyaan Data);

· arahan pengurusan transaksi;

· arahan pengurusan data.

Apabila dilaksanakan, setiap arahan SQL melalui empat fasa pemprosesan:

· fasa penghuraian, yang termasuk menyemak sintaks arahan, menyemak nama jadual dan lajur dalam pangkalan data, dan menyediakan data input untuk pengoptimum;

· fasa pengoptimuman, yang termasuk menggantikan nama sebenar jadual dan lajur pangkalan data ke dalam paparan, mengenal pasti pilihan yang mungkin untuk melaksanakan arahan, menentukan kos melaksanakan setiap pilihan, dan memilih pilihan terbaik berdasarkan statistik dalaman;

· fasa penjanaan kod boleh laku, yang merangkumi pembinaan kod arahan boleh laku;

· fasa pelaksanaan arahan, yang melibatkan pelaksanaan kod arahan.

Pada masa ini pengoptimum adalah sebahagian daripada mana-mana pelaksanaan SQL industri. Pengoptimum berfungsi dengan mengumpul statistik tentang arahan yang dilaksanakannya dan melaksanakan transformasi algebra yang setara pada hubungan pangkalan data. Statistik ini disimpan dalam direktori pangkalan data sistem. Katalog sistem ialah kamus data untuk setiap pangkalan data dan mengandungi maklumat tentang jadual, paparan, indeks, lajur, pengguna dan keistimewaan akses mereka. Setiap pangkalan data mempunyai katalog sistem sendiri, yang mewakili koleksi jadual pangkalan data yang telah ditetapkan.

Jadual 8.1 mengandungi senarai perintah SQL mengikut piawaian yang diterima, kecuali beberapa perintah yang boleh dikatakan tidak digunakan dalam dialek.

Jadual 8.1. Senarai biasa perintah SQL

Pasukan Penerangan
Perintah untuk menentukan data objek
UBAH JADUAL Mengubah perihalan jadual (skema hubungan)
BUAT ACARA Mencipta acara pemasa dalam pangkalan data
BUAT INDEKS Mencipta indeks di atas meja
BUAT URUTAN Mencipta urutan
BUAT JADUAL Mentakrifkan jadual
BUAT RUANG MEJA Akan mencipta ruang meja
BUAT PENCETUS Mencipta pencetus dalam pangkalan data
CIPTA PANDANGAN Mentakrifkan pandangan pada jadual
DROP INDEX Secara fizikal mengalih keluar indeks daripada pangkalan data
URUTAN JATUH Memadamkan urutan
JATUH MEJA Mengalih keluar jadual secara fizikal daripada pangkalan data
JATUHKAN RUANG MEJA Memadam ruang meja
DROP VIEW Memadamkan paparan
Perintah Manipulasi Data
PADAM Mengalih keluar satu atau lebih baris daripada jadual pangkalan data
INSERT Memasukkan satu atau lebih baris ke dalam jadual pangkalan data
KEMASKINI Mengemas kini nilai lajur dalam jadual pangkalan data
Perintah Pengambilan Data
PILIH Melaksanakan pertanyaan untuk mendapatkan semula data daripada jadual dan paparan
KESATUAN Menggabungkan hasil dua atau lebih arahan SELECT ke dalam satu pilihan
Perintah Kawalan Transaksi
KOMITED Menyelesaikan transaksi dan mengemas kini secara fizikal keadaan semasa pangkalan data
KEMBALIKAN Menamatkan urus niaga dan mengembalikan keadaan semasa pangkalan data pada masa transaksi terakhir selesai dan pusat pemeriksaan
SAVEPOINT Menetapkan pusat pemeriksaan dalam transaksi
Arahan Pengurusan Data
UBAH PANGKALAN DATA Mengubah suai kumpulan storan atau log transaksi
ALTER DBAREA Menukar saiz kawasan storan pangkalan data
UBAH KATA LALUAN Menukar kata laluan untuk mengakses pangkalan data
UBAH STOGROUP Mengubah komposisi kawasan storan dalam kumpulan storan
SEMAK PANGKALAN DATA Menyemak integriti pangkalan data
SEMAK INDEKS Menyemak integriti indeks
SEMAK JADUAL Menyemak integriti jadual dan indeks
BUAT PANGKALAN DATA Secara fizikal mencipta pangkalan data
BUAT DBAREA Mencipta kawasan storan pangkalan data
BUAT STOGROUP Mencipta kumpulan storan
BUAT SINONIM Mencipta sinonim untuk jadual atau paparan
DEINSTALL PANGKALAN DATA Menjadikan pangkalan data tidak boleh diakses oleh pengguna rangkaian
GUGURKAN PANGKALAN DATA Secara fizikal memadam pangkalan data
LEPASKAN DBAREA Secara fizikal memadam kawasan storan pangkalan data
JATUHKAN STOGROUP Memadamkan kumpulan storan
GERAN Mentakrifkan keistimewaan pengguna dan kawalan akses kepada pangkalan data
PASANG PANGKALAN DATA Menjadikan pangkalan data tersedia kepada pengguna rangkaian
KUNCI PANGKALAN DATA Mengunci pangkalan data yang sedang aktif
MEMBATALKAN Membatalkan keistimewaan pengguna dan sekatan akses pangkalan data
TETAPKAN STOGROUP lalai Mentakrifkan kumpulan storan lalai
BUKA KUNCI PANGKALAN DATA Mengeluarkan pangkalan data yang sedang aktif
KEMASKINI STATISTIK Mengemas kini statistik untuk pangkalan data
Perintah lain
KOMEN PADA Meletakkan ulasan pada perihalan objek pangkalan data dalam katalog sistem
BUAT SINONIM Mentakrifkan nama alternatif untuk jadual pangkalan data dan paparan dalam katalog sistem
SINONIM JATUH Mengalih keluar nama alternatif untuk jadual pangkalan data dan pandangan daripada katalog sistem
LABEL Mengubah label penerangan sistem
ROWCOUNT Mengira bilangan baris dalam jadual pangkalan data

Set arahan SQL yang disenaraikan dalam jadual tidak lengkap. Senarai ini disediakan untuk memberi anda gambaran tentang perkara yang boleh dilakukan oleh SQL secara umum. Untuk senarai lengkap arahan, sila rujuk manual yang sesuai untuk DBMS khusus anda. Perlu diingat bahawa SQL adalah satu-satunya cara komunikasi untuk semua kategori pengguna dengan pangkalan data hubungan.

Fungsi aritmetik

SQL menyokong set lengkap operasi aritmetik dan fungsi matematik untuk membina ungkapan aritmetik di atas lajur pangkalan data (+, -, *, /, ABS, LN, SQRT, dll.).

Senarai fungsi matematik terbina dalam utama diberikan di bawah dalam Jadual 8.2.

Fungsi matematik Penerangan
ABS(X) Mengembalikan nilai mutlak nombor X
ACOS(X) Mengembalikan kosinus lengkok bagi nombor X
ASIN(X) Mengembalikan arcsine nombor X
ATAN(X) Mengembalikan arctangent bagi X
COS(X) Mengembalikan kosinus nombor X
EXP(X) Mengembalikan eksponen bagi nombor X
TANDA(X) Mengembalikan -] jika X< 0, 0, если X = 0, + 1, если X > 0
LN(X) Mengembalikan logaritma asli bagi nombor X
MOD(X,Y) Mengembalikan baki apabila X dibahagikan dengan Y
CEIL(X) Mengembalikan integer terkecil yang lebih besar daripada atau sama dengan X
BULAT(X,n) Membundarkan nombor X kepada nombor dengan n tempat selepas titik perpuluhan
SIN(X) Mengembalikan sinus X
SQRT(X) Mengembalikan punca kuasa dua nombor X
TAN(X) Mengembalikan tangen X
LANTAI(X) Mengembalikan integer terbesar kurang daripada atau sama dengan X
LOG(a,X) Mengembalikan logaritma nombor X kepada asas A
SINH(X) Mengembalikan sinus hiperbolik X
COSH(X) Mengembalikan kosinus hiperbolik bagi nombor X
TANH(X) Mengembalikan tangen hiperbolik X
TRANC(X.n) Memotong nombor X kepada nombor dengan n tempat perpuluhan
KUASA(A,X) Mengembalikan nilai A yang dinaikkan kepada kuasa X

Set fungsi terbina dalam mungkin berbeza bergantung pada versi DBMS daripada satu pengeluar dan juga dalam DBMS daripada pengeluar yang berbeza . Contohnya, dalam SQLBase DBMS, Century Inc. Terdapat fungsi @ATAN2(X,Y), yang mengembalikan arctangent Y/X, tetapi tiada fungsi SIGN(X).

Ungkapan aritmetik diperlukan untuk mendapatkan data yang tidak disimpan secara langsung dalam lajur jadual pangkalan data, tetapi nilainya diperlukan oleh pengguna. Katakan anda memerlukan senarai pekerja yang menunjukkan gaji yang diterima setiap pekerja, termasuk bonus dan penalti.

PILIH ENAME, SAL, COMM. BENAR, SAL + COMM - BENAR

Ungkapan aritmetik SAL + COMM - FINE dikeluarkan sebagai lajur baharu dalam jadual hasil, yang dikira sebagai hasil pertanyaan. Lajur sedemikian juga dipanggil atribut terbitan (dikira). atau padang.

Fungsi pemprosesan rentetan

SQL menyediakan anda dengan pelbagai fungsi untuk memanipulasi data rentetan (penggabungan rentetan, CHR, LENGTH, INSTR dan lain-lain). Senarai fungsi utama untuk memproses data rentetan diberikan dalam Jadual 8.3.

Jadual 8.3. Fungsi SQL untuk Pemprosesan Rentetan

Fungsi Penerangan
CHR(N) Mengembalikan aksara kod ASCII untuk kod perpuluhan N
ASCII(S) Mengembalikan kod ASCII perpuluhan bagi aksara pertama rentetan
INSTR(S2,SI,pos|,N|) Mengembalikan kedudukan rentetan SI dalam rentetan S2 lebih besar daripada atau sama dengan pos. N - bilangan kejadian
PANJANG Mengembalikan panjang rentetan
BAWAH (S) Menggantikan semua aksara dalam rentetan dengan aksara besar
INITCAP(S) Menetapkan aksara pertama setiap perkataan dalam rentetan kepada huruf besar dan baki aksara setiap perkataan kepada huruf besar
SUBSTR(S,pos,[,len|) Memilih subrentetan panjang sepuluh dalam rentetan S, bermula pada pos kedudukan
ATAS Menukar huruf besar dalam rentetan kepada huruf besar
LPAD(S,N |,A|) Mengembalikan rentetan S kiri berlapik dengan A kepada maksimum aksara N. Aksara padding lalai ialah ruang.
RPAD(S,N |,A]) Mengembalikan rentetan S berlapik kanan dengan A kepada maksimum aksara N. Aksara padding lalai ialah ruang.
LTRIM(S,|,Sll) Mengembalikan rentetan terpotong kiri S. Aksara dialih keluar selagi aksara yang hendak dialih keluar berada dalam rentetan - corak SI (lalai ialah ruang)
RTIM(S,|,SI |) Mengembalikan rentetan terpotong kanan S. Aksara dialih keluar selagi aksara yang hendak dialih keluar berada dalam rentetan - corak S1 (lalai ialah ruang)
TERJEMAHAN,(SI,S2) Mengembalikan rentetan S dengan semua kemunculan rentetan SI digantikan dengan rentetan S2. Jika S.I.<>S2, maka aksara yang tidak sepadan dikecualikan daripada rentetan yang terhasil
DIGANTIKAN(SI,|,S2|) Mengembalikan rentetan S yang semua kemunculan subrentetan SI digantikan dengan subrentetan S2. Jika S2 tidak dinyatakan, maka semua kejadian subrentetan SI dikeluarkan daripada rentetan S yang terhasil
NVL(X,Y) Jika X ialah NULL, maka mengembalikan Y sama ada rentetan, nombor atau tarikh, bergantung pada jenis asal Y

Nama fungsi yang sama mungkin berbeza dalam DBMS yang berbeza. Contohnya, fungsi DBMS Oracle SUBSTR(S, pos, |, len|) dalam DBMS SQLBase dipanggil @SUBSTRING(S, pos, Ien). SQLBase DBMS mempunyai fungsi yang tidak tersedia dalam Oracle DBMS (lihat jadual di bawah untuk senarai fungsi tersebut).

Jadual 8.4. Fungsi rentetan DBMS SQLBase yang berbeza daripada fungsi rentetan DBMS Oracle

Fungsi Penerangan
@EXACT(SI,S2) Mengembalikan hasil membandingkan dua rentetan
@LEFT(S,lcn) Mengembalikan subrentetan kiri len panjang
@LENGTH(S) Mengembalikan panjang rentetan
@MID(S, pos, len) Mengembalikan subrentetan panjang yang ditentukan, bermula pada posisi pos
@REPEAT(S,n) Mengulang rentetan S n kali
@REPLACE(SI,pos,len,S2) Gantikan kedudukan pos len aksara dalam rentetan S2 dengan aksara dalam rentetan SI
@KANAN(S,len) Mengembalikan subrentetan kanan S panjang len
@SCAN(S,tepuk) Mengembalikan kedudukan tepukan subrentetan dalam rentetan S
@STRING(X, skala) Mengembalikan perwakilan simbolik nombor dengan skala yang ditentukan
@TRIM(S) Mengalih keluar ruang dari kanan dan kiri rentetan
@VALUE(S) Menukar perwakilan simbolik nombor kepada nilai berangka

Anda boleh menggunakan fungsi INITCAP untuk memastikan bahawa, apabila mendapatkan semula senarai nama pekerja, nama akhir sentiasa bermula dengan huruf besar dan semua nama lain menggunakan huruf besar.

PILIH INITCAP(ENAME)

Ciri Khas

SQL menyediakan satu set fungsi khas untuk mengubah nilai lajur. Senarai fungsi tersebut diberikan dalam Jadual 8.5.

Jadual 8.5. Ciri Khas

Dalam jadual PEKERJA, anda boleh memasukkan atribut jantina untuk setiap pekerja - tambah lajur JANTINA jenis CHAR(l) (0 - lelaki, 1 - perempuan). Katakan anda memerlukan senarai pekerja, yang memerlukan mereka dibahagikan mengikut jantina dan ditunjukkan dalam format berangka; maka anda boleh mengeluarkan arahan berikut:

PILIH ENAME, LNAME, AGE, " Lantai:", TO_NUMBER(SEX)

Sebagai contoh menggunakan fungsi DECODE, kami membentangkan pertanyaan yang mengira senarai pekerja yang menunjukkan pengurus mereka. Jika pengurus tidak diketahui, maka "tidak mempunyai" dipaparkan secara lalai.

PILIH ENAME, DEC0DE(DEPN0, 10, " Dryagin", 20,"Zhilyaeva". 30,"

Korotkov", "tidak mempunyai")

Mari kita anggap bahawa ketua organisasi mempunyai nilai yang tidak ditentukan untuk lajur DEPNO dan, oleh itu, lalai yang disediakan dalam DECODE akan berfungsi untuknya .


©2015-2019 tapak
Semua hak milik pengarangnya. Laman web ini tidak menuntut pengarang, tetapi menyediakan penggunaan percuma.
Tarikh penciptaan halaman: 2016-08-07

Structure Query Language (SQL) telah dicipta hasil daripada pembangunan model data hubungan dan kini merupakan bahasa standard de facto untuk DBMS hubungan. Bahasa SQL hari ini disokong oleh sejumlah besar DBMS daripada pelbagai jenis.

Nama bahasa SQL biasanya disebut "es-qu-el". Kadangkala nama mnemonik "See-Quel" digunakan.

Bahasa SQL menyediakan pengguna (dengan usaha minimum di pihaknya) keupayaan berikut:

Cipta pangkalan data dan jadual dengan penerangan lengkap tentang strukturnya

Lakukan operasi manipulasi data asas: memasukkan, menukar, memadam data

Jalankan kedua-dua pertanyaan mudah dan kompleks.

Bahasa SQL adalah lengkap dari segi perhubungan.

Struktur dan sintaks arahannya agak mudah, dan bahasa itu sendiri adalah universal, iaitu sintaks dan struktur arahannya tidak berubah apabila berpindah dari satu DBMS ke yang lain.

Bahasa SQL mempunyai dua komponen utama:

DDL (Data Definition Language) untuk mentakrifkan struktur pangkalan data dan mengawal capaian kepada data

Bahasa DML (Data Manipulation Language) yang direka untuk mendapatkan dan mengemas kini data.

SQL ialah bahasa bukan prosedur, bermakna apabila anda menggunakannya, anda mesti menentukan maklumat yang perlu diperolehi, bukan bagaimana ia boleh diperolehi. Perintah SQL ialah perkataan Inggeris biasa (SELECT, INSERT, dll.). Mari kita lihat pernyataan SQL DML dahulu:

SELECT - memilih data daripada pangkalan data

INSERT - memasukkan data ke dalam jadual

KEMASKINI - mengemas kini data dalam jadual

DELETE - memadam data daripada jadual

SELECT kenyataan

Pengendali SELECT melakukan tindakan yang setara dengan operasi algebra hubungan berikut: pemilihan, unjuran dan cantuman.

Pertanyaan SQL paling mudah menggunakannya kelihatan seperti ini:

PILIH col_name DARI tbl

Kata kunci pilih diikuti dengan senarai lajur yang dipisahkan koma yang datanya akan dikembalikan oleh pertanyaan. Kata kunci daripada menentukan daripada jadual (atau paparan) data diambil semula.

Hasil daripada pertanyaan pilih sentiasa jadual yang dipanggil jadual hasil. Selain itu, hasil pertanyaan yang dilaksanakan menggunakan pernyataan pilih boleh digunakan untuk mencipta jadual baharu. Jika hasil dua pertanyaan pada jadual berbeza mempunyai format yang sama, anda boleh menggabungkannya menjadi satu jadual. Juga, jadual yang diperoleh hasil daripada pertanyaan boleh menjadi subjek pertanyaan lanjut.

Untuk memilih semua lajur dan semua baris jadual, cuma keluarkan SELECT * FROM tbl;

Pertimbangkan jadual Produk, yang mengandungi maklumat harga untuk pelbagai jenis produk:

Minta keputusan

PILIH * DARI Produk;

akan menjadi keseluruhan jadual Produk.

Anda boleh memilih lajur jadual tertentu menggunakan pertanyaan

PILIH col1, col2, … , coln DARI tbl;

Jadi, hasil daripada permintaan itu

PILIH Jenis, Harga DARI Produk;

akan ada meja

Senarai lajur dalam pernyataan pilih juga digunakan jika perlu untuk menukar susunan lajur dalam jadual yang terhasil:

Untuk memilih hanya baris jadual yang memenuhi sekatan tertentu, kata kunci khas yang digunakan, diikuti dengan keadaan logik. Jika rekod memenuhi syarat ini, ia termasuk dalam keputusan. Jika tidak, entri itu dibuang.

Contohnya, memilih produk tersebut daripada jadual Produk yang harganya memenuhi syarat Harga<3200, можно осуществить, используя запрос

PILIH * DARI Produk di mana Harga<3200;

Keputusan beliau:

Keadaan ini boleh dikompaun dan digabungkan menggunakan operator logik NOT , AND, OR, XOR, sebagai contoh: di mana id_ Price>500 AND Price<3500. Допускается также использование выражений в условии: where Price>(1+1) dan pemalar rentetan: where name= "autoweights".

Menggunakan binaan BETWEEN var1 DAN var2 membolehkan anda menyemak sama ada nilai mana-mana ungkapan berada dalam julat dari var1 hingga var2 (termasuk nilai ini):

PILIH * DARI Produk di mana Harga ANTARA 3000 DAN 3500;

Sama seperti operator NOT BETWEEN, terdapat operator NOT IN.

Nama lajur yang dinyatakan dalam klausa SELECT boleh dinamakan semula. Untuk ini, kata kunci AS digunakan, yang, bagaimanapun, boleh ditinggalkan, kerana ia tersirat secara tersirat. Contohnya, permintaan

PILIH model Type AS, Type_id AS num FROM Product di mana Type_id =3

akan kembali (nama alias harus ditulis tanpa petikan):

Pengendali LIKE direka untuk membandingkan rentetan dengan corak:

PILIH * DARI tbl di mana col_name SUKA "abc"

Pertanyaan ini hanya mengembalikan rekod yang mengandungi nilai rentetan abc dalam lajur col_name.

Sampel dibenarkan menggunakan dua aksara kad bebas: "_" dan "%". Yang pertama daripada mereka menggantikan satu aksara arbitrari dalam templat, dan yang kedua menggantikan urutan aksara arbitrari. Jadi, "abc%" sepadan dengan mana-mana rentetan bermula dengan abc, "abc_" sepadan dengan rentetan 4 aksara bermula dengan abc, "%z" sepadan dengan mana-mana rentetan yang berakhir dengan z, dan akhirnya, "%z%" - jujukan aksara yang mengandungi z.

Anda boleh menemui semua rekod jadual Produk di mana nilai Jenis bermula dengan huruf "a" seperti ini:

PILIH * DARI Produk di mana Taip SUKA "a%";

penimbang lori

Jika rentetan carian mengandungi aksara kad bebas, maka anda mesti menentukan aksara melarikan diri dalam klausa ESCAPE. Watak kawalan ini mesti digunakan dalam corak sebelum watak kad bebas, menunjukkan bahawa watak kad bebas harus dianggap sebagai watak biasa. Sebagai contoh, jika anda mencari semua nilai dalam medan yang mengandungi aksara "_", maka corak "%_%" akan menyebabkan semua rekod daripada jadual dikembalikan. Dalam kes ini, templat hendaklah ditulis seperti berikut:

"%|_%" ESCAPE "|"

Untuk menyemak nilai pematuhan dengan rentetan "20%" anda boleh menggunakan operator berikut:

SUKA "20#%" PELARIKAN "#"

Pengendali IS NULL membolehkan anda menyemak ketiadaan (kehadiran) nilai NULL dalam medan jadual. Menggunakan operator perbandingan biasa dalam kes ini mungkin menghasilkan keputusan yang salah kerana membandingkan dengan keputusan NULL dalam UNKNOWN. Oleh itu, syarat pemilihan sepatutnya kelihatan seperti ini:

di mana col_name IS NULL, bukannya di mana col_name=NULL.

Keputusan pemilihan lalai mengembalikan rekod dalam susunan yang sama di mana ia disimpan dalam pangkalan data. Jika anda ingin mengisih rekod mengikut salah satu lajur, anda mesti menggunakan klausa ORDER BY, diikuti dengan nama lajur itu:

PILIH * DARI tbl ORDER OLEH col_name;

Pertanyaan ini akan mengembalikan rekod dalam tertib menaik bagi nilai atribut col_name.

Anda juga boleh mengisih rekod mengikut berbilang lajur. Untuk melakukan ini, nama mereka mesti dinyatakan selepas ORDER BY dipisahkan dengan koma:

PILIH * DARI tbl ORDER OLEH col_name1, col_name2.

Rekod akan diisih mengikut medan col_name1; jika terdapat beberapa rekod dengan nilai yang sepadan dalam lajur col_name1, mereka akan diisih mengikut medan col_name2.

Jika anda ingin mengisih rekod dalam susunan terbalik (contohnya, menurun mengikut tarikh), anda mesti menentukan ORDER BY col_name DESC.

Untuk pengisihan langsung, terdapat kata kunci ASC, yang diterima sebagai nilai lalai.

Jika keputusan sampel mengandungi ratusan atau ribuan rekod, output dan pemprosesannya mengambil masa yang agak lama.

Oleh itu, maklumat sering dibahagikan kepada halaman dan dibentangkan kepada pengguna dalam bahagian. Penomboran digunakan menggunakan kata kunci had diikuti dengan bilangan entri untuk dipaparkan. Pertanyaan berikut mendapatkan semula 10 rekod pertama sambil mengisih ke belakang pada medan col_name1 secara serentak:

PILIH * DARI tbl ORDER OLEH col_name1 DESC LIMIT 10

Untuk mendapatkan semula 10 rekod seterusnya, gunakan kata kunci had dengan dua nilai: yang pertama menentukan kedudukan dari mana keputusan harus dicetak dan yang kedua menentukan bilangan rekod untuk diambil:

PILIH * DARI tbl ORDER OLEH col_name1 DESC LIMIT 10,10

Untuk mendapatkan semula 10 rekod seterusnya, anda mesti menggunakan konstruk LIMIT 20, 10.