溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL——數(shù)據(jù)庫介紹(理論篇)

發(fā)布時(shí)間:2020-08-05 21:01:10 來源:網(wǎng)絡(luò) 閱讀:223 作者:一拳超人007 欄目:系統(tǒng)運(yùn)維

數(shù)據(jù)庫的基本概念

數(shù)據(jù):

描述事物的符號(hào)記錄稱為數(shù)據(jù)(Data)
包括數(shù)字,文字,圖形,圖像,聲音,檔案記錄等
以"記錄"形式按統(tǒng)一的格式進(jìn)行存儲(chǔ)

表:

將不同的記錄組織在一起,就形成了"表"
是用來存儲(chǔ)具體數(shù)據(jù)的

數(shù)據(jù)庫:

數(shù)據(jù)庫就是表的集合,是存儲(chǔ)數(shù)據(jù)的倉庫
以一定的組織方式存儲(chǔ)的相互有關(guān)的數(shù)據(jù)

當(dāng)今主流數(shù)據(jù)庫介紹

SQL_Server(微軟公司)
  面向Windows操作系統(tǒng)
  簡(jiǎn)單,易用
Oracle(甲骨文公司產(chǎn)品)
  面向所有主流平臺(tái)
  安全,完善,操作復(fù)雜
DB2(IBM公司產(chǎn)品)
  面向所有主流平臺(tái)
  大型,安全,完善
MySQL(甲骨文公司收購)
  免費(fèi),開源,體積小

關(guān)系數(shù)據(jù)庫

關(guān)系數(shù)據(jù)庫系統(tǒng)是基于關(guān)系模型的數(shù)據(jù)庫系統(tǒng),它的基本概念來自于關(guān)系模型
關(guān)系模型建立在關(guān)系代數(shù)的理論基礎(chǔ)上,數(shù)據(jù)結(jié)構(gòu)使用簡(jiǎn)單易懂的二維數(shù)據(jù)表,可以用簡(jiǎn)單“實(shí)體-關(guān)系”(E-R)圖來直接表示
E-R圖中包含了實(shí)體(數(shù)據(jù)對(duì)象),關(guān)系和屬性三個(gè)要素

MySQL——數(shù)據(jù)庫介紹(理論篇)
實(shí)體:

也稱為實(shí)例,對(duì)應(yīng)現(xiàn)實(shí)世界中可區(qū)別于其他對(duì)象的“事件”或“事物”,如銀行客戶,銀行賬戶等

屬性:

實(shí)體所具有的某一特性,一個(gè)實(shí)體可以有多個(gè)屬性。例如“銀行客戶”實(shí)體集中的每個(gè)實(shí)體均具有姓名,地址,電話等屬性

聯(lián)系:

實(shí)體集之間的對(duì)應(yīng)關(guān)系成為聯(lián)系,也稱為關(guān)系。例如,銀行客戶和銀行賬戶之間存在“儲(chǔ)蓄”的關(guān)系

所有實(shí)體及實(shí)體之間聯(lián)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫

關(guān)系數(shù)據(jù)庫理解

MySQL——數(shù)據(jù)庫介紹(理論篇)

關(guān)系數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)是二維表格,反映事物及其聯(lián)系的數(shù)據(jù)是以表格形式保存的
在每個(gè)二維表中,每一行稱為一條記錄,用來描述一個(gè)對(duì)象的信息;每一列稱為一個(gè)字段,用來描述對(duì)象的一個(gè)屬性

MySQL——數(shù)據(jù)庫介紹(理論篇)

非關(guān)系數(shù)據(jù)庫介紹

非關(guān)系數(shù)據(jù)庫也被稱作NoSQL(Not Only SQL),存儲(chǔ)數(shù)據(jù)不以關(guān)系模型為依據(jù),不需要固定的表格式
關(guān)系型數(shù)據(jù)庫作為關(guān)系數(shù)據(jù)庫的一個(gè)補(bǔ)充,在日益快速發(fā)展的網(wǎng)站時(shí)代,發(fā)揮著高效率與高性能
非關(guān)系型數(shù)據(jù)庫的優(yōu)點(diǎn):
數(shù)據(jù)庫高并發(fā)讀寫的需求
對(duì)海量數(shù)據(jù)高效率存儲(chǔ)與訪問
數(shù)據(jù)庫的高擴(kuò)展性與高可用性的需求

