Lembaran Menipu SQL

Imej Pengenalan Lembaran Menipu SQL


Dalam panduan ini, anda akan menemui helaian cheat yang berguna yang mendokumentasikan beberapa elemen SQL yang lebih biasa digunakan, dan juga beberapa yang kurang biasa. Mudah-mudahan, ia dapat membantu pemaju – baik peringkat pemula dan berpengalaman – menjadi lebih mahir dalam memahami bahasa SQL.

Gunakan ini sebagai rujukan cepat semasa pengembangan, alat bantu belajar, atau bahkan mencetaknya dan mengikatnya jika anda mahu (apa sahaja yang berkesan!).

Tetapi sebelum kita sampai ke cheat sheet itu sendiri, bagi pembangun yang mungkin tidak biasa dengan SQL, mari kita mulakan dengan…

Apa itu SQL

SQL bermaksud Bahasa Pertanyaan Berstruktur. Ini adalah bahasa pilihan di web hari ini untuk menyimpan, memanipulasi dan mengambil data dalam pangkalan data hubungan. Sebilangan besar, jika tidak semua laman web yang anda lawati akan menggunakannya dalam beberapa cara, termasuk ini satu.

Inilah rupa pangkalan data hubungan asas. Contoh ini secara khusus menyimpan maklumat e-dagang, khususnya produk yang dijual, pengguna yang membelinya, dan rekod pesanan ini yang menghubungkan 2 entiti ini.

Pangkalan data hubungan asas

Dengan menggunakan SQL, anda dapat berinteraksi dengan pangkalan data dengan menulis pertanyaan, yang apabila dijalankan, mengembalikan hasil yang memenuhi kriteria.

Berikut adalah contoh pertanyaan:-

PILIH * DARI pengguna;

Dengan menggunakan pernyataan SELECT ini, pertanyaan memilih semua data dari semua lajur dalam jadual pengguna. Ia kemudian akan mengembalikan data seperti di bawah, yang biasanya disebut sebagai set hasil:-

Contoh jadual pengguna

Sekiranya kita menggantikan watak wildcard asterisk (*) dengan nama lajur tertentu, hanya data dari lajur ini yang akan dikembalikan dari pertanyaan.

PILIH nama pertama, nama terakhir dari pengguna;

Contoh jadual pengguna dengan lajur yang dikurangkan

Kami dapat menambahkan sedikit kerumitan pada pernyataan SELECT standard dengan menambahkan klausa WHERE, yang membolehkan anda menapis apa yang akan dikembalikan.

PILIH * DARI produk DI MANA stock_count <= 10 ORDER BY stock_count ASC;

Pertanyaan ini akan mengembalikan semua data dari jadual produk dengan nilai stock_count kurang dari 10 dalam set hasilnya.

Penggunaan kata kunci ORDER BY bermaksud hasilnya akan dipesan menggunakan lajur stock_count, nilai terendah hingga tertinggi.

Jadual produk contoh

Dengan menggunakan pernyataan INSERT INTO, kita dapat menambahkan data baru ke dalam jadual. Berikut adalah contoh asas menambahkan pengguna baru ke jadual pengguna:-

INSERT INTO pengguna (nama pertama, nama belakang, alamat, e-mel)
NILAI ('Penguji', 'Jester', '123 Fake Street, Sheffield, United Kingdom', '[dilindungi e-mel]');

Kemudian jika anda menjalankan semula pertanyaan untuk mengembalikan semua data dari jadual pengguna, set hasilnya akan kelihatan seperti ini:

Jadual contoh dengan barisan baru

Sudah tentu, contoh-contoh ini menunjukkan pilihan yang sangat kecil dari apa yang mampu dilakukan oleh bahasa SQL.

SQL vs MySQL

Anda mungkin pernah mendengar mengenai MySQL sebelum ini. Penting agar anda tidak membingungkannya dengan SQL itu sendiri, kerana terdapat perbezaan yang jelas.

SQL vs MySQLSQL adalah bahasa. Ini menggariskan sintaks yang membolehkan anda menulis pertanyaan yang menguruskan pangkalan data hubungan. Tidak lebih.

MySQL sementara itu adalah pangkalan data sistem yang berjalan di pelayan. Ia melaksanakan bahasa SQL, yang membolehkan anda menulis pertanyaan menggunakan sintaksnya untuk menguruskan pangkalan data MySQL.

Selain MySQL, ada sistem lain yang menerapkan SQL. Beberapa yang lebih popular termasuk:

  • PostgreSQL
  • SQLite
  • Pangkalan Data Oracle
  • Pelayan Microsoft SQL

Memasang MySQL

Tingkap

Cara yang disyorkan untuk memasang MySQL pada Windows adalah dengan menggunakan pemasang yang boleh anda muat turun dari Laman web MySQL.

Pasang Windows MySQL

MacOS

Pada macOS, cara yang disyorkan untuk memasang MySQL adalah menggunakan pakej asli, yang kedengarannya jauh lebih rumit daripada sebenarnya. Pada dasarnya, ia hanya melibatkan memuat turun sebuah pemasang.

Pasang MySQL Mac

Sebagai alternatif, Sekiranya anda lebih suka menggunakan pengurus pakej seperti Pembancuh rumah, anda boleh memasang MySQL seperti:

brew pasang mysql

Walaupun anda perlu memasang MySQL versi 5.7 yang lebih lama, yang masih banyak digunakan hari ini di web, anda boleh:

pemasangan bir [dilindungi e-mel]

Menggunakan MySQL

Dengan MySQL yang kini dipasang di sistem anda, untuk bangun dan berjalan secepat mungkin menulis pertanyaan SQL, disarankan agar anda menggunakan aplikasi pengurusan SQL untuk menjadikan pengurusan pangkalan data anda menjadi proses yang lebih mudah dan mudah..

Terdapat banyak aplikasi yang boleh dipilih yang sebahagian besarnya melakukan pekerjaan yang sama, jadi bergantung kepada pilihan peribadi anda untuk memilih mana:

  • Meja Kerja MySQL dibangunkan oleh Oracle, pemilik MySQL.
  • HeidiSQL (Windows yang disyorkan) adalah aplikasi sumber terbuka percuma untuk Windows. Untuk pengguna macOS dan Linux, Wain pertama diperlukan sebagai prasyarat.
  • phpMyAdmin adalah alternatif yang sangat popular yang beroperasi di penyemak imbas web.
  • Sequel Pro (MacOS yang disyorkan) adalah satu-satunya alternatif macOS dan kegemaran kami berkat antara muka yang jelas dan mudah digunakan.

Apabila anda sudah bersedia untuk mula menulis pertanyaan SQL anda sendiri, daripada menghabiskan masa membuat pangkalan data anda sendiri, pertimbangkan untuk mengimport data palsu.

