Python全栈 MySQL 数据库 (表字段增、删、改、查、函数)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL 数据库 表字段的增、删、改、查、以及函数 命令
ParisGabriel
 
 
         每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰
 
   开局一张图
 
 


查询SQL变量 show variables

1.表字段的操作
           1.语法alter table 表名 执行动作
           2.添加字段(add)
              alter table  表名 add 字段名 数据类型;(尾插)
    alter table 表名 add 字段名 数据类型 first;(头插)
    alter table 表名 add 字段名 数据类型 after 字段名;(指定插入)
           3.删除字段(drop)
                 alter table 表名 drop 字段名;
          4.修改数据类型(modify)
                    alter table 表名 modify 字段名 新数据类型;
          5.重命名(rename)
                    alter table 表名 rename 表名;
2.字符类型
          1.字符类型宽度与数值类型宽度的区别
                     1.数值类型宽度为显示宽度只用于select查询显示
                       占用储存无关可用zerofill查看效果
         2.枚举类型
                1.单选(enum):字段名 enum(值1,值2...);
                 2.多选(set):字段名 set(值1,值2...);
                 (多项放在一个字符串内用,号隔开)
        3.日期时间类型
    1.date:“YYYY-MM-DD”
    2.time:“HH:MM:SS”
    3.datetime:“YYYY-MM-DD HH:MM:SS”
    4.timestamp:“YYYY-MM-DD HH:MM:SS”
    5.datetime不给值默认返回Null
    6.timestamp不给值默认返回系统时间

3. 日期时间函数
  1.now() 返回服务器当前的时间
  2.curdate() 返回当前时期
  3.curtime() 返回当前日期
  4.year(date) 返回指定时间的年份
  5.date(date) 返回指定时间的日期
  6.time(date) 返回指定时间的时间
4.日期时间运算
        1.语法格式
             select * from 表名
            where 字段名 运算符(时间 -interval 时间间隔单位);
              时间间隔单位:
                           1 day | 2hour | 1 minute | 2year | month

5.表记录管理
          1.删除表记录
                  1.delete from 表名 where 条件;
          注意:
                 如果不加where条件,所有记录全部清空
           2.更改表记录
                  1.update 表名 set 字段1=值1,字段名2=值2,... where 条件
       注意:
                如果不加where条件,所有记录全部更改
           3.运算符操作
                  1.数值比较/字符比较
                         1.数值比较: = != > >= < <=
                          2.字符比较: = !=
                  2.逻辑比较
                          1.and
                             2.or
                   3.范围内比较
         1.where 字段名 between 值1 and 值2
         2.where 字段名 in(值1,值2,....)
          3.where 字段名 not in (值1,值2,...)

        4.匹配空、非空
        1.空:where name is null
         2.非空:where name is not null
                        3.注意
                              1.NILL:空值,只能用isis not取匹配
                                2.“ ” : 空字符串用 = 或 != 去匹配
           4.模糊比较
                        1.where 字段名 like 表达式
                         2.表达式
          1._ : 匹配单个字符
          2.% :匹配0到多个字符
          NULL不会被统计
