1. 程式人生 > >python--MySql 表記錄的操作

python--MySql 表記錄的操作

led 別名 如果 count 不能 esc run 其中 rom

表記錄的增刪改查

  ---插入表記錄 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 表記錄的操作