Laman web MySQL menyediakan sejumlah pangkalan data dummy bahawa anda boleh memuat turun secara percuma dan kemudian mengimport ke aplikasi SQL anda.

Pangkalan Data Dummy MySQL

Kegemaran kami adalah dunia pangkalan data, yang menyediakan beberapa data menarik untuk berlatih menulis pertanyaan SQL untuk. Inilah tangkapan skrin jadual negaranya dalam Sequel Pro.

Sequel Pro Contoh

Pertanyaan contoh ini mengembalikan semua negara dengan Ratu Elizabeth II sebagai ketua negara mereka ����.

Sequel Pro Contoh

Sementara yang satu ini mengembalikan semua negara Eropah dengan jumlah penduduk lebih dari 50 juta bersama dengan ibu kota dan penduduknya.

Sequel Pro Contoh

Dan yang terakhir ini mengembalikan peratusan purata penutur bahasa Perancis di negara-negara di mana jumlah penutur bahasa Perancis lebih tinggi daripada 10%.

Sequel Pro Contoh

Lembar Menipu

Kata kunci

Kumpulan kata kunci yang digunakan dalam pernyataan SQL, keterangan, dan di mana sesuai contohnya. Beberapa kata kunci yang lebih maju mempunyai bahagian khusus mereka sendiri kemudian di lembaran cheat.

Di mana MySQL disebut di sebelah contoh, ini berarti contoh ini hanya berlaku untuk pangkalan data MySQL (berbanding sistem pangkalan data lain).

Kata kunci SQL
Kata kunciPenerangan
TAMBAHMenambah lajur baru ke jadual yang ada.

Contoh: Menambah lajur baru bernama ‘email_address’ ke jadual bernama ‘users’.

Pengguna ALTER TABLE
TAMBAHKAN email_address varchar (255);
TAMBAHKAN KONSTRAINIni membuat kekangan baru pada tabel yang ada, yang digunakan untuk menentukan peraturan untuk setiap data dalam tabel.

Contoh: Menambah kekangan KUNCI PRIMARY baru yang dinamakan 'pengguna' pada lajur ID dan SURNAME.

Pengguna ALTER TABLE
TAMBAHKAN KUNCI PRIMARY pengguna (ID, SURNAME);
JADUAL ALTERMenambah, menghapus atau mengedit lajur dalam jadual. Ini juga dapat digunakan untuk menambahkan dan menghapus batasan dalam tabel, seperti di atas.

Contoh: Menambah lajur boolean baru yang disebut 'diluluskan' ke jadual bernama 'transaksi'.

Tawaran ALTER TABLE
ADD boolean yang diluluskan;

Contoh 2: Padamkan lajur 'diluluskan' dari jadual 'tawaran'

Tawaran ALTER TABLE
DROP COLUMN diluluskan;
ALTER COLUMNMenukar jenis data lajur jadual.

Contoh: Dalam jadual ‘pengguna’, buat lajur ‘incept_date’ menjadi jenis ‘datetime’.

Pengguna ALTER TABLE
ALTER COLUMN incept_date datetime;
SEMUAMengembalikan nilai benar jika semua nilai subkueri memenuhi syarat lulus.

Contoh: Mengembalikan pengguna dengan jumlah tugas yang lebih tinggi daripada pengguna dengan jumlah tugas tertinggi di jabatan HR (id 2)

PILIH nama pertama, nama keluarga, tugas_tidak
DARI pengguna
MANA task_no> SEMUA (PILIH tugas DARI pengguna WHERE department_id = 2);
DANDigunakan untuk menggabungkan syarat berasingan dalam klausa WHERE.

Contoh: Mengembalikan acara yang terletak di London, United Kingdom

PILIH * DARI acara
MANA host_country = 'United Kingdom' DAN host_city = 'London';
SEBARANGKembali benar jika ada nilai subkueri yang memenuhi syarat yang diberikan.

Contoh: Mengembalikan produk dari jadual produk yang telah menerima pesanan - disimpan dalam jadual pesanan - dengan kuantiti lebih dari 5.

PILIH nama
DARI produk
WHERE productId = APA-APA (PILIH produkId DARI pesanan DI MANA kuantiti> 5);
SEBAGAIMenamakan semula jadual atau lajur dengan nilai alias yang hanya ada selama tempoh pertanyaan.

Contoh: Lajur utara_east_user_subscription

PILIH_kedudukan______serendah SEBAGAI ne_subs
DARI pengguna
DI MANA ne_subs> 5;
ASCDigunakan dengan ORDER BY untuk mengembalikan data mengikut urutan menaik.

Contoh: Epal, Pisang, Persik, Lobak

ANTARAMemilih nilai dalam julat yang diberikan.

Contoh 1: Memilih stok dengan kuantiti antara 100 dan 150.

PILIH * DARI stok
DI MANA kuantiti ANTARA 100 DAN 150;

Contoh 2: Memilih stok dengan kuantiti TIDAK antara 100 dan 150. Sebagai alternatif, menggunakan kata kunci TIDAK di sini membalikkan logik dan memilih nilai di luar julat yang diberikan.

PILIH * DARI stok
DI MANA kuantiti TIDAK ANTARA 100 DAN 150;
KESTukar output pertanyaan bergantung pada keadaan.

Contoh: Mengembalikan pengguna dan langganan mereka, bersama dengan lajur baru yang disebut activity_levels yang membuat penilaian berdasarkan jumlah langganan.

PILIH nama pertama, nama keluarga, langganan
KES KETIKA langganan> 10 KEMUDIAN 'Sangat aktif'
APABILA Kuantiti ANTARA 3 DAN 10 KEMUDIAN 'Aktif'
ELSE 'Tidak Aktif'
TAMAT SEBAGAI tingkat_kegiatan
DARI pengguna;
SEMAKMenambah kekangan yang menghadkan nilai yang dapat ditambahkan ke lajur.

Contoh 1 (MySQL): Memastikan pengguna yang ditambahkan ke jadual pengguna berumur 18 tahun ke atas.

BUAT pengguna TABLE (
nama pertama varchar (255),
umur int,
SEMAK (umur> = 18)
);

Contoh 2 (MySQL): Menambah cek setelah jadual telah dibuat.

Pengguna ALTER TABLE
TAMBAH SEMAK (umur> = 18);
BUAT DATABASEMembuat pangkalan data baru.

Contoh: Membuat pangkalan data baru bernama 'laman web penyediaan'.

BUAT laman web DATABASE;
BUAT JADUALMembuat jadual baru .

Contoh: Membuat jadual baru yang disebut 'pengguna' dalam pangkalan data 'laman web'.

