MySQL?數(shù)據(jù)庫的對(duì)庫的操作及其數(shù)據(jù)類型
1. 數(shù)據(jù)庫的操作
注意:
SQL
語句不區(qū)分大小寫,以下將以小寫的語句來演示- 每個(gè) SQL 語句后面都要加英文的分號(hào)(個(gè)別語句不用加分號(hào),但是推薦無腦全加)
- [] 中括號(hào)中的語句是可選的
- 庫名、表名、列名等等不能和關(guān)鍵字相同,如果一定要用關(guān)鍵字為名,則可以通過反引號(hào)把名字引起來
1.1 顯示數(shù)據(jù)庫
語法:
show databases;
示例:
補(bǔ)充:
(0.00 sec)
:表示執(zhí)行這條語句花費(fèi)的時(shí)間,即花費(fèi)了0.00秒
1.2 創(chuàng)建數(shù)據(jù)庫
語法:
create database [if not exists] 數(shù)據(jù)庫名 [create_specification [,create_specification]];
if not exists
:表示如果系統(tǒng)沒有該數(shù)據(jù)庫,則新建;如果有,則不創(chuàng)建create_specification
:包含兩個(gè)內(nèi)容character set
字符集名 和collate
數(shù)據(jù)庫字符集的校驗(yàn)規(guī)則- 沒有指定字符集和其校驗(yàn)規(guī)則時(shí),系統(tǒng)默認(rèn)使用的字符集是:
latin1
,為了更好的支持中文,可以修改成 utf8mb4 或者 GBK
示例一:
示例二:
示例三:
補(bǔ)充:
(1)其實(shí) if not exists
這個(gè)語句很重要。因?yàn)槲覀儸F(xiàn)在是單行輸入,SQL 語句如果報(bào)錯(cuò),影響也不大,我們只要重新輸入正確的就行。但是如果先將 SQL 寫到文件中,然后批量執(zhí)行它,那么只要其中某條語句報(bào)錯(cuò)了,后面的 SQL 語句就不能繼續(xù)執(zhí)行了
(2)字符集: 是指多個(gè)字符的集合。不同的字符集包含的字符個(gè)數(shù)不一樣、包含的字符不一樣、對(duì)字符的編碼方式也不一樣。例如 GB2312 是中國國家標(biāo)準(zhǔn)的簡體中文字符集,GB2312 收錄簡化漢字(6763個(gè))及一般符號(hào)、序號(hào)、數(shù)字、拉丁字母、日文假名、希臘字母、俄文字母、漢語拼音符號(hào)、漢語注音字母,共 7445 個(gè)圖形字符。而 ASCII 字符集只包含了128字符,這個(gè)字符集收錄的主要字符是英文字母、阿拉伯字母和一些簡單的控制字符。另外,還有其他常用的字符集有 GBK 字符集、GB18030 字符集、Big5 字符集、Unicode
字符集等。
(3)字符集校驗(yàn)規(guī)則: 指的是字符集比較大小的時(shí)候依據(jù)的準(zhǔn)則,比如我們比較a和B的大小,如果不考慮大小寫,那么 a<B,如果考慮大小寫,則 a>B,也就是說,同一字符集,不同的比較規(guī)則,對(duì)某列數(shù)據(jù)的排序結(jié)果也就會(huì)產(chǎn)生不同。MySQL 中的字符校驗(yàn)規(guī)則可以通過 show collation
;語法來查看,如下:
我們可以看到,結(jié)果中一共有195中比較規(guī)則,其中,每種字符集都包含自己默認(rèn)的校驗(yàn)規(guī)則,我們簡單解釋一條:utf8_polish_ci
以波蘭語為規(guī)則進(jìn)行對(duì)比,這個(gè)校驗(yàn)規(guī)則由三個(gè)部分組成,比較規(guī)則名稱以與其關(guān)聯(lián)的字符集的名稱開頭,utf8 是指的是 utf8 字符集的比較規(guī)則,polish
指的是波蘭語,_ci 指的是不區(qū)分大小寫。
(4)MySQL 種的 utf8 編碼不是真正意義上的 utf8,因?yàn)樗鼪]能包含某些復(fù)雜的中文字符以及一些符號(hào),如:emoji
類表情。MySQL 真正的 utf8 字符集是 utf8mb4
1.3 選中數(shù)據(jù)庫
語法:
use 數(shù)據(jù)庫名;
示例:
1.4 刪除數(shù)據(jù)庫
語法:
drop database [if exists] 數(shù)據(jù)庫名;
示例:
補(bǔ)充:
刪庫其實(shí)是一件很危險(xiǎn)的事情,emmm,進(jìn)公司刪庫的話很容易進(jìn)去
2. MySQL 中的數(shù)據(jù)類型
介紹:
MySQL
中定義數(shù)據(jù)字段的類型對(duì)數(shù)據(jù)庫的優(yōu)化是非常重要的。 MySQL 支持多種類型,大致可以分為三類:數(shù)值、日期/時(shí)間和 字符串 (字符) 類型。 MySQL 支持所有標(biāo)準(zhǔn) SQL 數(shù)值數(shù)據(jù)類型。
2.1 數(shù)值類型
補(bǔ)充:
- 數(shù)值類型可以指定為無符號(hào)(
unsigned
),表示不取負(fù)數(shù),不建議使用,官方文檔明確即將棄用 - MySQL 的數(shù)值類型無單獨(dú)的字符類型
char
,但是有字符串類型 - 在之前寫的 剖析 C 語言數(shù)據(jù)在內(nèi)存中的存儲(chǔ) 這篇文章中寫過關(guān)于浮點(diǎn)數(shù)的存儲(chǔ),由于浮點(diǎn)數(shù)的存儲(chǔ)其實(shí)是一種二進(jìn)制的科學(xué)計(jì)數(shù)法的方式,所以只能精確表示如:0.5、0.25、0.125 這類的數(shù)值,其余只能表示一個(gè)近似值
Java
中的BigDecimal
是用來精確表示浮點(diǎn)數(shù)的,是用了變長內(nèi)存存儲(chǔ)的方式,類似于字符串。但是也付出了需要更多空間和時(shí)間的代價(jià)- 表示錢的類型: 雖然錢可以用浮點(diǎn)數(shù)表示,但是由于錢其實(shí)都是整數(shù),所以可以直接用
int
類型,單位就是分
2.2 字符串類型
補(bǔ)充:
varchar(size)
的size
表示的是這個(gè)字符串的最大長度,單位是字符- 漢字是一個(gè)字符,但不一定是一個(gè)字節(jié)
- text 沒有參數(shù),會(huì)根據(jù)用戶插入的數(shù)據(jù)來動(dòng)態(tài)確定占用的空間
- 前三個(gè)字符串類型都是保存的文本類型的數(shù)據(jù),blob 是保存的二進(jìn)制類型的數(shù)據(jù)
- 二進(jìn)制的數(shù)據(jù)例如:圖片、
mp3
、視頻、world
、ppt
、excel
、.class
文件等等 - 表示圖片的類型: 雖然圖片是二進(jìn)制類型的數(shù)據(jù),但是由于 blob 能夠存儲(chǔ)數(shù)據(jù)的最大值為 64k,所以很多圖片不使用,因此可以將圖片以文件的形式放到硬盤,然后在數(shù)據(jù)庫中記錄這個(gè)圖片的路徑,這時(shí)就可以用一個(gè)字符串類型就輕松搞定了
2.3 日期類型
補(bǔ)充:
timestamp 意為時(shí)間戳,時(shí)間戳是一種計(jì)算機(jī)表示時(shí)間的方式,如:
注意:2038年這個(gè) timestamp 類型就用不了,因此推薦寫代碼的時(shí)候使用 datetime
到此這篇關(guān)于MySQL 數(shù)據(jù)庫的對(duì)庫的操作及其數(shù)據(jù)類型的文章就介紹到這了,更多相關(guān)MySQL 對(duì)庫操作及其數(shù)據(jù)類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL 8.0.18 穩(wěn)定版發(fā)布! Hash Join如期而至
MySQL 8.0.18 穩(wěn)定版發(fā)布! Hash Join 如期而至,這篇文章帶大家快速瀏覽一下MySQL 8.0.18 穩(wěn)定版的各個(gè)亮點(diǎn),感興趣的小伙伴們可以學(xué)習(xí)參考一下2019-10-10MySQL深度分頁(千萬級(jí)數(shù)據(jù)量如何快速分頁)
后端開發(fā)中經(jīng)常需要分頁展示,個(gè)時(shí)候就需要用到MySQL的LIMIT關(guān)鍵字。LIMIT在數(shù)據(jù)量大的時(shí)候極可能造成的一個(gè)問題就是深度分頁。本文就介紹一下解決方法,感興趣的可以了解一下2021-07-07MySQL性能優(yōu)化之max_connections配置參數(shù)淺析
這篇文章主要介紹了MySQL性能優(yōu)化之max_connections配置參數(shù)淺析,本文著重講解了3種配置max_connections參數(shù)的方法,需要的朋友可以參考下2014-07-07mysql?8.0.27?安裝配置方法圖文教程(Windows64位)
這篇文章主要為大家詳細(xì)介紹了mysql?8.0.27?下載、安裝與配置圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04Mysql的Table doesn't exist問題及解決
這篇文章主要介紹了Mysql的Table doesn't exist問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12