Linux數據庫:【數據庫基礎】【庫的操作】【表的操作】

目錄

一.數據庫基礎

1.1什么是數據庫

1.2基本使用

1.2.1連接服務器

1.2.2服務器,數據庫,表關系

1.2.3使用案例

1.2.4數據存儲結構

?編輯

?1.3MySQL架構

1.4SQL分類

1.5存儲引擎

1.5.1什么是存儲引擎

1.5.2查看存儲引擎

??編輯

1.5.3存儲引擎對比?

?編輯?二.庫的操作

2.1創建和刪除數據庫

2.2創建數據庫案例

2.3字符集和校驗規則

2.3.1查看系統默認的字符集和校驗規則

?編輯

2.3.2查看數據庫支持的字符集

2.3.3查看數據庫支持的字符集校驗規則?

2.3.4校驗規則對數據庫的影響

2.4操縱數據庫

2.4.1數據庫刪除?

2.4.2數據庫查看

?編輯

?2.4.3數據庫的修改

2.4.4備份和恢復

2.4.4.1備份?

?2.4.4.2恢復

2.4.4.3注意

2.4.5查看連接情況

三.表的操作

3.1創建表

3.2查看表結構

3.3修改表

3.3.1修改表名:

?3.3.2插入數據:

?3.3.3修改表里數據

3.4刪除表


一.數據庫基礎

1.1什么是數據庫

數據庫是一個用于存儲和管理數據的系統。它可以幫助用戶組織、檢索、更新和管理大量數據。

mysql是數據庫服務的客戶端,mysqld是數據庫服務的服務端,它的本質就是基于CS模式的網絡服務。?

文件保存數據有以下幾個缺點:

文件的安全性問題

文件不利于數據查詢和管理

文件不利于存儲海量數據

文件在程序中控制不方便

比如我們在一個普通文件里寫入大量的數據(十萬行十億行),那么多的數據在普通文件里,我們如果想要管理起來這是非常麻煩的一件事,比如我要修改十億行數據里的第一百萬行,怎么搞?

所以數據庫本質就是:對數據庫內容存儲的一套解決方案。

1.2基本使用

1.2.1連接服務器

輸入:mysql -h 127.0.0.1 -P 3306 -u root -p

或者:mysql -uroot -p

注意:

如果沒有寫 -h 127.0.0.1 默認是連接本地

如果沒有寫 -P 3306 默認是連接3306端口號

端口號我們自己也可以去改。打開/etc/my.cnf文件修改。

1.2.2服務器,數據庫,表關系

所謂安裝數據庫服務器,只是在機器上安裝了一個數據庫管理系統程序,這個管理程序可以管理多 個數據庫,一般開發人員會針對每一個應用創建一個數據庫。

為保存應用中實體的數據,一般會在數據庫中創建多個表,以保存程序中實體的數據。

數據庫服務器、數據庫和表的關系如下:

1.2.3使用案例

我創建一個helloworld:

使用數據庫:

創建數據庫表:?

此時在/var/lib/mysql/helloworld下會多出兩個student:

?在表中插入和查詢數據:

?

我們不會主動的去修改磁盤中的數據庫文件,這些工作都是mysql幫我們去做的。?

1.2.4數據存儲結構

?1.3MySQL架構

MySQL 是一個可移植的數據庫,幾乎能在當前所有的操作系統上運行,如 Unix/Linux、Windows、 Mac 和 Solaris。各種系統在底層實現方面各有不同,但是 MySQL 基本上能保證在各個平臺上的物理體系結構的一致性。

1.4SQL分類

DDL【data definition language】 數據定義語言,用來維護存儲數據的結構 代表指令: create, drop, alter

DML【data manipulation language】 數據操縱語言,用來對數據進行操作 代表指令: insert,delete,update

????????DML中又單獨分了一個DQL,數據查詢語言,代表指令: select

DCL【Data Control Language】 數據控制語言,主要負責權限管理和事務 代表指令: grant,revoke,commit ?

1.5存儲引擎

1.5.1什么是存儲引擎

存儲引擎是:數據庫管理系統如何存儲數據、如何為存儲的數據建立索引和如何更新、查詢數據等技術的實現方法。 MySQL的核心就是插件式存儲引擎,支持多種存儲引擎。

1.5.2查看存儲引擎

?

1.5.3存儲引擎對比?

?二.庫的操作

2.1創建和刪除數據庫

drop datebase (名字):

刪除之后:

?本質就是在/var/lib/mysql創建和刪除一個目錄(文件系統層面)。

所以說反過來在/var/lib/mysql目錄下使用mkdir創建一個目錄,也可以在數據庫中使用show databases看到。(注意理解一下就行了,不要這么干)

在創建數據庫層面我們還可以:

有了就不會再創建了,這是為了安全起見。

2.2創建數據庫案例

