c 做的網(wǎng)站怎么上傳圖片廣告公司網(wǎng)站
一、什么是數(shù)據(jù)庫
存儲數(shù)據(jù)用文件就可以了,為什么還要弄個數(shù)據(jù)庫?
一般的文件確實提供了數(shù)據(jù)的存儲功能,但是文件并沒有提供非常好的數(shù)據(jù)(內(nèi)容)的管理能力(用戶角度)。
- 文件的安全性問題
- 文件不利于數(shù)據(jù)查詢和管理
- 文件不利于存儲海量數(shù)據(jù)
- 文件在程序中控制不方便?
數(shù)據(jù)庫的本質(zhì):對數(shù)據(jù)內(nèi)容存儲的一套解決方案,mysql 客戶端給我字段或者要求,我直接給 mysql 客戶端結(jié)果就行。(“我”:在磁盤上存儲的數(shù)據(jù)庫文件 + mysql 客戶端)
- 磁盤
- 內(nèi)存
為了解決上述問題,專家們設(shè)計出更加利于管理數(shù)據(jù)的東西 —— 數(shù)據(jù)庫,它能更有效的管理數(shù)據(jù)。數(shù)據(jù)庫的水平是衡 量一個程序員水平的重要指標(biāo)。
- mysql 是數(shù)據(jù)庫服務(wù)的客戶端。
- mysqld 是數(shù)據(jù)庫服務(wù)的服務(wù)器端。?
- mysql 本質(zhì):基于 C(mysql) S(mysqld) 模式的一種網(wǎng)絡(luò)服務(wù)。
(可以查看到 mysql 所綁定的端口號:3306)
mysql 是一套提供數(shù)據(jù)存取的服務(wù)的網(wǎng)絡(luò)程序。
口語上:
數(shù)據(jù)庫特指:在磁盤或者內(nèi)存中存儲的特定結(jié)構(gòu)組織的數(shù)據(jù) -- 將來在磁盤上存儲的一套數(shù)據(jù)庫方案
數(shù)據(jù)庫服務(wù):mysqld
二、主流數(shù)據(jù)庫
- SQL Sever: 微軟的產(chǎn)品,.Net 程序員的最愛,中大型項目。
- Oracle: 甲骨文產(chǎn)品,適合大型項目,復(fù)雜的業(yè)務(wù)邏輯,并發(fā)一般來說不如 MySQL。
- MySQL:世界上最受歡迎的數(shù)據(jù)庫,屬于甲骨文,并發(fā)性好,不適合做復(fù)雜的業(yè)務(wù)。主要用在電商,SNS,論壇。對簡單的 SQL 處理效果好。
- PostgreSQL :加州大學(xué)伯克利分校計算機(jī)系開發(fā)的關(guān)系型數(shù)據(jù)庫,不管是私用,商用,還是學(xué)術(shù)研究使用,可以免費(fèi)使用,修改和分發(fā)。
- SQLite: 是一款輕型的數(shù)據(jù)庫,是遵守 ACID 的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的 C 庫中。它的設(shè)計目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K 的內(nèi)存就夠了。
- H2: 是一個用 Java 開發(fā)的嵌入式數(shù)據(jù)庫,它本身只是一個類庫,可以直接嵌入到應(yīng)用項目中。
三、基本使用
1、MySQL 安裝
【MySQL】在 Centos7 環(huán)境安裝 MySQL -- 詳細(xì)完整教程-CSDN博客
2、連接服務(wù)器
輸入:
mysql -h 127.0.0.1 -P 3306 -u root -p
登陸選項的認(rèn)識:?
輸出:
Enter password:Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21-log MySQL Community Server (GPL)Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
- 如果沒有寫 -h 127.0.0.1 默認(rèn)是連接本地。
- 如果沒有寫 -P 3306 默認(rèn)是連接 3306 端口號。
3、服務(wù)器管理
4、服務(wù)器,數(shù)據(jù)庫,表關(guān)系
- 所謂安裝數(shù)據(jù)庫服務(wù)器,只是在機(jī)器上安裝了一個數(shù)據(jù)庫管理系統(tǒng)程序,這個管理程序可以管理多個數(shù)據(jù)庫,一般開發(fā)人員會針對每一個應(yīng)用創(chuàng)建一個數(shù)據(jù)庫。
- 為保存應(yīng)用中實體的數(shù)據(jù),一般會在數(shù)據(jù)庫中創(chuàng)建多個表,以保存程序中實體的數(shù)據(jù)。
- 數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫和表的關(guān)系如下:
5、數(shù)據(jù)庫的使用
使用 mysql 建立一個數(shù)據(jù)庫,建立一張表結(jié)構(gòu),插入一些數(shù)據(jù) -- 對比一下 mysql 在 Linux 中是如何表現(xiàn)的。
- 建立數(shù)據(jù)庫,本質(zhì)就是 Linux 下的一個目錄。
- 在數(shù)據(jù)庫內(nèi)建立表,本質(zhì)就是在 Linux 下創(chuàng)建對應(yīng)的文件即可。
以上工作是 mysqld 服務(wù)做的。
注意:
數(shù)據(jù)庫的本質(zhì)也是文件。只不過這些文件并不由程序員直接操作,而是由數(shù)據(jù)庫服務(wù)幫我們進(jìn)行操作。
(1)創(chuàng)建數(shù)據(jù)庫
create?database helloworld;
(2)使用數(shù)據(jù)庫
use helloworld;
(3)?創(chuàng)建數(shù)據(jù)庫表
(4)表中插入數(shù)據(jù)
insert into student (name, age, gender) values ("張三", 20, '男');
insert into student (name, age, gender) values ("李四", 22, '男');
(5)查詢表中的數(shù)據(jù)
select * from student;
(6)數(shù)據(jù)邏輯存儲
四、MySQL架構(gòu)
MySQL 是一個可移植的數(shù)據(jù)庫,幾乎能在當(dāng)前所有的操作系統(tǒng)上運(yùn)行,如 Unix/Linux、 Windows 、 Mac 和 Solaris。各種系統(tǒng)在底層實現(xiàn)方面各有不同,但是 MySQL 基本上能保證在各個平臺上的物理體系結(jié)構(gòu)的一致性。
五、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
- DML中又單獨分了一個DQL,數(shù)據(jù)查詢語言,代表指令: select
DCL【Data Control Language】 數(shù)據(jù)控制語言,主要負(fù)責(zé)權(quán)限管理和事務(wù)代表指令: grant , revoke , commit
六、存儲引擎
1、存儲引擎
存儲引擎:數(shù)據(jù)庫管理系統(tǒng)如何存儲數(shù)據(jù)、如何為存儲的數(shù)據(jù)建立索引和如何更新、查詢數(shù)據(jù)等技術(shù)的實現(xiàn)方法。
2、查看存儲引擎
show engines;