Jenis tutorial ...LOGIN

Jenis tutorial asas pembangunan PHP, set aksara, enjin dan indeks

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

88.png


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

89.png


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

90.png


Jenis

*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

91.png


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 sebenar

Sesetengah orang menggunakan jenis datetime untuk menyimpan masa bagi memudahkan paparan dalam pengurusan pangkalan data.

Jenis komposit

92.png


Jenis ENUM Hanya satu nilai dibenarkan diperoleh daripada koleksi; jenis SET membenarkan sebarang bilangan nilai diperoleh daripada koleksi.

1. Jenis ENUM

Jenis ENUM hanya membenarkan satu nilai diperoleh dalam koleksi, yang agak serupa dengan satu pilihan. Lebih mudah difahami apabila berurusan dengan data yang saling eksklusif, seperti jantina manusia. Medan jenis ENUM boleh mengambil nilai daripada koleksi atau menggunakan nilai nol Sebarang input lain akan menyebabkan MySQL memasukkan rentetan kosong ke dalam medan. Di samping itu, jika kes nilai yang dimasukkan tidak sepadan dengan kes nilai dalam koleksi, MySQL secara automatik akan menggunakan kes nilai yang dimasukkan untuk menukarnya kepada nilai yang konsisten dengan kes koleksi.

Jenis ENUM boleh disimpan sebagai nombor secara dalaman dalam sistem, dan diindeks bermula dari 1. Jenis ENUM boleh mengandungi sehingga 65536 elemen, satu daripadanya dikhaskan oleh MySQL untuk menyimpan maklumat ralat ini diwakili oleh indeks 0 atau rentetan kosong.

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:

<🎜? >93.png


ASCII

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<🎜. >

Set aksara yang biasa digunakan dalam bahasa Cina dibahagikan kepada utf-8 dan GBK.

Yang sebenar yang digunakan adalah seperti berikut:

94.png

Perhatikan ciri-ciri (Rajah 1) dan anda akan mendapati set aksara MySQL terdiri daripada tiga bahagian:
1 Set aksara
2 Jenis

Akhir sekali Tong sampah merujuk kepada set aksara binari, dan ci berikut merujuk kepada aksara tidak peka huruf besar-kecil apabila menyimpan dan mengisih.

Nota:

mysql menulis utf8 apabila menulis utf-8. Jangan tambah garis mendatar tengah.

95.png


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.

96.png

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.

  • Meja enjin simpanan myisam terdiri daripada myd dan myi. .myd digunakan untuk menyimpan fail data, dan .myi digunakan untuk menyimpan fail indeks.

  • Untuk jadual enjin storan myisam, pangkalan data mysql hanya menyimpan cache fail indeksnya, dan caching fail data diselesaikan oleh sistem pengendalian itu sendiri.

InnoDB

  • menyokong transaksi, terutamanya untuk aplikasi pemprosesan transaksi dalam talian (OLTP).

  • Reka bentuk kunci baris menyokong kekunci asing, iaitu, operasi baca tidak dikunci secara lalai.

InnoDB direka untuk prestasi maksimum apabila memproses sejumlah besar data.

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

97.png

bahagian seterusnya
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <?php echo "Hello World!!!"; ?> </body> </html>
babperisian kursus