BUAT pengguna TABLE (
id int,
nama pertama varchar (255),
nama keluarga varchar (255),
alamat varchar (255),
contact_number int
);
DEFAULTMenetapkan nilai lalai untuk lajur;

Contoh 1 (MySQL): Membuat jadual baru yang disebut Produk yang mempunyai lajur nama dengan nilai lalai ‘Placeholder Name’ dan ruang_dari yang tersedia dengan nilai lalai tarikh hari ini.

BUAT produk JADUAL (
id int,
nama varchar (255) DEFAULT 'Nama Pemegang Tempat',
tersedia_dari tarikh DEFAULT GETDATE ()
);

Contoh 2 (MySQL): Sama seperti di atas, tetapi mengedit jadual yang ada.

Produk ALTER TABLE
ALTER name SET DEFAULT 'Placeholder Nama',
ALTER available_dari SET DEFAULT GETDATE ();
HAPUSPadamkan data dari jadual.

Contoh: Mengalih keluar pengguna dengan user_id 674.

HAPUS DARI pengguna DI MANA user_id = 674;
DESCDigunakan dengan ORDER BY untuk mengembalikan data dalam urutan menurun.

Contoh: Lobak, Persik, Pisang, Epal

MENYIMPAN COLUMNMemadamkan lajur dari jadual.

Contoh: Mengeluarkan lajur nama pertama dari jadual pengguna.

Pengguna ALTER TABLE
DROP COLUMN nama pertama
PANGKALAN DATABASEMemadamkan keseluruhan pangkalan data.

Contoh: Memadamkan pangkalan data bernama 'laman web'.

TETAPKAN laman web Pangkalan Data;
DEFAULT HABISMengeluarkan nilai lalai untuk lajur.

Contoh (MySQL): Mengeluarkan nilai lalai dari lajur 'nama' dalam jadual 'produk'.

Produk ALTER TABLE
Nama ALTER COLUMN DROP DEFAULT;
JADUAL HABISMemadamkan jadual dari pangkalan data.

Contoh: Membuang jadual pengguna.

Pengguna DROP TABLE;
ADAMemeriksa keberadaan sebarang rekod dalam subkueri, kembali benar jika satu atau lebih rekod dikembalikan.

Contoh: Menyenaraikan mana-mana pengedar dengan peratusan kewangan urus niaga kurang dari 10.

PILIH nama_pengedar
DARI pengedar
DI MANA ADA (PILIH kesepakatan_NAMA DARI tawaran DI MANA dealer_id = tawaran.dealership_id DAN kewangan_peratus < 10);
DARIMenentukan jadual untuk memilih atau menghapus data.

Contoh: Memilih data dari jadual pengguna.

SELECT area_manager
DARI pengurus kawasan
DI MANA ADA (PILIH Nama Produk DARI Produk DI MANA area_manager_id = Deals.area_manager_id DAN Harga < 20);
DALAMDigunakan bersama klausa WHERE sebagai singkatan untuk beberapa keadaan ATAU.

Oleh itu, bukannya:-

PILIH * DARI pengguna
DI MANA negara = 'USA' ATAU negara = 'United Kingdom' ATAU negara = 'Rusia' ATAU negara = 'Australia';

Anda boleh menggunakan:-

PILIH * DARI pengguna
DI MANA negara DI ('USA', 'United Kingdom', 'Russia', 'Australia');
MASUKKAN KE DALAMTambahkan baris baru ke jadual.

Contoh: Menambah kenderaan baru.

INSERT INTO kereta (buat, model, jarak tempuh, tahun)
NILAI ('Audi', 'A3', 30000, 2016);
NILAIUjian untuk nilai kosong (NULL).

Contoh: Mengembalikan pengguna yang belum memberikan nombor kenalan.

PILIH * DARI pengguna
DI MANA contact_number ADALAH NULL;
BUKAN NULLKebalikan dari NULL. Uji nilai yang tidak kosong / NULL.
SUKAKembali benar jika nilai operan sepadan dengan corak.

Contoh: Kembali benar jika nama pertama pengguna diakhiri dengan 'anak lelaki'.

PILIH * DARI pengguna
DI MANA nama pertama LIKE '% son';
TIDAKKembali benar jika rekod TIDAK memenuhi syarat.

Contoh: Kembali benar jika nama pertama pengguna tidak diakhiri dengan 'anak lelaki'.

PILIH * DARI pengguna
DI MANA nama pertama TIDAK SUKA '% anak';
ATAUDigunakan bersama WHERE untuk memasukkan data apabila mana-mana syarat itu benar.

Contoh: Mengembalikan pengguna yang tinggal di Sheffield atau Manchester.

PILIH * DARI pengguna
MANA bandar = 'Sheffield' ATAU 'Manchester';
PERINTAH OLEHDigunakan untuk menyusun data hasil dalam urutan menaik (lalai) atau menurun melalui penggunaan kata kunci ASC atau DESC.

Contoh: Mengembalikan negara mengikut susunan abjad.

PILIH * DARI negara
PESANAN MENGIKUT nama;
ROWNUMMengembalikan hasil di mana nombor baris memenuhi syarat lulus.

Contoh: Mengembalikan 10 negara teratas dari jadual negara.

PILIH * DARI negara
DI MANA ROWNUM <= 10;
PILIHDigunakan untuk memilih data dari pangkalan data, yang kemudian dikembalikan dalam set hasil.

Contoh 1: Memilih semua lajur dari semua pengguna.

PILIH * DARI pengguna;

Contoh 2: Memilih lajur nama pertama dan nama keluarga dari semua pengguna.xx

PILIH nama pertama, nama keluarga DARI pengguna;
PILIH JARAKSames sebagai PILIH, kecuali nilai pendua dikecualikan.

Contoh: Membuat jadual sandaran menggunakan data dari jadual pengguna.

PILIH * DALAM penggunaBackup2020
DARI pengguna;
PILIH KEMenyalin data dari satu jadual dan memasukkannya ke dalam jadual yang lain.

Contoh: Mengembalikan semua negara dari jadual pengguna, membuang sebarang nilai pendua (yang kemungkinan besar)

PILIH DISTINCT negara dari pengguna;
PILIH TOPMembolehkan anda mengembalikan sejumlah rekod yang akan dikembalikan dari jadual.

Contoh: Mengembalikan 3 kereta teratas dari jadual kereta.

PILIH TOP 3 * DARI kereta;
SETDigunakan bersama UPDATE untuk mengemas kini data yang ada dalam jadual.

Contoh: Mengemas kini nilai dan nilai kuantiti untuk pesanan dengan id 642 dalam jadual pesanan.