?那么我們在創建數據庫的時候當然可以使用默認的,我們還可以進行指定:

這三種方式都可以使用默認的字符集utf8:?

創建一個使用utf字符集,并帶校對規則的 db3 數據庫。

第四種:既指明字符集又指明檢驗規則:

?當然上面都是針對默認的字符集和校驗規則,我們也可以換其他的字符集和校驗規則:

換一下這種:

這里就可以看到:?

?

2.3字符集和校驗規則

2.3.1查看系統默認的字符集和校驗規則

字符集使用的是utf8

校驗規則utf8_ general_ ci :

2.3.2查看數據庫支持的字符集

上面寫建的數據庫我們都沒有寫明要使用哪一個字符集,所以系統就使用了默認的字符集,除了系統默認的utf8,還有以下的:?

?

2.3.3查看數據庫支持的字符集校驗規則?

2.3.4校驗規則對數據庫的影響

一個實驗:使用utf8的字符集創建,但是使用不同的校驗規則

不區分大小寫 ?使用utf8_general_ci

create database test1 collate utf8_general_ci; ?

create之后,用use使用test1:?

desc查看表結構:?

然后往表里插入(utf8):?

select查看表里有什么:?

?這里的校驗規則是不區分大小寫(utf8_general_ci):

區分大小寫 使用utf8_bin

這里的步驟跟上面的差不多,先使用use,再創建creat table

之后還是insert into person?

這里使用select去查找就只有小寫的a:?

?上面也就只是簡單的區分了一下不同的校驗規則查找的差別。

2.4操縱數據庫

增刪查改

增:create database +(名字) charset (字符集) collate(校驗規則)

適當的取用字符集和校驗規則?

2.4.1數據庫刪除?

刪:DROP DATABASE [IF EXISTS] db_ name;

執行刪除之后的結果:

數據庫內部看不到對應的數據庫

對應的數據庫文件夾被刪除,級聯刪除,里面的數據表全部被刪

注意:不要隨意刪除數據庫 ?

2.4.2數據庫查看

查:show databases;

有時候會頻繁的使用use,需要確認自己在哪一個數據庫里

?2.4.3數據庫的修改

對數據庫的修改主要指的是修改數據庫的字符集,校驗規則

假如我們現在需要把它的字符集和校驗規則改為gbk格式的:

2.4.4備份和恢復

2.4.4.1備份?

語法:

# mysqldump -P3306 -u root -p 密碼 -B 數據庫名 > 數據庫備份存儲的文件路徑
# mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql

我想把test1數據庫里的內容進行備份:?

此時再開一個終端:

在test1.sql里就是下面的內容,里面存儲的就是數據庫里的所有的數據(和操作),我們當然也可以直接對數據庫進行復制,但是這種做法的話是不建議的。我們還是要使用mysqldump:

?2.4.4.2恢復
mysql> source D:/mysql-5.7.22/mytest.sql;

我們先把之前的數據庫里的test1給刪掉:

使用source 加上剛才在另一個終端上備份的地址:?

source /root/MySQL/test1.sql

?

此時:

還原成功:

2.4.4.3注意

如果備份的不是整個數據庫,而是其中的一張表,怎么做? ?

 # mysqldump -u root -p 數據庫名 表名1 表名2 > D:/mytest.sql

同時備份多個數據庫

# mysqldump -u root -p -B 數據庫名1 數據庫名2 ... > 數據庫存放路徑

如果備份一個數據庫時,沒有帶上-B參數, 在恢復數據庫時,需要先創建空數據庫,然后使用數據 庫,再使用source來還原。

2.4.5查看連接情況

show processlist

可以告訴我們當前有哪些用戶連接到我們的MySQL,如果查出某個用戶不是你正常登陸的,很有可能你的數據庫被人入侵了。以后大家發現自己數據庫比較慢時,可以用這個指令來查看數據庫連接情況。 ?

三.表的操作

3.1創建表

CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype
) character set 字符集 collate 校驗規則 engine 存儲引擎;

說明:

field 表示列名

datatype 表示列的類型

character set 字符集,如果沒有指定字符集,則以所在數據庫的字符集為準

collate 校驗規則,如果沒有指定校驗規則,則以所在數據庫的校驗規則為準

案例:?

此時的另一臺終端上的mysql目錄下的user_db里就會有:?

?不同的存儲引擎,創建表的文件不一樣。?

users 表存儲引擎是 MyISAM ,在數據目中有三個不同的文件,分別是:

users.frm:表結構

users.MYD:表數據

users.MYI:表索引

?這里換一種engine:?

在另一個終端上只會多出來這兩種:?

當我們不添加engine 的時候,會默認使用innodb:

因為在/etc/my.cnt里:

3.2查看表結構

desc 表名;

?

這個可以顯示更詳細的表信息:?

