7-93 水仙花數 (20分)
阿新 • • 發佈:2020-12-11
目錄
資料庫是什麼
資料庫:儲存資料的倉庫
為什麼使用資料庫
之前用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;