python教学数据库_Python学习之数据库初识
9 數據庫
9.1 數據庫的初識
?數據庫是可以獨立運行的,并且可以對數據的增刪改查提供高效便捷方式的工具。
數據庫解決的問題:
?解決了操作文件的效率和便捷問題
?解決了多個服務同時使用數據時的一致性問題
?解決了安全問題
?解決了并發問題
數據庫的優點:
?程序穩定性:應用服務器的崩潰不會影響數據的安全
?數據的一致性:將所有數據的管理統一,所有對數據的操作統一
?并發:數據庫支持并發的網絡操作,不需要我們自己寫socket
?效率:使用數據庫對數據進行增刪改查的效率比操作文件的效率高甚多
常見概念
DataBase
數據庫,簡稱DB,存放數據的倉庫,數據按照一定的格式存放
數據庫中的數據按照一定的模型組織、描述和純屬,具有較小的冗余,較高的數據獨立性和易擴展性,可為各種用戶共享數據
DBMS
數據庫管理系統 ,對數據進行科學的組織和存儲,以及能夠高效的獲取和維護數據
常見數據庫分類:
【關系型數據庫】通過某些條件都可以同一條目;數據之間關聯性比較緊密;存取效率相對低;MySQL Oracle SQL server SQLlite(輕量級) access
【非關系型數據庫】速度快;通過key找數據;數據之間關聯關系是K-V模式;存取效率相對高;redis mongodb(輕量級) memcache(內存級別,斷電消失)
數據庫管理員 DBA
各個概念之間的關系
記錄:多個字段的信息組成一條記錄
表:stable,文件,用來存放多條信息或記錄
數據庫:文件夾,用來組織文件/表
數據庫管理系統:管理數據庫
數據庫服務器:運行數據庫管理軟件
9.2 MySQL的安裝
卸載數據庫:
停止數據庫服務: 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
9.3 常用命令
數據庫命令分類
SQL:Structured Query Language,結構化查詢語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新、管理關系型數據庫
【按功能分類】
DDL語句 數據庫定義語言:數據庫、表、試圖、索引、存儲過程
DML語句 數據庫操縱語言:增刪改查
DCL語句 數據庫控制語句:控制用戶權限等
進入與退出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];
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python教学数据库_Python学习之数据库初识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [MicroPython]stm32f4
- 下一篇: python 判断div 之间的内容是否