Python高階 -- 07 MySQL資料庫

DJTUDaker發表於2018-03-14

一、安裝MySQL資料庫


1、ubuntu中安裝MySQL服務端


(1)、安裝服務端


root@ubuntu:/usr/local# sudo apt-get install mysql-server


(2)、檢視mysql服務是否啟動


root@ubuntu:/usr/local# ps -ef | grep mysql


(3)、mysql服務啟動、停止的命令


root@ubuntu:/usr/local# sudo service mysql stop
root@ubuntu:/usr/local# sudo service mysql status
root@ubuntu:/usr/local# sudo service mysql restart




2、配置檔案


(1)、配置檔案位置


root@ubuntu:/# cd /etc/mysql/mysql.conf.d



(2)、主要配置項詳解


bind-address表示伺服器繫結的ip,預設為127.0.0.1

port表示埠,預設為3306

datadir表示資料庫目錄,預設為/var/lib/mysql

general_log_file表示普通日誌,預設為/var/log/mysql/mysql.log

log_error表示錯誤日誌,預設為/var/log/mysql/error.log


3、ubuntu中新增mysql的遠端訪問使用者


(1)、修該上述配置


        將配置檔案中的bind-address註釋掉,表示允許其他ip訪問改mysql服務端


(2)、建立遠端訪問的賬戶


mysql> create user 'root'@'%' identified by '123'  

mysql> grant all on *.* to 'root'@'%' with grant option; 
 
mysql> flush privileges; 

4、ubuntu中安裝客戶端


sudo apt-get install mysql-client


5、登入mysql


root@ubuntu:/# mysql -uroot -pmysql





二、資料庫操作及查詢語句


1、基本使用


(1)、檢視所有資料庫


show databases;


(2)、使用資料庫


use 資料庫名;


(3)、檢視當前使用的資料庫


select database();


(4)、建立資料庫


create database 資料庫名 charset=utf8;


(5)、刪除資料庫


drop database 資料庫名;


(6)、檢視當前資料庫中所有表


show tables;


(7)、檢視錶結構


desc 表名;


(8)、建立表


CREATE TABLE table_name(
    column1 datatype 約束,
    column2 datatype,
    column3 datatype,
    .....
    columnN datatype,
    PRIMARY KEY(one or more columns)
);


(9)、新增表中欄位


alter table 表名 add 列名 型別;

(10)、修改表中欄位


重新命名


alter table 表名 change 原名 新名 型別及約束;


使用原名


alter table 表名 modify 列名 型別及約束;


(11)、刪除表中欄位


alter table 表名 drop 列名;


(12)、刪除表


drop table 表名;


(13)、檢視錶的建立語句


show create table 表名;


2、資料庫備份&恢復


(1)、備份資料庫


mysqldump –uroot –p 資料庫名 > 備份名稱.sql;

# 按提示輸入mysql的密碼


(2)、恢復資料庫


mysql -uroot –p 新資料庫名 < 備份名稱.sql

# 根據提示輸入mysql密碼

三、設計資料庫


1、三正規化


        第一正規化(1NF):強調的是列的原子性,即列不能夠再分成其他幾列。


        第二正規化(2NF):首先是 1NF,另外包含兩部分內容,一是表必須有一個主鍵;二是沒有包含在主鍵中的列必須完全依賴於主鍵,而不能只依賴於主鍵的一部分。


        第三正規化(3NF):首先是 2NF,另外非主鍵列必須直接依賴於主鍵,不能存在傳遞依賴。即不能存在:非主鍵列 A 依賴於非主鍵列 B,非主鍵列 B 依賴於主鍵的情況。


2、不遵循三大正規化舉例


(1)、不遵循 1NF




(2)、不遵循 2NF



(3)、不遵循 3NF




(4)、最終正確資料庫




四、資料庫查詢語言


1、條件、排序、聚合、分組、分頁、連線查詢、子查詢、自關聯



2、查詢總結


(1)、完整的select語句


select distinct *
from 表名
where ....
group by ... having ...
order by ...
limit start,count


(2)、執行順序


from 表名
where ....
group by ...
select distinct *
having ...
order by ...
limit start,count


相關文章