非關(guān)系型數(shù)據(jù)庫存儲(chǔ)方式

鍵-值方式(key-value),以鍵為依據(jù)存儲(chǔ),刪,改數(shù)據(jù)
列存儲(chǔ)(Column-oriented),將相關(guān)的數(shù)據(jù)存儲(chǔ)在列族中
文檔的方式,數(shù)據(jù)庫由一系列數(shù)據(jù)項(xiàng)組成,每個(gè)數(shù)據(jù)項(xiàng)都有名稱與對(duì)應(yīng)的值
圖形方式,實(shí)體為頂點(diǎn),關(guān)系為邊,數(shù)據(jù)保存為一個(gè)圖形

非關(guān)系數(shù)據(jù)庫產(chǎn)品

Memcached是一個(gè)開源的,高性能的,具有分布式內(nèi)存對(duì)象的緩存系統(tǒng),以key-value方式存儲(chǔ)數(shù)據(jù)
        緩存數(shù)據(jù)以減輕數(shù)據(jù)庫壓力并能加快訪問速度
        加速動(dòng)態(tài)web應(yīng)用
        緩存的內(nèi)容保存在內(nèi)存中
Redis也是一個(gè)以key-value方式存儲(chǔ)數(shù)據(jù)的,數(shù)據(jù)也是保存在內(nèi)存中,但會(huì)定期將數(shù)據(jù)寫入磁盤中
        相對(duì)于Mencached有以下特點(diǎn):
            支持內(nèi)存緩存
            支持持久化
            數(shù)據(jù)類型更多
            支持群集,分布式
            支持隊(duì)列
        Redis應(yīng)用舉例:
            數(shù)據(jù)庫前端緩存
            session共享
            當(dāng)需要緩存除了key/value之外的更多數(shù)據(jù)類型時(shí)
            當(dāng)緩存的數(shù)據(jù)需要長(zhǎng)久保存時(shí)

MySQL數(shù)據(jù)庫介紹

MySQL是一款深受歡迎的開源關(guān)系型數(shù)據(jù)庫
Oracle旗下的產(chǎn)品
遵守了GPL協(xié)議,可以免費(fèi)試用與修改
    特點(diǎn):
        性能卓越,服務(wù)穩(wěn)定
        開源,無版權(quán)限制,成本低
        多線程,多用戶
        基于C/S(客戶端/服務(wù)器)架構(gòu)
        安全可靠

數(shù)據(jù)庫的基本操作命令

查看數(shù)據(jù)庫列表信息

[root@localhost ~]# mysql -uroot -p   ##進(jìn)入數(shù)據(jù)庫
Enter password: 
...
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

查看數(shù)據(jù)庫中的數(shù)據(jù)表信息

mysql> use mysql;   ##使用數(shù)據(jù)庫
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;    ##查看庫中的表
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db  

顯示數(shù)據(jù)表的結(jié)構(gòu)(字段)

mysql> desc user;   ##顯示數(shù)據(jù)表的結(jié)構(gòu)
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(10)                          | NO   | PRI | 

二分查找

以一個(gè)數(shù)據(jù)為參考,比它小的放左邊,比它大的放右邊

MySQL——數(shù)據(jù)庫介紹(理論篇)

SQL語句概述

SQL語言

是Structured Query Language的縮寫,即結(jié)構(gòu)化查詢語言
是關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)語言
用于維護(hù)管理數(shù)據(jù)庫,如數(shù)據(jù)查詢,數(shù)據(jù)更新,訪問控制,對(duì)象管理等功能

SQL分類

