MySQL?數(shù)據(jù)庫的對庫的操作及其數(shù)據(jù)類型
1. 數(shù)據(jù)庫的操作
注意:
SQL語句不區(qū)分大小寫,以下將以小寫的語句來演示- 每個 SQL 語句后面都要加英文的分號(個別語句不用加分號,但是推薦無腦全加)
- [] 中括號中的語句是可選的
- 庫名、表名、列名等等不能和關(guān)鍵字相同,如果一定要用關(guān)鍵字為名,則可以通過反引號把名字引起來
1.1 顯示數(shù)據(jù)庫
語法:
show databases;
示例:

補充:
(0.00 sec) :表示執(zhí)行這條語句花費的時間,即花費了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:包含兩個內(nèi)容character set字符集名 和collate數(shù)據(jù)庫字符集的校驗規(guī)則- 沒有指定字符集和其校驗規(guī)則時,系統(tǒng)默認使用的字符集是:
latin1,為了更好的支持中文,可以修改成 utf8mb4 或者 GBK
示例一:

示例二:

示例三:

補充:
(1)其實 if not exists 這個語句很重要。因為我們現(xiàn)在是單行輸入,SQL 語句如果報錯,影響也不大,我們只要重新輸入正確的就行。但是如果先將 SQL 寫到文件中,然后批量執(zhí)行它,那么只要其中某條語句報錯了,后面的 SQL 語句就不能繼續(xù)執(zhí)行了
(2)字符集: 是指多個字符的集合。不同的字符集包含的字符個數(shù)不一樣、包含的字符不一樣、對字符的編碼方式也不一樣。例如 GB2312 是中國國家標準的簡體中文字符集,GB2312 收錄簡化漢字(6763個)及一般符號、序號、數(shù)字、拉丁字母、日文假名、希臘字母、俄文字母、漢語拼音符號、漢語注音字母,共 7445 個圖形字符。而 ASCII 字符集只包含了128字符,這個字符集收錄的主要字符是英文字母、阿拉伯字母和一些簡單的控制字符。另外,還有其他常用的字符集有 GBK 字符集、GB18030 字符集、Big5 字符集、Unicode 字符集等。
(3)字符集校驗規(guī)則: 指的是字符集比較大小的時候依據(jù)的準則,比如我們比較a和B的大小,如果不考慮大小寫,那么 a<B,如果考慮大小寫,則 a>B,也就是說,同一字符集,不同的比較規(guī)則,對某列數(shù)據(jù)的排序結(jié)果也就會產(chǎn)生不同。MySQL 中的字符校驗規(guī)則可以通過 show collation;語法來查看,如下:

我們可以看到,結(jié)果中一共有195中比較規(guī)則,其中,每種字符集都包含自己默認的校驗規(guī)則,我們簡單解釋一條:utf8_polish_ci 以波蘭語為規(guī)則進行對比,這個校驗規(guī)則由三個部分組成,比較規(guī)則名稱以與其關(guān)聯(lián)的字符集的名稱開頭,utf8 是指的是 utf8 字符集的比較規(guī)則,polish 指的是波蘭語,_ci 指的是不區(qū)分大小寫。
(4)MySQL 種的 utf8 編碼不是真正意義上的 utf8,因為它沒能包含某些復雜的中文字符以及一些符號,如:emoji 類表情。MySQL 真正的 utf8 字符集是 utf8mb4
1.3 選中數(shù)據(jù)庫
語法:
use 數(shù)據(jù)庫名;
示例:

1.4 刪除數(shù)據(jù)庫
語法:
drop database [if exists] 數(shù)據(jù)庫名;
示例:

補充:
刪庫其實是一件很危險的事情,emmm,進公司刪庫的話很容易進去
2. MySQL 中的數(shù)據(jù)類型
介紹:
MySQL 中定義數(shù)據(jù)字段的類型對數(shù)據(jù)庫的優(yōu)化是非常重要的。 MySQL 支持多種類型,大致可以分為三類:數(shù)值、日期/時間和 字符串 (字符) 類型。 MySQL 支持所有標準 SQL 數(shù)值數(shù)據(jù)類型。
2.1 數(shù)值類型

