一、數據庫概念
DBMS:數據庫管理系統
二、數據庫種類
(一)、關係型數據庫
特性:
- 基於單一關係模型,結構化存儲,有完整性約束
- 通過二維表建立數據之間的聯繫
- 採用結構化查詢語言(SQL)做數據讀寫
- 操作保存數據(事務)的一致性
優點:
- 易於維護
- 使用方便
- 便於理解
- 支持SQL:用於複雜查詢
缺點
- 數據讀寫必須經過sql解析,大量數據、高併發下讀寫性能不足
- 爲保證數據一致性,需要加鎖,影響併發操作
- 無法適應非結構化的存儲
- 大量數據集中到一臺服務區處理,使服務器不堪重負
- “阻抗失諧”,即數據庫中存儲的對象與實際的對象實體有一定的差別
- 擴展困難
- 數據庫龐大,價格昂貴
常見的關係型數據庫
Oracle、SQL Server、Sybase、DB2、Access、MySql
(二)、非關係型數據庫
特點
- 非結構化的存儲。
- 基於多維關係模型。
- 部署容易,開源免費,成本低
優點
- 處理高併發、大批量數據的能力強
- 支持分佈式集羣,負載均衡,性能高
- 解決“阻抗失諧”問題
- 內存級數據庫,查詢速度快
- 存儲格式多,支持key-value形式、文檔形式、圖片形式
- 沒有多表連接查詢機制的限制,擴展性高
缺點
- 技術起步晚,維護工具以及技術資料有限
- 不支持sql工業標準
- 沒有join等複雜的連接操作
- 事務處理能力弱
- 沒有完整性約束,對於複雜業務場景支持較差
常見的非關係型數據庫
NoSql、Cloudant、MongoDb、redis、HBase
三、基本sql語句操作
(一)、針對庫(database)
增
create database 庫名 charset 編碼形式;
查
show databases; # 查看所有數據庫
show create database 數據庫名; #查看指定數據庫
改
alter database 數據庫名 charset gbk; # 只能更改數據編碼,不能改數據庫名
刪
drop database 數據庫名;
(二)、針對表(table)
應該在具體某一個庫下面操作表,所以需先切換到指定數據庫
use 數據庫名;
增
create table 表名(id int,name char);
查
show tables; # 顯示選定數據庫下所有表名
show create table 表名; # 顯示指定表名
desc(describe)表名; # 顯示錶結構
改
alter table 原表名 modify 新表名 字段類型(寬度); # 更改表名和字段類型(寬度)
刪
drop table 表名;
(三)、針對數據(data)
增
insert into t1 values(1,'moon'),(2,'hysen'),(3,'pinking');
查
select 字段名 from 表名;
改
update 表名 set 字段名=新值 where 字段名=原值;
刪
delete from 表名 where 字段名=值;
四、存儲引擎
不同的應用軟件處理不同類型的數據MySQL5.5版本及以上默認的存儲引擎是innodb,以下是myisam
innodb:支持行鎖表鎖,外鍵,事物,安全性更高,較myisam數據更安全
myisam:僅僅支持表鎖不支持行鎖,查詢速度較innodb更快
memory:內存引擎,將所有的數據直接放在內存,一旦斷電數據全部消失
blackhole:一切存入其中的數據都會消失
create table 表名(id int,name char(16)) engine=innodb; # 指定存儲引擎