Python學習之資料庫初識

2022-06-01 21:18:18 字數 4382 閱讀 4739

​ 資料庫是可以獨立執行的,並且可以對資料的增刪改查提供高效便捷方式的工具。

​ 解決了操作檔案的效率和便捷問題

​ 解決了多個服務同時使用資料時的一致性問題

​ 解決了安全問題

​ 解決了併發問題

​ 程式穩定性:應用伺服器的崩潰不會影響資料的安全

​ 資料的一致性:將所有資料的管理統一,所有對資料的操作統一

​ 併發:資料庫支援併發的網路操作,不需要我們自己寫socket

​ 效率:使用資料庫對資料進行增刪改查的效率比操作檔案的效率高甚多

database

資料庫,簡稱db,存放資料的倉庫,資料按照一定的格式存放

資料庫中的資料按照一定的模型組織、描述和純屬,具有較小的冗餘,較高的資料獨立性和易擴充套件性,可為各種使用者共享資料

dbms

資料庫管理系統 ,對資料進行科學的組織和儲存,以及能夠高效的獲取和維護資料

常見資料庫分類:

【關係型資料庫】通過某些條件都可以同一條目;資料之間關聯性比較緊密;訪問效率相對低;mysql oracle sql server sqllite(輕量級) access

【非關係型資料庫】速度快;通過key找資料;資料之間關聯關係是k-v模式;訪問效率相對高;redis mongodb(輕量級) memcache(記憶體級別,斷電消失)

資料庫管理員 dba

各個概念之間的關係

記錄:多個欄位的資訊組成一條記錄

表:stable,檔案,用來存放多條資訊或記錄

資料庫:資料夾,用來組織檔案/表

資料庫管理系統:管理資料庫

資料庫伺服器:執行資料庫管理軟體

解除安裝資料庫:

停止資料庫服務: net stop mysql 停止mysql服務,還可以在服務裡找到停掉

刪除服務: mysqld remove

刪除安裝檔案

刪除環境變數

清除登錄檔或者重啟電腦

安裝資料庫:

找到安裝包:路徑不能有中文;路徑中不能由特殊字元\t \n \b \1 \2 ;

修改配置檔案:utf-8;所有配置項後面不要由特殊的符號;修改兩個路徑basedir,datadir

[mysql]

# 設定mysql客戶端預設字符集

default-character-set=utf8

[mysqld]

#設定3306埠

port = 3306

# 設定mysql的安裝目錄

basedir=d:\mysql\mysql-5.6.45-winx64

# 設定mysql資料庫的資料的存放目錄

datadir=d:\mysql\mysql-5.6.45-winx64\data

# 允許最大連線數

max_connections=200

# 服務端使用的字符集預設為8位元編碼的latin1字符集

character-set-server=utf8

# 建立新錶時將使用的預設儲存引擎

default-storage-engine=innodb

配置環境變數:把bin目錄的路徑新增到環境變數中

以管理員身份開啟cmd: mysqld install net start mysql

資料庫命令分類

sql:structured query language,結構化查詢語言,是一種資料庫查詢和程式語言,用於訪問資料以及查詢、更新、管理關係型資料庫

【按功能分類】

進入與退出mysql

mysql

mysql> select user() # 檢視當前使用者

mysql> exit # 退出

# 指定使用者密碼登入

mysql -uroot -p

enter password: # 第一次使用root使用者登入時,預設是沒有密碼的,回車直接登入

mysql> set password = password('root'); # 給當前資料庫設定密碼

# 遠端登陸

mysql -utest -p -h 192.168.13.121

建立賬號

格式:grant 許可權 on 資料庫.* to 使用者名稱@登入主機 identified by "密碼"

許可權包括:select,insert,update,delete == all

資料庫名.*:與該資料庫裡的所有表建立連線; *.* 表示所有資料庫的所有表

# 建立本地賬戶