補充:
- 數(shù)值類型可以指定為無符號(
unsigned),表示不取負數(shù),不建議使用,官方文檔明確即將棄用 - MySQL 的數(shù)值類型無單獨的字符類型
char,但是有字符串類型 - 在之前寫的 剖析 C 語言數(shù)據(jù)在內(nèi)存中的存儲 這篇文章中寫過關(guān)于浮點數(shù)的存儲,由于浮點數(shù)的存儲其實是一種二進制的科學計數(shù)法的方式,所以只能精確表示如:0.5、0.25、0.125 這類的數(shù)值,其余只能表示一個近似值
Java中的BigDecimal是用來精確表示浮點數(shù)的,是用了變長內(nèi)存存儲的方式,類似于字符串。但是也付出了需要更多空間和時間的代價- 表示錢的類型: 雖然錢可以用浮點數(shù)表示,但是由于錢其實都是整數(shù),所以可以直接用
int類型,單位就是分
2.2 字符串類型

補充:
varchar(size)的size表示的是這個字符串的最大長度,單位是字符- 漢字是一個字符,但不一定是一個字節(jié)
- text 沒有參數(shù),會根據(jù)用戶插入的數(shù)據(jù)來動態(tài)確定占用的空間
- 前三個字符串類型都是保存的文本類型的數(shù)據(jù),blob 是保存的二進制類型的數(shù)據(jù)
- 二進制的數(shù)據(jù)例如:圖片、
mp3、視頻、world、ppt、excel、.class文件等等 - 表示圖片的類型: 雖然圖片是二進制類型的數(shù)據(jù),但是由于 blob 能夠存儲數(shù)據(jù)的最大值為 64k,所以很多圖片不使用,因此可以將圖片以文件的形式放到硬盤,然后在數(shù)據(jù)庫中記錄這個圖片的路徑,這時就可以用一個字符串類型就輕松搞定了
2.3 日期類型

補充:
timestamp 意為時間戳,時間戳是一種計算機表示時間的方式,如:

注意:2038年這個 timestamp 類型就用不了,因此推薦寫代碼的時候使用 datetime
到此這篇關(guān)于MySQL 數(shù)據(jù)庫的對庫的操作及其數(shù)據(jù)類型的文章就介紹到這了,更多相關(guān)MySQL 對庫操作及其數(shù)據(jù)類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于MySQL的整型數(shù)據(jù)的內(nèi)存溢出問題的應(yīng)對方法
這篇文章主要介紹了關(guān)于MySQL的整型數(shù)據(jù)的內(nèi)存溢出問題的應(yīng)對方法,作者還列出了MySQL所支持的整型數(shù)據(jù)的存儲空間支持大小,需要的朋友可以參考下2015-05-05
centos7下mysqldump定時備份數(shù)據(jù)庫的方法實現(xiàn)
MySQL Dump是MySQL提供的方便導出數(shù)據(jù)庫數(shù)據(jù)的工具,本文主要介紹了centos7下mysqldump定時備份數(shù)據(jù)庫的方法實現(xiàn),感興趣的可以了解一下2023-08-08
Mysql子查詢關(guān)鍵字的使用方式(exists)
這篇文章主要介紹了Mysql子查詢關(guān)鍵字的使用方式(exists),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
MySql插入數(shù)據(jù)成功但是報[Err] 1055錯誤的解決方案
這篇文章主要介紹了MySql插入數(shù)據(jù)成功但是報[Err] 1055錯誤的解決方案,需要的朋友可以參考下2017-08-08
MySQL ERROR 2013 (HY000)錯誤解決方法
這篇文章主要介紹了MySQL ERROR 2013 (HY000)錯誤解決方法,錯誤提示全文ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104,需要的朋友可以參考下2015-01-01