Pesanan KEMASKINI
Nilai SET = 19.49, kuantiti = 2
DI MANA id = 642;
SEBAHAGIANSama dengan mana-mana.
TOPDigunakan bersama SELECT untuk mengembalikan sejumlah rekod dari jadual.

Contoh: Mengembalikan 5 pengguna teratas dari jadual pengguna.

PILIH TOP 5 * DARI pengguna;
JADUAL TRUNCATEMirip dengan DROP, tetapi bukannya menghapus jadual dan datanya, ini hanya menghapus data.

Contoh: Mengosongkan jadual sesi, tetapi meninggalkan jadual itu sendiri.

Sesi JADUAL TRUNCATE;
KESATUANMenggabungkan hasil dari 2 atau lebih pernyataan PILIH dan hanya mengembalikan nilai yang berbeza.

Contoh: Mengembalikan bandar dari jadual acara dan pelanggan.

PILIH bandar DARI acara
KESATUAN
PILIH bandar dari pelanggan;
UNION SEMUASama seperti UNION, tetapi merangkumi nilai pendua.
UNIKKekangan ini memastikan semua nilai dalam lajur unik.

Contoh 1 (MySQL): Menambah kekangan unik pada lajur id semasa membuat jadual pengguna baru.

BUAT pengguna TABLE (
id int BUKAN NULL,
nama varchar (255) BUKAN NULL,
UNIK (id)
);

Contoh 2 (MySQL): Mengubah lajur yang ada untuk menambahkan kekangan UNIK.

Pengguna ALTER TABLE
TAMBAHKAN UNIK (id);
KEMASKINIMengemas kini data yang ada dalam jadual.

Contoh: Mengemas kini nilai jarak tempuh dan serviceDue untuk kenderaan dengan id 45 di jadual kereta.

KEMASKINI kereta
SET jarak tempuh = 23500, serviceDue = 0
DI MANA id = 45;
NILAIDigunakan bersama dengan kata kunci INSERT INTO untuk menambah nilai baru pada jadual.

Contoh: Menambah kereta baru ke meja kereta.

INSERT INTO kereta (nama, model, tahun)
NILAI ('Ford', 'Fiesta', 2010);
DI MANAMenapis hasil hanya memasukkan data yang memenuhi syarat yang diberikan.

Contoh: Mengembalikan pesanan dengan kuantiti lebih dari 1 item.

PILIH * DARI pesanan
DI MANA kuantiti> 1;

Komen

Komen membolehkan anda menjelaskan bahagian penyataan SQL anda, atau memberi komen mengenai kod dan mencegah pelaksanaannya.

Dalam SQL, terdapat 2 jenis komen, satu baris dan multiline.

Komen Garis Tunggal

Komen baris tunggal bermula dengan -. Sebarang teks selepas 2 aksara ini hingga akhir baris akan diabaikan.

-- Pertanyaan Pilih Saya
PILIH * DARI pengguna;

Komen Pelbagai Talian

Komen berbilang baris bermula dengan / * dan diakhiri dengan * /. Mereka melintasi pelbagai baris sehingga watak penutup ditemui.

/ *
Ini adalah pertanyaan pilihan saya.
Ia mengambil semua baris data dari jadual pengguna
* /
PILIH * DARI pengguna;

/ *
Ini adalah pertanyaan pilihan lain, yang belum saya laksanakan

PILIH * DARI tugas;
* /

Jenis Data MySQL

Semasa membuat jadual baru atau mengedit jadual yang ada, anda mesti menentukan jenis data yang diterima oleh setiap lajur.

Dalam contoh di bawah, data yang dikirimkan ke lajur id mestilah int, sementara kolom nama pertama mempunyai jenis data VARCHAR dengan maksimum 255 aksara.

BUAT pengguna TABLE (
id int,
nama pertama varchar (255)
);

Jenis Data Rentetan

Jenis Data Rentetan
Jenis dataPenerangan
CHAR (saiz)Rentetan panjang tetap yang boleh mengandungi huruf, angka dan watak khas. Parameter ukuran menetapkan panjang rentetan maksimum, dari 0 - 255 dengan lalai 1.
VARCHAR (saiz)Rentetan panjang boleh ubah seperti CHAR (), tetapi dengan panjang rentetan maksimum antara 0 hingga 65535.
BINARY (saiz)Mirip dengan CHAR () tetapi menyimpan rentetan bait binari.
VARBINARI (saiz)Mirip dengan VARCHAR () tetapi untuk rentetan bait binari.
TINYBLOBMenahan Objek Besar Binari (BLOB) dengan panjang maksimum 255 bait.
TINYTEXTMemegang rentetan dengan panjang maksimum 255 aksara. Sebagai gantinya, gunakan VARCHAR (), kerana lebih cepat diambil.
TEKS (saiz)Memegang tali dengan panjang maksimum 65535 bait. Sekali lagi, lebih baik menggunakan VARCHAR ().
BLOB (saiz)Menahan Objek Besar Binari (BLOB) dengan panjang maksimum 65535 bait.
MEDIUMTEXTMemegang rentetan dengan panjang maksimum 16,777,215 aksara.
MEDIUMBLOBMenahan Objek Besar Binari (BLOB) dengan panjang maksimum 16,777,215 bait.
LONGTEXTMemegang rentetan dengan panjang maksimum 4,294,967,295 aksara.
LONGBLOBMenahan Objek Besar Binari (BLOB) dengan panjang maksimum 4,294,967,295 bait.
ENUM (a, b, c, dll ...)Objek rentetan yang hanya mempunyai satu nilai, yang dipilih dari daftar nilai yang anda tentukan, hingga maksimum 65535 nilai. Sekiranya nilai ditambahkan yang tidak ada dalam senarai ini, nilai tersebut akan diganti dengan nilai kosong. Fikirkan ENUM serupa dengan kotak radio HTML dalam hal ini.

BUAT tshirt TABLE (warna ENUM (‘merah’, ‘hijau’, ‘biru’, ‘kuning’, ‘ungu’));
SET (a, b, c, dll ...)Objek rentetan yang dapat memiliki 0 atau lebih nilai, yang dipilih dari daftar nilai yang anda tentukan, hingga maksimum 64 nilai. Fikirkan SET serupa dengan kotak pilihan HTML dalam hal ini.

Jenis Data Berangka

