1. 數據庫基礎(重點)
1.1 什麼是數據庫
存儲數據用文件就可以了,爲什麼還要弄個數據庫?
文件保存數據有以下幾個缺點:
-
文件的安全性問題
-
文件不利於數據查詢和管理
-
文件不利於存儲海量數據 文件在程序中控制不方便
數據庫存儲介質:
-
磁盤
-
內存
爲了解決上述問題,專家們設計出更加利於管理數據的東西——數據庫,它能更有效的管理數據。數據庫的水平是衡量一個程序員水平的重要指標。
1.2 主流數據庫
-
SQL Sever: 微軟的產品,.Net程序員的最愛,中大型項目。
-
Oracle: 甲骨文產品,適合大型項目,複雜的業務邏輯,併發一般來說不如MySQL。
-
MySQL:世界上最受歡迎的數據庫,屬於甲骨文,併發性好,不適合做複雜的業務。主要用在電商,SNS,論壇。對簡單的SQL處理效果好。
-
PostgreSQL :加州大學伯克利分校計算機系開發的關係型數據庫,不管是私用,商用,還是學術研究使用,可
以免費使用,修改和分發。 -
SQLite: 是一款輕型的數據庫,是遵守ACID的關係型數據庫管理系統,它包含在一個相對小的C庫中。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。
H2: 是一個用Java開發的嵌入式數據庫,它本身只是一個類庫,可以直接嵌入到應用項目中。
1.3 基本使用
1.3.1 MySQL安裝
1.3.2 連接服務器
輸入:
mysql -h 127.0.0.1 -P 3306 -u root -p
輸出:
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 默認是連接本地
如果沒有寫 -P 3306 默認是連接3306端口號
1.3.3 服務器管理
-
執行 win+r 輸入 services.msc 打開服務管理器
-
通過下圖左側停止,暫停,重啓動按鈕進行服務管理
1.3.4 服務器,數據庫,表關係
-
所謂安裝數據庫服務器,只是在機器上安裝了一個數據庫管理系統程序,這個管理程序可以管理多個數據
庫,一般開發人員會針對每一個應用創建一個數據庫。 -
爲保存應用中實體的數據,一般會在數據庫中創建多個表,以保存程序中實體的數據。 數據庫服務器、數據庫和表的關係如下:
1.3.5 使用案例
創建數據庫
create database helloworld;
使用數據庫
use helloworld;
創建數據庫表
create table student( id int,
name varchar(32), gender varchar(2)
);
表中插入數據
insert into student (id, name, gender) values (1, '張三', '男'); insert into student (id, name, gender) values (2, '李四', '女'); insert into student (id, name, gender) values (3, '王五', '男');
查詢表中的數據
select * from student;
1.3.6 數據邏輯存儲
1.4 MySQL架構
MySQL 是一個可移植的數據庫,幾乎能在當前所有的操作系統上運行,如 Unix/Linux、Windows、Mac 和Solaris。各種系統在底層實現方面各有不同,但是 MySQL 基本上能保證在各個平臺上的物理體系結構的一致性。
1.5 SQL分類
DDL數據定義語言,用來維護存儲數據的結構
代表指令: create, drop, alter
DML數據操縱語言,用來對數據進行操作
代表指令: insert,delete,update
DML中又單獨分了一個DQL,數據查詢語言,代表指令: select
DCL數據控制語言,主要負責權限管理和事務
代表指令: grant,revoke,commit
1.6 存儲引擎
1.6.1 存儲引擎
存儲引擎是:數據庫管理系統如何存儲數據、如何爲存儲的數據建立索引和如何更新、查詢數據等技術的實現方法。
MySQL的核心就是插件式存儲引擎,支持多種存儲引擎。
1.6.2 查看存儲引擎
show engines;
1.6.3 存儲引擎對比