mysql python学习笔记

本文介绍了MySQL中的基础概念,包括表格结构、主键与外键的使用,以及如何通过外键建立表间关联并维护数据一致性。同时,文中提到了如何在Python中操作MySQL数据库,包括查询、更新数据和处理时间格式问题。
摘要由CSDN通过智能技术生成

mysql

基础概念
1.一个表格一般包含一个主建
2.可有多个主见,叫组合主见
3.可以有foreign key 用于链接外部表格的主建

外键目的:
这个约束的目的是确保当前表中的外键列(JNO列)的值必须存在于另一个表('J’表)的主键列(JNO列)中。换句话说,它建立了两个表之间的关联关系,以维护数据的一致性和完整性。

建立外键:
1。先建立表格 完成数据搭建
2.关联数据
ALTER TABLE ‘employee’ #选表
ADD FOREIGN KEY (‘sup_id’) #添加外键到sup_id上
REFERENCES ‘branch’ (‘JNO’) #关联branch表内的JNO
ON DELETE SET NULL;

(3.在建立表格期间也可关联
FOREIGN KEY(‘manage_id’) REFERENCES ‘employee’(‘emp_id’) #吧manage_id对应到emp_id
ON DELETE SET NULL;#删除父表记录emp_id时将外键manage_id设置为 NULL:不然要是2个表互为外键,就谁都加不了了,如果这个外键还是自己的主见,就不能设置为NULL

ON DELETE SET CASCADE;#emp_id 删除后,将这一行删掉

#建立外键manage_id 关联employee表的emp_id

主键
CREATE TABLE test (
column1 INT,
column2 INT,
column3 VARCHAR(50),
PRIMARY KEY (column1, column2),#主键
FOREIGN KEY (column3) REFERENCES other_table(other_column)#外部
);

嵌套擦寻

SELECT JNO #选择需要返回的列
FROM SPJ
WHERE PNO = ‘P3’ #选择p3
GROUP BY JNO #查询INO
HAVING AVG(QTY) > ( #平均值
SELECT AVG(QTY) #选择平均值
FROM SPJ #在SPJ中
WHERE JNO = ‘J1’ AND PNO = ‘P3’ #平均值大于J1
);
举例 表SPJ
在这里插入图片描述

子查询
SELECT ‘NAME’
FROM ‘EMPLOYEE’
WHERE ‘EMP_ID’ = (SELECT ‘MANIG_ID’
FROM ‘BRANCH’
WHERE ‘BRANCH_NAME’=‘YANFA’😉;

SELECT ‘NAME’
FROM ‘EMPLOYEE’
WHERE ‘EMP_ID’ in (SELECT ‘MANIG_ID’
FROM ‘BRANCH’
WHERE ‘BRANCH_NAME’ != ‘YANFA’😉;

python对接

data = mysql_operate.db.select_db(table_name,dic = {})#查询所有

由于key是关键字,在使用时要加``让其变成列名称

dic = {'`key`':recivedata['`key`']}
data = mysql_operate.db.select_db(table_name,dic)#查询

不知道为啥,时间读取后直接导入sql不太对,要按照下面修改
recivedata['时间']= datetime.strptime(recivedata['时间'], '%a, %d %b %Y %H:%M:%S %Z')#不知道为啥,时间读取后不太对

修改数据
mysql_operate.db.update_db(table_name, dic ,recivedata)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值