show create table+表名

這樣看不太方便的話可以加上\G來清除不想要的信息:?

3.3修改表

在項目實際開發中,經常修改某個表的結構,比如字段名字,字段大小,字段類型,表的字符集類型, 表的存儲引擎等等。我們還有需求,添加字段,刪除字段等等。這時我們就需要修改表。

3.3.1修改表名:

alter table user1 rename to user;

to:可以省掉 ?

?3.3.2插入數據:

?3.3.3修改表里數據

添加新字段:

alter table user add image_path varchar(128) comment '用戶的頭像路徑' after birthday;

after指明是在表的哪個位置:?

?

?修改name(修改大小):

原本的name大小是20,現在我想改為60:

alter table user modify name varchar(60);

?注意:這里的修改是覆蓋的修改,我們之前在寫name這個字段的時候有對字段的描述commend。但是在我們修改之后,commend就會不見了。

?刪除password列:

alter table user drop password;

?修改列名稱

把name改為xingming:

注意必須把屬性帶上。

3.4刪除表

drop table t1;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900234.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900234.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900234.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CKPT文件是什么?

檢查點(Checkpoint,簡稱ckpt)是一種用于記錄系統狀態或數據變化的技術,廣泛應用于數據庫管理、機器學習模型訓練、并行計算以及網絡安全等領域。以下將詳細介紹不同領域中ckpt檢查點的定義、功能和應用場景。 數據庫中的ckpt檢查點…

Redis的公共操作命令

目錄 1.Key操作命令1.1 keys *1.2 exists <key]>1.3 type <key>1.4 del <key>1.5 unlink <key>1.6 ttl <key>1.7 expire <key> <秒數>1.8 move <key> <index> 2.庫操作命令2.1 select <index>2.2 dbsize2.3 flush…

【LLM】使用MySQL MCP Server讓大模型輕松操作本地數據庫

隨著MCP協議&#xff08;Model Context Protocol&#xff09;的出現&#xff0c;使得 LLM 應用與外部數據源和工具之間的無縫集成成為可能&#xff0c;本章就介紹如何通過MCP Server讓LLM能夠直接與本地的MySQL數據庫進行交互&#xff0c;例如新增、修改、刪除數據&#xff0c;…

【C++】從零實現Json-Rpc框架(2)

目錄 JsonCpp庫 1.1- Json數據格式 1.2 - JsonCpp介紹 ? 序列化接口 ? 反序列化接口 1.3 - Json序列化實踐 JsonCpp使用 Muduo庫 2.1 - Muduo庫是什么 2.2 - Muduo庫常見接口介紹 TcpServer類基礎介紹 EventLoop類基礎介紹 TcpConnection類基礎介紹 TcpClient…

語文常識推翻百年“R完備、封閉”論

?語文常識推翻百年“R完備、封閉”論 黃小寧 李四光&#xff1a;迷信權威等于扼殺智慧。語文常識表明從西方傳進來的數學存在重大錯誤&#xff1a;將無窮多各異數軸誤為同一軸。 復平面z各點z的對應點zk的全體是zk平面。z面平移變換為zk&#xff08;k是非1正實常數&#xf…

【Vue】 核心特性實戰解析:computed、watch、條件渲染與列表渲染

目錄 一、計算屬性&#xff08;computed&#xff09; ? 示例&#xff1a; 計算屬性-methods實現&#xff1a;在插值模塊里&#xff0c;實現函數的調用功能 計算屬性-computed的實現&#xff1a; 計算屬性-簡寫&#xff1a; ? 特點&#xff1a; ?? 與 methods 的區別…

二叉樹 遞歸

本篇基于b站靈茶山艾府的課上例題與課后作業。 104. 二叉樹的最大深度 給定一個二叉樹 root &#xff0c;返回其最大深度。 二叉樹的 最大深度 是指從根節點到最遠葉子節點的最長路徑上的節點數。 示例 1&#xff1a; 輸入&#xff1a;root [3,9,20,null,null,15,7] 輸出&…

與 AI 共舞:解鎖自我提升的無限可能

與 AI 共舞&#xff1a;解鎖自我提升的無限可能 在數字化浪潮的洶涌沖擊下&#xff0c;人工智能&#xff08;AI&#xff09;正以前所未有的速度重塑著世界的每一個角落。從日常生活的點滴便利到復雜工作的高效推進&#xff0c;AI 的力量無處不在。然而&#xff0c;面對 AI 的強…

【網絡安全論文】筑牢局域網安全防線:策略、技術與實戰分析

【網絡安全論文】筑牢局域網安全防線:策略、技術與實戰分析 簡述一、引言1.1 研究背景1.2 研究目的與意義1.3 國內外研究現狀1.4 研究方法與創新點二、局域網網絡安全基礎理論2.1 局域網概述2.1.1 局域網的定義與特點2.1.2 局域網的常見拓撲結構2.2 網絡安全基本概念2.2.1 網絡…

