MySQL數(shù)據(jù)庫基礎(chǔ)與庫的操作大全
一、MySQL數(shù)據(jù)庫基礎(chǔ)
當(dāng)MySQL安裝完成之后,bin?錄下有?個mysqld(Linux)或mysqld.exe(windoows)的可執(zhí)?程序,mysqld可執(zhí)?程序運?后,MySQL服務(wù)也就啟動了。當(dāng)把MySQL服務(wù)配置為?啟動,操作系統(tǒng)啟動時會?動運?mysqld可執(zhí)?程序,從?啟動MySQL服務(wù)。
1.1 數(shù)據(jù)庫服務(wù)器與數(shù)據(jù)庫與表
數(shù)據(jù)庫服務(wù)器是指在計算機(jī)上安裝了一個數(shù)據(jù)庫管理系統(tǒng)程序,這個程序可以管理多個數(shù)據(jù)庫,一般開發(fā)人員會針對每一個應(yīng)用創(chuàng)建一個數(shù)據(jù)庫
那為了保存應(yīng)用中的實體,一般會在書庫中創(chuàng)建多個表,已保存程序中實體的數(shù)據(jù)
所以他們的關(guān)系就是:數(shù)據(jù)庫服務(wù)器——管理——>數(shù)據(jù)庫——管理——>表
1.2 客戶端工具
MySQL安裝成功后有自帶的命令行客戶端工具,可以輸入命令并且執(zhí)行SQL語句,所以MySQL的使用還是非常簡單的,打開終端輸入命令即可

我們輸入安裝時就設(shè)置的密碼,連接成功了,我們使用select version( )的SQL語句查看了當(dāng)前MySQL的版本
1.3 可視化工具
MySQL官方提供了可視化工具M(jìn)ySQL Workbench,但是博主在這里使用的是Navicat可視化客戶端工具,在業(yè)內(nèi)廣泛使用




二、SQL語言
2.1 SQL是什么
SQL(Structured Query Language)是結(jié)構(gòu)化查詢語?的簡稱,是?種數(shù)據(jù)庫查詢和程序設(shè)計語?,?于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫。
2.2 SQL分類
• DDL【Data Definition Language】 數(shù)據(jù)定義語?,?來維護(hù)存儲數(shù)據(jù)的結(jié)構(gòu)
代表指令: create, drop, alter
• DML【Data Manipulation Language】 數(shù)據(jù)操縱語?,?來對數(shù)據(jù)進(jìn)?操作
代表指令: insert,delete,update,select
• DCL【Data Control Language】 數(shù)據(jù)控制語?,主要負(fù)責(zé)權(quán)限管理和事務(wù)
代表指令: grant,revoke,commit
注意:SQL語言對大小寫不敏感
三、庫的操作
3.1 查看數(shù)據(jù)庫
show databases;

3.2 創(chuàng)建數(shù)據(jù)庫
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option] ...
create_option: [DEFAULT] {
CHARACTER SET [=] charset_name
| COLLATE [=] collation_name
| ENCRYPTION [=] { 'Y' | 'N' }
}
- db_name:表示自定義的數(shù)據(jù)庫名稱
- {}:表示必須選
- |:表示任選其中一個
- []:表示括號中內(nèi)是可選項
- CHARACTER SET:指定數(shù)據(jù)庫采?的字符集編碼
- COLLATE:指定數(shù)據(jù)庫字符集的校驗規(guī)則
- ENCRYPTION:數(shù)據(jù)庫是否加密,MySQL 8.0.16中引?的新選項、
3.2.1創(chuàng)建一個名字為test的數(shù)據(jù)庫
create database test;

3.2.2自定義一個數(shù)據(jù)庫名,如果該數(shù)據(jù)庫不存在則創(chuàng)建
create database if not exists test;
如果不加 if not exists,觀察發(fā)現(xiàn)報錯顯示test已經(jīng)存在無法創(chuàng)建

我們加上 if not exists,觀察發(fā)現(xiàn)數(shù)據(jù)庫里面已經(jīng)存在test,所以沒有創(chuàng)建,出現(xiàn)了一個警告

我們顯示警告,提示test已經(jīng)存在不能創(chuàng)建

所以建議創(chuàng)建數(shù)據(jù)庫的時候加上 if not exists,可以有效防止報錯,而導(dǎo)致程序中斷
在設(shè)置字符集編碼之前,我們先來了解一下字符集編碼和校驗排序規(guī)則
show charset;

