python--MySql 表记录的操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--MySql 表记录的操作相关的知识,希望对你有一定的参考价值。

表记录的增删改查

  ---插入表记录 INSERT

    -- 插入一条数据  

      INSERT [INTO] table_name (字段名称,...) VALUES(值,...);

    ---插入多条数据

      INSERT [INTO] table_name (字段名称,...) VALUES(值,...),

                            (值,...),

                            ...

                            (值,...);

 

  ---修改表记录 UPDATE

    UPDATE table_name SET 字段=值,字段=值... WHERE 字句;

 

  ---删除表记录

    DELETE FROM table_name [WHERE 字句];

    /*    
如果不跟where语句则删除整张表中的数据 delete只能用来删除一行记录 delete语句只能删除表中的内容,不能删除表本身,想要删除表,用drop TRUNCATE TABLE也可以删除表中的所有数据,此语句首先摧毁表,再新建表。此种方式删除的数据不能在 事务中恢复。*/

    TRUNCATE TABLE table_name;

     

查询表记录(重点)

  准备表和记录:

    CREATE TABLE table_name (

        字段名称 字段数据类型 [约束],

        字段名称 字段数据类型 [约束],

        ...

        字段名称 字段数据类型 [约束],

        );

    INSERT [INTO] table_name (字段名称,...) VALUES (值,...),

                          (值,...),

                          ...

                          (值,...);

  -- 查询语法:

    SELECT *|field1,filed2 ... FROM table_name

    WHERE 条件

    GROUP BY field

    HAVING 筛选

    ORDER BY field

    LIMIT 限制条数

 

  简单查询

    -- (1)select [distinct] *|field1,field2,......   from table_name
            -- 其中from指定从哪张表筛选,*表示查找所有列,也可以指定一个列
       -- 表明确指定要查找的列,distinct用来剔除重复行。
    -- (2)select 也可以使用表达式,并且可以使用: 字段 as 别名或者:字段 别名
     注意:不加逗号的后果:
        select name,JS from ExamResult;(√)

        select name JS from ExamResult; -- what will happen?---->记得加逗号
 

  使用where子句,进行过滤查询

    where子句中可以使用:

                     -- 比较运算符:
                        > < >= <= <> != (后面两条都是表示不等于)
                        between 80 and 100 值在80到100之间
                        in(80,90,100) 值是80或90或100
                        like ‘yuan%‘  

       like ‘李___‘  
        /*   %表示任意多字符   _则表示一个字符李_,两个_则表示两个字符:__    */             

       

      -- 逻辑运算符

       在多个条件之间可以使用逻辑运算符 and or not

  order by排序

   指定排序的列,排序的列既可是表中的列名,也可以是select 语句后指定的别名。
    select *|field1,field2... from tab_name order by field [Asc|Desc]
    -- Asc 升序、Desc 降序,其中asc为默认值 ORDER BY 子句应位于SELECT语句的结尾。

  group by分组查询

  -- 注意,按分组条件分组后每一组只会显示第一条记录
  -- group by字句,其后可以接多个列名,也可以跟having子句,对group by 的结果进行筛选。

  /*
                   having 和 where两者都可以对查询结果进行进一步的过滤,差别有:
                     <1>where语句只能用在分组之前的筛选,having可以用在分组之后的筛选;
                     <2>使用where语句的地方都可以用having进行替换
                     <3>having中可以用聚合函数,where中就不行。
                   */

  -- GROUP_CONCAT() 函数
    SELECT id,GROUP_CONCAT(name),GROUP_CONCAT(JS) from ExamResult GROUP BY id;

技术分享


技术分享

 

  聚合函数

--<1> 统计表中所有记录

            -- COUNT(列名):统计行的个数
       -- SUM(列名):统计满足条件的行的内容和
       -- AVG(列名):统计该列平均值
       -- Max、Min:统计最大值和最小值

  limit记录条数限制

   SELECT * from ExamResult limit 1;
   SELECT * from ExamResult limit 2,5;        --  跳过前两条显示接下来的五条纪录
   SELECT * from ExamResult limit 2,2;

  正则表达式

  SELECT * FROM employee WHERE emp_name REGEXP ‘^yu‘;

  SELECT * FROM employee WHERE emp_name REGEXP ‘yun$‘;

  SELECT * FROM employee WHERE emp_name REGEXP ‘m{2}‘;


























以上是关于python--MySql 表记录的操作的主要内容,如果未能解决你的问题,请参考以下文章

使用触发器对学生表操作进行日志记录

Python/MySQL表操作以及连接

提效小技巧——记录那些不常用的代码片段

Python---MySQL数据库之四大操作(增 删 改 查)

Python MySQL 插入表

python mysql操作问题