python教学数据库_Python学习之数据库初识
9 數(shù)據(jù)庫
9.1 數(shù)據(jù)庫的初識
?數(shù)據(jù)庫是可以獨(dú)立運(yùn)行的,并且可以對數(shù)據(jù)的增刪改查提供高效便捷方式的工具。
數(shù)據(jù)庫解決的問題:
?解決了操作文件的效率和便捷問題
?解決了多個服務(wù)同時使用數(shù)據(jù)時的一致性問題
?解決了安全問題
?解決了并發(fā)問題
數(shù)據(jù)庫的優(yōu)點(diǎn):
?程序穩(wěn)定性:應(yīng)用服務(wù)器的崩潰不會影響數(shù)據(jù)的安全
?數(shù)據(jù)的一致性:將所有數(shù)據(jù)的管理統(tǒng)一,所有對數(shù)據(jù)的操作統(tǒng)一
?并發(fā):數(shù)據(jù)庫支持并發(fā)的網(wǎng)絡(luò)操作,不需要我們自己寫socket
?效率:使用數(shù)據(jù)庫對數(shù)據(jù)進(jìn)行增刪改查的效率比操作文件的效率高甚多
常見概念
DataBase
數(shù)據(jù)庫,簡稱DB,存放數(shù)據(jù)的倉庫,數(shù)據(jù)按照一定的格式存放
數(shù)據(jù)庫中的數(shù)據(jù)按照一定的模型組織、描述和純屬,具有較小的冗余,較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,可為各種用戶共享數(shù)據(jù)
DBMS
數(shù)據(jù)庫管理系統(tǒng) ,對數(shù)據(jù)進(jìn)行科學(xué)的組織和存儲,以及能夠高效的獲取和維護(hù)數(shù)據(jù)
常見數(shù)據(jù)庫分類:
【關(guān)系型數(shù)據(jù)庫】通過某些條件都可以同一條目;數(shù)據(jù)之間關(guān)聯(lián)性比較緊密;存取效率相對低;MySQL Oracle SQL server SQLlite(輕量級) access
【非關(guān)系型數(shù)據(jù)庫】速度快;通過key找數(shù)據(jù);數(shù)據(jù)之間關(guān)聯(lián)關(guān)系是K-V模式;存取效率相對高;redis mongodb(輕量級) memcache(內(nèi)存級別,斷電消失)
數(shù)據(jù)庫管理員 DBA
各個概念之間的關(guān)系
記錄:多個字段的信息組成一條記錄
表:stable,文件,用來存放多條信息或記錄
數(shù)據(jù)庫:文件夾,用來組織文件/表
數(shù)據(jù)庫管理系統(tǒng):管理數(shù)據(jù)庫
數(shù)據(jù)庫服務(wù)器:運(yùn)行數(shù)據(jù)庫管理軟件
9.2 MySQL的安裝
卸載數(shù)據(jù)庫:
停止數(shù)據(jù)庫服務(wù): net stop mysql 停止MySQL服務(wù),還可以在服務(wù)里找到停掉
刪除服務(wù): mysqld remove
刪除安裝文件
刪除環(huán)境變量
清除注冊表或者重啟電腦
安裝數(shù)據(jù)庫:
安裝包下載:
找到安裝包:路徑不能有中文;路徑中不能由特殊字符\t \n \b \1 \2 ;
修改配置文件:utf-8;所有配置項(xiàng)后面不要由特殊的符號;修改兩個路徑basedir,datadir
[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8
[mysqld]
#設(shè)置3306端口
port = 3306
# 設(shè)置mysql的安裝目錄
basedir=D:\mysql\mysql-5.6.45-winx64
# 設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir=D:\mysql\mysql-5.6.45-winx64\data
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
配置環(huán)境變量:把bin目錄的路徑添加到環(huán)境變量中
以管理員身份打開CMD: mysqld install net start mysql
9.3 常用命令
數(shù)據(jù)庫命令分類
SQL:Structured Query Language,結(jié)構(gòu)化查詢語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新、管理關(guān)系型數(shù)據(jù)庫
【按功能分類】
DDL語句 數(shù)據(jù)庫定義語言:數(shù)據(jù)庫、表、試圖、索引、存儲過程
DML語句 數(shù)據(jù)庫操縱語言:增刪改查
DCL語句 數(shù)據(jù)庫控制語句:控制用戶權(quán)限等
進(jìn)入與退出MySQL
mysql
mysql> select user() # 查看當(dāng)前用戶
mysql> exit # 退出
# 指定用戶密碼登錄
mysql -uroot -p
Enter password: # 第一次使用root用戶登錄時,默認(rèn)是沒有密碼的,回車直接登錄
mysql> set password = password('root'); # 給當(dāng)前數(shù)據(jù)庫設(shè)置密碼
# 遠(yuǎn)程登陸
mysql -utest -p -h 192.168.13.121
創(chuàng)建賬號
格式:grant 權(quán)限 on 數(shù)據(jù)庫.* to 用戶名@登錄主機(jī) identified by "密碼"
權(quán)限包括:select,insert,update,delete == all
數(shù)據(jù)庫名.*:與該數(shù)據(jù)庫里的所有表建立連接; *.* 表示所有數(shù)據(jù)庫的所有表
# 創(chuàng)建本地賬戶
mysql> create user 'admin'@'localhost' identified by 'admin';
# 創(chuàng)建可用于遠(yuǎn)程登陸賬號
mysql> create user 'test'@'192.168.10.%' IDENTIFIED BY '12345' #'192.168.10.%' 指的是一個網(wǎng)段,可以指定單獨(dú)一臺主機(jī)的IP
mysql> create user 'test1'@'%' # 表示所有機(jī)器都可以連接
# 給賬號賦權(quán)限
mysql> grant all on *.* to 'admin'@'localhost'; # 權(quán)限全開
mysql> grant select on *.* to 'test1'; # 開部分權(quán)限,給test1用戶賦予查詢所有數(shù)據(jù)庫所有表的權(quán)限
mysql> flush privileges; # 賦權(quán)立馬生效
# 查看用戶權(quán)限
mysql> show grants for 'admin'@'localhost';
操作文件夾(庫)
操作
命令
創(chuàng)建數(shù)據(jù)庫
create database 數(shù)據(jù)庫名 charset utf8 ;
刪除數(shù)據(jù)庫(千萬別用)
drop database 數(shù)據(jù)庫名;
查看所有數(shù)據(jù)庫
show databases;
查看當(dāng)前數(shù)據(jù)庫
select database();或者status;
連接數(shù)據(jù)庫
use 數(shù)據(jù)庫名
修改數(shù)據(jù)庫
alter database 數(shù)據(jù)庫名 charset latin1;
進(jìn)入到其他數(shù)據(jù)庫時使用:? use 數(shù)據(jù)庫名
操作文件(表)
操作
命令
創(chuàng)建數(shù)據(jù)表
create table 表名([字段1] [類型],[字段2] [類型]);
刪除數(shù)據(jù)表
drop table 表名;
清空表
delete from 表名;或者 Truncate 表名;
查看表的結(jié)構(gòu)
desc 表名; 或者 describe 表名 ;
查看建表語句
show create table 表名;
重命名數(shù)據(jù)表
aletr table 現(xiàn)表名 rename 新表名;
增加列
alter table 表名 add 列名 列類型 ;
刪除列
alter table 表名 drop 列名;
重命名列
alter table 表名 change 現(xiàn)列名 新列名 類型;
修改列的屬性
alter table 表名 modify 列名 新屬性;
添加索引
alter table 表名 add index 索引名(字段名 1,字段名 2…);
查看索引
show index from 表名;
刪除索引
alter table 表名 drop index 索引名
表中的每一行叫做一個字段
操作數(shù)據(jù)
操作
命令
增加
insert into 表名 values(字段1),(字段2),(字段3);字段內(nèi)部數(shù)據(jù)以,隔開
查看
select 內(nèi)容 from 表名 ;
修改
update 表名set 修改的內(nèi)容 where 條件 ;
刪除
delete from 表名 where 條件 ;
清空表
delete from 表名; truncate table 表名;(比第一條運(yùn)行速度快)
刪除字段自增長
alter table 表名 change 列名 列名 類型 ;注意列名稱要重復(fù)一次,即需要將列的名稱寫兩次
增加字段自增長
alter table 表名 modify 列名 類型 auto_increment;
(反方向)alter table 表名 change 列名 列名 類型auto_increment;
修改自增長起始值
alter table 表名 auto_increment=[value];
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的python教学数据库_Python学习之数据库初识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [MicroPython]stm32f4
- 下一篇: python 判断div 之间的内容是否