zoukankan      html  css  js  c++  java
  • Database学习

    mysql数据操作


     

    查询语法

    select * | field1,field1 ... from 表名
            where  条件
            group by 字段
            having 筛选
            order by 字段
            limit 显示条数

      

      条件查询记录

         select * from 表名;
    select 字段名 from 表名; select distinct 字段名 from 表名; //distinct 可以去重字段数据 //salary 非空字段 select 字段 as 别名 [,字段 as 别名] from 表名; //别名应用,只显示,并不影响存储数据. select 字段名 from 表名 where 条件; // where 语句中可以使用的: 运算符 : > , < , = , <=,>=, !=,<> 区间: 字段 between 10 and 100 //值在 10 到100 之间的 包含关系: 字段 in (10,20,30) //值是10或20或30 匹配数据: 字段 like 'he %' // %表示任意多字符, _表示一个字符. 逻辑运算: and , or ,is 正则表达式: regexp "正则表达式" //having 语句中可以使用的:(跟where 区别是group by 后不能用where) 运算符 : > , < , = , <=,>=, !=,<> 区间: 字段 between 10 and 100 //值在 10 到100 之间的 包含关系: 字段 in (10,20,30) //值是10或20或30 匹配数据: 字段 like 'he %' // %表示任意多字符, _表示一个字符. 逻辑运算: and , or ,is 正则表达式: regexp "正则表达式"

                  where 跟 having 区别:

                        1.where 语句只能在分组之前筛选,having可以用在分组之后的筛选;

                        2.使用where语句的地方都可以用having进行替换

                        3.having中可以用聚合函数,where中不能

      order by 排序(默认升序)

     select 字段名 from 表名 where 条件 order by 字段;       (升序)
     select 字段名 from 表名 where 条件 order by 字段 desc;  (降序)        

      group by 分组查询

    group by 分组查询:
    注意,按分组条件分组后每一组只会显示第一条记录
    其后可以接多个列名,也可以跟having字句,对group by 的结果进行筛选.
                     
    select * from 表名  group by 字段名  
                       
    select * from 表名  group by 2  //表示以表第二个字段分组查询            

      limit 查询

    select * from 表名 limit 2;   //显示前两条
    select * from 表名 limit 2 , 2 ;  //跳过2条显示2条

      exists 关键字

    select * from 表名  where exists 条件
    在where
    exists 返回是一个 true/false ,true则执行select * from 表名,false 返回为空.

      聚合函数:

    常用的组函数

    ①每个组函数接收一个参数

    ②默认情况下,组函数忽略列值为null的行,不参与计算

    ③有时,会使用关键字distinct剔除字段值重复的条数

      注意:

      1)当使用组函数的select语句中没有group by子句时,中间结果集中的所有行自动形成一组,然后计算组函数;

      2)组函数不允许嵌套,例如:count(max(…));

      3)组函数的参数可以是列或是函数表达式;

      4)一个SELECT子句中可出现多个聚集函数.

     查询过程中 各语句的执行顺序:

      重点:

      select , from , where , group by , having , order by 执行顺序.

           mysql 在执行sql语句时的执行顺序:

           from  > where  > select > group by > having > order by


    插入数据

    # set方式插入
    insert into 表名 set 字段 = 数值;
    
    # 一次性插入多个
    insert into 表名 (字段1, 字段2) values('数值1', '数值2'),('数值1', '数值2');
    
    # 插入时有主键冲突,改为更新字段操作
    insert into 表名 (字段1, 字段2) values('数值1', '数值2') on duplicate key update '字段2 = '数值2';
    
    #冲突替换,否则插入
    replace into 表名(字段1, 字段2) values('数值1', '数值2');

    修改数据

    update 表名 set 字段名 = 新数值[,字段名 = 新数值]  where 筛选修改字段 = 筛选数值;

    删除数据

    delete from 表名 where 筛选删除字段 = 筛选数值[or/and  筛选删除字段 = 筛选数值];

    删除表

    delete table 表名 ;
    truncate 表名; //这种操作会删除表后重新建同名表,字段多时
  • 相关阅读:
    Windows身份验证和混合验证的差别
    Codeforces Round #273 (Div. 2) --B Random Teams
    带输出參数的存储过程的定义,以及在aso.net中调用
    数字统计
    UVa10048_Audiophobia(最短路/floyd)(小白书图论专题)
    C语言之基本算法21—可逆素数
    我在CSDN开通博客啦!
    小谈并查集及其算法实现
    C#高级编程五十四天----Lookup类和有序字典
    开发人员调试工具Chrome Workspace
  • 原文地址:https://www.cnblogs.com/Anec/p/9889566.html
Copyright © 2011-2022 走看看