• 第二百七十八节,MySQL数据库-表内容操作


    MySQL数据库-表内容操作

    1、表内容增加

      insert into 表 (列名,列名...) values (值,值,值...);  添加表内容添加一条数据
      insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...);  添加表内容添加多条数据,多条数据括号逗号隔开
      insert into 表 (列名,列名...) select (列名,列名...) from 表;  添加表内容

    -- insert into 表 (列名,列名...) values (值,值,值...);添加表内容
    -- insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...);添加表内容
    -- insert into 表 (列名,列名...) select (列名,列名...) from 表;添加表内容
    
    INSERT INTO test (yhm,mim) VALUES ('林秀民','123456');

     

    2、删除表里内容

    delete from 表  删除表里的所有内容
    delete from 表 where id=3;  删除表里id等于3的数据
    delete from 表 where id=2 and 列名称=列值;  删除表里id等于2并且列名等于指定值的数据

    -- delete from 表
    -- delete from 表 where id=1
    -- delete from 表 where id=1 and 列名称=列值
    
    DELETE FROM test WHERE id=3;

    -- delete from 表
    -- delete from 表 where id=1
    -- delete from 表 where id=1 and 列名称=列值
    
    DELETE FROM test WHERE id=2 AND yhm='林秀民';

    3、修改表里的内容

    update 表 set 列名称= '新值';  将表里指定的列全部修改成新值
    update 表 set 列名称= '新值' where id=1;  将表里指定id的指定列修改成新值
    update 表 set 列名称= '新值' where id=6 and 列名称=指定值;   修改test表里id等于6并且mim为789456数据,的yhm列新值为王五

    -- update 表 set 列名称= '新值';  将表里指定的列全部修改成新值
    
    UPDATE test SET yhm='张三';

    -- update 表 set 列名称= '新值' where id=1;  将表里指定id的指定列修改成新值
    
    UPDATE test SET yhm='王麻子' WHERE id=5;

    -- update 表 set 列名称= '新值' where id=1 and 列名称=指定值;    修改test表里id等于6并且mim为789456数据,的yhm列新值为王五
    
    UPDATE test SET yhm='王五' WHERE id=6 AND mim='789456';

    4、查询表里的内容

    select * from 表;   查询表里的所有列,*表示所有列【不推荐使用*效率很低】
    select * from 表 where id > 1;   查询表里id大于1的所有列,*表示所有列【不推荐使用*效率很低】
    select 列,列,列 from 表 where id > 1;   查询表里id大于1的指定列
    select 列 as 临时列名,列 as 临时列名,列 as 临时列名 from 表 where id > 1;    查询表里id大于1的指定列,返回时临时改名列名称

    -- select * from 表;    查询表里的所有列,*表示所有列【不推荐使用*效率很低】
    
    SELECT * FROM test;

    -- select * from 表 where id > 1;    查询表里id大于1的所有列,*表示所有列【不推荐使用*效率很低】
    
    SELECT * FROM test WHERE id>1;

    -- select 列,列,列 from 表 where id > 1;    查询表里id大于1的指定列
    
    SELECT id,yhm FROM test WHERE id>1;

    -- select 列 as 临时列名,列 as 临时列名,列 as 临时列名 from 表 where id > 1;     查询表里id大于1的指定列,返回时临时改名列名称
    
    SELECT id AS a1,yhm AS a2,mim AS a3 FROM test WHERE id>1;

    5、操作表内容之条件

      select 列 from 表 where id > 1 and name != 'alex' and num = 12;
      select 列 from 表 where id between 5 and 16;
      select 列 from 表 where id in (11,22,33)
      select 列 from 表 where id not in (11,22,33)
      select 列 from 表 where id in (select nid from 表)

    select id,yhm,mim from test where id > 1 and yhm != '王五' and mim = 123456;     -- 查询表里id大于1并且yhm不等于王五并且mim等于123456的,数据指定列
    
    select id,yhm,mim from test where id between 10 and 16;        -- 查询表里id范围10-16之间的数据,指定的列
    
    select id,yhm,mim from test where id in (1,4,7);    -- 查询表里id为1、4、7的数据指定列
    
    select id,yhm,mim from test where id not in (11,12,13);     -- 查询表里id不为11、12、13的数据指定列
    
    select id,yhm,mim from test where id in (select id from test2);  -- 获取一张表的id作为当前表的查询id 

    WHERE表达式的常用运算符

    MYSQL运算符

    含义

    =

    等于

    小于

    大于

    <=

    小于或等于

    >=

    大于或等于

    !=

    不等于

    IS NOT NULL

    具有一个值

    IS NULL

    没有值

    BETWEEN

    在范围内

    NOT BETWEEN

    不在范围内

    IN

    指定的范围

    OR

    两个条件语句之一为真

    AND

    两个条件语句都为真

    NOT

    条件语句不为真

     

    6、操作表内容之通配符

      通配符可以做模糊查询

      select * from 表 where name like 'e%'   -e开头的所有(%表示多个字符串,表示查询开头为e后面可以是多个字符的数据)
      select * from 表 where name like '%e%'   -表示查询中间为e前后可以是多个字符的数据
      select * from 表 where name like 'e_'    -e开头的所有(_表示一个字符,表示查询开头为e后面可以是一个字符的数据)
      select * from 表 where name like '_e_'   -表示查询中间为e前后可以是一个字符的数据

    select id,yhm,mim from test where yhm like 'e%';  -- e开头的所有(%表示多个字符串,表示查询开头为e后面可以是多个字符的数据)
    
    select id,yhm,mim from test where yhm like '%e%';  -- 表示查询中间为e前后可以是多个字符的数据 
    
    select id,yhm,mim from test where yhm like 'e_' ;  -- e开头的所有(_表示一个字符,表示查询开头为e后面可以是一个字符的数据)
    
    select * fromwhere name like '_e_';  -- 表示查询中间为e前后可以是一个字符的数据

    7、操作表内容之限制

      限制一般做分页

      select * from 表 limit 5;   - 查询前5行
      select * from 表 limit 4,5;    - 从第4行开始查询5行
      select * from 表 limit 5 offset 4  - 从第4行开始查询5行

    select id,yhm,mim from test limit 5;            -- 查询前5行
    
    select id,yhm,mim from test limit 4,5;          -- 从第4行开始查询5行
    
    select id,yhm,mim from test limit 5 offset 4    -- 从第4行开始查询5行

    8、操作表内容之排序

      一般默认是从第一列id排序的

      select * from 表 order by 排序列 asc;   - 根据 “列” 从小到大排列
      select * from 表 order by 排序列 desc;   - 根据 “列” 从大到小排列
      select * from 表 order by 排序列1 desc,排序列2 asc;   - 根据 “列1” 从大到小排列,如果排序列1数据有相同,则按列2从小到大排序

     select id,yhm,mim from test order by id asc;      -- 根据 “列” 从小到大排列(asc从小到大排列)
    
    select id,yhm,mim from test order by id desc;      -- 根据 “列” 从大到小排列(desc从大到小排列)
    
    select id,yhm,mim from test order by id desc,mim asc;    -- 根据 “列1” 从大到小排列,如果排序列1数据有相同,则按列2从小到大排序

    9、操作表内容之分组 

      分组一般就是一个分组列记录每条数据所属什么类型如:普通会员、超级会员、黄金会员

     

      select 分组列 from 表 group by 分组列; -查询分组列里有什么分组

    -- select 分组列 from 表 group by 分组列;        -查询分组列里有什么分组
    select fzu from test group by fzu;

      select 分组列,COUNT(分组列) from 表 group by 分组列; -查询统计每个分组的数量

    -- select 分组列,COUNT(分组列) from 表 group by 分组列;        -查询统计每个分组的数量
    select fzu,COUNT(fzu) from test group by fzu;

      select MAX(列),分组列,COUNT(分组列) from 表 group by 分组列; -查询表里的分组,MAX(列)显示当前分组里最大的id、显示分组、COUNT(分组列)显示当前分组统计数
    分组常用函数:
      MAX(列):显示当前组里指定列最大的数据
      MIN(列):显示当前组里指定列最小的数据
      COUNT(分组列):统计所属当前分组的数据
      sum(列):显示当前组指定列相加的和
      avg(列):显示当前组指定列的平均数

    -- select MAX(列),分组列,COUNT(分组列) from 表 group by 分组列;  -查询表里的分组,MAX(列)显示当前分组里最大的id、显示分组、COUNT(分组列)显示当前分组统计数
    -- 分组常用函数:
    -- MAX(列):显示当前组里指定列最大的数据
    -- MIN(列):显示当前组里指定列最小的数据
    -- COUNT(分组列):统计所属当前分组的数据
    -- sum(列):显示当前组指定列相加的和
    -- avg(列):显示当前组指定列的平均数

    select MAX(id),MIN(id),SUM(id),avg(id),fzu,COUNT(fzu) from test group by fzu;

      select 列 from 表 group by 分组表 having COUNT(统计列) > 3   -查看表里分组里、指定列大于10的、指定列信息

    -- select 列 from 表 group by 分组表 having COUNT(统计列) > 3   -查看表里分组里、指定列大于10的、指定列信息
    select fzu from test group by fzu having COUNT(fzu) > 3

      注意:group by 必须在where之后,order by之前

    10、操作表内容之组合

      组合就是将两张表数据显示出来,注意两张表显示的列数量要是一样的

      UNION组合

    SELECT id,yhm FROM test
    UNION
    SELECT id,gzi FROM text2;

      如果组合两张表都只显示1列、那么相同的数据会被去重。

    SELECT id FROM test
    UNION
    SELECT id FROM text2;

      如果不想去重就在UNION后面加上all

    SELECT id FROM test
    UNION ALL
    SELECT id FROM text2;

  • 相关阅读:
    1216
    构建之法 1 2 3
    复利计算
    实验总结
    0916编译原理第二次上机作业
    0909第一次作业
    linux 更新jdk
    Java中使用OpenSSL生成的RSA公私钥进行数据加解密
    quartz定时任务时间表达式说明
    IntelliJ IDEA使用说明
  • 原文地址:https://www.cnblogs.com/adc8868/p/6937923.html
Copyright © 2020-2023  润新知