MoE Align Sort在醫院AI醫療領域的前景分析(代碼版)

MoE Align & Sort技術通過優化混合專家模型(MoE)的路由與計算流程,在醫療數據處理、模型推理效率及多模態任務協同中展現出顯著優勢,其技術價值與應用意義從以下三方面展開分析: 一、方向分析 1、提升醫療數據處理效率 在醫療場景中,多模態數據(如醫學影像、文本…

[ctfshow web入門] web4

前置知識 robots.txt是機器人協議&#xff0c;在使用爬蟲爬取網站內容時應該遵循的協議。協議并不能阻止爬蟲爬取&#xff0c;更像是一種道德規范。 假設robots.txt中寫道 Disallow: /admind.php&#xff0c;那我就暴露了自己的后臺&#xff0c;這屬于信息泄漏&#xff0c;攻擊…

innodb如何實現mvcc的

InnoDB 實現 MVCC&#xff08;多版本并發控制&#xff09;的機制主要依賴于 Undo Log&#xff08;回滾日志&#xff09;、Read View&#xff08;讀視圖&#xff09; 和 隱藏的事務字段。以下是具體實現步驟和原理&#xff1a; 1. 核心數據結構 InnoDB 的每一行數據&#xff08…

coding ability 展開第九幕(位運算——進階篇)超詳細!!!!

文章目錄 前言丟失的數字兩整數之和只出現一次的數字II消失的兩個數字總結 前言 上一篇博客&#xff0c;我們已經把位運算的基礎知識&#xff0c;以及基本運算都掌握啦 上次的習題還是讓人意猶未盡&#xff0c;今天我們來嘗試一下難一點的題目 位運算熟練起來真的讓人覺得做題是…

【數據結構篇】算法征途:穿越時間復雜度與空間復雜度的迷霧森林

文章目錄 【數據結構篇】算法征途&#xff1a;穿越時間復雜度與空間復雜度的迷霧森林 一、 什么是算法1. 算法的定義1.1 算法的五個特征1.2 好算法的特質 2. 時間復雜度3. 空間復雜度 【數據結構篇】算法征途&#xff1a;穿越時間復雜度與空間復雜度的迷霧森林 &#x1f4ac;歡…

Logo語言的系統監控

Logo語言的系統監控 引言 在信息技術飛速發展的時代&#xff0c;系統監控成為了確保計算機系統和網絡平穩運行的重要手段。系統監控不僅可以實時跟蹤系統的性能、資源使用情況和安全風險等&#xff0c;還能夠在出現問題時及時發出警報&#xff0c;從而避免潛在的故障和損失。…

STP學習

{所有內容均來自于西安歐鵬的陳俊老師} STP生成樹 當二層交換機意外成環路的時候會發生&#xff1a; 1.廣播風暴&#xff1a;當廣播幀進入環路時&#xff0c;會被不斷復制并傳輸&#xff0c;導致網絡中的廣播流量急劇增加&#xff0c;消耗大量的網絡帶寬&#xff0c;降低網絡…

使用RKNN進行yolo11-cls部署

文章目錄 概要制作數據集模型訓練onnx導出rknn導出概要 YOLO(You Only Look Once)是一系列高效的目標檢測算法,其核心思想是將目標檢測任務轉化為一個回歸問題,通過單個神經網絡直接在圖像上預測邊界框和類別概率。當將其用于分類任務時,會去除目標檢測相關的邊界框預測部…

【MySQL】01.MySQL環境安裝

注意&#xff1a;在MYSQL的安裝與卸載中&#xff0c;需要使用root用戶進行。 一、卸載不必要的環境 ? 查看是否有運行的服務 [rootVM-24-10-centos etc]# ps axj |grep mysql1 22030 22029 22029 ? -1 Sl 27 0:00 /usr/sbin/mysqld --daemonize --pid-fi…

程序化廣告行業(59/89):廣告驗證與反作弊實戰技巧

程序化廣告行業&#xff08;59/89&#xff09;&#xff1a;廣告驗證與反作弊實戰技巧 大家好&#xff01;在程序化廣告領域&#xff0c;想要做好投放&#xff0c;除了了解基本的架構和原理&#xff0c;還得掌握一些關鍵的技能&#xff0c;比如廣告驗證和反作弊。今天就和大家一…

矢量瓦片切片工具

1.geoserver 可以生成geojson mvt(pbf) tojson 三種格式矢量瓦片 2.mapbox的tippecanoe 可以生成pbf矢量瓦片&#xff0c;文件夾形式和mbtiles兩種 3.TileStache python工具&#xff0c;可以生成geojson瓦片 4.PostGis mapbox插件可以生成pbf瓦片&#xff0c;據說是動態切片…