Jenis Data Rentetan
Jenis dataPenerangan
BIT (saiz)Jenis nilai bit dengan nilai lalai 1. Jumlah bit yang dibenarkan dalam nilai ditetapkan melalui parameter ukuran, yang dapat menahan nilai dari 1 hingga 64.
TINYINT (saiz)Bilangan bulat yang sangat kecil dengan julat yang ditandatangani -128 hingga 127, dan julat yang tidak ditandatangani dari 0 hingga 255. Di sini, parameter ukuran menentukan lebar paparan maksimum yang dibenarkan, iaitu 255.
BOLEHPada dasarnya cara cepat untuk menetapkan lajur ke TINYINT dengan ukuran 1. 0 dianggap salah, sementara 1 dianggap benar.
BOOLEANSama seperti BOOL.
SMALLINT (saiz)Bilangan bulat kecil dengan julat bertanda -32768 hingga 32767, dan julat tidak bertanda dari 0 hingga 65535. Di sini, parameter ukuran menentukan lebar paparan maksimum yang dibenarkan, iaitu 255.
MEDIUMINT (saiz)Bilangan bulat sederhana dengan julat bertanda -8388608 hingga 8388607, dan julat tidak bertanda dari 0 hingga 16777215. Di sini, parameter ukuran menentukan lebar paparan maksimum yang dibenarkan, iaitu 255.
INT (saiz)Bilangan bulat sederhana dengan julat bertanda -2147483648 hingga 2147483647, dan julat tidak bertanda dari 0 hingga 4294967295. Di sini, parameter ukuran menentukan lebar paparan maksimum yang dibenarkan, iaitu 255.
INTEGER (saiz)Sama seperti INT.
BESAR (saiz)Bilangan bulat sederhana dengan julat bertanda -9223372036854775808 hingga 9223372036854775807, dan julat yang tidak ditandatangani dari 0 hingga 18446744073709551615. Di sini, parameter ukuran menentukan lebar paparan maksimum yang dibenarkan, iaitu 255.
KAPAL (p)Nilai nombor titik terapung. Jika parameter ketepatan (p) antara 0 hingga 24, maka tipe data diatur ke FLOAT (), sementara jika dari 25 hingga 53, jenis data diatur ke DOUBLE (). Tingkah laku ini adalah untuk menjadikan penyimpanan nilai lebih cekap.
GANDA (saiz, d)Nilai nombor titik terapung di mana jumlah digit ditetapkan oleh parameter ukuran, dan bilangan digit setelah titik perpuluhan ditetapkan oleh parameter d.
KEPUTUSAN (saiz, d)Nombor titik tetap yang tepat di mana jumlah digit ditetapkan oleh parameter ukuran, dan jumlah digit selepas titik perpuluhan ditetapkan oleh parameter d.

Untuk ukuran, bilangan maksimum adalah 65 dan lalai adalah 10, sementara untuk d, bilangan maksimum adalah 30 dan lalai adalah 10.

DEC (saiz, d)Sama seperti KEPUTUSAN.

Jenis Data Tarikh / Masa

Jenis Data Tarikh / Masa
Jenis dataPenerangan
TARIKHTarikh ringkas dalam format YYYY-MM – DD, dengan julat yang disokong dari ‘1000-01-01’ hingga ‘9999-12-31’.
TARIKH (fsp)Waktu tarikh dalam format YYYY-MM-DD jh: mm: ss, dengan julat yang disokong dari ‘1000-01-01 00:00:00’ hingga ‘9999-12-31 23:59:59’.

Dengan menambahkan DEFAULT dan ON UPDATE pada definisi lajur, ia secara automatik menetapkan tarikh / masa semasa.

TIMESTAMP (fsp)Cap Waktu Unix, yang merupakan nilai relatif dengan jumlah detik sejak zaman Unix (‘1970-01-01 00:00:00’ UTC). Ini mempunyai rentang yang disokong dari UTC ‘1970-01-01 00:00:01’ hingga ‘2038-01-09 03:14:07’ UTC.

Dengan menambahkan DEFAULT CURRENT_TIMESTAMP dan ON UPDATE CURRENT TIMESTAMP ke definisi lajur, ia secara automatik ditetapkan ke tarikh / masa semasa.

MASA (fsp)Masa dalam format jam: mm: ss, dengan julat yang disokong dari ‘-838: 59: 59’ hingga ‘838: 59: 59’.
TAHUNSetahun, dengan julat ‘1901’ hingga ‘2155’ yang disokong.

Pengendali

Pengendali Aritmetik

Pengendali Aritmetik
PengendaliPenerangan
+Tambah
-Kurangkan
*Banyakkan
/Bagilah
%Modulo

Pengendali Bitwise

Pengendali Bitwise
PengendaliPenerangan
&Sedikit demi sedikit DAN
|Sedikit demi sedikit ATAU
^Eksklusif bitwise ATAU

Pengendali Perbandingan

Pengendali Perbandingan
PengendaliPenerangan
=Sama dengan
>Lebih besar daripada
<Kurang daripada
> =Lebih besar daripada atau sama dengan
<=Kurang daripada atau sama dengan
<>Tidak sama dengan

Pengendali Kompaun

Pengendali Kompaun
PengendaliPenerangan
+=Tambah sama
-=Kurangkan sama
* =Gandakan sama
/ =Membahagi sama
% =Modulo sama
& =Bitwise DAN sama
^ - =Bitwise eksklusif sama
| * =Bitwise ATAU sama

Fungsi

Fungsi Rentetan

Fungsi Rentetan
NamaPenerangan
ASCIIMengembalikan nilai ASCII yang setara untuk watak tertentu.
CHAR_LENGTHMengembalikan panjang watak rentetan.
KARAKTER_LENGTHSama seperti CHAR_LENGTH.
KONCATMenambah ungkapan bersama, dengan minimum 2.
CONCAT_WSMenambah ungkapan bersama, tetapi dengan pemisah antara setiap nilai.
BIDANGMengembalikan nilai indeks relatif terhadap kedudukan nilai dalam senarai nilai.
FIKIRKAN DALAM SETMengembalikan kedudukan rentetan dalam senarai rentetan.
FORMATApabila melewati nombor, mengembalikan nombor yang diformat untuk memasukkan koma (mis. 3.400.000).
MASUKKANMembolehkan anda memasukkan satu rentetan ke tali yang lain pada titik tertentu, untuk sebilangan watak.
INSTRMengembalikan kedudukan pertama kali satu rentetan muncul dalam tali yang lain.
KESILAPANTukarkan rentetan ke huruf kecil.
MENINGGALKANBermula dari kiri, ekstrak bilangan aksara yang diberikan dari rentetan dan kembalikannya seperti yang lain.
PANJANGMengembalikan panjang rentetan, tetapi dalam bait.
LOKASIMengembalikan kejadian pertama satu rentetan yang lain,
RENDAHSama seperti LCASE.
LPADPad kiri satu tali dengan tali yang lain, dengan panjang tertentu.
LTRIMKeluarkan ruang utama dari rentetan yang diberikan.
MIDEkstrak satu rentetan dari yang lain, bermula dari kedudukan apa pun.
KEDUDUKANMengembalikan kedudukan pertama kali satu substring muncul dalam yang lain.
ULANGMembolehkan anda mengulang rentetan
GANTIMembolehkan anda mengganti sebarang kejadian substring dalam rentetan, dengan substring baru.
BERBALOIMembalikkan rentetan.
BETULBermula dari kanan, ekstrak bilangan aksara yang diberikan dari rentetan dan kembalikan mereka seperti yang lain.
RPADPad kanan satu tali dengan tali yang lain, dengan panjang tertentu.
RTRIMMengeluarkan ruang belakang dari rentetan yang diberikan.
RUANGMengembalikan rentetan penuh dengan ruang yang sama dengan jumlah yang anda lalui.
STRCMPMembandingkan 2 rentetan untuk perbezaan
SUBSTREkstrak satu substring dari yang lain, bermula dari kedudukan apa pun.
PENGGANTIANSama seperti SUBSTR
SUBSTRING_INDEXMengembalikan substring dari rentetan sebelum substring lulus dijumpai bilangan kali sama dengan nombor lulus.
TRIMMengeluarkan ruang belakang dan pendahuluan dari rentetan yang diberikan. Sama seperti jika anda menjalankan LTRIM dan RTRIM bersama-sama.
KEHENDAKTukarkan rentetan ke huruf besar.
HINGGASama seperti UCASE.