6.SQL查询:

  1语法顺序:

    3.select ... 聚合函数 from 表名
    1.where
    2.group by...
    4.having ...
    5.order by ...
    6.limit ...;

  2.order by
                    1.给出查询结果进行排序
                    2...order by 字段名 升序/降序
                          升序ASC默认排序方式)
                          降序DESC
        3.limit(永远SQL语句的最后
               1.作用:显示查询记录的个数
                2.用法
                     limit n     显示n条记录
                    limit m,n
                     m表示 从m+1条记录开始显示 显示n条记录
                    limit 2,3 显示第3,4,5条记录
                 3.分页
                      每页显示5条记录,显示第4页内容
                      第1页:limit 0,5 #1,2,3,4,5
                      第2页:limit 5,5
                      第3页:limit 10,5
                       第4页:limit 15,5
                      每页显示n条记录,显示第m页:
                          limit(m-1)*n,n
4.聚合函数
    avg(字段名):求该字段的平均值
    sum(字段名):求和
    max(字段名):最大值
    min(字段名):最小值
    count(字段名):统计该字段的个数





create database MOSHOU;
use MOSHOU;
create table hero(
id int,
name char(15),
sex enum("男","女"),
country char(10)
)default charset=utf8;
insert into hero values
(1,"曹操","男","魏国"),
(2,"小乔","女","吴国"),
(3,"诸葛亮","男","蜀国"),
(4,"貂蝉","女","东汉"),
(5,"赵子龙","男","蜀国"),
(6,"魏延","男","蜀国");

use MOSHOU;
create table sanguo(
id int,
name char(20),
gongji int,
fangyu tinyint unsigned,
sex enum("男","女"),
country varchar(20)
)default charset=utf8;
insert into sanguo values
(1,'诸葛亮',120,20,'男','蜀国'),
(2,'司马懿',119,25,'男','魏国'),
(3,'关羽',188,60,'男','蜀国'),
(4,'赵云',200,66,'男','魏国'),
(5,'孙权',110,20,'男','吴国'),
(6,'貂蝉',666,10,'女','魏国'),
(7,null,1000,99,'男','蜀国'),
(8,'',1005,88,'女','蜀国');
AI 代码解读


    1、创建库 studb2

    2、在库中创建表 t1 ,字段有3个:name、age、phnumber

    3、查看表结构

    4、在表中第一列添加一个 id 字段

    5、把 phnumber 的数据类型改为 bigint

    6、在表中最后一列添加一个字段 address

    7、删除表中的 age 字段

    8、查看表结构

答案:


      use studb2;
      create table t1(
      name char(20),
      age tinyint unsigned,
      phnumber char(11)
      );
      desc t1;
      alter table t1 add id int first;
      alter table t1 modify phnumber bigint;
      alter table t1 add address varchar(50);
      alter table t1 drop age;
      desc t1;
AI 代码解读


    1、在表中插入3条记录

    2、查找2018年7月2日有哪些用户充值了

    3、查找2018年7月份充值的信息

    4、查找7月30日10:00-12:00充值的信息

答案:


      insert into t7 values
      (3,"小昭",19000520,3000,20180630000000),
      (4,"赵敏",19000521,4000,20180702000000),
      (5,"周芷若",19010522,3500,20180702100000);
      select * from t7 where date(shijian)="2018-07-02";
      select * from t7 
      where 
      date(shijian)>="2018-07-01" and date(shijian)<="2018-07-31";
      select * from t7 
      where
      date(shijian)="2018-07-31" and 
      time(shijian)>="10:00:00" and 
      time(shijian)<="12:00:00";
AI 代码解读


    1、查询1天以内的记录

    2、查询1年以前的记录

    3、查询1天以前,3天以内的记录

答案:


      select * from t7 
      where shijian > (now()-interval 1 day);
      select * from t7
      where shijian < (now()-interval 1 year);
      select * from t7
      where
      shijian < (now()-interval 1 day) and
      shijian > (now()-interval 3 day);
AI 代码解读


    1、查找所有蜀国人的信息

    2、查找所有女英雄的姓名、性别和国家

    3、把id为2的记录改为典韦,性别男,国家魏国

    4、删除所有蜀国英雄

    5、把貂蝉的国籍改为魏国

    6、删除所有表记录

答案:



      select * from hero where country="蜀国";
      select name,sex,country from hero 
      where sex="女";
      update hero set name="典韦",sex="男",country="魏国" where id=2;
      delete from hero where country="蜀国";
      update hero set country="魏国" 
      where name="貂蝉";
      delete from hero;
AI 代码解读


      1、找出攻击值高于200的蜀国英雄的名字、攻击力

      2、将吴国英雄中攻击值为110的英雄的攻击值改为100,防御力改为60

      3、查找蜀国和魏国的英雄信息

答案:



        select name as n,gongji as g from sanguo
    where gongji>200 and country="蜀国";
        update sanguo set gongji=100,fangyu=60
    where country="吴国" and gongji=110;
        select * from sanguo 
    where country="蜀国" or country="魏国";
AI 代码解读


      1、查找攻击值100-200的蜀国英雄信息

      2、找到蜀国和吴国以外的国家的女英雄信息

      3、找到id为1、3或5的蜀国英雄 和 貂蝉的信息

答案:


        select * from sanguo
    where gongji between 100 and 200 and
    country="蜀国";
        select * from sanguo
    where country not in("蜀国","吴国") 
    and sex="女";
        select * from sanguo
    where 
    (id in(1,3,5) and country="蜀国") or name="貂蝉";
AI 代码解读


      1、在蜀国英雄中,查找防御值倒数第二名至倒数第四名的英雄的记录

      2、在蜀国英雄中,查找攻击值前3名且名字不为 NULL 的英雄的姓名、攻击值和国家

答案:


        select * from sanguo
        where country="蜀国"
        order by fangyu asc
        limit 1,3;
        select name,gongji,country from sanguo
        where 
        country="蜀国" and name is not NULL
        order by gongji DESC
        limit 3;
AI 代码解读

      1、攻击力最强值是多少

      2、统计id 、name 两个字段分别有几条记录

## 空值 NULL 不会被统计,""会被统计

      3、计算蜀国英雄的总攻击力

      4、统计蜀国英雄中攻击值大于200的英雄的数量


答案:


        select max(gongji) from MOSHOU.sanguo;
        select count(id),count(name) from sanguo;
        select sum(gongji) from MOSHOU.sanguo
    where country="蜀国";
        select count(*) from MOSHOU.sanguo
    where gongji>200 and country="蜀国";
AI 代码解读



相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
740
分享
相关文章
MySQL生产环境迁移至YashanDB数据库深度体验
这篇文章是作者将 MySQL 生产环境迁移至 YashanDB 数据库的深度体验。介绍了 YashanDB 迁移平台 YMP 的产品相关信息、安装步骤、迁移中遇到的各种兼容问题及解决方案,最后总结了迁移体验,包括工具部署和操作特点,也指出功能有优化空间及暂不支持的部分,期待其不断优化。
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
18天前
|
Python中的round函数详解及使用示例
`round()`函数是Python内置的用于四舍五入数字的工具。它接受一个数字(必需)和可选的小数位数参数,返回最接近的整数或指定精度的浮点数。本文详细介绍其用法、参数及示例,涵盖基本操作、负数处理、特殊情况及应用建议,帮助你更好地理解和运用该函数。
[oeasy]python069_当前作用域都有些什么_列表dir_函数_builtins
本文介绍了Python中`dir()`函数的使用方法及其作用。`dir()`可以列出当前作用域内的所有变量和成员,类似于`locals()`,但`dir()`不仅限于本地变量,还能显示模块中的所有成员。通过`dir(__builtins__)`可以查看内建模块中的所有内建函数,如`print`、`ord`、`chr`等。此外,还回顾了`try-except-finally`结构在数据库连接中的应用,并解释了为何`print`函数可以直接使用而无需导入,因为它位于`__builtins__`模块中。最后,简要提及了删除`__builtins__.print`的方法及其影响。
34 0
数据库数据恢复——MySQL简介和数据恢复案例
MySQL数据库数据恢复环境&故障: 本地服务器,安装的windows server操作系统。 操作系统上部署MySQL单实例,引擎类型为innodb,表空间类型为独立表空间。该MySQL数据库没有备份,未开启binlog。 人为误操作,在用Delete命令删除数据时未添加where子句进行筛选导致全表数据被删除,删除后未对该表进行任何操作。
Python中使用MySQL模糊查询的方法
本文介绍了两种使用Python进行MySQL模糊查询的方法:一是使用`pymysql`库,二是使用`mysql-connector-python`库。通过这两种方法,可以连接MySQL数据库并执行模糊查询。具体步骤包括安装库、配置数据库连接参数、编写SQL查询语句以及处理查询结果。文中详细展示了代码示例,并提供了注意事项,如替换数据库连接信息、正确使用通配符和关闭数据库连接等。确保在实际应用中注意SQL注入风险,使用参数化查询以保障安全性。
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
133 25

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等