玩轉(zhuǎn)?MySQL?庫表:庫和表的操作"通關(guān)指南"
前言
你還在為“數(shù)據(jù)該怎么存?數(shù)據(jù)庫咋管?”頭疼嗎,或是想闖入數(shù)據(jù)庫領(lǐng)域卻沒頭緒——MySQL,絕對是你最友好的“入門鑰匙”!
作為開源圈的“頂流”關(guān)系型數(shù)據(jù)庫,MySQL憑著“輕量好上手、穩(wěn)定還能扛”的本事,成了Web開發(fā)、數(shù)據(jù)分析乃至企業(yè)系統(tǒng)的“數(shù)據(jù)管家”首選:小到個人項目存用戶信息,大到企業(yè)級應(yīng)用處理海量數(shù)據(jù),都有它“大顯身手”的機會。
想快速啃下它?本文就是為你定制的“通關(guān)指南”:
- 從“mysql和mysqld有啥區(qū)別”,“MySQL整體啥架構(gòu)”這些基礎(chǔ)認知,到SQL語句分類幫你捋清邏輯;
- 再到數(shù)據(jù)庫如何創(chuàng)建、查看、修改、刪除,數(shù)據(jù)表怎樣搭建、查詢、調(diào)整、移除——全程“理論+實操”雙管齊下,手把手教你掌握核心操作。
跟著學(xué),你很快就能自己搭數(shù)據(jù)庫、管數(shù)據(jù)表,把“數(shù)據(jù)管理”從“陌生詞”變成“隨手能做的技能”,甚至直接用到項目里!現(xiàn)在,開啟MySQL的輕松學(xué)習(xí)之旅吧~
一. 數(shù)據(jù)庫基礎(chǔ)
1.1 mysql和mysqld

mysql是基于CS(client - server)模式的一種網(wǎng)絡(luò)服務(wù),所以其也需要有服務(wù)端和客戶端:
- mysql是數(shù)據(jù)庫服務(wù)的客戶端;
- mysqld是數(shù)據(jù)庫服務(wù)的服務(wù)端。
mysql幫助我們將磁盤上的數(shù)據(jù)組織管理起來,讓我們能夠更方便的查找,管理數(shù)據(jù)。
數(shù)據(jù)庫本質(zhì)就是:對數(shù)據(jù)內(nèi)容存儲的一種解決方案,上層直接對數(shù)據(jù)庫進行操作,而不需要再考慮數(shù)據(jù)在磁盤上是如何存放的,又要如何將數(shù)據(jù)組織起來,這些工作都有mysql數(shù)據(jù)庫來幫我們解決。
1.2 mysql結(jié)構(gòu)

mysql大體上可以分為4層:
- 最上層:與客戶端建立鏈接,進行限權(quán)等上層服務(wù);
- 第二層:識別用戶的指令,進行詞法分析,同時對接收到的指令進行調(diào)優(yōu);
- 第三層:存儲引擎:負責對各種指令進行具體的方法實現(xiàn),包含對數(shù)據(jù)庫文件進行增刪查改;
- 第四層:文件系統(tǒng),與磁盤文件進行交互。
1.3 SQL語句分類
SQL語句分為三類:
- DDL : 數(shù)據(jù)定義語言,維護數(shù)據(jù)庫的存儲結(jié)構(gòu);
- DML : 數(shù)據(jù)操作語言,進行表內(nèi)數(shù)據(jù)的修改;
- DCL : 數(shù)據(jù)控制語言,負責權(quán)限管理和事務(wù)。
本文主要介紹DDL方面的語句,即如何對庫中的存儲接口進行修改。
二. 庫的操作
庫的操作分為四部分:
- 創(chuàng)建數(shù)據(jù)庫;
- 查看數(shù)據(jù)庫;
- 修改數(shù)據(jù)庫;
- 刪除數(shù)據(jù)庫。
2.1 創(chuàng)建數(shù)據(jù)庫
語法: create database (if not exists) 庫名 (選項)來創(chuàng)建庫;
通過show databases;可以查看mysql中已經(jīng)存在的數(shù)據(jù)庫。
創(chuàng)建一個名為test的數(shù)據(jù)庫:

在創(chuàng)建庫的時候,我們也可以指定該庫的兩種編碼集:
- 數(shù)據(jù)庫編碼集——數(shù)據(jù)存儲時采用的編碼方式;
- 數(shù)據(jù)庫校驗集——用于對數(shù)據(jù)進行比較,排序的規(guī)則,通常被稱為"排序規(guī)則"。
通過show charset可以查看數(shù)據(jù)庫支持的所有編碼方式,show collation查看數(shù)據(jù)庫支持的校驗集。
創(chuàng)建數(shù)據(jù)庫的時候也可以指定字符集或校驗集:在后面緊接著charset=編碼集 collate=校驗集即可:

可以通過show create database 庫名,顯示mysql創(chuàng)建對應(yīng)數(shù)據(jù)庫的信息。
注意:utf8是utf8mb3是其一個別名,所有通過上圖我們確實將庫中的編碼集進行了成功設(shè)置,在查詢中未顯示校驗集,默認使用該編碼集的默認校驗集。
2.2 查看數(shù)據(jù)庫
可以通過show databases查看所有已經(jīng)存在的數(shù)據(jù)庫:

show create database 庫名:顯示創(chuàng)建庫的時候的信息,\G可以將查詢結(jié)果按 “垂直格式” 展示

