文章目錄
- 數據庫基礎
- 1.1 什么是數據庫
- 1.2 基本使用
- 創建數據庫
- 創建數據表
- 表中插入數據
- 查詢表中的數據
- 1.3 主流數據庫
- 1.4 服務器,數據庫,表關系
- 1.5 MySQL架構
- 1.6 SQL分類
- 1.7 存儲引擎
- 1.7.1 存儲引擎
- 1.7.2 查看存儲引擎
- 1.7.3 存儲引擎對比
前言:
root@hcss-ecs-eaf1:~/MySQL# mysql -h 127.0.0.1 -P 3306 -u root -p
mysql在連接時要指明連接的主機-h
,mysql實際上是一個網絡服務,網絡服務就需要知道它的ip
地址是多少,因為我們是單機訪問,所以是127.0.0.1
。-P
表示的是要訪問的mysql特定主機上的特定端口號,我們這里是3306
,-u
表示user的意思,表明想要以誰的身份登陸。-p
表示我們的密碼。
如果登陸中出現ERROR1698(28000)
請看上篇文章【MySQL】001.MySQL安裝
上面的連接如果不帶-h
連接的就是我們mysql本地搭建的服務,去掉-P
選項表示使用我們默認配置的端口號
數據庫基礎
1.1 什么是數據庫
存儲數據用文件就可以了,為什么還要弄個數據庫?
文件保存數據有以下幾個缺點:
- 文件的安全性問題
- 文件不利于數據查詢和管理
- 文件不利于存儲海量數據
- 文件在程序中控制不方便
數據庫存儲介質:
- 磁盤
- 內存
數據庫一般指的是在磁盤或者內存中存儲的,特定結構組織的數據 – 將來在磁盤上存儲的一套數據庫方案
數據庫服務:mysqld
為了解決上述問題,專家們設計出更加利于管理數據的東西——數據庫,它能更有效的管理數據。數據
庫的水平是衡量一個程序員水平的重要指標。
mysql
是數據庫的客戶端,mysqld
是數據庫的服務端
mysql
:它是數據庫服務的客戶端mysqld
:它是數據庫服務的服務器端mysql本質
:基于C(mysql)S(mysqld)模式的一種網絡服務
mysql是一套給我們提供數據存取服務的網絡程序。
1.2 基本使用
見一見數據庫
樣例:
查看當前服務器上的數據庫
show databases;
我們mysql中的配置文件中的datadir
就是我們的mysql服務對應的數據的存放路徑
這就是當前我這個數據庫數據存放目錄當中的數據內容
創建數據庫
create database helloworld;//客戶端向服務端下達創建的請求
結論:
- 建立數據庫本質就是Linux下的一個目錄
選擇數據庫
use helloworld;
創建數據表
create table student(name varchar(32),age int,gender varchar(2));
我們會發現在/var/lib/mysql/helloworld
目錄下多了個文件
結論:
- 在數據庫中建立表,本質就是在Linux下創建對應的文件
表中插入數據
insert into student (name, age, gender) values ('張三', 20, '男');
insert into student (name, age, gender) values ('李四', 19, '男');
insert into student (name, age, gender) values ('王五', 22, '男');
查詢表中的數據
select * from student;
上面這寫工作都是mysqld幫我們做的
數據庫的本質其實也是文件,只不過這些操作不由我們程序員直接操作,而是由我們的數據庫服務來幫我們操作的
1.3 主流數據庫
SQL Sever
: 微軟的產品,.Net程序員的最愛,中大型項目。Oracle
: 甲骨文產品,適合大型項目,復雜的業務邏輯,并發一般來說不如MySQL。MySQL
:世界上最受歡迎的數據庫,屬于甲骨文,并發性好,不適合做復雜的業務。主要用在電商,SNS,論壇。對簡單的SQL處理效果好。PostgreSQL
:加州大學伯克利分校計算機系開發的關系型數據庫,不管是私用,商用,還是學術研究使用,可以免費使用,修改和分發。SQLite
: 是一款輕型的數據庫,是遵守ACID的關系型數據庫管理系統,它包含在一個相對小的C庫中。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。H2
: 是一個用Java開發的嵌入式數據庫,它本身只是一個類庫,可以直接嵌入到應用項目中。
1.4 服務器,數據庫,表關系
- 所謂安裝數據庫服務器,只是在機器上安裝了一個數據庫管理系統程序,這個管理程序可以管理多個數據庫(在linux中相當于多張表),一般開發人員會針對每一個應用創建一個數據庫。
- 為保存應用中實體的數據,一般會在數據庫中創建多個表,以保存程序中實體的數據。
- 數據庫服務器、數據庫和表的關系如下:
1.5 MySQL架構
MySQL 是一個可移植的數據庫,幾乎能在當前所有的操作系統上運行,如Unix/Linux、Windows、Mac 和 Solaris。各種系統在底層實現方面各有不同,但是 MySQL 基本上能保證在各個平臺上的物理體系結構的一致性。
1.6 SQL分類
DDL【data definition language】
數據定義語言,用來維護存儲數據的結構代表指令: create, drop, alterDML【data manipulation language】
數據操縱語言,用來對數據進行操作代表指令:insert,delete,update
DML中又單獨分了一個DQL,數據查詢語言,代表指令:select
DCL【Data Control Language】
數據控制語言,主要負責權限管理和事務代表指令: grant,revoke,commit
1.7 存儲引擎
1.7.1 存儲引擎
存儲引擎是:數據庫管理系統如何存儲數據、如何為存儲的數據建立索引和如何更新、查詢數據等技術的實現方法。
MySQL的核心就是插件式存儲引擎,支持多種存儲引擎。
1.7.2 查看存儲引擎
show engines;
1.7.3 存儲引擎對比
👍 如果對你有幫助,歡迎:
- 點贊 ??
- 收藏 📌
- 關注 🔔