Dalam lembaran cheat SQL Query ini, anda akan belajar
Buat arahan Pangkalan Data dan jadual
Perintah | Penerangan |
BUAT DATABASE DATA; | Buat pangkalan data |
BUAT Pangkalan Data TIDAK ADA pangkalan data1; | JIKA TIDAK ADA membolehkan anda mengarahkan pelayan MySQL untuk memeriksa keberadaan pangkalan data dengan nama yang serupa sebelum membuat pangkalan data. |
BUAT Pangkalan Data JIKA TIDAK ADA pangkalan data1 SET KARAKTER latin1 COLLATE latin1_swedish_ci | set aksara Latin1 menggunakan penggabungan latin1_swedish_ci yang merupakan susunan huruf sensitif Sweden. |
TUNJUKKAN DATA | Anda dapat melihat senarai pangkalan data yang ada dengan menjalankan perintah SQL. |
BUAT JADUAL [JIKA TIDAK ADA] Nama Meja (jenis nama bidang nama [parameter pilihan]) ENGINE = enjin penyimpanan; | Buat sintaks jadual |
JENIS DATA
Jenis data berangka
Perintah | Penerangan |
TINYINT () | -128 hingga 127 normal 0 hingga 255 TIDAK DITANDATANGANI. |
SMALLINT () | -32768 hingga 32767 normal 0 hingga 65535 TANPA DAFTAR. |
PERUBATAN () | -8388608 hingga 8388607 normal 0 hingga 16777215 TANPA DAFTAR. |
INT () | -2147483648 hingga 2147483647 normal 0 hingga 4294967295 TANPA DAFTAR. |
BIGINT () | -9223372036854775808 hingga 9223372036854775807 normal 0 hingga 18446744073709551615 TANPA DAFTAR. |
KAPAL | Nombor anggaran kecil dengan titik perpuluhan terapung. |
GANDA (,) | Sebilangan besar dengan titik perpuluhan terapung. |
KEPUTUSAN (,) | GANDA disimpan sebagai tali, memungkinkan untuk titik perpuluhan tetap. Pilihan untuk menyimpan nilai mata wang. |
Jenis Data Teks
Perintah | Penerangan |
CAJ () | Bahagian tetap dari 0 hingga 255 aksara. |
VARCHAR () | Bahagian pembolehubah dari 0 hingga 255 aksara. |
TINYTEXT | Rentetan dengan panjang maksimum 255 aksara. |
TEKS | Rentetan dengan panjang maksimum 65535 aksara. |
BLOB | Rentetan dengan panjang maksimum 65535 aksara. |
MEDIUMTEXT | Rentetan dengan panjang maksimum 16777215 aksara. |
MEDIUMBLOB | Rentetan dengan panjang maksimum 16777215 aksara. |
LONGTEXT | Rentetan dengan panjang maksimum 4294967295 aksara. |
LONGBLOB | Rentetan dengan panjang maksimum 4294967295 aksara. |
Jenis data Tarikh / Masa
Perintah | Penerangan |
TARIKH | YYYY-MM-DD |
MASA TARIKH | YYYY-MM-DD HH: MM: SS |
TIMESTAMP | YYYYMMDDHHMMSS |
MASA | HH: MM: SS |
Jenis data lain
Perintah | Penerangan |
ENUM | Untuk menyimpan nilai teks yang dipilih dari senarai nilai teks yang telah ditentukan. |
SET | Ini juga digunakan untuk menyimpan nilai teks yang dipilih dari senarai nilai teks yang telah ditetapkan. Ia boleh mempunyai pelbagai nilai. |
BOLEH | Sinonim untuk TINYINT (1), digunakan untuk menyimpan nilai Boolean |
BINARI | Sama seperti CHAR, perbezaannya ialah teks disimpan dalam format binari. |
VARBINARI | Sama seperti VARCHAR, perbezaannya ialah teks disimpan dalam format binari. |
Perintah pernyataan PILIH MySQL
Perintah | Penerangan |
PILIH [DISTINCT | ALL] {* | [fieldExpression [AS newName]} DARI tableName [alias] [WHERE condition] [GROUP BY fieldName (s)] [MEMILIKI syarat] ORDER BY fieldName | Sintaks pernyataan SQL SELECT |
PILIH * DARI jadual1; | pilih jadual |
PILIH t1, t2, t3, t4 DARI jadual1; | kami hanya berminat mendapatkan medan t1, t2, t3 dan t4 sahaja. |
PILIH Concat (t1, (, t3,)), t4 DARI jadual2; | Mendapatkan senarai jadual2 |
PILIH kolum_nama | nilai | ungkapan [AS] alias_name; | Sintaksis nama bidang Alias |
MySQL DI MANA klausa dengan perintah AND, OR, IN, NOT IN
Perintah | Penerangan |
PILIH * DARI tableName DI MANA keadaan; | DI MANA klausa Sintaks |
PILIH * DARI jadual1 DI MANA t1 = 2 DAN t2 = 2008; | MANA klausa digabungkan dengan - DAN Operator LOGIKAL |
PILIH * DARI jadual1 DI MANA t1 = 1 ATAU t1 = 2; | DI MANA klausa digabungkan dengan - ATAU Operator LOGIKAL |
PILIH * DARI jadual2 DI MANA t1 DALAM (1,2,3); | DI MANA klausa digabungkan dengan - Kata Kunci IN |
PILIH * DARI jadual2 DI MANA t1 TIDAK DALAM (1,2,3); | DI MANA klausa digabungkan dengan - TIDAK DALAM Kata Kunci |
PILIH * DARI jadual2 DI MANA t3 = Perempuan; | DI MANA klausa digabungkan dengan Equal (=) untuk BERBANDING OPERATOR |
PILIH * DARI jadual3 DI MANA t3> 2000; | DI MANA klausa digabungkan dengan lebih besar daripada (>) untuk BERBANDING OPERATOR |
PILIH * DARI jadual1 DI MANA t1 <> 1; | DI MANA klausa digabungkan dengan Tidak Sama dengan (<>) OPERATOR PERBANDINGAN |
Perintah MySQL INSERT INTO
Perintah | Penerangan |
INSERT INTO table_name (column_1, column_2,…) NILAI (nilai_1, nilai_2,…); | sintaks asas arahan SQL INSERT |
INSERT INTO table1 (t1, t2, t3, t4) NILAI (X1, X2, X3, X4); | MASUKKAN data ke dalam jadual |
MASUK KE DALAM jadual_1 PILIH * DARI jadual_2; | Memasukkan ke dalam Jadual dari Jadual yang lain |
Perintah MySQL DELETE
Perintah | Penerangan |
DELETE FROM table_name [keadaan MANA]; | Padamkan satu baris di MySQL |
Contoh: - HAPUS DARI jadual1 DI MANA jadual1_id = 18;
(hapus entri 18 nombor id borang jadual1.) HAPUS DARI jadual1 DI MANA jadual1_id DALAM (20,21); (hapus catatan 20 dan 21 nombor borang nombor jadual 1)
Perintah Kemas kini MySQL
Perintah | Penerangan |
UPDATE table_name SET column_name = new_value [keadaan DI MANA]; | mengemas kini sintaks arahan |
Contoh: - PILIH * DARI jadual1 DI MANA t1 = 1;
(ambil semula rekod untuk t1 = 1) KEMASKINI jadual1 SET t4 = X1 DI MANA t1 = 1; (kemas kini nilai t4 dalam jadual)
PESANAN OLEH dalam MySQL: arahan DESC & ASC
Perintah | Penerangan |
PILIH pernyataan… [MANA keadaan | KUMPULAN MENGIKUT nama_sama nama yang MEMPUNYAI keadaan] PESANAN MENGIKUT nama_pengguna [ASC | DESC]; | Susun mengikut sintaks asas klausa |
PILIH {fieldName (s) | *} DARI nama meja [keadaan di mana] PESANAN MENGIKUT nama bidang ASC / DESC [TERHAD N] | Sintaks DESC dan ASC |
Contoh: - Untuk DESC (menurun)
PILIH * DARI jadual1 PESANAN OLEH t3 DESC; Untuk ASC (menaik) PILIH * DARI jadual1 PESANAN OLEH t3 ASC;
MySQL GROUP MENGIKUT dan MEMILIKI perintah Klausa
Kumpulan mengikut
Perintah | Penerangan |
PILIH pernyataan… KUMPULAN MENGIKUT kolom_nama1 [, ruang_nama2,…] [MEMILIKI syarat]; | KUMPULAN MENGIKUT Sintaks |
Contoh untuk mengelompokkan satu lajur: - PILIH t4 DARI jadual1;
PILIH t4 DARI jadual1 KUMPULAN OLEH t4; (andaikan kita ingin mendapatkan nilai unik untuk t4.)
Contoh untuk mengelompokkan beberapa lajur: - PILIH t1_id, t4 DARI jadual2;
PILIH t1_id, t4 DARI jadual2 KUMPULAN OLEH t1_id, t4; (menggunakan kumpulan mengikut kaedah)
Fungsi pengelompokan dan agregat
Perintah | Penerangan |
PILIH t2, COUNT (t1) DARI jadual1 KUMPULAN MENGIKUT t2; | Andaikan kita mahu jumlah nilai lajur t2 dalam pangkalan data kita. |
MEMILIKI fasal
Perintah | Penerangan |
PILIH * DARI jadual2 KUMPULAN MENGIKUT t1_id, t4 MEMILIKI t1_id = x1; | semua t4 untuk jadual2 t1 id x1. Kami akan menggunakan skrip berikut untuk mencapai hasil kami. |
Perintah MySQL Wildcards untuk Suka, TIDAK Suka, Melarikan diri, (%), (_)
% peratusan perintah wildcard dalam MySQL
Perintah | Penerangan |
PILIH penyataan… DI MANA nama bidang SEPERTI xxx%; | sintaks asas untuk% peratusan wildcard |
Contoh: - kita akan menggunakan wildcard peratusan untuk melakukan padanan corak pada kedua sisi perkataan "X1" sebagai bahagian t2 dari jadual1 PILIH * DARI jadual1 DI MANA t2 SUKA% X1%;
PILIH * DARI jadual1 DI MANA t2 SUKA% X1; (peratusan wildcard pada awal kriteria carian sahaja) PILIH * DARI jadual1 DI MANA t2 SUKA X1%; (peratusan wildcard hingga akhir corak yang ditentukan untuk dipadankan.)
_ garis bawah garis bawah arahan
Perintah | Penerangan |
PILIH * DARI jadual1 DI MANA t3 SUKA x2_; | semua jadual1 yang t3 pada tahun "x2" |
TIDAK Suka arahan wildcard
Perintah | Penerangan |
PILIH * DARI jadual1 DI MANA t3 TIDAK SUKA X2_; | Katakan kita mahu mendapatkan jadual1 yang bukan t3 pada tahun X2_ |
Melarikan arahan kata kunci wildcard
Perintah | Penerangan |
SUKA 67 # %% ESCAPE #; | kami ingin memeriksa rentetan "67%" |
Ekspresi Biasa MYSQL (REGEXP)
Perintah | Penerangan |
PILIH pernyataan… DI MANA corak REGEXP nama lapangan; | sintaks asas Ungkapan Biasa |
Contoh: - semua jadual1 t1 yang mempunyai perkataan X1 di dalamnya. Tidak kira sama ada "X1" berada di awal, tengah atau akhir tajuk. PILIH * DARI jadual1 DI MANA t1 REGEXP X1;
Metacharacters ungkapan biasa
Perintah | Penerangan |
* | Metakarakter asterisk (*) digunakan untuk memadankan sifar (0) atau lebih banyak rentetan yang mendahuluinya |
+ | Metakarakter tambah (+) digunakan untuk mencocokkan satu atau lebih contoh rentetan yang mendahuluinya. |
? | Metakarakter soalan (?) Digunakan untuk memadankan sifar (0) atau satu contoh rentetan yang mendahuluinya. |
. | Metakarakter titik (.) Digunakan untuk memadankan mana-mana watak kecuali pengecualian baris baru. |
[abc] | Senarai senarai [abc] digunakan untuk memadankan mana-mana watak yang dilampirkan. |
[^abc] | Senarai senarai [abc] digunakan untuk memadankan mana-mana watak kecuali yang dilampirkan. |
[A-Z] | [AZ] digunakan untuk mencocokkan huruf besar mana pun |
[a-z] | [Az] digunakan untuk mencocokkan huruf kecil mana pun |
[0-9] | [0-9] digunakan untuk memadankan sebarang digit dari 0 hingga 9. |
^ | Caret (^) digunakan untuk memulakan pertandingan pada awalnya. |
| | Bar menegak (|) digunakan untuk mengasingkan alternatif. |
[[:<:]] | [[: <:]] Sepadan dengan permulaan perkataan. |
[[:>:]] | [[:>:]] Sepadan dengan akhir perkataan. |
[:class:] | [: Class:] sepadan dengan kelas watak iaitu [: alpha:] untuk memadankan huruf, [: ruang:] untuk memadankan ruang putih, [: punct:] adalah tanda baca dan [: atas:] untuk huruf kelas atas. |
Perintah Fungsi SQL
Fungsi rentetan
Perintah | Penerangan |
PILIH t1_id, t2, UCASE (t2) DARI jadual1; | fungsi "UCASE" untuk melakukan itu. Ia memerlukan rentetan sebagai parameter dan mengubah semua huruf menjadi huruf besar. |
Fungsi angka
Perintah | Penerangan | Contohnya |
DIV | Pembahagian integer | PILIH 23 DIV 6; |
/ | Bahagian | PILIH 23/6; |
- | Penolakan | PILIH 23 - 6; |
+ | Penambahan | PILIH 23 + 6; |
* | Pendaraban | PILIH 23 * 6 AS pendaraban_hasil; |
% or MOD | Modulus | PILIH 23% 6; atau PILIH 23 MOD 6; |
Floor | fungsi ini membuang tempat perpuluhan dari nombor dan membundarkannya ke nombor terendah terdekat. | PILIH Lantai (23/6) SEBAGAI hasil_lantai; |
Round | fungsi ini membundarkan nombor dengan tempat perpuluhan ke nombor bulat terdekat. | PILIH ROUND (23/6) SEBAGAI keputusan bulat; |
Fungsi yang disimpan
Perintah | Penerangan |
BUAT FUNGSI sf_name ([parameter]]) KEMBALI jenis data PERNYATAAN TETAPMINISTIK | sintaks asas untuk mencipta fungsi yang tersimpan |
BUAT FUNGSI sf_name ([parameter]]) | Wajib dan memberitahu pelayan MySQL untuk membuat fungsi bernama `sf_name 'dengan parameter pilihan yang ditentukan dalam kurungan. |
MENGEMBALIKAN jenis data | Wajib dan menentukan jenis data yang harus dikembalikan oleh fungsi. |
DETERMINISTIK | Fungsi akan mengembalikan nilai yang sama jika argumen yang sama diberikan kepadanya. |
PENYATA | Kod prosedur yang berfungsi. |
Perintah fungsi MySQL Aggregate
Perintah | Penerangan |
PILIH COUNT (t1_id) DARI jadual1 DI MANA t1_id = 2; | Fungsi COUNT |
PILIH MIN (t3) DARI jadual2; | Fungsi MIN |
PILIH MAX (t3) DARI jadual2; | Fungsi MAX |
PILIH SUM (t4) DARI jadual3; | Fungsi SUM |
PILIH AVG (t4) DARI jadual3; | Fungsi AVG |
MySQL ADALAH NULL & BUKAN perintah NULL
Perintah | Penerangan |
PILIH COUNT (t3) DARI jadual1; (jika t3 mempunyai nilai nol yang tidak dikira) | Null sebagai Nilai |
BUAT JADUAL table2 (t1_number int NOT NULL, t2_names varchar (255), t3 varchar (6)); | BUKAN NULL Nilai |
comlumn_name ADALAH NULL comlumn_name BUKAN NULL | Kata kunci asas Sintaks asas |
PILIH * DARI jadual1 DI MANA t2_number ADALAH NULL; | Contohnya NULL |
PILIH * DARI jadual1 DI MANA t2_number TIDAK BENAR; | Contohnya TIDAK NULL |
Perintah MySQL AUTO_INCREMENT
Perintah | Penerangan |
BUAT JADUAL jadual1 (t1_id int (11) AUTO_INCREMENT, t2_name varchar (150) DEFAULT NULL, t3 varchar (500) DEFAULT NULL, PRIMARY KEY (t1_id)); | Sintaks kenaikan automatik |
MYSQL - ALTER, DROP, RENAME, MODIFY
Perintah | Penerangan |
ALTER TABLE table_name ADD COLUMN column_name data_type; | Alter- sintaks |
DROP TABLE sample_table; | Sintaks JADUAL HABIS |
RENAME TABLE current_table_name TO new_table_name; | RENAME Sintaks arahan |
ALTER TABLE table1 CHANGE COLUMN t1_names t1name char (250) NOT NULL; | TUKAR KATA KUNCI |
ALTER TABLE table1MODIFY t1name char (50) NOT NULL; | KATA KUNCI MODIFY |
Jadual ALTER TABEL1 TAMBAHKAN tarikh t4 NULL SELEPAS t3; | SELEPAS KATA KUNCI |
HAD & OFFSET MySQL
Perintah | Penerangan |
PILIH {nama lapangan | *} DARI tableName (SIAPA keadaan) TERHAD N; | Sintaks kata kunci TERHAD |
PILIH * DARI jadual1 TERHAD 1, 2; | MATI SET dalam pertanyaan TERHAD |
Perintah MySQL SubQuery:
Perintah | Penerangan |
PILIH t1_nama DARI jadual1 DI MANA kategori_id = (PILIH MIN (t1_id) dari jadual2); | sub pertanyaan |
Perintah MySQL JOINS
Perintah | Penerangan |
PILIH * DARI jadual1 CROSS JOIN table2 | Silang BERGABUNG |
PILIH table1.t1, table1.t2, table2.t1 DARI table1, table2 WHERE table2.id = table1.table2_id | GABUNGAN DALAM |
PILIH A.t1, B.t2, B.t3 DARI jadual2 SEBAGAI A KIRI BERSAMA jadual1 SEBAGAI B PADA B. meja2_id = A.id | BERSAMA KIRI |
PILIH A.t1, A.t2, B.t3 DARI jadual1 SEBAGAI KANAN BERSAMA jadual2 AS B ON B.id = A.table2_id | BERSAMA KANAN |
PILIH A.t1, B.t2, B.t3 DARI jadual2 SEBAGAI KIRI BERSAMA jadual1 SEBAGAI B MENGGUNAKAN (table2_id) | Klausa "ON" dan "USING" |
Perintah MySQL UNION
Perintah | Penerangan |
PILIH lajur1, lajur2 DARI jadual1 | Sintaks UNION |
PILIH lajur1, lajur2 DARI jadual2; | KEBEBASAN UNION |
Perintah MySQL dalam Views
Perintah | Penerangan |
BUAT PANDANGAN view_name SEBAGAI pernyataan PILIH; | Sintaks pandangan |
DROP TAMPILAN general_v_movie_rentals; | Menjatuhkan pandangan |
Perintah MySQL Index
Perintah | Penerangan |
BUAT INDEX id_index ON table_name (kolum_nama); | Tambah sintaks asas indeks |
DROP INDEX index_id ON table_name; | Sintaks asas indeks penurunan |