mysql数据库中表记录的玩法

一、增加表记录(相当于插入表记录)

 1. 插入完整数据(顺序插入)

    语法一:
    INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n);
    语法二:
    INSERT INTO 表名 VALUES (值1,值2,值3…值n);

2. 指定字段插入数据
    语法:
    INSERT INTO 表名(字段1,字段2,字段3…) VALUES (值1,值2,值3…);

3. 插入多条记录
    语法:
    INSERT INTO 表名 VALUES
        (值1,值2,值3…值n),
        (值1,值2,值3…值n),
        (值1,值2,值3…值n);
        
4. 插入查询结果
    语法:
    INSERT INTO 表名(字段1,字段2,字段3…字段n) 
                    SELECT (字段1,字段2,字段3…字段n) FROM 表2
                    WHERE …;

二、更新表记录

  1、格式:

语法:
    UPDATE 表名 SET
        字段1=值1,
        字段2=值2,
        WHERE CONDITION;
示例:
    UPDATE mysql.user SET password=password(‘123’) 
        where user=’root’ and host=’localhost’;

  2、注意:

    update 是用于修改或者说是更新数据记录,而set是设置更新那些字段(列)对应什么值,where是一个限制条件,只要与where连用才能精确的定位某一个数据记录,然后将其修改,如果没有where语句,那么就相当于是修改列下所有的数据记录。

三、删除表记录

  1、delete from table_name [where 条件字句];  ge:delete from user where password='' '' 这就是所有用户删除密码

  2、truncate table table_name;

  3、注意1和2都是删除表记录的,但是如果想删除表中某一行记录建议选择1,如果想删除表中所有记录选择2,删除表所有数据时1是先读取整张表的数据然后逐条删除,2是直接把表删除然后新建一张字段一样的表。

四、查询表记录

  1、格式:

    select *| 字段名1 [as] [别名],字段名2 [as] [别名],... from table_name where  字段名  字句条件

                          group by 字段名 字句条件

                          having 筛选条件

                          order by 字段名 [desc|asc]

                          limit  限制条件;

  2、where字句中可以使用:

    2.1 > < >= <= <> !=   表示比较运算符:

    2.2 between sum1 and sum2 表示值在sum1和sum2之间的数据

    2.3 in(sum1,sum2......)  表示所要查询在括号内的值

    2.4 like '字符串%‘  表示模糊查询

    2.5 and or not   表示逻辑查询

  3、order by 字句

    3.1 order by 是让查询出来的记录按照顺序有序显示出来,其中默认的是按照asc从小到大排序,也可以按照desc从大到小排序,但必须写在句末。

    3.2格式:

      select * from table_name order by 字段名 [desc|asc];

  4、limit 字句

    4.1用于限制查询出的数据记录条数

    4.2 格式:

      select * from table_name limit sum1[,sum2];

    4.3 eg:

      select * from table_name limi 2,5;    表示跳过前2行从第三行开始显示5行

  5、正则表达式:

    5.1 regexp 可以支持^ {sum} $,其中^表示以什么开头,$表示以什么结尾,{sum}表示出现多少次

    5.2 eg:

      select * from table_name where 字段名 regexp '^x' ;  表示查找以x开头的数据记录

      select * from table_name where 字段名 regexp 'x$' ;  表示查找以x结尾的数据记录

      select * from table_name where 字段名 regexp 'x{2}' ;  表示查找x出现两次的数据记录

  6、聚合函数:

    6.1 count(列名):统计行数,相当于统计一列中有多少行。

        eg: select count(列名) from table_name;

    6.2 sum(列名) : 统计列中的和,相当于把一列中的数据相加起来。

        eg: select sum(列名) from table_name;  

    6.3 avg(列名):统计一列中的平均值,相当于一列中的数据相加再除以一列中的数据的行数。

        eg: select avg(列名) from table_name;

    6.4 max|min(列名):统计一列中的最大|最小值

        eg:select max(列名)|min(列名) from table_name;

  7、group by

    7.1 格式:

      select * from  table_name group by 字段名 [having  逻辑判断条件];

    7.2group by 分组后面可以和having 连用。

  8、having

    8.1 select * from table_name having 逻辑判断条件;

    8.2having和where的区别:

      使用where的地方都可以用having替换

      having可以用在分组的后面也可以在分组前面,而where只能在分组前面

      having可以使用聚合函数,而where不行

原文地址:https://www.cnblogs.com/xuanan/p/7235044.html