show processlist用來查看那些用戶連接了我們的mysql。
2.3 修改數(shù)據(jù)庫
關(guān)于修改數(shù)據(jù)庫,我們只能進行的操作是有限的,最常見的就是修改數(shù)據(jù)庫的編碼集和解碼集:alter database 庫名 charset=編碼集:

2.4 刪除數(shù)據(jù)庫
刪除數(shù)據(jù)庫很簡單:drop database 庫名即可。
但是不建議直接將數(shù)據(jù)庫中直接進行刪除,應(yīng)當先備份再刪除。
2.4.1 備份
語法: mysqldump -P服務(wù)器端口號 -u 用戶 -p -B 目標庫 > 目標文件
上述這個語句就是用來進行備份的,其中-B選項指的是在進行數(shù)據(jù)恢復(fù)的時候,會自動創(chuàng)建庫,不需要我們手動創(chuàng)建庫。

2.4.2 恢復(fù)
語法:source 備份文件.
在對文件數(shù)據(jù)進行恢復(fù)的時候,要考慮是否需要手動創(chuàng)建一個數(shù)據(jù)庫來存放數(shù)據(jù),如果在進行備份的時候添加了-B會自動創(chuàng)建數(shù)據(jù)庫,否則需要手動創(chuàng)建。
實際上述的備份就是將對目標庫的所有指令存儲起來,而恢復(fù)就是將這些存儲的指令重新在mysql上執(zhí)行一邊。
三. 表的操作
關(guān)于表的操作與庫的操作一樣,也分為四部分:
- 創(chuàng)建表;
- 查看表;
- 修改表;
- 刪除表。
在對表操作之前,我們要向指定要對那個庫中的表進行操作:use 庫名指定要進行操作的庫。
3.1 創(chuàng)建表
create tabel 表名( fieldl datatype, field2 datatype, field3 datatype ) charset=字符集 collate=校驗規(guī)則 engine=存儲引擎;
- field 表示列名;
- datatype 表示列的類型,關(guān)于列的類型將單獨寫一篇文章來進行介紹;
- character set 字符集,如果沒有指定字符集,則以所在數(shù)據(jù)庫的字符集為準;
- collate 校驗規(guī)則,如果沒有指定校驗規(guī)則,也以所在數(shù)據(jù)庫的校驗規(guī)則為準。

3.2 查看表
查看表分為四種:查看庫中存在的所有表,查看表中的數(shù)據(jù);查看表的創(chuàng)建信息;查看表中存放那些數(shù)據(jù)。
- 查看庫中含有的表:
show tables。 - 查看表的創(chuàng)建信息:
show create table 表名:

查看表中存放的數(shù)據(jù)類型:desc 表明

查看表中的數(shù)據(jù),此處需要使用到select,在后面會出一篇文章詳細介紹MySQL中的查詢語句,此處直接使用select * from 表明來進行查看:

3.3 修改表
所有修改表的操作都是使用alter table 表名 .....
修改表的名字:alter table 原名 rename (to) 新名:

將表中新增一列:alter table 表名 add 列名 屬性...:

對表中的具體一列的屬性進行修改:alter table 表名 modify 列名 屬性:

修改表中某一列的名稱:alter table 表名 change 舊名 新名:

3.4 刪除表
- 刪除表中的一列還是使用
alter table 表名 drop 列名; - 刪除整張表:
drop table 表名.
到此這篇關(guān)于玩轉(zhuǎn) MySQL 庫表:庫和表的操作 “通關(guān)指南”的文章就介紹到這了,更多相關(guān)mysql數(shù)據(jù)庫庫表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL數(shù)據(jù)庫表(table)操作
- 只使用命令對數(shù)據(jù)庫(mysql)以及表進行操作方法(附詳細圖文)
- MySQL數(shù)據(jù)庫設(shè)計實戰(zhàn)之如何從需求到建表(完整流程)
- MySQL數(shù)據(jù)庫和表的操作指南
- MySQL查看數(shù)據(jù)庫、表和索引的容量大小的方法
- 從MySQL數(shù)據(jù)庫中刪除所有表的分步指南
- Mysql創(chuàng)建表以及數(shù)據(jù)庫crud語句舉例詳細講解
- MySQL?數(shù)據(jù)庫表操作完全指南:創(chuàng)建、讀取、更新與刪除實戰(zhàn)
- MySQL?數(shù)據(jù)庫表與查詢操作實戰(zhàn)案例
- MySQL數(shù)據(jù)庫約束和多表查詢實例代碼
相關(guān)文章
MySQL和Oracle的元數(shù)據(jù)抽取實例分析
MySQL和Oracle雖然在架構(gòu)上有很大的不同,但是如果從某些方面比較起來,它們有些方面也是相通的,下面這篇文章主要給大家介紹了關(guān)于MySQL和Oracle元數(shù)據(jù)抽取的相關(guān)資料,需要的朋友可以參考下2021-12-12
mysql中sum float類型使用小數(shù)點的方法
使用sum示和時如果是float類型的數(shù)據(jù)就會出現(xiàn)小數(shù)點了,那么要如何解決這個問題,下面介紹二種方法2013-11-11
mysql多行子查詢實戰(zhàn)案例(只包含不相關(guān)子查詢)
在MySQL中多行子查詢(也稱為 IN 子查詢)是指子查詢返回多行數(shù)據(jù),并且這些數(shù)據(jù)用于主查詢中的某個條件判斷,這篇文章主要介紹了mysql多行子查詢(只包含不相關(guān)子查詢)的相關(guān)資料,需要的朋友可以參考下2024-10-10
SQL group by去重復(fù)且按照其他字段排序的操作
這篇文章主要介紹了SQL group by去重復(fù)且按照其他字段排序的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03

