[TOC] 資料庫是什麼 資料庫:存儲數據的倉庫 為什麼使用資料庫 之前用excel來進行管理數據,有諸多問題: 電子錶格只能處理有限的數據列和數據行,對於數百萬玩、數千萬等巨大的數據列很難有效地處理 電子錶格無法提供安全、方便地許可權管理和控制手段 電子錶格很難實現多個數據之間地關聯 電子錶格很難實 ...
目錄
資料庫是什麼
資料庫:存儲數據的倉庫
為什麼使用資料庫
之前用excel來進行管理數據,有諸多問題:
- 電子錶格只能處理有限的數據列和數據行,對於數百萬玩、數千萬等巨大的數據列很難有效地處理
- 電子錶格無法提供安全、方便地許可權管理和控制手段
- 電子錶格很難實現多個數據之間地關聯
- 電子錶格很難實現併發控制、增量維護等管理方式
這些問題,資料庫都能解決,資料庫是一種有效地管理大量的、安全的、併發的、關聯的、一致的數據管理工具。
資料庫的分類
關係型資料庫
關係資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的數據。
關係模型由關係數據結構、關係操作集合、關係完整性約束三部分組成。
也就是說對於每一列的數據類型會有約束。
典型的關係型資料庫:
- MySQL、 MariaDB
- Oracle 甲骨文公司,收費昂貴
- SQL Server 微軟出品
- SQLite 小型的文件資料庫
非關係型資料庫
- MemCache
- mongoDB
- Redis
非關係型資料庫以key-value的形式存儲數據
區別
關係型資料庫,把數據存在硬碟中
非關係型資料庫, 把數據存在記憶體中
mysql的架構
類似於socket的客戶端和服務端
流程:
- mysql服務端先啟動,監聽在一個特定的埠,預設是3306
- mysql客戶端連接服務端
- mysql客戶端就可以發出相關的操作命令,去操作服務端儲存的數據
MySQL的安裝(Windows)
- 官網下載之後5.7版本的
- 解壓到指定目錄 如
C:\mysql-5.7.28-winx64
- 添加環境變數 ,在系統環境變數Path添加
C:\mysql-5.7.28-winx64\bin
- 初始化
mysqld --initialize-insecure
# 創建data目錄,用來存儲資料庫 - 啟動MySQL服務
- 可以在cmd(win10需要管理員許可權)中運行
mysqld --install
安裝服務 - 或者在win10服務中啟動MySQL
- 可以在cmd(win10需要管理員許可權)中運行
- 啟動MySQL客戶端並連接MySQL服務
mysql -u root -p
- 修改mysql密碼
mysqladmin -uroot -p '原密碼' password '要修改的密碼'
常用的參數:
-u user 用戶名
-p password 密碼
-h host主機名或ip mysql -h 192.168.1.1 -uroot -p
-P 埠 預設是3306 mysql -h 192.168.1.1 -P 3306 -uroot -p
忘記密碼:
先關閉mysqld服務 net stop mysql
在cmd中執行: mysqld --skip-grant-tables
再開一個cmd執行: mysql -uroot -p 此時不需要輸入密碼
執行sql語句: update mysql.user set authentication_string=password('') where user='root';
重啟mysql服務
資料庫伺服器、數據管理系統、資料庫、表、記錄的關係
- 資料庫伺服器:運行資料庫管理軟體
- 資料庫管理軟體:管理資料庫,如MySQL
- 資料庫:用來組織表,相當於win系統中文件夾的概念
- 表:即文件,用來存放多條記錄
初始MySQL
操作資料庫
增:
create database 資料庫名稱 charset utf8; # 字元集預設時latin1
資料庫命名規範:
- 可以由字母、數字、下劃線、@、#、$
- 區分大小寫
- 具有唯一性
- 不能使用關鍵字如 select create
- 不能單獨使用數字
- 最長128位
刪:
drop database 資料庫名稱;
改:
資料庫刪除了再添加
線上環境下,不能直接刪除數據,再刪除之前需要進行備份
查:
show database; # 查看資料庫
use 資料庫名稱
操作數據表
創建表:(表是二維的,要有欄位)
mysql> create table setcreed(
-> id int,
-> name varchar(20)
-> );
查看表:
mysql> show tables;
刪除表:
mysql> drop table setcreed;
查看數據表結構:
mysql> desc setcreed;
或者
mysql> show create table setcreed;
數據相關
數據類型
- 常用數據類型如下:
- 整數:int, bit
- 小數:decimal
- 字元串:varchar, char
- 日期時間:date, time, datetime
- 枚舉類型(enum)
- 特別說明的類型如下:
- decimal表示浮點數,如decimal(5, 2)表示共存5位數、小數占2位
- char表示固定長度的字元串,如char(3),如果填充'ab'時會補一個空格為'ab '
- varchar表示可變長度的字元串,如varchar(3),填充'ab'時就會儲存ab
- 字元串text表示儲存大文本,當字元大於4000時推薦使用
- 對於圖片、音頻、視頻等文件,不存儲在資料庫里,而是上傳到伺服器中,然後在表中存儲這個文件的url
單表中數據的增、刪、改、查
- insert 插入數據
mysql> insert into setcreed(id,name) values(2, 'neo'),(3, 'cwz');
insert 另一種方式插入數據:
mysql> insert into setcreed set id=4, name='soso';
- 查看表中數據
select 查詢方法:
mysql> select * from setcreed;
# * 表示查看所有內容
查詢後面可以跟條件:
mysql> select * from setcreed where id<3;
- update更新數據
mysql> update setcreed set name='qwe' where id=3;
- delete 刪除數據
mysql> delete from setcreed where id=4;