Fungsi Numerik

Fungsi Numerik
NamaPenerangan
ABSMengembalikan nilai mutlak bagi nombor yang diberikan.
ACOSMengembalikan kosinus arka nombor yang diberikan.
SEPERTI DALAMMengembalikan sinus arka nombor yang diberikan.
ATANMengembalikan tangen arka satu atau 2 nombor yang diberi.
ATAN2Kembalikan tangen arka 2 nombor yang diberi.
AVGMengembalikan nilai purata ungkapan yang diberikan.
CEILMengembalikan nombor bulat terdekat (bilangan bulat) ke atas dari nombor titik perpuluhan yang diberikan.
PEMILIHANSama seperti CEIL.
KOSMengembalikan kosinus nombor tertentu.
COTMengembalikan kotangen nombor yang diberikan.
BANYAKMengembalikan jumlah rekod yang dikembalikan oleh pertanyaan SELECT.
DARJAHMenukar nilai radian kepada darjah.
DIVMembolehkan anda membahagi bilangan bulat.
KECUALIMengembalikan e ke kekuatan nombor yang diberikan.
LantaiMengembalikan nombor bulat terdekat (bilangan bulat) ke bawah dari nombor titik perpuluhan yang diberikan.
HEBATMengembalikan nilai tertinggi dalam senarai argumen.
TERAKHIRMengembalikan nilai terkecil dalam senarai argumen.
LNMengembalikan logaritma semula jadi nombor yang diberikan
MASUKMengembalikan logaritma semula jadi nombor yang diberikan, atau logaritma nombor yang diberikan ke pangkalan yang diberikan
LOG10Adakah sama dengan LOG, tetapi untuk asas 10.
LOG2Adakah sama dengan LOG, tetapi untuk asas 2.
MAXMengembalikan nilai tertinggi dari sekumpulan nilai.
MINMengembalikan nilai terendah dari sekumpulan nilai.
MODMengembalikan baki nombor yang diberi dibahagi dengan nombor yang diberi yang lain.
PIMengembalikan PI.
KUASAMengembalikan nilai nombor yang diberikan dinaikkan ke kekuatan nombor yang diberi yang lain.
KUASASama seperti POW.
RADIANMenukar nilai darjah kepada radian.
RANDMengembalikan nombor rawak.
BULANBundarkan nombor yang diberi kepada jumlah tempat perpuluhan yang diberikan.
TANDAMengembalikan tanda nombor yang diberikan.
SINMengembalikan sinus nombor yang diberikan.
SQRTMengembalikan punca kuasa dua nombor yang diberikan.
RUMUSANMengembalikan nilai gabungan nilai yang diberikan gabungan.
TANMengembalikan tangen nombor yang diberi.
TRUNCATEMengembalikan nombor terpotong ke bilangan tempat perpuluhan yang diberikan.

Fungsi Tarikh

Fungsi Tarikh
NamaPenerangan
TAMBAHTambahkan selang tarikh (contoh: 10 HARI) ke tarikh (mis.: 20/01/20) dan kembalikan hasilnya (mis.: 20/01/30).
TAMBAHANTambahkan selang waktu (mis: 02:00) ke waktu atau waktu (05:00) dan kembalikan hasilnya (07:00).
SEMASADapatkan tarikh terkini.
TARIKH SEMASASama seperti CURDATE.
SEMASA_TIMEDapatkan masa semasa.
SEMASA_TIMESTAMPDapatkan tarikh dan masa semasa.
KURSUSSama seperti CURRENT_TIME.
TARIKHMengekstrak tarikh dari ungkapan masa.
DATEDIFFMengembalikan bilangan hari antara 2 tarikh yang diberikan.
TARIKH_ADDSama seperti TAMBAHAN.
FORMAT TARIKHMemformat tarikh mengikut corak yang diberikan.
TARIKH_SUBKurangkan selang tarikh (mis: 10 HARI) ke tarikh (mis.: 20/01/20) dan kembalikan hasilnya (mis.: 20/01/10).
HARIMengembalikan hari untuk tarikh yang diberikan.
NAMA HARIMengembalikan nama hari minggu untuk tarikh yang diberikan.
HARI DALAM SEMINGGUMengembalikan indeks untuk hari kerja untuk tarikh yang diberikan.
DAYOFYEARMengembalikan hari tahun untuk tarikh yang diberikan.
EKSTRAKEkstrak dari tarikh bahagian yang diberikan (mis. BULAN 20/01/20 = 01).
DARI HARIKembalikan tarikh dari nilai tarikh berangka yang diberikan.
JAMKembalikan jam dari tarikh yang diberikan.
HARI TERAKHIRDapatkan hari terakhir bulan untuk tarikh yang ditentukan.
LOKALTIMEMendapat tarikh dan masa tempatan semasa.
LOKALTIMESTAMPSama seperti LOCALTIME.
DIBUATMembuat tarikh dan mengembalikannya, berdasarkan nilai tahun dan bilangan hari yang diberikan.
MAKETIMEMembuat masa dan mengembalikannya, berdasarkan nilai jam, minit dan kedua yang diberikan.
MICROSECONDMengembalikan mikrodetik masa atau masa yang ditentukan.
MINITMengembalikan minit masa atau masa yang diberikan.
SEBULANMengembalikan bulan tarikh yang diberikan.
BULANNAMAMengembalikan nama bulan pada tarikh yang diberikan.
SEKARANGSama seperti LOCALTIME.
TEMPOH_ADDMenambah bilangan bulan yang diberikan pada jangka masa tertentu.
TEMPOH_DIFFMengembalikan perbezaan antara 2 tempoh yang diberikan.
KUTIPANMengembalikan suku tahun untuk tarikh tertentu.
KEDUAMengembalikan detik masa atau masa yang ditentukan.
SEC_TO_TIMEMengembalikan masa berdasarkan detik yang diberikan.
STR_TO_DATEMembuat tarikh dan mengembalikannya berdasarkan rentetan dan format yang diberikan.
SUBDATESama dengan DATE_SUB.
SUBTIMEKurangkan selang waktu (mis: 02:00) ke waktu atau waktu (05:00) dan kembalikan hasilnya (03:00).
SYADATSama seperti LOCALTIME.
MASAMengembalikan masa dari masa atau masa yang ditentukan.
FORMAT MASAMengembalikan masa yang diberikan dalam format yang diberikan.
TIME_TO_SECMenukar dan mengembalikan masa menjadi beberapa saat.
TIMEDIFFMengembalikan perbezaan antara 2 ungkapan masa / masa yang diberikan.
TIMESTAMPMengembalikan nilai datetime dari tarikh atau masa yang diberikan.
HINGGA_HARIMengembalikan jumlah hari yang berlalu dari ‘00 -00-0000 ’ke tarikh yang ditentukan.
MINGGUMengembalikan nombor minggu untuk tarikh yang diberikan.
MINGGUMengembalikan nombor hari minggu untuk tarikh yang diberikan.
MINGGU MINGGUMengembalikan nombor minggu untuk tarikh yang diberikan.
TAHUNMengembalikan tahun dari tarikh yang diberikan.
TAHUNMengembalikan nombor tahun dan minggu untuk tarikh yang diberikan.

