mysql含义
1.數(shù)據(jù)庫(kù)的概念
數(shù)據(jù)庫(kù)就像一個(gè)儲(chǔ)存容器,他是一個(gè)存儲(chǔ)和管理數(shù)據(jù)的一個(gè)倉(cāng)庫(kù)。
數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)如下:
我們現(xiàn)在用的mysql數(shù)據(jù)庫(kù)都是屬于關(guān)系結(jié)構(gòu)模型的數(shù)據(jù)庫(kù);他們是使用二維表來(lái)存儲(chǔ)數(shù)據(jù),可能隨著技術(shù)的發(fā)展將來(lái)mysql可能會(huì)升級(jí)為新的方式來(lái)存儲(chǔ)數(shù)據(jù),比如關(guān)系-對(duì)象性數(shù)據(jù)庫(kù)。
我們所說(shuō)的數(shù)據(jù)庫(kù)都是泛指關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),即數(shù)據(jù)庫(kù)服務(wù)器。
RDBMS= 數(shù)據(jù)庫(kù)管理員(manager)+倉(cāng)庫(kù)(database);
數(shù)據(jù)庫(kù)倉(cāng)庫(kù)里面可以有多個(gè)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)一共由多張表組成,表里面存在表結(jié)構(gòu),這里的表結(jié)構(gòu)指的是定義表的的列名與列類(lèi)型。
還有一個(gè)概念表記錄指的是表中一行一行的數(shù)據(jù)。
2.sql語(yǔ)句
sql語(yǔ)句就是“結(jié)構(gòu)化查詢(xún)語(yǔ)言”,它可以對(duì)關(guān)系型數(shù)據(jù)庫(kù)的操作語(yǔ)言。
SQL可以用在所有關(guān)系型數(shù)據(jù)庫(kù)中,但很多數(shù)據(jù)庫(kù)還都有標(biāo)準(zhǔn)之后的一些語(yǔ)法,我們可以稱(chēng)之為“方言”。例如MySQL中的LIMIT語(yǔ)句就是MySQL獨(dú)有的方言,其它數(shù)據(jù)庫(kù)都不支持!當(dāng)然,Oracle或SQL Server都有自己的方言。
語(yǔ)法要求
SQL數(shù)據(jù)類(lèi)型
MySQL與Java一樣,也有數(shù)據(jù)類(lèi)型。MySQL中數(shù)據(jù)類(lèi)型主要應(yīng)用在列上。
MySQL中的數(shù)據(jù)類(lèi)型有很多,主要分為三類(lèi):數(shù)值類(lèi)型、字符串類(lèi)型、日期時(shí)間類(lèi)型。
數(shù)值類(lèi)型:
| TINYINT | 1byte | (-128,127) | (0,255) | 小整數(shù)值 |
| SMALLINT | 2bytes | (-32768,32767) | (0,65535) | 大整數(shù)值 |
| MEDIUMINT | 3bytes | (-8388608,8388607) | (0,16777215) | 大整數(shù)值 |
| INT | 4bytes | (-2147483648, 2147483647) | (0,4294967295) | 大整數(shù)值 |
| BIGINT | 8bytes | (-263,263-1) | (0,2^64-1) | 大整數(shù)值 |
| FLOAT | 4bytes | (-3.402823466 E+38, 3.402823466351 E+38) | 0 和 (1.175494351 E- 38,3.402823466 E+38) | 單精度浮點(diǎn)數(shù)值 |
| DOUBLE | 8bytes | (-1.7976931348623157E+308,1.7976931348623157E+308) | 0 和(2.2250738585072014E-308,1.7976931348623157E+308) | 雙精度浮點(diǎn)數(shù)值 |
| DECIMAL | 依賴(lài)于M(精度)和D(標(biāo)度) 的值 |
字符串類(lèi)型
| CHAR | 0-255 bytes | 固定長(zhǎng)字符串(需要指定長(zhǎng)度) |
| VARCHAR | 0-65535 bytes | 變長(zhǎng)字符串(需要指定長(zhǎng)度) |
| TINYBLOB | 0-255 bytes | 不超過(guò)255個(gè)字符的二進(jìn)制數(shù)據(jù) |
| TINYTEXT | 0-255 bytes | 短文本字符串 |
| BLOB | 0-65 535 bytes | 二進(jìn)制形式的長(zhǎng)文本數(shù)據(jù) |
| TEXT | 0-65 535 bytes | 長(zhǎng)文本數(shù)據(jù) |
| MEDIUMBLOB | 0-16 777 215 bytes | 二進(jìn)制形式的中等長(zhǎng)度文本數(shù)據(jù) |
| MEDIUMTEXT | 0-16 777 215 bytes | 中等長(zhǎng)度文本數(shù)據(jù) |
| LONGBLOB | 0-4 294 967 295 bytes | 二進(jìn)制形式的極大文本數(shù)據(jù) |
| LONGTEXT | 0-4 294 967 295 bytes | 極大文本數(shù)據(jù) |
char 如果你輸入的字符長(zhǎng)度沒(méi)有達(dá)到指定長(zhǎng)度的話(huà)會(huì)自動(dòng)補(bǔ)空格。
而varchar這里如果你輸入的字符長(zhǎng)度沒(méi)有達(dá)到指定長(zhǎng)度的話(huà),他是不會(huì)補(bǔ)空格的,所以一般都是使用varchar
日期時(shí)間類(lèi)型:
| DATE(常用) | 3 | 1000-01-01 至 9999-12-31 | yyyy-MM-dd | 日期值 |
| TIME | 3 | -838:59:59 至 838:59:59 | hh:mm:ss | 時(shí)間值 |
| YEAR | 1 | 1901 至 2155 | yyyy | 年份值 |
| DATETIME(常用) | 8 | 1000-01-01 00:00:00 至9999-12-31 23:59:59 | yyyy-MM-dd hh:mm:ss | 日期加時(shí)間 |
| TIMESTAMP | 4 | 1970-01-01 00:00:01 至2038-01-19 03:14:07 | yyyy-MM-dd hh:mm:ss | 日期加時(shí)間 |
sql的分類(lèi)
- DDL(Data Definition Language):數(shù)據(jù)定義語(yǔ)言,用來(lái)定義數(shù)據(jù)庫(kù)對(duì)象:庫(kù)、表、列等;
- DML(Data Manipulation Language):數(shù)據(jù)操作語(yǔ)言,用來(lái)定義數(shù)據(jù)庫(kù)記錄(數(shù)據(jù));
- DCL(Data Control Language):數(shù)據(jù)控制語(yǔ)言,用來(lái)定義訪問(wèn)權(quán)限和安全級(jí)別;
- DQL(Data Query Language):數(shù)據(jù)查詢(xún)語(yǔ)言,用來(lái)查詢(xún)記錄(數(shù)據(jù))。
sql字符集編碼
字符集與排序規(guī)則:
字符集:
- utf8: utf8 編碼最?字符長(zhǎng)度為 3 字節(jié),如果遇到 4 字節(jié)的寬字符就會(huì)插?異常了,比如Emoji表情,就無(wú)法使用utf8存儲(chǔ),推薦使用utf8mb4
- utf8mb4: mb4即most bytes 4,專(zhuān)門(mén)用來(lái)兼容四個(gè)字節(jié)即以上的unicode, 在Mysql在5.53版本之后
排序規(guī)則:
- utf8mb4_bin:將字符串每個(gè)字符??進(jìn)制數(shù)據(jù)編譯存儲(chǔ),區(qū)分??寫(xiě),?且可以存?進(jìn)制的內(nèi)容。推薦使用
- utf8mb4_general_ci:ci即case insensitive,不區(qū)分??寫(xiě)。沒(méi)有實(shí)現(xiàn)Unicode排序規(guī)則,在遇到某些特殊語(yǔ)?或者字符集,排序結(jié)果可能不?致。但是,在絕?多數(shù)情況下,這些特殊字符的順序并不需要那么精確。
- utf8mb4_unicode_ci:是基于標(biāo)準(zhǔn)的Unicode來(lái)排序和?較,能夠在各種語(yǔ)?之間精確排序,Unicode排序規(guī)則為了能夠處理特殊字符的情況,實(shí)現(xiàn)了略微復(fù)雜的排序算法。
- utf8mb4_general_ci是?個(gè)遺留的 校對(duì)規(guī)則,不?持?jǐn)U展,它僅能夠在字符之間進(jìn)?逐個(gè)?較。
- utf8_general_ci校對(duì)規(guī)則進(jìn)?的?較速度很快,但是與使? utf8mb4_unicode_ci的校對(duì)規(guī)則相?,?較慢
總結(jié)
- 上一篇: 计算机基础应用在线模拟考试,计算机应用基
- 下一篇: 拼多多:补贴与盈利背道而驰