1. 程式人生 > >python之MySQL數據庫

python之MySQL數據庫

數字 rim col too tool 技術 單獨 訪問 shu

mysql安裝與下載

a:官網下載mysql安裝程序
b:安裝mysql服務端
c:安裝mysql客戶端
d:客戶端連接服務端
e:通過客戶端向服務器發送命令,執行對數據庫文件的增刪改差操作。 

 Windows版安裝 

技術分享圖片
#1.下載:MySQL Community Server 5.7.20
    https://dev.mysql.com/downloads/mysql/

#2.解壓
將官網下載的解壓包 解壓到指定目錄(例如 D://mysql-5.7.20-winx64)

#3.添加環境變量
【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】

C:\Program Files (x86)\Parallels\Parallels Tools\Applications;d:\mysql
-5.7.16-winx64\bin #4.初始化 mysqld --initialize-insecure #5.啟動mysql服務 mysqld #6.連接mysql服務 mysql -uroot -p 回車,有密碼輸入密碼,沒有繼續回車 解壓方式安裝 解壓方式安裝
解壓方式安裝 技術分享圖片
ps:制作服務必須使用全路徑方式
# 制作MySQL的Windows服務,在終端執行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --install

# 移除MySQL的Windows服務,在終端執行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld
" --remove # 啟動MySQL服務 net start mysql(後面不加分號) # 關閉MySQL服務 net stop mysql(後面不加分號)
制作服務

1.創建數據庫

  create database 庫名;

#創建一個名字為 db_name 的數據庫,並指定當前庫的編碼集為utf8

CREATE DATABASE db_name charset utf8;

2.查數據庫

  use 庫名;

#查詢當前用戶下所有數據庫
show databases;

#查看創建數據庫的信息
show create database db_name;

#查詢當前操作所在的數據庫名稱
select database();

3.查詢當前庫下所有的表

  show tables 顯示庫中所有的表

  show databases顯示所有數據庫

4.刪除

  drop database 庫名; 刪除數據庫

什麽是SQL?

上面咱們介紹過數據庫的組成部分,其中數據庫管理系統可以接收一些命令,對數據文件進行添加、刪除、修改、查詢等操作。那麽這些命令就是 SQL .

  SQL:(Structured Query Language)是結構化查詢語言縮寫。是一門專門與數據庫管理系統打交道的語言。

  SQL語言:是關系型數據庫的標準語言, 其主要用於存取數據,查詢數據,更新數據和管理數據庫系統等操作。

  具體可以把SQL分為4個部分:

    數據控制語言 ( DCL): 主要用於控制用戶的訪問權限。其中GRANT語句用於給用戶增加權限,REVOKE語句用於收回用戶的權限

    數據定義語言(DDL):DROP、CREATE、ALTER等語句;數據庫定義語言。主要用於定義數據庫,表,視圖,索引和觸發器等。CREATE語句主要用於創建數據庫,創建表,創建視圖。ALTER語句主要用於修改表的定義,修改視圖的定義。DROP語句主要用於刪除數據庫,刪除表和刪除視圖等。

    數據操作語言(DML):INSERT、UPDATE、DELETE語句;數據庫操作語言。主要用於插入數據,更新數據,刪除數據。INSERT語句用於插入數據,UPDATE語句用於更新數據,DELETE語句用於刪除數據.

    數據查詢語言(DQL):SELECT語句。主要用於查詢數據。

#1. 操作文件夾
        增:create database db1 charset utf8;
        查:show databases;
        改:alter database db1 charset latin1;
        刪除: drop database db1;


#2. 操作文件
    先切換到文件夾下:use db1
        增:create table t1(id int,name char);
        查:show tables
        改:alter table t1 modify name char(3);
              alter table t1 change name name1 char(2);
        刪:drop table t1;
    

#3. 操作文件中的內容/記錄
        增:insert into t1 values(1,egon1),(2,egon2),(3,egon3);
        查:select * from t1;
        改:update t1 set name=sb where id=2;
        刪:delete from t1 where id=1;

        清空表:
            delete from t1; #如果有自增id,新增的數據,仍然是以刪除前的最後一樣作為起始。
            truncate table t1;數據量大,刪除速度比上一條快,且直接從零開始,

            auto_increment 表示:自增
            primary key 表示:約束(不能重復且不能為空);加速查找

....
#1. 操作文件夾
        增:create database db1 charset utf8;
        查:show databases;
        改:alter database db1 charset latin1;
        刪除: drop database db1;


#2. 操作文件
    先切換到文件夾下:use db1
        增:create table t1(id int,name char);
        查:show tables
        改:alter table t1 modify name char(3);
              alter table t1 change name name1 char(2);
        刪:drop table t1;
    

#3. 操作文件中的內容/記錄
        增:insert into t1 values(1,egon1),(2,egon2),(3,egon3);
        查:select * from t1;
        改:update t1 set name=sb where id=2;
        刪:delete from t1 where id=1;

        清空表:
            delete from t1; #如果有自增id,新增的數據,仍然是以刪除前的最後一樣作為起始。
            truncate table t1;數據量大,刪除速度比上一條快,且直接從零開始,

            auto_increment 表示:自增
            primary key 表示:約束(不能重復且不能為空);加速查找
技術分享圖片
可以由字母、數字、下劃線、@、#、$
區分大小寫
唯一性
不能使用關鍵字如: CREATE SELECT
不能單獨使用數字
最長128位
命名規範

用戶權限

技術分享圖片
創建用戶
    create user 用戶名@IP地址 identified by 密碼;
刪除用戶
    drop user 用戶名@IP地址;
修改用戶
    rename user 用戶名@IP地址; to 新用戶名@IP地址;
用戶管理 技術分享圖片
#創建新用戶
create user alex@localhost identified by 123456;

#授權方式一:為alex授權 db1數據庫下的所有表的 查詢.更新.修改權限
grant select,update,delete on db1.*  to alex@localhost;

#授權方式二:為alex 授權 所有庫的所有權限(除grant權限外)
grant all privileges on *.*  to alex@localhost;

#刷新用戶權限
flush privileges;
創建用戶及授權示例 技術分享圖片
all privileges  除grant外的所有權限
            select          僅查權限
            select,insert   查和插入權限
            ...
            usage                   無訪問權限
            alter                   使用alter table
            alter routine           使用alter procedure和drop procedure
            create                  使用create table
            create routine          使用create procedure
            create temporary tables 使用create temporary tables
            create user             使用create user、drop user、rename user和revoke  all privileges
            create view             使用create view
            delete                  使用delete
            drop                    使用drop table
            execute                 使用call和存儲過程
            file                    使用select into outfile 和 load data infile
            grant option            使用grant 和 revoke
            index                   使用index
            insert                  使用insert
            lock tables             使用lock table
            process                 使用show full processlist
            select                  使用select
            show databases          使用show databases
            show view               使用show view
            update                  使用update
            reload                  使用flush
            shutdown                使用mysqladmin shutdown(關閉MySQL)
            super                   使用change master、kill、logs、purge、master和set global。還允許mysqladmin調試登陸
            replication client      服務器位置的訪問
            replication slave       由復制從屬使用
權限列表 技術分享圖片
 1 方式一: mysqladmin 命令
 2 
 3 
 4 mysqladmin -u用戶名 -p密碼 password 新密碼
 5 方式二: 直接設置用戶密碼 
 6 
 7 
 8 set password for 用戶名@IP = password(新密碼);
 9              
10 flush privileges;
11 方式三:修改mysql庫下的user表
12 
13 
14 5.7版本修改密碼方式:
15 update mysql.user set authentication_string=password(新密碼) where user= 用戶名          
16 flush privileges; -- 刷新權限
17              
18 5.6 版本
19 update mysql.user set password = password(新密碼) where user= 用戶名
20 flush privileges; -- 刷新權限
21 六.忘記密碼
修改密碼 技術分享圖片
在忘記root密碼的時候,可以這樣:
 
#1.首先打開cmd 窗口,關閉mysql服務
    net stop mysql
 
#2.然後跳過權限檢查,啟動mysql,輸入命令
    mysqld --skip-grant-tables
 
#3.重新打開一個新的cmd窗口,啟動客戶端(已跳過權限檢查,可以直接登錄)
    mysql
 
#4.直接進來,修改密碼
update mysql.user set authentication_string=password(123456) where user=root;
 
#5. 刷新權限
flush privileges;
忘記密碼

查詢字符編碼

SHOW VARIABLES LIKE char%;
技術分享圖片
#修改方法:
#1. 創建my.ini文件,放在mysql根路徑下
#2. 在該文件中添加以下內容即可:
#3.添加此文件後需要重新啟動服務,以保證此文件生效
------------------------------------------------------------
[client]

default-character-set=utf8

[mysql]

#設置mysql客戶端默認字符集

default-character-set=utf8

[mysqld]

#設置3306端口

port = 3306

#允許最大連接數

max_connections=200

#服務端使用的字符集默認為8比特編碼的latin1字符集

character-set-server=utf8

#創建新表時將使用的默認存儲引擎

default-storage-engine=INNODB

#解決mysql在執行sql語句後出現1055錯誤,sql_mode = only_full_group_by不相容

sql_mode=NO_ENGINE_SUBSTITUTION

亂碼已死
亂碼已死

python之MySQL數據庫