Fungsi Pelbagai

Fungsi Pelbagai
NamaPenerangan
BINMengembalikan nombor yang diberikan dalam binari.
BINARIMengembalikan nilai yang diberikan sebagai rentetan binari.
KASTAMTukarkan satu jenis ke jenis yang lain.
KOPERASIDari senarai nilai, kembalikan nilai bukan nol pertama.
CONNECTION_IDUntuk sambungan semasa, kembalikan ID sambungan unik.
CONVTukarkan nombor yang diberikan dari satu sistem asas angka menjadi yang lain.
TUKARTukarkan nilai yang diberi ke dalam jenis data atau set watak yang diberikan.
SEMASA_PENGGUNAKembalikan nama pengguna dan host yang digunakan untuk mengesahkan dengan pelayan.
PANGKALAN DATADapatkan nama pangkalan data semasa.
KUMPULAN OLEHDigunakan bersama fungsi agregat (COUNT, MAX, MIN, SUM, AVG) untuk mengumpulkan hasilnya.

Contoh: Menyenaraikan jumlah pengguna dengan pesanan aktif.

SELECT COUNT (user_id), aktif_order
DARI pengguna
KUMPULAN MENGIKUT aktif_order;
MEMPUNYAIIa digunakan di tempat DI MANA dengan fungsi agregat.

Contoh: Menyenaraikan jumlah pengguna dengan pesanan aktif, tetapi hanya menyertakan pengguna dengan lebih daripada 3 pesanan aktif.

SELECT COUNT (user_id), aktif_order
DARI pengguna
KUMPULAN MENGIKUT aktif_order
MEMILIKI COUNT (user_id)> 3;
JIKASekiranya syarat itu benar, kembalikan nilai, sebaliknya kembalikan nilai yang lain.
JIKASekiranya ungkapan yang diberikan sama dengan nol, kembalikan nilai yang diberikan.
ISNULLSekiranya ungkapan itu nol, kembalikan 1, sebaliknya pulangkan 0.
LAST_INSERT_IDUntuk baris terakhir yang ditambahkan atau dikemas kini dalam jadual, kembalikan ID kenaikan automatik.
NULLIFMembandingkan 2 ungkapan yang diberi. Sekiranya sama, NULL dikembalikan, jika tidak, ungkapan pertama dikembalikan.
SESI_PENGGUNAKembalikan nama pengguna dan hos semasa.
SISTEM_USERSama seperti SESSION_USER.
PENGGUNASama seperti SESSION_USER.
VERSIMengembalikan versi terkini MySQL yang mengaktifkan pangkalan data.

Watak Wildcard

Dalam SQL, Wildcard adalah watak khas yang digunakan dengan kata kunci LIKE dan NOT LIKE yang membolehkan kita mencari data dengan corak canggih dengan lebih berkesan

Kad Liar
NamaPenerangan
%Sama dengan watak sifar atau lebih.

Contoh 1: Cari semua pengguna dengan nama keluarga yang diakhiri dengan 'anak'.

PILIH * DARI pengguna
DI MANA nama keluarga SEPERTI '% anak';

Contoh 2: Cari semua pengguna yang tinggal di bandar yang mengandungi corak 'che'

PILIH * DARI pengguna
DI MANA bandar SUKA '% che%';
_Sama dengan watak tunggal.

Contoh: Cari semua pengguna yang tinggal di bandar-bandar bermula dengan mana-mana 3 watak, diikuti dengan 'chester'.

PILIH * DARI pengguna
DI MANA bandar SEPERTI '___chester';
[senarai nama]Sama dengan watak tunggal dalam senarai.

Contoh 1: Cari semua pengguna dengan nama pertama yang bermula dengan J, H atau M.

PILIH * DARI pengguna
DI MANA nama_ pertama SUKA '[jhm]%';

Contoh 2: Cari semua pengguna dengan nama pertama huruf awal antara A - L.

PILIH * DARI pengguna
MANA nama pertama_LIKE '[a-l]%';

Contoh 3: Cari semua pengguna dengan nama depan yang tidak diakhiri dengan huruf antara n - s.

PILIH * DARI pengguna
DI MANA nama pertama_LIKE '% [! N-s]';

Kekunci

Dalam pangkalan data hubungan, terdapat konsep kunci utama dan asing. Dalam jadual SQL, ini disertakan sebagai batasan, di mana jadual boleh mempunyai kunci utama, kunci asing, atau keduanya.

Kunci utama

Kekunci utama membolehkan setiap rekod dalam jadual dikenal pasti secara unik. Hanya ada satu kunci utama bagi setiap jadual, dan anda boleh menetapkan kekangan ini kepada mana-mana satu atau gabungan lajur. Namun, ini bermaksud setiap nilai dalam lajur ini mesti unik.

Biasanya dalam jadual, kunci utama adalah lajur ID, dan biasanya dipasangkan dengan kata kunci AUTO_INCREMENT. Ini bermaksud nilainya akan meningkat secara automatik semasa catatan baru dibuat.