DDL:數(shù)據(jù)定義語言
DML:數(shù)據(jù)操縱語言
DQL:數(shù)據(jù)查詢語言
DCL:數(shù)據(jù)控制語言

DDL語句操作

DDL語句用于創(chuàng)建數(shù)據(jù)庫對(duì)象,如庫,表,索引等

使用DDL語句新建庫,表

mysql> create database test;     ##創(chuàng)建數(shù)據(jù)庫
Query OK, 1 row affected (0.00 sec)

mysql> use test;    ##使用數(shù)據(jù)庫
Database changed
mysql> create table info(   ##創(chuàng)建表
        -> ID int(3) not null,
        -> 姓名 varchar(5) not null,
        -> 住址 varchar(10) not null,
        -> 分?jǐn)?shù) decimal default 0,  
        -> primary key (ID));
mysql> desc info;   ##查看表結(jié)構(gòu)
+--------+---------------+------+-----+---------+-------+
| Field  | Type          | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+-------+
| ID     | int(3)        | NO   | PRI | NULL    |       |
| 姓名   | varchar(5)    | NO   |     | NULL    |       |
| 住址   | varchar(10)   | NO   |     | NULL    |       |
| 分?jǐn)?shù)   | decimal(10,0) | YES  |     | 0       |       |
+--------+---------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

DML語句操作

向數(shù)據(jù)表中插入新的數(shù)據(jù)記錄

mysql> insert into info values (1,'周幾輪','南京',80);   ##表中插入數(shù)據(jù)
Query OK, 1 row affected (0.00 sec)

mysql> insert into info values (2,'王峰','南京',0);
Query OK, 1 row affected (0.00 sec)

mysql> insert into info values (3,'娜英','北京',default);
Query OK, 1 row affected (0.01 sec)

修改,更新數(shù)據(jù)庫表中的數(shù)據(jù)記錄

mysql> update info set 住址='上海' where ID=1;   ##修改表中數(shù)據(jù)
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

在數(shù)據(jù)表中刪除指定的數(shù)據(jù)記錄

mysql> delete from info where ID=2;   ##刪除表中指定數(shù)據(jù)記錄
Query OK, 1 row affected (0.00 sec)

mysql> select * from info;     ##查看表內(nèi)容(DQL語句)
+----+-----------+--------+--------+
| ID | 姓名      | 住址   | 分?jǐn)?shù)   |
+----+-----------+--------+--------+
|  1 | 周幾輪    | 上海   |     80 |
|  3 | 娜英      | 北京   |      0 |
+----+-----------+--------+--------+
2 rows in set (0.00 sec)

mysql> drop table info;    ##刪除表
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;       ##查看表
Empty set (0.00 sec)

mysql> drop database test;  ##刪除庫
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;  ##查看庫
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

DQL語句操作

DQL是數(shù)據(jù)查詢語句,只有一條:select
用于從數(shù)據(jù)表中查找符合條件的數(shù)據(jù)記錄
查詢時(shí)可不指定條件

mysql> select * from info;     ##查看表內(nèi)容
+----+-----------+--------+--------+
| ID | 姓名      | 住址   | 分?jǐn)?shù)   |
+----+-----------+--------+--------+
|  1 | 周幾輪    | 上海   |     80 |
|  3 | 娜英      | 北京   |      0 |
+----+-----------+--------+--------+
2 rows in set (0.00 sec)

查詢時(shí)指定條件

 mysql> select 住址 from info where 住址='北京';   ##查看指定條件
+--------+
| 住址   |
+--------+
| 北京   |
+--------+
1 row in set (0.00 sec)

DCL語言操作

##設(shè)置用戶權(quán)限(用戶不存在時(shí),則新建用戶)
mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
##查看用戶的權(quán)限
mysql> show grants for 'root'@'%';
+-------------------------------------------+
| Grants for root@%                         |
+-------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' |
+-------------------------------------------+
1 row in set (0.00 sec)
##撤銷用戶的權(quán)限
mysql> revoke all on *.* from 'root'@'%';
Query OK, 0 rows affected (0.00 sec)

謝謝閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI