展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > 使用Python连接MySQL数据库的步骤和方法详解

使用Python连接MySQL数据库的步骤和方法详解

一、表格与键概念主键:可唯一表示该资料(可以设置多个列表为主键)设置外键进行表与表的相连,且外键必须是其他表的主键(外键也可以设置自己表格的主键)二、创建资料库CREATEDATABASE`sql_tutorial`;--创建资料库SHOWdatabases;--展示资料库dropdatabase`sql_tutorial`;--删除资料库–为注释;为结束命令的格式三、创建表格MySQL的资料形态:INT--整形DECIMAL(m,n)--有小数点的数(3,2)则是2.33,总共有m位数,小数

本文目录

    一、表格与键概念

    使用Python连接MySQL数据库的步骤和方法详解

    使用Python连接MySQL数据库的步骤和方法详解

    使用Python连接MySQL数据库的步骤和方法详解

    主键:可唯一表示该资料(可以设置多个列表为主键)

    使用Python连接MySQL数据库的步骤和方法详解

    设置外键进行表与表的相连,且外键必须是其他表的主键(外键也可以设置自己表格的主键)

    二、创建资料库

    CREATE DATABASE `sql_tutorial`;    --创建资料库
    SHOW databases;    --展示资料库
    drop database `sql_tutorial`;    --删除资料库

    –为注释
    ;为结束命令的格式

    使用Python连接MySQL数据库的步骤和方法详解

    三、创建表格

    MySQL的资料形态:

    • INT --整形

    • DECIMAL(m,n) --有小数点的数 (3,2)则是2.33,总共有m位数,小数点站n位

    • VARCHAR(n) --字串

    • BLOB --图片 影片 档案…(二进制的资料)

    • DATE --日期(yyyy-mm-dd)

    • TIMESTAMP --记录时间(yyyy-mm-dd hh:mm:ss)

    CREATE DATABASE `sql_tutorial`;  -- 创建资料库
    SHOW databases;        -- 展示资料库
    use `sql_tutorial`; -- 选择使用的资料库
    
    create table student(
            `student_id` int primary key, -- 第一列
        `name` varchar(20), -- 第二列
        `major` varchar(20) -- 第三列,20指的是最大字符长度
    ); -- 创建表格并设计属性
    
    describe `student`; -- 展示表格
    drop table `student`; -- 删除表格
    
    alter table `student` add gpa decimal(3,2); -- 增加资料属性
    alter table `student` drop column gpa ; -- 删除资料属性

    使用Python连接MySQL数据库的步骤和方法详解

    四、储存资料

    create table student(
            `student_id` int primary key, -- 第一列
        `name` varchar(20), -- 第二列
        `major` varchar(20) -- 第三列,20指的是最大字符长度
    ); -- 创建表格并设计属性
    select * from `student`; -- 搜索表格的全部资料
    
    insert into `student` values(1,'小白','历史'); -- 写入表格数据
    insert into `student` values(2,'小黑','生物'); -- 写入表格数据
    insert into `student` values(3,'小绿',null); -- 写入表格数据,null为空
    
    insert into `student`(`name`,`major`,`student_id`) values('小蓝','英语','4'); -- 按照设置写入表格数据
    insert into `student`(`major`,`student_id`) values('英语','5'); -- 按照设置写入表格数据,没有的数据则为空白null

    使用Python连接MySQL数据库的步骤和方法详解

    五、限制约束

    create table student(
            `student_id` int primary key, -- 第一列
        `name` varchar(20) not null, -- 第二列,not null指这个属性不可以为空
        `major` varchar(20) unique -- 第三列,20指的是最大字符长度,unique指每个值不可以重复
    ); -- 创建表格并设计属性
    
    create table student(
            `student_id` int primary key auto_increment, -- 第一列,auto_increment自动会加一
        `name` varchar(20), -- 第二列,not null指这个属性不可以为空
        `major` varchar(20) default '历史' -- 第三列,20指的是最大字符长度,default指预设值,如果没有写该属性,则为预设值
    ); -- 创建表格并设计属性
    drop table `student`;
    select * from `student`; -- 搜索表格的全部资料
    
    insert into `student`(`name`,`major`) values('小蓝','英语'); -- 按照设置写入表格数据
    insert into `student`(`name`) values('小黑'); -- 按照设置写入表格数据

    使用Python连接MySQL数据库的步骤和方法详解

    六、修改、删除资料

    条件:>,<,>=,<=,=,<>

    set sql_safe_updates = 0; -- 把预设更新模式关闭,这样更新操作才可以成功
    create table student(
            `student_id` int primary key auto_increment, -- 第一列
        `name` varchar(20), -- 第二列
        `major` varchar(20), -- 第三列,20指的是最大字符长度
        `score` int
    ); -- 创建表格并设计属性
    drop table `student`;
    select * from `student`; -- 搜索表格的全部资料
    
    insert into `student`(`name`,`major`) values('小蓝','英语'); -- 按照设置写入表格数据
    insert into `student`(`name`,`major`) values('小白','化学'); -- 按照设置写入表格数据
    insert into `student`(`name`,`major`) values('小黑','生物'); -- 按照设置写入表格数据
    update `student` -- 更新哪个表格
    set `major` = '英语文学' -- 将什么更新成什么
    where `major` = '英语'; -- 将其中谁的什么进行更新
    -- 还可以进行多个更新
    update `student` -- 更新哪个表格
    set `major` = '生化' -- 将什么更新成什么
    where `major` = '生物' or `major` = '化学' ; -- 将其中谁的什么进行更新
    update `student` -- 更新哪个表格
    set `name` = '小辉',`major` = '生化' -- 将什么更新成什么
    where `student_id`=1 ; -- 将其中谁的什么进行更新
    -- 不加条件则都改
    update `student` -- 更新哪个表格
    set `major` = '物理'; -- 将其中谁的什么进行更新,都改成了生化
    
    delete from `student`
    where `student_id` = 3; -- 删除表格中的数据
    -- 条件也可以设置多个
    delete from `student`
    where `name` = '小白' and `major`='物理'; -- 删除表格中的数据
    
    delete from `student`; -- 删除所有的资料

    七、取得资料

    -- 取得资料
    select * from `student`; -- 取得表格的全部资料
    select `name` from `student`; -- 只取得表格的对应数据
    select `name`, `major` from `student`; -- 取得表格的对应多个数据
    select * from `student` ORDER BY `score`; -- 取得表格的全部资料,并排序(默认正序)
    select * from `student` ORDER BY `score` DESC; -- 取得表格的全部资料,并排序(由高到低,asc是由低到高)
    select * from `student` ORDER BY `score` ,`student_id`; -- 取得表格的全部资料,并排序(先有score做排序,score中相同的再由student_id做排序)
    select * from `student` LIMIT 3 ; -- 限制资料范围
    select * from `student` ORDER BY `score` LIMIT 3 ; -- 排序并限制资料范围
    select * from `student` where `major`= '英语'; -- 查找对应资料
    select * from `student` where `major`= '英语' and `student_id` = 1; -- 查找对应资料(多条件)
    select * from `student` where `major` in('历史','英语','生物'); -- 查找对应资料(多条件)1

    八、创建公司资料库

    CREATE DATABASE `sql_tutorial`;  -- 创建资料库
    SHOW databases;        -- 展示资料库
    use `sql_tutorial`; -- 选择使用的资料库
    
    create table `employee`(
            `emp_id` int primary key, -- 第一列
        `name` varchar(20), -- 第二列,20指的是最大字符长度
        `bath_date` date, -- 第三列
        `sex` varchar(1),
        `salary` int,
        `branch_id` int,
        `sup_id` int
    ); -- 创建表格并设计属性
    create table `branch`(
            `branch_id` int primary key , -- 第一列
        `branch_name` varchar(20), -- 第二列
        `manager_id` int, -- 第三列,20指的是最大字符长度
        foreign key (`manager_id`) references `employee`(`emp_id`) on delete set null -- 设置好外键(选择什么是并对应什么表格的什么属性)
    ); -- 创建表格并设计属性
    -- 补充外键(外表格对应)
    alter table `employee` -- 在什么表格上进行更新
    add foreign key(`branch_id`) -- 在他的什么属性上
    references `branch`(`branch_id`) -- 从哪的什么属性对应
    on delete set null;
    -- 补充外键(内表格对应)
    alter table `employee` -- 在什么表格上进行更新
    add foreign key(`sup_id`) -- 在他的什么属性上
    references `employee`(`emp_id`) -- 从哪的什么属性对应
    on delete set null;
    create table `client`(
            `client_id` int primary key , -- 第一列
        `client_name` varchar(20), -- 第二列
        `phone` varchar(20) -- 第三列,20指的是最大字符长度
    ); -- 创建表格并设计属性
    create table `works_with`(
            `emp_id` int, -- 第一列
        `client_id` int, -- 第二列
        `total_sales` int, -- 第三列,20指的是最大字符长度
        primary key(`emp_id`,`client_id`),
        foreign key (`emp_id`) references `employee`(`emp_id`) on delete cascade, -- 设置好外键(选择什么是并对应什么表格的什么属性)
            foreign key (`client_id`) references `client`(`client_id`) on delete cascade -- 设置好外键(选择什么是并对应什么表格的什么属性)
    ); -- 创建表格并设计属性
    -- 当增加资料冲突的时候可以先将其设置为null然后再更新
    insert into `branch` values(1,'研发',null);
    insert into `employee` values(206,'xiaohuang','1998-10-08','F',50000,1,null);
    update `branch`
    set `manager_id` = 206
    where `branch_id` = 1;

    九、取得公司资料

    -- 取得对应表格所有资料
    select * from `employee`;
    -- 取得对应表格所有资料并排序(默认低到高)
    select * from `employee` order by `salary`; -- 低为加desc
    -- 增加限制取出条件
    select * from `employee` order by `salary` desc limit 3 ; -- 取出前三高
    -- 取出对应属性
    select  `name` from `employee` ;
    -- 取出对应属性的内容(且不重复)
    select distinct `name` from `employee` ;

    十、聚合函数

    -- 取得人数
    select count(*) from `employee`; -- 统计几笔资料
    select count(`sup_id`) from `employee`; -- 统计对应属性资料个数(null不计入)
    -- 增加条件取数
    select count(*)
    from `employee`
    where `bath_date` > '1970-01-01' and `sex` = 'F'; -- 统计几笔资料
    -- 计算对应的属性的平均
    select avg(`salary`) from `employee`;
    -- 计算对应的属性的总和
    select sum(`salary`) from `employee`;
    -- 取得最高的
    select max(`salary`) from `employee`;
    -- 取得最低的
    select min(`salary`) from `employee`;

    十一、万用子元

    -- %表示多个子元,_表示一个子元
    -- 取得尾数335的数据
    select * from `client` where `phone` like '%335';
    -- 取得姓艾的
    select * from `client` where `client_name` like '艾%';
    -- 取得生日是10月的
    select * from `employee` where `bath_date` like '_____10%';

    十二、联集

    -- 员工与客户合并为一列(类型必须相同)
    select `name` from `employee`
    union
    select `client_name` from `client`;
    -- 多个数据合并为多列(类型必须相同)
    select `emp_id`, `name` from `employee`
    union
    select `client_id`, `client_name` from `client`;
    -- 多个数据合并为多列(类型必须相同)顺便改个名
    select `emp_id` as `total_id`, `name` as `total_name` from `employee`
    union
    select `client_id`, `client_name` from `client`;

    十三、连接

    -- 连接
    -- 取得所有部门经理名字,这就需要先确定部门再确定经理(二表相连)
    select * from `employee` join `branch` on `emp_id` = `manager_id`;
    -- 还可以写成
    select * from `employee` join `branch` on `employee`.`emp_id` = `branch`.`manager_id`;
    -- 附加条件
    select * from `employee` left join `branch` on `employee`.`emp_id` = `branch`.`manager_id`; -- 左边的表格(join的左边)返回全部数据,右边的必须满足才可

    十四、子查询

    -- 查询套查询
    select `name` from `employee`
    where `emp_id` = (
            select `manager_id`
        from `branch`
        where `branch_name` = '研发'
    ); -- 查找研发部门的经理名字
    select `emp_id` from `employee`
    where `emp_id` in (
            select `emp_id` 
            from `works_with`
            where `total_sales` > 50000
    ); -- 销售资金超50000的人有哪些

    十五、On delete

    • On delete set null 的作用是若该数据删除了(或者说对应不到了)则会设置为null

    • On delete decade 若对应数据删除了(或者说对应不到了)则该表格的这条数据跟着删掉

    注:当为主键时则不能设置为on delete set nullcreate table `branch`(

            `branch_id` int primary key , -- 第一列
        `branch_name` varchar(20), -- 第二列
        `manager_id` int, -- 第三列,20指的是最大字符长度
        foreign key (`manager_id`) references `employee`(`emp_id`) on delete set null -- 设置好外键(选择什么是并对应什么表格的什么属性)
    ); -- 创建表格并设计属性
    create table `works_with`(
            `emp_id` int, -- 第一列
        `client_id` int, -- 第二列
        `total_sales` int, -- 第三列,20指的是最大字符长度
        primary key(`emp_id`,`client_id`),
        foreign key (`emp_id`) references `employee`(`emp_id`) on delete cascade, -- 设置好外键(选择什么是并对应什么表格的什么属性)
            foreign key (`client_id`) references `client`(`client_id`) on delete cascade -- 设置好外键(选择什么是并对应什么表格的什么属性)
    ); -- 创建表格并设计属性

    十六、Python连接MySQL

    # 导入功能包(mysql-connector-python)
    import mysql.connector
    
    # 创入连线
    connection = mysql.connector.connect(host='localhost',  # mysql的位置
                                         port='3306',  # 连接通道
                                         user='root',   # 使用者名称
                                         password='123456')  # 使用者密码
    '''connection = mysql.connector.connect(host='localhost',  # mysql的位置
                                         port='3306',  # 连接通道
                                         user='root',   # 使用者名称
                                         password='123456',   # 使用者密码
                                         database='sql_tutorial')  # 直接打开目标资料库'''
    
    # 告知开始使用操作
    cursor = connection.cursor()
    # 在对mysql操作时即用该格式:cursor.execute("你要执行的mysql语句命令")
    
    # 创建资料库
    # cursor.execute("CREATE DATABASE `qq`;")
    
    # 取得所有资料库名称
    cursor.execute("show databases;")
    records = cursor.fetchall()  # 取出回传资料库
    for r in records:
        print(r)  # 因为回传列表,为便于观察,进行循环打印
    
    # 选择资料库
    cursor.execute("use `sql_tutorial`;")
    
    # 创建表格
    
    # 告知关闭操作
    cursor.close()
    # 若要懂资料进行修改需要结尾加一个指令,这样才能提交指令生效
    connection.commit()
    # 关闭连线
    connection.close()
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Python MySQL
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    Maya(Autodesk Maya) Windows版
    Maya(Autodesk Maya) Windows版

    Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。