Jenis data
MySQL menyimpan data. Selagi ia adalah data, kami akan menentukan jenis data. Jenis data tertentu ditentukan dalam medan jadual. Kemudian, jenis data yang sepadan mesti digunakan dalam data yang dimasukkan. Juga, patuhi keperluan panjang jenis data.
Dalam MySQL kami membahagikan jenis data kepada jenis berikut:
Jenis angka (integer, titik terapung)
String taip
Jenis masa tarikh
Jenis komposit
Jenis integer
Panjang jenis integer adalah berbeza, dalam The actual proses penggunaan ialah Akademi PHP.
MySQL memanjangkan standard SQL dalam bentuk penunjuk lebar paparan pilihan supaya apabila nilai diambil daripada pangkalan data, nilai itu boleh dipanjangkan kepada panjang yang ditentukan. Contohnya, menyatakan bahawa jenis medan ialah INT(6),
memastikan bahawa nilai yang mengandungi kurang daripada 6 digit secara automatik berlapik dengan ruang apabila diambil daripada pangkalan data. Ambil perhatian bahawa menggunakan penunjuk lebar tidak menjejaskan saiz medan atau julat nilai yang boleh disimpan.
Nota:
Apabila mencipta medan jadual, kita boleh menggunakan int kecil yang tidak ditandatangani untuk mewakili jantina. Gunakan 0 untuk mewakili perempuan dan 1 untuk mewakili lelaki. Gunakan 2 untuk mewakili tidak diketahui.
Begitu juga dengan zaman manusia, integer tidak bertanda boleh digunakan semasa mencipta medan jadual. Kerana umur manusia tidak mempunyai nombor negatif
dalam penggunaan sebenar. Berapakah nilai maksimum yang perlu disimpan dalam perniagaan kita. Apabila kami mencipta jadual, kami memilih jenis untuk menyimpan nilai tersebut.
Jenis titik terapung
Nota:
Titik terapung ialah nilai yang tidak tepat dan mungkin terdapat ketidaktepatan
Dan perpuluhan dipanggil nombor titik tetap. Dalam MySQL, ia pada dasarnya disimpan sebagai rentetan. Dalam penggunaan sebenar, jika terdapat penyimpanan nombor titik terapung dengan keperluan yang agak tinggi untuk jumlah dan ketepatan wang, adalah disyorkan untuk menggunakan jenis perpuluhan (nombor titik tetap).
Jenis aksara
*CHAR * digunakan untuk rentetan panjang tetap dan mesti ditakrifkan dengan pengubah suai saiz dalam kurungan. Pengubah suai saiz ini berjulat dari 0-255. Nilai yang lebih besar daripada panjang yang ditentukan akan dipotong, manakala nilai yang lebih kecil daripada panjang yang ditentukan akan dilapisi dengan ruang.
*VARCHAR * Anggap saiz ini sebagai saiz nilai Jika panjangnya tidak mencukupi, gunakan ruang untuk menggantikannya. Jenis VARCHAR, sebaliknya, menganggapnya sebagai nilai maksimum dan hanya menggunakan panjang yang sebenarnya diperlukan untuk menyimpan rentetan Jenis
tidak akan berlapik dengan ruang, tetapi nilai lebih panjang daripada penunjuk akan tetap. dipenggal.
Oleh kerana jenis VARCHAR boleh menukar panjang nilai yang disimpan secara dinamik berdasarkan kandungan sebenar, menggunakan jenis VARCHAR apabila anda tidak pasti berapa banyak aksara yang diperlukan oleh medan boleh menjimatkan ruang cakera dan meningkatkan kecekapan storan.
Jenis teks dan jenis gumpalan Apabila keperluan panjang medan melebihi 255, MySQL menyediakan dua jenis: TEXT dan BLOB. Kesemuanya mempunyai subjenis berbeza bergantung pada saiz data yang disimpan. Data besar ini digunakan untuk menyimpan blok teks atau jenis data binari seperti imej dan fail bunyi.
Terdapat perbezaan dalam klasifikasi dan perbandingan antara jenis TEXT dan BLOB. Jenis BLOB adalah sensitif huruf besar-besaran, manakala TEXT bukan sensitif huruf besar-besaran. Pengubah suai saiz tidak digunakan pada pelbagai subjenis BLOB dan TEXT.
Jenis masa
Nota:
Jenis masa jarang digunakan dalam sistem web. Ramai orang suka menggunakan int untuk menyimpan masa. Cap waktu unix dimasukkan semasa memasukkan, kerana kaedah ini lebih mudah untuk pengiraan. Gunakan fungsi jenis tarikh dalam perniagaan bahagian hadapan untuk menukar cap waktu unix kepada masa yang boleh dikenali orang. Anda boleh memilih jenis di atas mengikut situasi sebenarSesetengah orang menggunakan jenis datetime untuk menyimpan masa bagi memudahkan paparan dalam pengurusan pangkalan data.Jenis komposit
MySQL menganggap nilai yang muncul dalam koleksi jenis ENUM sebagai input sah, dan sebarang input lain akan gagal. Ini menunjukkan bahawa lokasi rekod yang salah boleh didapati dengan mudah dengan mencari baris yang mengandungi rentetan kosong atau indeks angka 0 yang sepadan.
2.Jenis SET Jenis SET adalah serupa dengan jenis ENUM tetapi tidak sama. Jenis SET boleh memperoleh sebarang bilangan nilai daripada koleksi yang telah ditetapkan. Dan seperti jenis ENUM, sebarang percubaan untuk memasukkan nilai yang tidak dipratentukan dalam medan jenis SET akan menyebabkan MySQL memasukkan rentetan kosong. Jika anda memasukkan rekod yang mengandungi unsur undang-undang dan haram, MySQL akan mengekalkan unsur undang-undang dan mengalih keluar unsur haram.
Jenis SET boleh mengandungi sehingga 64 elemen. Dalam elemen SET nilai disimpan sebagai urutan diskret "bit" yang mewakili elemen sepadannya. Bit ialah cara yang mudah dan cekap untuk mencipta koleksi tersusun elemen.
Dan ia juga mengalih keluar elemen pendua, jadi adalah mustahil untuk mengandungi dua elemen yang sama dalam jenis SET.
Untuk mencari rekod haram daripada medan jenis SET cuma cari baris yang mengandungi rentetan kosong atau nilai binari 0.
jenis digunakan
Kami telah mempelajari begitu banyak jenis, hanya gunakan jenis yang sepadan semasa membuat pernyataan jadual.
Contohnya:
BUAT JADUAL JIKA TIDAK WUJUD demo (
id int(11) BUKAN NULL,
nama pengguna varchar(50) BUKAN NULL,
kata laluan char( 32) NOT NULL,
content longtext NOT NULL,
createtime datetime NOT NULL,
sex tinyint(4) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Tetapan atribut medan lain
TANPA TANDA (tidak ditandatangani) Terutamanya digunakan untuk jenis integer dan titik terapung, gunakan tanpa tanda. Iaitu, tidak ada sebelumnya - (tanda tolak).
Digit storan yang lebih panjang. Julat nilai integer kecil ialah -128~127. Selepas menggunakan unsigned, 0-255 panjang boleh disimpan.
Tambah selepas integer atau pernyataan medan titik terapung semasa membuat:
tidak ditandatangani
ZEROFILL (0 padding) 0 ( bukan ruang) boleh digunakan untuk melengkapkan nilai output. Gunakan pengubah suai ini untuk menghalang pangkalan data MySQL daripada menyimpan nilai negatif.
Apabila membuat, tambah:
sifar
lalai Atribut lalai memastikan bahawa Apabila tiada nilai tersedia, pemalar nilai ditetapkan. Nilai ini mestilah pemalar kerana MySQL tidak membenarkan pemasukan nilai fungsi atau ungkapan. Selain itu, sifat ini tidak boleh digunakan dengan lajur BLOB atau TEXT. Jika atribut NULL telah ditentukan untuk lajur ini, nilai lalai akan menjadi NULL jika tiada nilai lalai ditentukan, jika tidak, nilai lalai akan bergantung pada jenis data medan.
Apabila mencipta, ikuti pernyataan medan integer atau titik terapung:
'nilai' lalai
bukan null Jika lajur ditakrifkan sebagai bukan nol, nilai nol tidak akan dibenarkan untuk dimasukkan ke dalam lajur. Adalah disyorkan untuk sentiasa menggunakan atribut bukan nol dalam situasi penting kerana ia menyediakan pengesahan asas bahawa semua nilai yang diperlukan telah dihantar kepada pertanyaan.
Apabila mencipta, tambahkan integer atau pernyataan medan titik terapung:
bukan batal
null Apabila menentukan atribut null untuk lajur, lajur boleh kekal kosong tanpa mengira sama ada lajur lain dalam baris telah diisi. Ingat, null bermaksud "tiada" tepat, bukan rentetan kosong atau 0.
Cuma jangan isytiharkan tidak batal selepas pernyataan medan integer atau titik terapung semasa mencipta.
Set watak
Apakah set watak
Untuk mengenali bahasa Cina, Jepun, Inggeris dan Yunani dengan lebih baik. Simbol yang biasa digunakan dikodkan, dan pengekodan ini ialah set aksara.
Set aksara menentukan cara teks disimpan.
Set aksara adalah setara dengan bahasa manusia dalam komputer.
Contohnya:
Saya berbahasa Inggeris, jadi apabila saya menyimpannya, saya perlu menggunakan teks Inggeris untuk menyimpannya.
Jika saya bercakap dalam bahasa Cina dan menggunakan aksara Inggeris untuk menyimpannya. Kemudian orang tidak boleh membaca atau memahaminya, itu yang kita panggil omong kosong.
Oleh kerana terlalu banyak set watak, cukup untuk mempunyai berpuluh atau ratusan set. Jadi kita tidak perlu tahu terlalu banyak tentang set watak, atau juga cara set watak disusun menjadi watak yang boleh dilihat oleh manusia.
Pengetahuan utama set watak
Kita hanya perlu tahu:
Set aksara yang biasa digunakan
Set aksara apakah yang kami gunakan dalam pangkalan data
Set aksara bahasa Inggeris:
<🎜? >
Kod ASCII menggunakan gabungan nombor binari 7-bit atau 8-bit yang ditentukan untuk mewakili 128 atau 256 aksara yang mungkin. Kod ASCII standard, juga dipanggil kod ASCII asas, menggunakan nombor perduaan 7-bit untuk mewakili semua huruf besar dan huruf kecil, nombor 0 hingga 9, tanda baca dan aksara kawalan khas yang digunakan dalam Bahasa Inggeris Amerika.
Antaranya:
0~31 dan 127 (33 kesemuanya) ialah aksara kawalan atau aksara khusus komunikasi (selebihnya ialah aksara yang boleh dipaparkan), seperti aksara kawalan: LF (suapan baris), CR (carriage return ), FF ( Suapan halaman), DEL (padam), BS (ruang belakang), BEL (ring), dsb.; aksara khas komunikasi: SOH (kepala teks), EOT (akhir teks), ACK (pengesahan), dsb .; Nilai ASCII ialah 8, 9, 10 dan 13 masing-masing ditukar kepada ruang belakang, tab, suapan baris dan aksara pulangan. Mereka tidak mempunyai paparan grafik tertentu, tetapi akan mempunyai kesan yang berbeza pada paparan teks bergantung pada aplikasi.
32~126 (95 kesemuanya) ialah aksara (32 ialah ruang), yang mana 48~57 ialah sepuluh angka Arab dari 0 hingga 9.
Nombor 65 hingga 90 ialah 26 huruf besar Inggeris, nombor 97 hingga 122 ialah 26 huruf kecil Inggeris, dan selebihnya ialah beberapa tanda baca, simbol aritmetik, dsb.
GBK
GBK serasi ke belakang dengan pengekodan GB 2312. Ia ialah spesifikasi pengekodan komputer aksara Cina yang ditakrifkan oleh Republik Rakyat China. Versi terdahulu ialah GB2312.
Unicode
Unicode (Unicode, Universal Code, Unicode) Unicode ialah skim pengekodan aksara yang dibangunkan oleh organisasi antarabangsa yang boleh memuatkan semua teks dan simbol di dunia. Untuk memenuhi keperluan penukaran dan pemprosesan teks silang bahasa dan merentas platform.
UTF-8
ialah pengekodan aksara panjang boleh ubah untuk Unicode, dan ia juga merupakan kod universal. Kerana UNICODE mengambil dua kali lebih banyak ruang daripada ASCII, dan bait tinggi 0 tidak berguna kepada ASCII. Untuk menyelesaikan masalah ini, beberapa set aksara format pertengahan telah muncul Ia dipanggil format transformasi universal, iaitu, UTF (Format Transformasi Universal)
Pengekodan untuk digunakan dalam kerja sebenar<🎜. >
Perhatikan ciri-ciri (Rajah 1) dan anda akan mendapati set aksara MySQL terdiri daripada tiga bahagian:
1 Set aksara
2 Jenis
mysql menulis utf8 apabila menulis utf-8. Jangan tambah garis mendatar tengah.
JadualEnjin
Kuasa MySQL adalah Dengan enjin storan plug-innya, kita boleh menggunakan enjin storan yang berbeza berdasarkan ciri-ciri jadual untuk mencapai prestasi terbaik. Jika anda cukup biasa dan mempunyai pengalaman kerja tertentu. Anda juga boleh menggunakan enjin MySQL sumber terbuka oleh Alibaba dan NetEase dalam pelayan anda sendiri. Anda boleh mempelajari pernyataan untuk membuat jadual dalam bahagian berikut "Pernyataan Definisi Struktur Pangkalan Data". Apabila mysql mencipta jadual, anda boleh menentukan enjin yang sepadan. Gunakan dalam arahan mysql: tunjukkan enjin; untuk melihat semua enjin yang disokong oleh pelayan semasa. Kami memperkenalkan beberapa enjin yang biasa digunakan dan mempelajari tentang beberapa enjin yang kurang biasa digunakan. Elakkan daripada melihat beberapa enjin yang tidak mengetahui konsep dalam kerja sebenar pada masa hadapan. MyISAM tidak menyokong urus niaga, kunci meja (kunci peringkat jadual, penguncian akan mengunci seluruh jadual), menyokong indeks teks penuh dan beroperasi dengan cepat. Selalunya digunakan untuk perniagaan yang banyak membaca.Nota:
Kunci baris: Kunci baris ini semasa operasi tulis dan kemas kini untuk menghalang orang lain daripada mengendalikannya.
Kunci jadual: Semasa operasi tulis dan kemas kini, kunci jadual untuk menghalang orang lain daripada mengendalikannya.
Transaksi: mengendalikan berbilang data pada masa yang sama, jika salah satu operasi data gagal. Boleh berguling semula ke sebelum pembedahan. Biasa digunakan dalam perbankan, e-dagang, kewangan dan sistem lain.
Indeks
Indeks kelihatan seperti nama yang sangat terkenal, Untuk meletakkan ia terus terang, ia adalah jadual kandungan terkini buku kami.
Jika anda menggunakan Kamus Xinhua untuk mencari aksara Cina "张", tanpa menggunakan jadual kandungan, anda mungkin perlu pergi dari halaman pertama Kamus Xinhua ke halaman terakhir, yang mungkin mengambil masa sehingga dua jam. Lebih tebal kamus, lebih banyak masa yang anda perlukan. Kini anda menggunakan direktori untuk mencari aksara Cina "Zhang". untuk watak Cina Ini menunjukkan kepentingan jantina.
Indeks digunakan untuk mencari baris dengan cepat yang mempunyai nilai tertentu dalam lajur.
Tanpa menggunakan indeks, MySQL mesti bermula pada rekod 1 dan kemudian membaca keseluruhan jadual sehingga ia menemui baris yang berkaitan. Lebih besar meja, lebih banyak masa yang diperlukan. Jika lajur yang ditanya dalam jadual mempunyai indeks, MySQL boleh sampai ke titik di mana ia mencari bahagian tengah fail data tanpa perlu melihat semua data.
Sudah tentu, bukan mudah untuk mempunyai terlalu banyak indeks Semakin banyak indeks ditulis, semakin perlahan kelajuan pengubahsuaian. Kerana semasa menulis data yang diubah suai, indeks juga mesti diubah suai.
Jenis indeks MySQL
bahagian seterusnya