Mr.Li--python-mysql

mysql數(shù)據(jù)庫,是當前應用非常廣泛的一款關系型數(shù)據(jù)庫


當前使用的數(shù)據(jù)庫,主要分為兩類

1.文檔型,如sqlite,就是一個文件,通過對文件的復制完成數(shù)據(jù)庫的復制

2.服務型,如mysql、postgre,數(shù)據(jù)存儲在一個物理文件中,但是需要使用終端以tcp/ip協(xié)議連接,進行數(shù)據(jù)庫的讀寫操作


E-R模型

當前物理的數(shù)據(jù)庫都是按照E-R模型進行設計的

E表示entry,實體

R表示relationship,關系

一個實體轉換為數(shù)據(jù)庫中的一個表

關系描述兩個實體之間的對應規(guī)則,包括

1.一對一

2.一對多

3.多對多

關系轉換為數(shù)據(jù)庫表中的一個列在關系型數(shù)據(jù)庫中一行就是一個對象

三范式

經(jīng)過研究和對使用中問題的總結,對于設計數(shù)據(jù)庫提出了一些規(guī)范,這些規(guī)范被稱為范式

1.第一范式(1NF):列不可拆分

2.第二范式(2NF):唯一標識

3.第三范式(3NF):引用主鍵

說明:后一個范式,都是在前一個范式的基礎上建立的



約束:

1.主鍵primary key

2.非空not null

3.惟一unique

4.默認default

5.外鍵foreign key

數(shù)據(jù)庫操作

·創(chuàng)建數(shù)據(jù)庫

create database數(shù)據(jù)庫名charset=utf8;

·刪除數(shù)據(jù)庫

drop database數(shù)據(jù)庫名;

·切換數(shù)據(jù)庫

use數(shù)據(jù)庫名;

·查看當前選擇的數(shù)據(jù)庫

select database();

表操作

·查看當前數(shù)據(jù)庫中所有表

show tables;

·創(chuàng)建表

auto_increment表示自動增長

create table表名(列及類型);

如:

create table students(

id int auto_incrementprimary key,

sname varchar(10) not null

);

·修改表

alter table表名add|change|drop列名類型;

如:

alter table students add birthdaydatetime;

·刪除表

drop table表名;

·查看表結構

desc表名;

·更改表名稱

rename table原表名to新表名;

·查看表的創(chuàng)建語句

show create table '表名';

數(shù)據(jù)操作

·查詢

select * from表名

·增加

全列插入:insert into表名values(...)

缺省插入:insert into表名(列1,...) values(值1,...)

同時插入多條數(shù)據(jù):insert into表名values(...),(...)...;

或insert into表名(列1,...) values(值1,...),(值1,...)...;

·主鍵列是自動增長,但是在全列插入時需要占位,通常使用0,插入成功后以實際數(shù)據(jù)為準

·修改

update表名set列1=值1,... where條件

·刪除

delete from表名where條件

·邏輯刪除,本質就是修改操作update

alter table students add isdelete bit default 0;

如果需要刪除則

update students isdelete=1 where ...;

備份與恢復

?數(shù)據(jù)備份

·進入超級管理員

sudo -s

·進入mysql庫目錄

cd /var/lib/mysql

·運行mysqldump命令

mysqldump –uroot –p數(shù)據(jù)庫名> ~/Desktop/備份文件.sql;

按提示輸入mysql的密碼

?數(shù)據(jù)恢復

·連接mysqk,創(chuàng)建數(shù)據(jù)庫

·退出連接,執(zhí)行如下命令

mysql -uroot –p數(shù)據(jù)庫名< ~/Desktop/備份文件.sql

根據(jù)提示輸入mysql密碼

1.1.1總結

·數(shù)據(jù)庫解決的問題,E-R模型,三范式

·圖形界面操作數(shù)據(jù)庫、表、數(shù)據(jù)

·命令行操作數(shù)據(jù)庫、表、數(shù)據(jù)

1.1.2作業(yè)

·完善學生表、科目表及數(shù)據(jù)

·設計兩張表,要求是一對多的關系

1.2查詢

簡介

·查詢的基本語法

select * from表名;

·from關鍵字后面寫表名,表示數(shù)據(jù)來源于是這張表

·select后面寫表中的列名,如果是*表示在結果中顯示表中所有列

·在select后面的列名部分,可以使用as為列起別名,這個別名出現(xiàn)在結果集中

如果要查詢多個列,之間使用逗號分隔

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容