Python全棧 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 | monthspa

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,...)code

    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查詢:blog

  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(字段名):統計該字段的個數it

 

練習庫:table

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,'','蜀國');

 

 

練習class

    一、建立庫 studb2

    二、在庫中建立表 t1 ,字段有3個:name、age、phnumber

    三、查看錶結構

    四、在表中第一列添加一個 id 字段

    五、把 phnumber 的數據類型改成 bigint

    六、在表中最後一列添加一個字段 address

    七、刪除表中的 age 字段

    八、查看錶結構

答案:

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;

練習

    一、在表中插入3條記錄

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

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

    四、查找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";

 

練習

    一、查詢1天之內的記錄

    二、查詢1年之前的記錄

    三、查詢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);

 

練習(表hero)

    一、查找全部蜀國人的信息

    二、查找全部女英雄的姓名、性別和國家

    三、把id爲2的記錄改成典韋,性別男,國家魏國

    四、刪除全部蜀國英雄

    五、把貂蟬的國籍改成魏國

    六、刪除全部表記錄

答案:

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;

 

練習

      一、找出攻擊值高於200的蜀國英雄的名字、攻擊力

      二、將吳國英雄中攻擊值爲110的英雄的攻擊值改成100,防護力改成60

      三、查找蜀國和魏國的英雄信息

答案:

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="魏國";

練習

      一、查找攻擊值100-200的蜀國英雄信息

      二、找到蜀國和吳國之外的國家的女英雄信息

      三、找到id爲一、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="貂蟬";

      一、在蜀國英雄中,查找防護值倒數第二名至倒數第四名的英雄的記錄

      二、在蜀國英雄中,查找攻擊值前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;

      一、攻擊力最強值是多少

      二、統計id 、name 兩個字段分別有幾條記錄

## 空值 NULL 不會被統計,""會被統計

      三、計算蜀國英雄的總攻擊力

      四、統計蜀國英雄中攻擊值大於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="蜀國";

 

查詢變量  show variables1.表字段的操做   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 表名;   字符類型      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     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 | month5.表記錄管理  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  4.注意     1.NILL:空值,只能用is或is not取匹配     2.「」 : 空字符串,用 = 或  != 去匹配  5.模糊比較     1.where 字段名 like 表達式     2.表達式        1._ : 匹配單個字符        2.% :匹配0到多個字符        NULL不會被統計5.SQL查詢:     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條記錄  4.分頁     每頁顯示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,n4.集合函數 1.分類  avg(字段名):求該字段的平均值  sum(字段名):求和  max(字段名):最大值  min(字段名):最小值  count(字段名):統計該字段的個數

相關文章
相關標籤/搜索