mysql> create user 'admin'@'localhost' identified by 'admin';

# 建立可用於遠端登陸賬號

mysql> create user 'test'@'192.168.10.%' identified by '12345' #'192.168.10.%' 指的是乙個網段,可以指定單獨一台主機的ip

mysql> create user 'test1'@'%' # 表示所有機器都可以連線

# 給賬號賦許可權

mysql> grant all on *.* to 'admin'@'localhost'; # 許可權全開

mysql> grant select on *.* to 'test1'; # 開部分許可權,給test1使用者賦予查詢所有資料庫所有表的許可權

mysql> flush privileges; # 賦權立馬生效

# 檢視使用者許可權

mysql> show grants for 'admin'@'localhost';

操作資料夾(庫)

操作命令

建立資料庫

create database 資料庫名 charset utf8 ;

刪除資料庫(千萬別用)

drop database 資料庫名;

檢視所有資料庫

show databases;

檢視當前資料庫

select database();或者status;

連線資料庫

use 資料庫名

修改資料庫

alter database 資料庫名 charset latin1;

進入到其他資料庫時使用:  use 資料庫名

操作檔案(表)

操作命令

建立資料表

create table 表名([欄位1] [型別],[欄位2] [型別]);

刪除資料表

drop table 表名;

清空表delete from 表名;或者 truncate 表名;

檢視表的結構

desc 表名; 或者 describe 表名 ;

檢視建表語句

show create table 表名;

重新命名資料表

aletr table 現表名 rename 新錶名;

增加列alter table 表名 add 列名 列型別 ;

刪除列alter table 表名 drop 列名;

重新命名列

alter table 表名 change 現列名 新列名 型別;

修改列的屬性

alter table 表名 modify 列名 新屬性;

新增索引

alter table 表名 add index 索引名(欄位名 1,欄位名 2…);

檢視索引

show index from 表名;

刪除索引

alter table 表名 drop index 索引名

表中的每一行叫做乙個字段

運算元據

操作命令

增加insert into 表名 values(欄位1),(欄位2),(欄位3);字段內部資料以,隔開

檢視select 內容 from 表名 ;

修改update 表名set 修改的內容 where 條件 ;

刪除delete from 表名 where 條件 ;

清空表delete from 表名; truncate table 表名;(比第一條執行速度快)

刪除欄位自增長

alter table 表名 change 列名 列名 型別 ;注意列名稱要重複一次,即需要將列的名稱寫兩次

增加欄位自增長

alter table 表名 modify 列名 型別 auto_increment;

(反方向)alter table 表名 change 列名 列名 型別auto_increment;

修改自增長起始值

alter table 表名 auto_increment=[value];

文章參考:

資料庫 初識

通俗講,資料庫就是以一定格式進行組織資料的集合,直觀來看,資料庫就是電腦上一些具有特殊格式的資料檔案的集合.通常談到資料庫會涉及4個基本概念,即資料,資料庫,資料管理系統,資料庫系統.資料描述世界或者事物的符號記錄稱為資料.數字,文字,聲音,影象 這些都是資料.對於計算機來說,只能處理二進位制資料 ...

Python學習之資料庫操作

在python中,我們可以通過mysqldb這一介面卡連線並運算元據庫。其中有兩個主要的物件connection和cursor,分別用來與資料庫連線和通訊。下面給出乙個與資料庫連線的例項 conn mysqldb.connect host 127.0.0.1 主機名 127.0.0.1 為本機ip ...

python學習之 Redis資料庫

redis常用作伺服器與資料庫之間的乙個快取 客戶端 伺服器 redis 資料庫 客戶端向伺服器發起登入請求,伺服器將使用者名稱和密碼拿去與redis中的快取匹配,若存在匹配值,且驗證通過。則允許登入。若存在匹配值,且驗證不通過,則不允許登入 若redis中找不到匹配值,則向資料庫發起請求,驗證完成...