MySQL 數據庫的對庫的操作及其數據類型
1. 數據庫的操作
註意:
SQL
語句不區分大小寫,以下將以小寫的語句來演示- 每個 SQL 語句後面都要加英文的分號(個別語句不用加分號,但是推薦無腦全加)
- [] 中括號中的語句是可選的
- 庫名、表名、列名等等不能和關鍵字相同,如果一定要用關鍵字為名,則可以通過反引號把名字引起來
1.1 顯示數據庫
語法:
show databases;
示例:
補充:
(0.00 sec)
:表示執行這條語句花費的時間,即花費瞭0.00秒
1.2 創建數據庫
語法:
create database [if not exists] 數據庫名 [create_specification [,create_specification]];
if not exists
:表示如果系統沒有該數據庫,則新建;如果有,則不創建create_specification
:包含兩個內容character set
字符集名 和collate
數據庫字符集的校驗規則- 沒有指定字符集和其校驗規則時,系統默認使用的字符集是:
latin1
,為瞭更好的支持中文,可以修改成 utf8mb4 或者 GBK
示例一:
示例二:
示例三:
補充:
(1)其實 if not exists
這個語句很重要。因為我們現在是單行輸入,SQL 語句如果報錯,影響也不大,我們隻要重新輸入正確的就行。但是如果先將 SQL 寫到文件中,然後批量執行它,那麼隻要其中某條語句報錯瞭,後面的 SQL 語句就不能繼續執行瞭
(2)字符集: 是指多個字符的集合。不同的字符集包含的字符個數不一樣、包含的字符不一樣、對字符的編碼方式也不一樣。例如 GB2312 是中國國傢標準的簡體中文字符集,GB2312 收錄簡化漢字(6763個)及一般符號、序號、數字、拉丁字母、日文假名、希臘字母、俄文字母、漢語拼音符號、漢語註音字母,共 7445 個圖形字符。而 ASCII 字符集隻包含瞭128字符,這個字符集收錄的主要字符是英文字母、阿拉伯字母和一些簡單的控制字符。另外,還有其他常用的字符集有 GBK 字符集、GB18030 字符集、Big5 字符集、Unicode
字符集等。
(3)字符集校驗規則: 指的是字符集比較大小的時候依據的準則,比如我們比較a和B的大小,如果不考慮大小寫,那麼 a<B,如果考慮大小寫,則 a>B,也就是說,同一字符集,不同的比較規則,對某列數據的排序結果也就會產生不同。MySQL 中的字符校驗規則可以通過 show collation
;語法來查看,如下:
我們可以看到,結果中一共有195中比較規則,其中,每種字符集都包含自己默認的校驗規則,我們簡單解釋一條:utf8_polish_ci
以波蘭語為規則進行對比,這個校驗規則由三個部分組成,比較規則名稱以與其關聯的字符集的名稱開頭,utf8 是指的是 utf8 字符集的比較規則,polish
指的是波蘭語,_ci 指的是不區分大小寫。
(4)MySQL 種的 utf8 編碼不是真正意義上的 utf8,因為它沒能包含某些復雜的中文字符以及一些符號,如:emoji
類表情。MySQL 真正的 utf8 字符集是 utf8mb4
1.3 選中數據庫
語法:
use 數據庫名;
示例:
1.4 刪除數據庫
語法:
drop database [if exists] 數據庫名;
示例:
補充:
刪庫其實是一件很危險的事情,emmm,進公司刪庫的話很容易進去
2. MySQL 中的數據類型
介紹:
MySQL
中定義數據字段的類型對數據庫的優化是非常重要的。 MySQL 支持多種類型,大致可以分為三類:數值、日期/時間和 字符串 (字符) 類型。 MySQL 支持所有標準 SQL 數值數據類型。
2.1 數值類型
補充:
- 數值類型可以指定為無符號(
unsigned
),表示不取負數,不建議使用,官方文檔明確即將棄用 - MySQL 的數值類型無單獨的字符類型
char
,但是有字符串類型 - 在之前寫的 剖析 C 語言數據在內存中的存儲 這篇文章中寫過關於浮點數的存儲,由於浮點數的存儲其實是一種二進制的科學計數法的方式,所以隻能精確表示如:0.5、0.25、0.125 這類的數值,其餘隻能表示一個近似值
Java
中的BigDecimal
是用來精確表示浮點數的,是用瞭變長內存存儲的方式,類似於字符串。但是也付出瞭需要更多空間和時間的代價- 表示錢的類型: 雖然錢可以用浮點數表示,但是由於錢其實都是整數,所以可以直接用
int
類型,單位就是分
2.2 字符串類型
補充:
varchar(size)
的size
表示的是這個字符串的最大長度,單位是字符- 漢字是一個字符,但不一定是一個字節
- text 沒有參數,會根據用戶插入的數據來動態確定占用的空間
- 前三個字符串類型都是保存的文本類型的數據,blob 是保存的二進制類型的數據
- 二進制的數據例如:圖片、
mp3
、視頻、world
、ppt
、excel
、.class
文件等等 - 表示圖片的類型: 雖然圖片是二進制類型的數據,但是由於 blob 能夠存儲數據的最大值為 64k,所以很多圖片不使用,因此可以將圖片以文件的形式放到硬盤,然後在數據庫中記錄這個圖片的路徑,這時就可以用一個字符串類型就輕松搞定瞭
2.3 日期類型
補充:
timestamp 意為時間戳,時間戳是一種計算機表示時間的方式,如:
註意:2038年這個 timestamp 類型就用不瞭,因此推薦寫代碼的時候使用 datetime
到此這篇關於MySQL 數據庫的對庫的操作及其數據類型的文章就介紹到這瞭,更多相關MySQL 對庫操作及其數據類型內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!