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:
- Bahasa Definisi Data DDL;
- 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.