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

我們輸入安裝時(shí)就設(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)化查詢語?的簡(jiǎn)稱,是?種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語?,?于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫。
2.2 SQL分類
• DDL【Data Definition Language】 數(shù)據(jù)定義語?,?來維護(hù)存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu)
代表指令: create, drop, alter
• DML【Data Manipulation Language】 數(shù)據(jù)操縱語?,?來對(duì)數(shù)據(jù)進(jìn)?操作
代表指令: insert,delete,update,select
• DCL【Data Control Language】 數(shù)據(jù)控制語?,主要負(fù)責(zé)權(quán)限管理和事務(wù)
代表指令: grant,revoke,commit
注意:SQL語言對(duì)大小寫不敏感
三、庫的操作
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ù)庫名稱
- {}:表示必須選
- |:表示任選其中一個(gè)
- []:表示括號(hào)中內(nèi)是可選項(xiàng)
- CHARACTER SET:指定數(shù)據(jù)庫采?的字符集編碼
- COLLATE:指定數(shù)據(jù)庫字符集的校驗(yàn)規(guī)則
- ENCRYPTION:數(shù)據(jù)庫是否加密,MySQL 8.0.16中引?的新選項(xiàng)、
3.2.1創(chuàng)建一個(gè)名字為test的數(shù)據(jù)庫
create database test;

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

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

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

所以建議創(chuàng)建數(shù)據(jù)庫的時(shí)候加上 if not exists,可以有效防止報(bào)錯(cuò),而導(dǎo)致程序中斷
在設(shè)置字符集編碼之前,我們先來了解一下字符集編碼和校驗(yàn)排序規(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ī)則對(duì)數(shù)據(jù)庫的影響
utf8mb4_0900_ai_ci 是MySQL8.0引?的新規(guī)則,在?版本中不能識(shí)別;
utf8mb4 編碼是對(duì) Unicode 字符集的?種實(shí)現(xiàn),?1到4個(gè)字節(jié)表??個(gè)字符,可以表?世界上?乎所有的字符,?且更節(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)建一個(gè)制定字符集和排序規(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ù)庫主要是針對(duì)數(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ù)庫是非常危險(xiǎn)的操作,不要隨意刪除數(shù)據(jù)庫
到此這篇關(guān)于MySQL數(shù)據(jù)庫基礎(chǔ)與庫的操作大全的文章就介紹到這了,更多相關(guān)mysql數(shù)據(jù)庫基礎(chǔ)與庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL數(shù)據(jù)庫基礎(chǔ)概念和簡(jiǎn)單使用
- 基于MySQL實(shí)現(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ǔ)之分組查詢?cè)斀?/a>
- MySql數(shù)據(jù)庫基礎(chǔ)之子查詢?cè)斀?/a>
- mysql 操作數(shù)據(jù)庫基礎(chǔ)詳解
- MySQL?數(shù)據(jù)庫的基礎(chǔ)知識(shí)
相關(guān)文章
IDEA 程序包不存在,找不到符號(hào)但是明明存在對(duì)應(yīng)的jar包(問題分析及解決方案)
這篇文章主要介紹了IDEA 程序包不存在,找不到符號(hào)但是明明存在對(duì)應(yīng)的jar包 的解決方案,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
Springboot接收文件與發(fā)送文件實(shí)例教程
最近工作中遇到個(gè)需求,springboot簡(jiǎn)單的上傳文檔或者圖片,并且進(jìn)行操作,操作完后進(jìn)行保存指定路徑,下面這篇文章主要給大家介紹了關(guān)于Springboot接收文件與發(fā)送文件的相關(guān)資料,需要的朋友可以參考下2023-05-05
基于Java實(shí)現(xiàn)簡(jiǎn)單的身材計(jì)算程序
這篇文章主要為大家詳細(xì)介紹了如何利用Java實(shí)現(xiàn)簡(jiǎn)單的身材計(jì)算程序,可以計(jì)算身體的體脂率以及BMI數(shù)值等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12
SpringBoot?AOP?Redis實(shí)現(xiàn)延時(shí)雙刪功能實(shí)戰(zhàn)
本文主要介紹了SpringBoot?AOP?Redis實(shí)現(xiàn)延時(shí)雙刪功能實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
Maven配置文件修改及導(dǎo)入第三方j(luò)ar包的實(shí)現(xiàn)
本文主要介紹了Maven配置文件修改及導(dǎo)入第三方j(luò)ar包的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
Spring cloud alibaba之Gateway網(wǎng)關(guān)功能特征詳解
spring cloud gateway是spring cloud推出的第二代網(wǎng)關(guān),是由WebFlux+Netty+Reactor實(shí)現(xiàn)的響應(yīng)式的API網(wǎng)關(guān),它不能在傳統(tǒng)的servlet容器中工作,也不能構(gòu)建成war包,接下來通過本文給大家分享Spring cloud alibaba--Gateway網(wǎng)關(guān),需要的朋友可以參考下2021-08-08
java 定時(shí)器線程池(ScheduledThreadPoolExecutor)的實(shí)現(xiàn)
這篇文章主要介紹了java 定時(shí)器線程池(ScheduledThreadPoolExecutor),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Maven構(gòu)建時(shí)跳過部分測(cè)試的實(shí)例
下面小編就為大家分享一篇Maven構(gòu)建時(shí)跳過部分測(cè)試的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-11-11