我們看到當(dāng)前數(shù)據(jù)庫支持的所以字符集編碼,MySQL8.0默認(rèn)的字符集編碼是utf8mb4,而MySQL5.7默認(rèn)的字符集是latin1
show collation;

這里我們只顯示部分排序排序規(guī)則,MySQL8.0默認(rèn)的排序規(guī)則是 utf8mb4_0900_ai_ci,MySQL5.7默認(rèn)排序規(guī)則是utf8mb4_general_ci
我們可以分析一下當(dāng)前字符集和排序規(guī)則對數(shù)據(jù)庫的影響
utf8mb4_0900_ai_ci 是MySQL8.0引?的新規(guī)則,在?版本中不能識別;
utf8mb4 編碼是對 Unicode 字符集的?種實現(xiàn),?1到4個字節(jié)表??個字符,可以表?世界上?乎所有的字符,?且更節(jié)少空間
0900 是基于UCA9.0.0算法,UCA是Unicode Collation Algorithm的縮寫
- ai是Accent-insensitive的縮寫,表??聲不敏感
- ci是Case-insensitive的縮寫表???寫不敏感
- as是Accent-sensitive的縮寫,表??聲敏感
- cs是Case-sensitive的縮寫,表???寫敏感
show variables like '%character%' 查看當(dāng)前系統(tǒng)默認(rèn)字符集
show variables like '%collation%' 查看當(dāng)前系統(tǒng)默認(rèn)排序規(guī)則

3.2.3 創(chuàng)建一個制定字符集和排序規(guī)則的數(shù)據(jù)庫
create database if not exists java character set utf8mb4 collate utf8mb4_0900_ai_ci;

3.3 查看創(chuàng)建庫的語句
show create database db_name;
我們查詢一下java數(shù)據(jù)庫的創(chuàng)建語句

3.4 修改數(shù)據(jù)庫
ALTER {DATABASE | SCHEMA} [db_name] alter_option ...
alter_option: {
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
| [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}
| READ ONLY [=] {DEFAULT | 0 | 1}
}
修改數(shù)據(jù)庫主要是針對數(shù)據(jù)庫的字符集和排序規(guī)則進(jìn)行修改
我們修改之前的test數(shù)據(jù)庫的字符集編碼為gbk
可以觀察到修改之前默認(rèn)字符集為utf8mb4,修改后則為gbk

3.5 刪除數(shù)據(jù)庫
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
我們刪除test數(shù)據(jù)庫,可以觀察到刪除后test數(shù)據(jù)庫不存在了

??刪除數(shù)據(jù)庫是非常危險的操作,不要隨意刪除數(shù)據(jù)庫
到此這篇關(guān)于MySQL數(shù)據(jù)庫基礎(chǔ)與庫的操作大全的文章就介紹到這了,更多相關(guān)mysql數(shù)據(jù)庫基礎(chǔ)與庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL數(shù)據(jù)庫基礎(chǔ)概念和簡單使用
- 基于MySQL實現(xiàn)基礎(chǔ)圖數(shù)據(jù)庫的詳細(xì)步驟
- DBeaver連接本地MySQL并創(chuàng)建數(shù)據(jù)庫/表的基礎(chǔ)操作教程
- MySQL數(shù)據(jù)庫基礎(chǔ)學(xué)習(xí)之JSON函數(shù)各類操作詳解
- mysql數(shù)據(jù)庫查詢基礎(chǔ)命令詳解
- MySql數(shù)據(jù)庫基礎(chǔ)之分組查詢詳解
- MySql數(shù)據(jù)庫基礎(chǔ)之子查詢詳解
- mysql 操作數(shù)據(jù)庫基礎(chǔ)詳解
- MySQL?數(shù)據(jù)庫的基礎(chǔ)知識
相關(guān)文章
Java中Optional.of()方法及源碼解析(非常詳細(xì)!)
這篇文章主要給大家介紹了關(guān)于Java中Optional.of()方法及源碼解析的相關(guān)資料,Java中java.util .Optional類的of()方法用于獲得該Optional類中具有指定類型的指定值的一個實例,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
struts2與cookie 實現(xiàn)自動登錄和驗證碼驗證實現(xiàn)代碼
這篇文章主要介紹了struts2與cookie 實現(xiàn)自動登錄和驗證碼驗證實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2016-10-10

