• (三十六)表操作


    1.插入数据----INSERT <INTO>

      1INSERT  INTO  表名(字段1,字段2....) VALUES(值1,值2....);

          按照指定的字段插入数据,值要与前面的字段一一对应。

    (2)INSERT  INTO  表名 VALUES(1,值2,值3....n)

         前面不知地你那个字段,那么后面就要按照表中字段依次插入数据。

    (3)插入多条数据

         INSERT  INTO 表名 VALUES

    (1,值2,值3,....,值n)

    (1,值2,值3,....,值n)

    (1,值2,值3,....,值n)

    (1,值2,值3,....,值n)

    (4)插入查询结果

         INSERT  INTO  1 (字段1,字段2,字段3....,字段n

    SELECT T字段1,字段2,字段3....,字段n  FROM 2 WHERE........;

    2.更新(修改)数据-----UPDATE

       UPDATE SET 字段1=1

                      字段2=2

    WHERE  条件;

     3.删除数据----DELETE

    (1) DELETE  FROM 表  WHERE 条件;

    #根据条件删除某一条记录

    (2) DELETE  FROM 表 ;

    #删除整个表中数据,但是会保留下id记录,下次再插入数据时,会从原来的id基础上继续添加。

    (3) DROP 表;

    删除掉全部的数据与(2)中的删除不一样,这个会删除掉所有的数据,下次再插入数据时,id会从1开始。

    4.查询

      from  找到表:from

    where:拿着where指定的约束条件,去文件/表中取出一条条记录

    group by:将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组

    having:将分组的结果进行having过滤

    select:执行select

    distinct:去重

    order by:将结果按条件排序:order by

    limit:限制结果的显示条数

       SELECT distinct 字段1,字段2... FROM 库名.表名 #from后面是说从库的某个表中去找数据,mysql会去找到这个库对应的文件夹下去找到你表名对应的那个数据文件,找不到就直接报错了,找到了就继续后面的操作                  WHERE 条件       #从表中找符合条件的数据记录,where后面跟的是你的查询条件

                      GROUP BY field(字段)   #分组

                      HAVING 筛选      #过滤,过滤之后执行select后面的字段筛选,就是说我要确定一下需要哪个字段的数据,你查询的字段数据进行去重,然后在进行下面的操作

                      ORDER BY field(字段)   #将结果按照后面的字段进行排序

                      LIMIT 限制条数    #将最后的结果加一个限制条数,就是说我要过滤或者说限制查询出来

    5.WHERE约束

    (1) 比较运算符: > <>=<=<>!=

    (2) between 1 and 2: 取值1和值2范围内的值。

    (3) in (1,值2,值3....,值n)

    (4) like ‘xxx%’%可以放在结尾,也可以放在开始,表示任意多的字符;

         like ’x_’:一个下划线代表一个字符。

    (5) 逻辑运算符:and or not

    6.分组查询:GROUP BY

    (1)分组发生在where之后,是基于where之后得到的记录而进行的。

    (2)将所有记录按照某个相同字段进行归类。

    (3)分组是为了来统计一些数据或者进行一些计算。

    (4)xxxxxx  GROUP  BY  字段;

    7.聚合函数

    假设employee是职工表,里面有字段depart_id等。

    SELECT COUNT(*) FROM employee;  #count是统计个数用的

        SELECT COUNT(*) FROM employee WHERE depart_id=1;  #后面跟where条件的意思是统计一下满足depart_id=1这个的所有记录的个数

        SELECT MAX(salary) FROM employee;  #max()统计分组后每组的最大值,这里没有写group by,那么就是统计整个表中所有记录中薪资最大的,薪资的值

        SELECT MIN(salary) FROM employee;

        SELECT AVG(salary) FROM employee;

        SELECT SUM(salary) FROM employee;

    SELECT SUM(salary) FROM employee WHERE depart_id=3;

     

    8.HAVING过滤

        having的语法格式和where是一模一样的,只不过having是在分组之后进行的进一步的过滤,where不能使用聚合函数,having是可以使用聚合函数的
    #!!!执行优先级从高到低:where > group by > having

    #1. Where 发生在分组group by之前,因而Where中可以有任意字段,但是绝对不能使用聚合函数。

    #2. Having发生在分组group by之后,因而Having中可以使用分组的字段,无法直接取到其他字段,having是可以使用聚合函数

     

    9.去重

    将查询的结果进行去重:select distinct post from employee; 注意distinct去重要写在查询字段的前面,不然会报错

    10.OBDER BY

    SELECT * FROM employee ORDER BY salary; #默认是升序排列

        SELECT * FROM employee ORDER BY salary ASC; #升序

        SELECT * FROM employee ORDER BY salary DESC; #降序

    11.使用正则表达式查询

    #之前我们用like做模糊匹配,只有%_,局限性比较强,所以现在可以考虑用正则
    SELECT * FROM employee WHERE name REGEXP '^ale';

    SELECT * FROM employee WHERE name REGEXP 'on$';

    SELECT * FROM employee WHERE name REGEXP 'm{2}';

     

     

     

  • 相关阅读:
    Delphi高手突破第二章(1),堆与栈,构造与析构函数
    终于懂了:TWinControl与TCustomControl真正区别之处(TWinControl系统自绘,TCustomControl是Delphi自绘)
    Delphi高手突破第二章(3),封装,继承,多态
    不浪费自己一点一滴精力和体力在与自己目标不相干的事情上
    Delphi高手突破第二章(2),对象大小,类方法与类引用,错误的面向对象设计
    推荐微软Windows 8 Metro应用开发虚拟实验室
    利用TCP传输协议实现基于Socket的聊天程序
    持续集成
    Android 4.1 Surface系统变化说明
    自动化测试整理 STAF/STAX & Robot Framework
  • 原文地址:https://www.cnblogs.com/asia-yang/p/10356247.html
Copyright © 2020-2023  润新知