Contoh 1 (MySQL)

Buat jadual baru dan tetapkan kunci utama ke lajur ID.

BUAT pengguna TABLE (
id int BUKAN NULL AUTO_INCREMENT,
nama pertama varchar (255),
last_name varchar (255) TIDAK BOLEH,
alamat varchar (255),
e-mel varchar (255),
KUNCI UTAMA (id)
);

Contoh 2 (MySQL)

Ubah jadual yang ada dan tetapkan kunci utama ke lajur nama pertama.

Pengguna ALTER TABLE
TAMBAHKAN KUNCI PERDANA (nama pertama);

Kunci asing

Kunci asing boleh digunakan untuk satu lajur atau banyak dan digunakan untuk menghubungkan 2 jadual bersama dalam pangkalan data hubungan.

Seperti yang terlihat dalam rajah di bawah, tabel yang berisi kunci asing disebut kunci anak, sementara tabel yang berisi kunci yang dirujuk, atau kunci calon, disebut tabel induk.

Kekunci MySQL

Ini pada dasarnya bermaksud bahawa data lajur dibagi antara 2 jadual, kerana kunci asing juga menghalang data tidak sah dimasukkan yang juga tidak terdapat dalam jadual induk.

Contoh 1 (MySQL)

Buat jadual baru dan ubah lajur yang merujuk ID dalam jadual lain menjadi kunci asing.

BUAT pesanan JADUAL (
id int BUKAN NULL,
pengguna_id int,
product_id int,
KUNCI UTAMA (id),
KUNCI ASING (user_id) RUJUKAN pengguna (id),
KUNCI ASING (product_id) RUJUKAN produk (id)
);

Contoh 2 (MySQL)

Ubah jadual yang ada dan buat kunci asing.

Pesanan ALTER TABLE
TAMBAHKAN KUNCI ASING (user_id) RUJUKAN pengguna (id);

Indeks

Indeks adalah atribut yang dapat ditugaskan ke lajur yang sering dicari untuk membuat pengambilan data menjadi proses yang lebih cepat dan lebih efisien.

Ini tidak bermaksud setiap lajur harus dibuat menjadi indeks, kerana memerlukan lebih lama lajur dengan indeks diperbaharui daripada lajur tanpa. Ini kerana apabila lajur yang diindeks diperbaharui, indeks itu sendiri juga mesti dikemas kini.

Indeks
NamaPenerangan
BUAT INDEKSMembuat indeks bernama 'idx_test' pada lajur nama pertama dan nama keluarga jadual pengguna. Dalam contoh ini, nilai pendua dibenarkan.

BUAT INDEX idx_test
PADA pengguna (nama pertama, nama keluarga);
BUAT INDEKS UNIKSama seperti di atas, tetapi tidak ada nilai pendua.

BUAT IDx_test INDEX UNIK
PADA pengguna (nama pertama, nama keluarga);
INDEKS TETAPMengeluarkan indeks.

Pengguna ALTER TABLE
DROP INDEX idx_test;

Bergabung

Dalam SQL, klausa GABUNGAN digunakan untuk mengembalikan set hasil yang menggabungkan data dari beberapa jadual, berdasarkan lajur umum yang ditampilkan di kedua-duanya

Terdapat sebilangan gabungan yang tersedia untuk anda gunakan:-

  • Penyertaan Dalam (Lalai): Mengembalikan sebarang rekod yang mempunyai nilai yang sepadan dalam kedua-dua jadual.
  • Siri Kiri: Mengembalikan semua rekod dari jadual pertama, bersama dengan catatan yang sepadan dari jadual kedua.
  • Gabung Kanan: Mengembalikan semua rekod dari jadual kedua, bersama dengan catatan yang sepadan dari yang pertama.
  • Penyertaan Penuh: Mengembalikan semua rekod dari kedua-dua jadual apabila ada pertandingan.

Kaedah umum untuk membayangkan cara bergabung berfungsi seperti ini:

MySQL Bergabung

Dalam contoh berikut, gabungan dalaman akan digunakan untuk membuat pandangan penyatuan baru yang menggabungkan jadual pesanan dan kemudian 3 jadual yang berbeza

Kami akan menggantikan user_id dan product_id dengan kolom_nama dan nama keluarga pengguna yang membuat pesanan, bersama dengan nama item yang dibeli.

Jadual Contoh MySQL

PILIH pesanan.id, users.first_name, users.surname, products.name sebagai 'product name'
DARI pesanan
INNER GABUNGKAN pengguna pada pesanan.user_id = users.id
INNER JOIN produk pada pesanan.product_id = products.id;

Akan mengembalikan set hasil yang kelihatan seperti:

Jadual Contoh MySQL

Pandangan

Pandangan pada dasarnya adalah set hasil SQL yang disimpan di dalam pangkalan data di bawah label, jadi anda boleh kembali ke sana kemudian, tanpa perlu menjalankan kembali pertanyaan. Ini sangat berguna apabila anda mempunyai pertanyaan SQL mahal yang mungkin diperlukan beberapa kali, jadi daripada menjalankannya berulang-ulang untuk menghasilkan set hasil yang sama, anda hanya boleh melakukannya sekali dan menyimpannya sebagai paparan.

Membuat Pandangan

Untuk membuat paparan, anda boleh melakukannya seperti ini:

BUAT PANDANGAN priority_users SEBAGAI
PILIH * DARI pengguna
DI MANA negara = 'United Kingdom';

Kemudian pada masa akan datang, jika anda perlu mengakses set hasil yang disimpan, anda boleh melakukannya seperti ini:

PILIH * DARI [priority_users];

Menggantikan Pandangan

Dengan perintah BUAT ATAU GANTI, paparan dapat dikemas kini.

BUAT ATAU GANTI PANDANGAN [priority_users] AS
PILIH * DARI pengguna
DI MANA negara = 'United Kingdom' ATAU negara = 'USA';

Memadamkan Paparan

Untuk memadam paparan, cukup gunakan arahan DROP VIEW.

DROP VIEW priority_users;

Kesimpulannya

Sebilangan besar laman web di web hari ini menggunakan pangkalan data hubungan dengan beberapa cara. Ini menjadikan SQL bahasa yang berharga untuk diketahui, kerana ia membolehkan anda membuat laman web dan sistem yang lebih kompleks dan berfungsi.

Pastikan untuk menandakan halaman ini, jadi pada masa akan datang, jika anda bekerja dengan SQL dan tidak dapat mengingati operator tertentu, cara menulis pertanyaan tertentu, atau hanya keliru tentang cara bergabung berfungsi, maka anda akan mempunyai lembaran cheat di tangan yang sedia, bersedia dan dapat menolong.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me