一、數據庫的基本知識
1 數據庫的發展:
萌芽階段———文件系統:使用磁盤文件來存儲數據
初級階段———第一代數據庫:出現了網狀、層次模型的數據庫
中級階段———第二代數據庫:關系型數據庫和結構化查詢語言
高級階段———新一代數據庫:“關系-對象”型數據庫
2 數據庫管理系統的基本功能:
數據定義
數據處理
數據安全
數據備份
3 數據庫系統的架構:
單機架構
大型主機/終端架構
主從式架構(C/S)
分布式架構
4 關系型數據庫:
關系:關系就是二維表
行row:表中的每一行,又稱為一條記錄
列column:表中的每一列,稱為屬性,字段
主鍵(Primary key):用于唯一確定一個記錄的字段
域domain:屬性的取值范圍
5 關系數據庫
RDBMS :
MySQL:MySQL, MariaDB, Percona Server
PostgreSQL: 簡稱為pgsql ,EnterpriseDB
Oracle:
MSSQL:
DB2:
事務transaction:多個操作被當作一個整體對待:
ACID:
A:原子性
C:一致性
I :隔離性
D:持久性
6 聯系類型:
一對一聯系(1:1)
一對多聯系(1:n)
多對多聯系(m:n)
7 數據結構:
一類是與數據類型、內容、性質有關的對象,比如關系模型中的域、屬性和關系等;
另一類是與數據之間聯系有關的對象,它從數據組織層表達數據記錄與字段的結構
8 數據的操作:
數據提?。涸跀祿现刑崛「信d趣的內容(SELECT)
數據更新:變更數據庫中的數據(INSERT、DELETE、UPDATE)
9 范式:
1NF:無重復的列,每一個列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 某個屬性不能有多個值或者不能有重復發的屬性。
2NF:屬性完全依賴于主鍵,第二范式必須先滿足第一范式,要求表中的每一個行必須可以被唯 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一區分。通常為表加上一列,以存儲各個實例的唯一標識PK,非PK的字段需要與整個PK ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 有直接相關性。
3NF:屬性不依賴與其它非主屬性,滿足第三范式必須要滿足第二范式。第三范式要求一個數據 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 庫中不包含的非主關鍵字信息,非PK的字段間不能有從屬關系
10 SQL概念:
SQL:Structure Query Language
結構化查詢語言
SQL解釋器:
數據庫存儲協議:應用層協議,C/S (S:server,監聽于套接字,接受并處理客服端的應用請求)
二、MariaDB
1 MariaDB的特性:
單進程,多線程
插件式存儲引擎:存儲管理器有多種實現版本,用戶可根據需要靈活選擇
存儲引擎也稱為”表類型”
2 mariadb組包括下面包:
mariadb-server:mandatory package
mariadb-bench:optional package
mariadb-test:optional package
3 mariadb-client組包括下面包:
Mariadb:mandatory package
MySQL-python:default package
mysql-connector-odbc:default package
libdbi-dbd-mysql:option package
mysql-connector-java:optional package
perl-DBD-MySQL:optional package
4 配置文件:
/etc/my.cnf和/etc/my.cnf.d/*.cnf
5 MariaDB配置
傾聽3306/tcp端口可以在綁定有一個或全部接口IP上
vim /etc/my.cnf
6 安裝MariaDB
三、SQL語句
1 SQL語句構成
Keyword組成clause
多條clause組成語句
SELECT*? ? ? ? ?SELECT子句
FROM products ?FROM子句
WHERE price >400 WHERE 子句
2 SQL語句分類:
DDL:Data Defination Language
CREATE ,DROP,ALTER
DML: ?Data Manipulation Language
INSERT, DELETE, UPDATE
DCL: ?Data Control Language
GRANT, REVOKE
DQL: ?Data Query Language
SELECT
3 SQL語言規范
在數據庫系統中,SQL語句不區分大小寫
但字符串常量區分大小寫
SQL語句可單行或多行書寫,以;結尾
關鍵字不能跨多行書寫或簡寫
用空格和縮進來提高語句的可讀性
子句通常位于獨立行,便于編輯,提高可讀性
4 數據庫對象的命名規則
必須以字母開頭
可包括數字和三個特殊字符
不要使用MySQL的保留字
同一database(Schema)下的對象不能同名
5 數據庫操作
創建數據庫:
CREATE DATABASE|SCHEMA ‘DB_NAME’;
CHARACTER SET ‘character set name’
COLLATE ‘collate name’
刪除數據庫:
DROP DATABASE|SCHEMA ‘DB_NAME’
查看支持所有字符集:SHOW CHARACTER SET;
查看支持所有排序規則:SHOW COLLATION;
獲取命令使用幫助: mysql >HELP KEYWORD;
查看數據庫列表:mysql> SHOW DATABASES;
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91364