Python之資料庫mysql

2021-12-30 07:10:59 字數 3078 閱讀 7303

約束

表之間的關聯關係

約束:用於保證資料的完整性 和 合法性

分類:

primary key:主鍵約束 用於唯一的標識記錄

從約束角度來看 主鍵約束 等同於 非空約束 和 唯一約束

作用: 區分兩個相同的記錄 提高查詢效率 可以建立關聯關係

語法 : create table stu (id int primary key ,name char(5));

多列聯合主鍵:create table t1 (idcard char(18) , phonenumber char(11),primary key (idcard , phonenumber));

練習 :建立乙個員工表 裡面儲存 員工資訊 員工編號 姓名 年齡 性別

create table employee (id int primary key , name char(10) not null,age int ,

*** char(10) default 'man');

foreign key 和references: 外來鍵約束 標識該字段為該錶的外來鍵

作用: 建立表與表之間的聯絡

新增外來鍵約束時: 會產生限制

1 . 必須先建立好被關聯的表,也就是主表 ,然後建立從表

2. 主表的資料應該先插入,從表後插入

3. 在刪除主表資料前 , 得先刪除從表相關資料

4. 在更新主表資料前 , 得確保從表沒有資料關聯

練習: 建立乙個部門表 包含 部門序號 部門名稱

建立乙個員工表 包含 員工序號 員工姓名 部門序號

先建立部門表: create table dept (id int primary key ,name char(10));

再建立員工表: create table emp (id int primary key , name char(10),

總的來說:外來鍵就相當於與把一張表的字段 標識成 另一張表的主鍵

外來鍵加上以後 :主表中的資料 刪除 和更新時 都受到限制

解決的方案是: 為 外來鍵 新增 級聯操作

級聯操作: 指的是同步更新和刪除

語法: 在建立外來鍵是 在後面 新增

on update cascade 同步更新

on delete cascade 同步刪除

建立部門表: create table dept (id int primary key ,name char(10));

建立員工表: create table emp (id int primary key , name char(10),dept_id int,

foreign key(dept_id) references dept(id)

on update cascade

on delete cascade

not null:非空約束 資料不能為空

語法 : create table student ( id int not null , name char(10) not null);

unique : 唯一性約束 標識該字段的值不能重複

作用: unique 是一種索引 索引是一種資料結構 用於提高查詢效率

一張表中可以有多個唯一約束

語法:單列唯一約束 : create table t2 (idcard char(18) unique);

多列聯合唯一約束: create table t3 (idcard char(18) , phonenumber char(11) ,

unique(idcard ,phonenumber));

多列聯合中 :idcard 相同 和phonenumber 相同 才會報錯

auto_increment:自動增長 標識該字段的值自動增長

作用: 通常和主鍵字段使用 只能用於整數型別

語法: create table t1 (id int primary key auto_increment ,name char(5));

修改自動增長的起始位置: alter table t1 auto_increment = 5;

default: 預設值約束 為該字段的設定預設值

語法 : create table user (id int not null , name char(10) not null , *** char(1) default '男');

所有的資料不可能放入同一張表中,會造成浪費空間 結構混亂 擴充套件性差等等問題

所以需要分表處理,分表又會產生新的問題,表與表之間需要有聯絡

表之間的關係

一對一 : 一張表中的一條記錄對應另一張表的一條記錄

多對一 : 一張表中的多條記錄對應另一張表的一條記錄

多對多 :兩張表雙向的多對一,即多對多

多對多需要定義一張關係表來專門存放二者的關係

建立表之間的關係 就需要用到foreign key外來鍵約束

python之mysql資料庫讀取

首先我們先安裝讀取mysql的第三方庫 pip install pymysql 安裝成功後,我們穿件乙個.py檔案import pymysql 我們先看看pymysql給我們提供了什麼 跳轉到 init 介面 然後跳轉到這個介面,可以看到注釋給我們說明各個引數的用途,再移動下去 就可以看到mysql...

資料庫之Python操作MySQL

python操作mysql一共有兩種方式,第一種是用原生模組pymysql和mysqldb,這兩種模組在py2中都支援,但是在py3中只支援pymysql,但是pymysql可以通過pymysql.install as mysqldb 的方式構造成和mysqldb一樣的使用 第二種方式是orm框架 ...

Python之操作MySQL資料庫(二)

python對mysql資料庫的操作,包括連線資料庫 建立資料庫 插入資料 查詢資料。1 連線mysql資料庫 coding utf 8 import mysqldb 開啟資料庫連線 db mysqldb.connect localhost root test 引數為ip,使用者名稱,密碼,資料庫 ...