Komputer, Pengaturcaraan
Penyata SQL asas
SQL standard telah diterima pakai pada tahun 1992 dan masih digunakan hari ini. Bahawa dia telah menjadi penanda aras bagi banyak sistem pengurusan pangkalan data. Sudah tentu, beberapa pengeluar menggunakan tafsiran mereka sendiri piawaian. Tetapi dalam mana-mana sistem, masih terdapat komponen utama - penyata SQL.
pengenalan
Menggunakan penyata SQL di dalam pangkalan data berlaku jadual pengurusan nilai dan persediaan mereka untuk analisis lanjut dan paparan. Mereka adalah satu set kata kunci, yang mana sistem itu tahu apa yang perlu dilakukan dengan data.
Menentukan beberapa kategori penyata SQL:
- definisi objek pangkalan data;
- memanipulasi nilai;
- perlindungan dan pengurusan;
- parameter sesi;
- Maklumat tentang asas;
- SQL statik;
- SQL dinamik.
penyata SQL untuk manipulasi data
Kategori ini termasuk kata kunci yang anda boleh mengawal penempatan nilai dalam pangkalan data.
INSERT. Selitkan baris dalam jadual yang sedia ada. Ia boleh digunakan sebagai nilai tunggal atau berbilang, yang ditakrifkan oleh keadaan tertentu. Sebagai contoh:
INSERT INTO
nama jadual (lajur 1 nama, nama lajur 2)
VALUES (nilai 1 nilai 2).
Untuk menggunakan operator kenyataan SQL INSERT dengan pelbagai nilai, menggunakan sintaks yang berikut:
INSERT INTO
1 Nama meja (nama lajur 1, nama lajur 2)
nama lajur SELECT 1, nama lajur 2
DARI nama jadual 2
MANA nama 2.imya lajur jadual 1> 2
Pertanyaan ini memilih semua data dalam Jadual 2, yang lebih besar daripada 2 untuk 1 lajur dan tampalkannya ke dalam pertama.
UPDATE. Seperti namanya, kenyataan ini mengemas kini data SQL pertanyaan dalam jadual yang sedia ada atas dasar tertentu.
contoh:
UPDATE nama jadual 1
nama lajur SET = 2 "Basil"
MANA nama jadual 1.imya lajur 1 = 1
Struktur nilai mengisi Basil semua baris yang memenuhi nombor 1 dalam ruang pertama.
DELETE. Memadam data dari jadual. Anda boleh menentukan apa-apa syarat atau untuk membuang semua baris.
DELETE FROM nama jadual
MANA lajur nama tablitsy.imya 1 = 1
Pertanyaan di atas akan memadamkan semua data dari pangkalan data dengan nilai satu dalam lajur pertama. Berikut adalah bagaimana anda boleh mengosongkan seluruh jadual:
DELETE FROM nama jadual.
Berikut adalah perlu untuk memberitahu tentang kenyataan SELECT. Beliau adalah salah satu yang paling penting, jadi dia perlu menumpukan bab yang berasingan.
kenyataan SELECT
Tujuan utama SELECT - pemilihan data mengikut syarat-syarat tertentu. Hasil kerja beliau sentiasa jadual baru dengan data yang dipilih. MS operator SQL SELECT boleh digunakan untuk berat permintaan yang berbeza. Oleh itu, bersama-sama dengan itu, anda boleh mempertimbangkan kata kunci lain yang berkaitan.
Untuk memilih semua simbol data "*" digunakan daripada jadual tertentu.
SELECT *
DARI nama jadual 1
Hasil daripada pertanyaan ini akan menjadi satu salinan tepat sesuatu jadual 1.
Dan di sini adalah diambil oleh mana syarat yang menarik keluar dari Jadual 1, nilai-nilai yang lebih besar daripada 2 dalam lajur 1.
SELECT *
DARI nama jadual 1
MANA nama 1.imya lajur jadual 1> 2
Anda juga boleh menentukan dalam pemilihan yang hanya lajur tertentu diperlukan.
SELECT nama jadual 1.imya lajur 1
DARI nama jadual 1
Hasil daripada pertanyaan ini akan semua baris dengan nilai-nilai lajur 1. Menggunakan pengendali MS SQL boleh membuat jadual sendiri, dalam perjalanan untuk menggantikan, mengira dan menggantikan nilai-nilai tertentu.
SELECT
nama jadual 1.imya lajur 1
nama jadual 1.imya lajur 2
nama jadual 1.imya lajur 3
«=» AS EQ
nama jadual 1.imya lajur 2 nama jadual * 1.imya lajur 3 AS SUMMA
DARI nama jadual 1
Ini pertanyaan yang seolah-olah kompleks ini diperoleh semua nilai dalam Jadual 1, dan kemudian mencipta ruang baru dan EQ SUMMA. Pertama memasuki tanda "+", dalam ruang data kedua produk 2 dan 3. Keputusan ini boleh diwakili sebagai jadual, untuk memahami bagaimana ia berfungsi:
lajur 1 | lajur 2 | lajur 3 | EQ | SUMMA |
Nama produk 1 | 10 | 50 | + | 500 |
Nama Produk 2 | 15 | 100 | + | 1500 |
Jika anda menggunakan kenyataan SELECT, anda boleh terus menghabiskan pesanan data mengenai apa-apa alasan. Ia menggunakan ORDER perkataan OLEH.
SELECT
nama jadual 1.imya lajur 1
nama jadual 1.imya lajur 2
nama jadual 1.imya lajur 3
DARI nama jadual 1
PERINTAH OLEH nama lajur 2
Jadual terhasil akan kelihatan seperti ini:
lajur 1 | lajur 2 | lajur 3 |
1 | 1 | 54 |
3 | 2 | 12 |
7 | 3 | 100 |
2 | 5 | 1 |
Iaitu, semua garis yang telah dipasang dalam apa-apa cara yang lajur 2 nilai sedang mendaki.
Data juga boleh diperolehi dari pelbagai jadual. Untuk kejelasan, anda perlu membayangkan bahawa mereka mempunyai dua, ada yang di dalam pangkalan data:
Jadual "Pekerja"
nombor | nama | nama keluarga |
1 | Vasya | vasin |
2 | petya | Petin |
Jadual "Gaji"
nombor | Kadar | dikreditkan dengan |
1 | 1 | 10000 |
2 | 0.5 | 3500 |
Sekarang anda perlu, seperti yang menghubungkan kedua-dua jadual untuk mendapatkan nilai yang sama. Menggunakan penyata SQL asas ia boleh dilakukan seperti berikut:
SELECT
Sotrudniki.Nomer
Sotrudniki.Imya
Zarplata.Stavka
Zarplata.Nachisleno
DARI Pekerja Gaji
MANA Sotrudniki.Nomer = Zarplata.Nomer
Terdapat diambil dari dua jadual yang berbeza nilai, bersatu dengan nombor. hasilnya adalah set data berikut:
nombor | nama | Kadar | dikreditkan dengan |
1 | Vasya | 1 | 10000 |
2 | petya | 0.5 | 3500 |
A sedikit lebih lanjut mengenai SELECT. Menggunakan fungsi agregat
Salah satu kenyataan asas SQL SELECT boleh menghasilkan beberapa pengiraan dalam sampel. Untuk melakukan ini, dia menggunakan fungsi dan formula tertentu.
Sebagai contoh, untuk mendapatkan bilangan rekod daripada jadual "Pekerja", anda perlu menggunakan pertanyaan:
COUNT SELECT (*) AS N
DARI Pekerja
hasilnya akan menjadi meja dengan satu lajur dan nilai.
N |
2 |
fungsi boleh digunakan dalam pertanyaan yang mengira jumlah, nilai maksimum dan minimum, dan purata. Untuk melakukan ini, kata kunci digunakan SUM, MAX, MIN, AVG.
Sebagai contoh, ia adalah perlu untuk mengadakan sampel "Gaji" meja yang sudah diketahui:
nombor | Kadar | dikreditkan dengan |
1 | 1 | 10000 |
2 | 0.5 | 3500 |
Anda boleh memohon apa-apa permintaan dan lihat apa yang berlaku:
SELECT
SUM (Zarplata.Nachisleno) AS SUMMA
MAX (Zarplata.Nachisleno) AS MAX
MIN (Zarplata.Nachisleno) AS MIN
AVG (Zarplata.Nachisleno) AS Sred
DARI Gaji
Jadual di akhir adalah seperti berikut:
SUMMA | MAX | MIN | Sred |
13500 | 10000 | 3500 | 6750 |
Itulah cara, anda boleh memilih daripada pangkalan data nilai yang sesuai dengan cepat untuk melakukan pengiraan pelbagai fungsi.
Union, persimpangan dan perbezaan
Menggabungkan pelbagai pertanyaan dalam SQL
SELECT Sotrudniki.Imya
DARI Pekerja
MANA Sotrudniki.Nomer = 1
UNION
SELECT Sotrudniki.Imya
DARI Pekerja Gaji
MANA Zarplata.Nomer = 1
Perlu diingat bahawa dalam jadual persatuan ini mesti serasi. Iaitu, mempunyai jumlah yang sama tiang.
Sintaks kenyataan SELECT dan tatacara bagi pemprosesan
Perkara pertama SELECT menentukan kawasan dari mana ia akan mengambil data. Untuk melakukan ini, gunakan kata kunci FROM. Jika tidak dinyatakan, apa yang perlu memilih.
Anda boleh mengemukakan penyata SQL MANA. Dengan bantuan SELECT berjalan melalui setiap baris meja dan memeriksa data untuk pematuhan dengan syarat.
Jika pertanyaan ini mempunyai GROUP BY, maka perkumpulan nilai-nilai parameter ini.
Pengendali untuk membandingkan data
Mereka mempunyai beberapa jenis. Dalam SQL operator perbandingan boleh menguji jenis nilai-nilai.
"=". Menandakan, seperti yang anda sangka, persamaan kedua-dua ungkapan. Sebagai contoh, ia telah digunakan dalam contoh di atas - MANA Zarplata.Nomer = 1.
">". Lebih tinggi daripada tanda. Jika nilai sebelah kiri ungkapan adalah lebih besar maka TRUE logik dikembalikan dan keadaan ini dipenuhi.
"<". Tanda kurang daripada. Songsang pengendali sebelumnya.
Tanda-tanda "<=" dan "> =". Ia berbeza daripada pengendali mudah lebih dan kurang adalah bahawa dengan operan sama keadaan juga benar.
"<>". Saya tidak peduli. Keadaan ini dianggap TRUE, jika hanya satu operan tidak sama dengan yang lain. Beliau mempunyai satu lagi tafsiran - "=".
LIKE
Terjemah kata kunci ini boleh menjadi "yang sama." LIKE operator dalam SQL digunakan kira-kira pada prinsip yang sama - berjalan pertanyaan daripada templat. Iaitu, ia membolehkan anda untuk mengembangkan data sampel dari pangkalan data menggunakan ungkapan biasa.
Sebagai contoh, ia menetapkan apa-apa tugas: dari asas "kakitangan" yang sudah diketahui untuk mendapatkan semua orang yang namanya berakhir dengan "I". Maka permintaan itu boleh terdiri seperti berikut:
SELECT *
DARI Pekerja
MANA Nama LIKE '% I`ll
Tanda peratus dalam kes ini bermakna topeng, iaitu apa-apa watak, dan bilangan mereka. Dan dalam surat itu, "Saya» SQL menentukan bahawa aksara terakhir untuk menjadi seperti itu.
CASE
Kenyataan SQL Server adalah pelaksanaan pelbagai pilihan. Ia menyerupai kenyataan suis dalam banyak bahasa pengaturcaraan. kenyataan CASE dalam SQL melakukan satu amalan di beberapa syarat.
Sebagai contoh, anda pilih daripada jadual "gaji" maksimum dan nilai minimum.
nombor | Kadar | dikreditkan dengan |
1 | 1 | 10000 |
2 | 0.5 | 3500 |
Maka permintaan itu boleh terdiri seperti berikut:
SELECT *
DARI Gaji
MANA KES APABILA SELECT MAX (Dicaj) THEN maksimum
APABILA SELECT MIN (Dicaj) THEN Minimum
hasil END
dalam lajur "Dikenakan" dalam konteks ini, sistem kelihatan untuk nilai maksimum dan minimum. Kemudian, dengan menggunakan medan END yang dicipta "jumlah", yang akan dilog dalam "maksimum" atau "minimum" bergantung kepada hasil daripada keadaan.
Dengan cara ini, dalam SQL terdapat bentuk yang lebih padat CASE - bertaut.
definisi data
Pandangan ini membolehkan anda untuk menjalankan pelbagai perubahan jadual - membuat, memadam, mengubah suai, dan bekerja dengan indeks.
Yang pertama, yang bernilai mengingati - CREATE TABLE. Ia berbuat apa-apa lagi daripada mewujudkan jadual. Jika anda hanya perlu menaip CREATE TABLE pertanyaan, tiada apa yang akan berlaku, kerana anda perlu untuk menentukan beberapa lagi parameter.
Sebagai contoh, untuk membuat jadual biasa "Pekerja" mahu menggunakan arahan:
CREATE TABLE Pekerja
(Nombor ID (10) TIDAK NULL
Nama varchar (50) TIDAK NULL
Nama Akhir varchar (50) TIDAK NULL)
Dalam permohonan ini, dalam kurungan segera ditakrifkan nama medan dan jenis mereka, dan juga sama ada ia boleh menjadi NULL.
DROP TABLE
Melakukan satu tugas yang mudah - menghapuskan Rajah berkata. Ia mempunyai pilihan tambahan IF EXISTS. Ia menyerap ralat apabila memotong, jika jadual yang diperlukan tidak wujud. Contoh penggunaan:
DROP TABLE Pekerja IF EXISTS.
CREATE INDEX
Dalam SQL, terdapat satu sistem indeks, yang membolehkan akses yang lebih cepat kepada data. Secara umum, ia adalah pautan yang menunjuk ke lajur tertentu. Mencipta indeks boleh menjadi permintaan yang mudah:
CREATE INDEX nazvanie_indeksa
ON nazvanie_tablitsy (nazvanie_stolbtsa)
Menggunakan kenyataan ini dalam T-SQL, Oracle, PL SQL dan banyak tafsiran lain teknologi.
ALTER TABLE
operator sangat berfungsi dengan banyak pilihan. Secara umum, perubahan menghasilkan struktur definisi dan jadual peruntukan. Operator digunakan dalam Oracle SQL, Postgres, dan lain-lain lagi.
Rujukan sekarang akan dibentangkan dengan pelbagai pilihan menggunakan ALTER TABLE.
ADD. Menjalankan penambahan lajur dalam jadual. Sintaks kepadanya: MENGUBAH JADUAL TAMBAH nazvanie_tablitsy nazvanie_stolbtsa tip_hranimyh_dannyh. Boleh mempunyai parameter JIKA TIDAK EXISTS, yang menyekat ralat jika lajur sudah telah diwujudkan;
DROP. Membuang lajur. IF EXISTS juga selesai, yang akan menghasilkan ralat yang mengatakan bahawa ruangan yang diminta tidak wujud;
TUKAR. Digunakan untuk menamakan semula nama medan yang dinyatakan. Contoh penggunaan: ALTER TABLE TUKAR nazvanie_tablitsy OldName NEW_NAME;
MENGUBAH SUAI. Arahan ini akan menukar jenis lajur tertentu dan ciri-ciri tambahan. Dan ia digunakan seperti ini: ALTER TABLE MENGUBAH SUAI nazvanie_tablitsy jenisdata nazvanie_stolbtsa sifat-sifat;
CREATE VIEW
Dalam SQL, terdapat perkara yang sedemikian sebagai satu idea. Pendek kata, ia adalah sejenis meja maya dengan data. Ia terbentuk akibat daripada sampel menggunakan bahasa SQL SELECT kenyataan itu. Views boleh menyekat akses kepada pangkalan data untuk menyembunyikan mereka, untuk menggantikan lajur nama sebenar.
Proses penciptaan berlaku oleh pertanyaan yang mudah:
CREATE VIEW nama pandangan AS SELECT DARIPADA * nama jadual
Persampelan boleh berlaku sebagai pangkalan data keseluruhan secara keseluruhan, dan dalam keadaan tertentu.
Sedikit mengenai ciri-ciri
Dalam SQL pertanyaan sering menggunakan fungsi terbina dalam yang berbeza yang membolehkan anda berinteraksi dengan data dan menukar mereka dengan cepat. Ia adalah bernilai mengingati mereka, kerana mereka adalah merupakan sebahagian daripada bahasa berstruktur.
COUNT. Menghasilkan mengira baris atau penyertaan dalam jadual tertentu. Sebagai pilihan, anda boleh menentukan nama lajur, maka data akan diambil dari padanya. COUNT SELECT * FROM Pekerja;
AVG. Ciri ini hanya terpakai kepada tiang dengan data angka. hasilnya adalah penentuan min aritmetik semua nilai;
MIN dan MAX. Fungsi-fungsi ini telah digunakan dalam artikel ini. Mereka menentukan nilai maksimum dan minimum lajur tersebut;
SUM. Ia mudah - fungsi mengira hasil tambah nilai dalam lajur. Ia digunakan secara eksklusif untuk jenis data berangka. Menambah permintaan parameter yang berbeza, akan ditambah hanya untuk nilai unik;
ROUND. Fungsi pembundaran nombor pecahan perpuluhan. Sintaks yang digunakan oleh nama lajur dan bilangan tempat perpuluhan;
LEN. Fungsi mudah yang mengira panjang tiang. hasilnya akan menjadi jadual baru yang menunjukkan bilangan aksara;
SEKARANG. Kata kunci ini digunakan untuk mengira tarikh dan masa semasa.
pengendali tambahan
Banyak contoh penyata SQL adalah kata kunci yang melaksanakan tugas-tugas kecil, namun sangat memudahkan sampel atau aktiviti pangkalan data.
AS. Ia digunakan apabila anda mahu untuk visual menguruskan hasil daripada memberikan nama yang dinyatakan untuk mendapatkan jadual.
ANTARA. Satu alat yang sangat berguna untuk persampelan. Ia menunjukkan julat nilai, termasuk keperluan untuk mendapatkan data. Parameter input menerima dari dan ke pelbagai nombor digunakan;.
TIDAK. pengendali memberikan bertentangan dengan ungkapan.
Memendekkan. Membuang data dari bahagian asas tersebut. Berbeza daripada pengendali yang memulihkan data selepas penggunaannya mustahil. Ia diperhatikan bahawa pelaksanaan kata kunci tertentu dalam SQL yang berbeza boleh menjadi tafsiran yang berbeza. Jadi, sebelum anda cuba menggunakan memendekkan, lebih baik berkenalan dengan maklumat latar belakang.
LIMIT. Menetapkan bilangan baris output. The keanehan pengendali adalah bahawa ia sentiasa terletak pada akhir. Ia mengambil masa satu mandatori dan satu parameter pilihan. Pertama menunjukkan berapa banyak baris dengan data yang dipilih untuk menunjukkan. Dan jika kedua, kemudian pengendali mengendalikan kedua-dua julat nilai.
UNION. Sangat pengendali mesra pengguna untuk menggabungkan pelbagai pertanyaan. Beliau telah bertemu antara contoh ini dalam artikel ini. Anda boleh memaparkan baris daripada berbilang jadual, UNION menggabungkan mereka untuk kegunaan lebih mudah. Sintaks kepadanya: Pilih lajur FROM Rajah UNION SELECT DARIPADA Rajah imya_drugogo_stolbtsa imya_drugoy. Hasilnya ialah jadual ringkasan daripada tuntutan yang bersatu padu.
KEY RENDAH. Diterjemahkan sebagai "kunci utama." Sebenarnya, itu istilah itu digunakan dalam bahan-bahan rujukan. Beliau adalah pengecam unik untuk baris. Ia digunakan, sebagai peraturan, semasa membuat jadual untuk menunjukkan bidang yang akan membendungnya.
DEFAULT. Sama seperti pengendali sebelumnya, yang digunakan dalam pelaksanaan mewujudkan pertanyaan. Ia mentakrifkan nilai lalai, yang akan diisi dalam padang apabila ia dicipta.
Beberapa tips untuk membangunkan platform untuk bekerja dengan SQL
NULL. Pemula dan bukan hanya pengaturcara dalam penyediaan permintaan sering lupa tentang adanya nilai NULL. Hasilnya, kod ralat ngeri dalam, yang sukar untuk mengesan dalam proses debugging. Oleh itu, semasa membuat jadual, nilai-nilai sampel atau dikira semula perlu berhenti dan berfikir, dan sama ada NULL kejadian diambil kira di kawasan pertanyaan.
Ingatan. Dalam kertas ini kita telah ditunjukkan beberapa fungsi, mampu melaksanakan tugas-tugas tertentu. Dalam pembangunan shell untuk bekerja dengan pangkalan data, anda boleh "melebihi" pengiraan ungkapan mudah untuk sistem pangkalan data. Dalam sesetengah kes, ini memberi rangsangan ketara dalam prestasi.
Sekatan. Jika anda mahu untuk mendapatkan dari pangkalan data dengan beribu-ribu baris hanya dua, ia adalah perlu untuk menggunakan operator seperti LIMIT atau TOP. Tidak perlu untuk mendapatkan data melalui shell perkembangan bahasa.
Menyambung. Setelah menerima data daripada beberapa jadual, ramai pengaturcara mula mengurangkan mereka bersama-sama sampul surat memori bermakna. Tetapi mengapa? Lagipun, anda boleh membuat permintaan di mana ia akan semua hadir. Anda tidak perlu menulis kod sekali dan tempahan memori tambahan di dalam sistem.
Sorting. Jika ia adalah mungkin untuk memohon peraturan dalam permintaan itu, iaitu, kuasa-kuasa DBMS, adalah perlu untuk menggunakannya. Ini akan menjimatkan sumber apabila program atau perkhidmatan.
Banyak permintaan. Jika anda perlu memasukkan banyak rekod dalam urutan, maka pengoptimuman perlu memikirkan data paket dimasukkan satu permintaan. Ini juga akan meningkatkan prestasi keseluruhan sistem.
penempatan berhati-hati dengan data. Sebelum merangka struktur asas perlu berfikir tentang bagaimana dan sama ada apa-apa beberapa jadual dan medan yang diperlukan. Mungkin ada cara untuk menggabungkan mereka, atau memberikan beberapa. Selalunya, pengaturcara menggunakan terlalu banyak data yang mana-mana dan tidak pernah digunakan.
Jenis. Untuk menjimatkan ruang dan sumber perlu peka dengan jenis data yang digunakan. Jika anda boleh mengambil kesempatan daripada kurang "berat" untuk jenis memori, anda perlu menggunakan nama-Nya. Sebagai contoh, jika diketahui bahawa dalam bidang ini adalah nilai angka tidak akan melebihi 255, mengapa penggunaan 4-bait INT, jika terdapat TINYINT 1 bait.
kesimpulan
Kesimpulannya, ia harus diperhatikan bahawa bahasa distrukturkan pertanyaan SQL kini digunakan di mana-mana - laman web, perkhidmatan web, perisian desktop, aplikasi mudah alih. Oleh itu, pengetahuan SQL akan membantu semua sektor pembangunan.
Walau bagaimanapun, pengubahsuaian standard bahasa ibunda kadang-kadang berbeza antara satu sama lain. Sebagai contoh, pengendali SQL PL mungkin mempunyai sintaks berbeza daripada dalam SQL Server. Jadi sebelum anda mula mengembangkan dengan teknologi ini, adalah perlu untuk berkenalan dengannya oleh garis panduan.
Dalam rakan-rakan masa depan, yang boleh mengatasi fungsi SQL dan prestasi, ia tidak mungkin untuk muncul, jadi skop ini agak niche menjanjikan untuk sebarang programmer.
Similar articles
Trending Now