• mysql--表数据操作


    查询:

    简单查询

    ####查询的字段必须在表中存在
    #### 对查询出来的数据进行修改时,不会修改原来的数据,只是修改了可视化的,我们看到的数据。
    # 查一个数据
    select 字段名  from  表名;
    
    # 查多个数据
    select 字段名,字段名,字段名......   from 表名;
    
    # 对查询出来的内容进行运算
    select 字段名*12 from 表名
    
    # 对查询出来的数据字段名去重
    ####distinct
    select distinct 某个字段 from 表;
    
    # 查询出来的字段进行重命名
    select 字段名 新名字 from 表;
    select 字段名 as 新名字 from 表;
    
    # 查询出来的内容进行拼接
    # concat
    select concat('你想要用什么拼接字段名',字段名,'你想要拼接的其他的内容','字段名')from 表;
    # 自动拼接 (确定用什么拼接,然后拼接后面的所有字段,用法类似于str方法的join方法)
    select concat_ws('你想要用什么拼接',字段名,字段名,字段名...) from 表;

    条件查询:

    1  case 语句

    ### case语句
    select 
        (case 
        when 条件(比如:name =='小明')  then  # 如果条件成立,查找下面的这个内容
             要查询的字段名
        when 条件  then  
            concat(要查询的字段名,'_可以加上拼接的内容') # 如果这个条件成立,给这个内容,拼接(其实就是对这个内容的操作,)
        else 
            concat(要查询的字段名,'拼接的内容')
        end) as 新名字  from 表名 # end 结束语句, as 起一个代名,从表中查找

    2  where 条件:

    ###where条件查询
    # where 支持 
    # 1 比较运算符 :>   <    >=    <=  <>   !=
    # 2 between 80 and 100  值在80到100之间的数
    # 3 in(80,90,100)  值为80或者90或者100
    #     not in 值不是80,90,100
    # 4 like 'e%'
         通配符可以是%或者_
        % 表示任意多个字符
         _表示一个字符    
    
    
     select 字段 fromwhere 条件;
    select 字段 fromwhere like '金%' # 表示条件为 金...的内容,后面不限字数
                                                     #'金_' 表示 金*内容,固定了字数
                                                    #'金__' 表示金**内容,固定了字数
    #tetween
    select 字段 fromwhere 字段 between 范围
    
    #身份运算符  is   /is not null
     # 用来判断你是不是为空
    
    #   regex 使用正则
    select 字段 fromwhere 字段 regexp '正则表达式'; 

    3   group by  分组

    #### group by 分组
    select 字段 fromgroup by 字段; 
    # 这个式子查出来的是根据这个分类,将相同的分成一类,并且重复的数据只显示一个,可以根据这个方法去重。
    
    
    # 显示所有数据使用group_concat
    select  group_concat(字段) fromgroup by 字段;
    # 这个式子查出来的是根据这个分类,将相同的分成一类,并显示每一类的所有数据

    4    聚合函数

    #强调:聚合函数聚合的是组的内容,若是没有分组,则默认一组
    
    示例:
        SELECT COUNT(*) FROM employee; # 查询中的数据数量
        SELECT COUNT(*) FROM employee WHERE depart_id=1; # 查询表中depart_id= 1的数据数量
        SELECT MAX(salary) FROM employee; # 查询salary字段最大的数据
        SELECT MIN(salary) FROM employee;# 查询salary字段最小的数据
        SELECT AVG(salary) FROM employee;# 查询salary字段数据的平均值
        SELECT SUM(salary) FROM employee;
        SELECT SUM(salary) FROM employee WHERE depart_id=3;# 查询depart_id=3的数据总和

    5   having  过滤

    ###having
    #对分组进行条件过滤,一般都和group by连用
     select post,group_concat(emp_name) from emp group by post having salary > 10000;#错误,分组后无法直接取到salary字段,使用条件字段时,我们必须要先查找这个数据
    
    mysql> select 字段,group_concat(字段) fromgroup by 字段 having avg(字段) > 10000; 
    # 查找分组中的数据
    
    
    
    # 如果我们想要使用having当做条件查询 
    # 那么他的条件就要先找出来才能使用
    select emp_name,age from emloyee having age>18;
    
    #select * 的时候,我们默认这个将整个表当做一个分组
    select * from emloyee having age>18;

    小总结:

    #!!!执行优先级从高到低:where > group by > having 
    #1. Where 发生在分组group by之前,因而Where中可以有任意字段,但是绝对不能使用聚合函数。
    #2. Having发生在分组group by之后,因而Having中可以使用分组的字段,无法直接取到其他字段,可以使用聚合函数

    6  order  排序

    按单列排序
        SELECT * FROM employee ORDER BY salary;  # 根据salary排序,升序
        SELECT * FROM employee ORDER BY salary ASC;  #ASC是升序
        SELECT * FROM employee ORDER BY salary DESC;# desc是降序
    
    按多列排序:先按照age排序,如果年纪相同,则按照薪资排序
        SELECT * from employee
            ORDER BY age,  
            salary DESC;

    limit 

    显示前n条,limit n
    limit 1 显示一条

        SELECT * FROM employee ORDER BY salary DESC 
            LIMIT 3;                    #默认初始位置为0 
        
        SELECT * FROM employee ORDER BY salary DESC
            LIMIT 0,5; #从第0开始,即先查询出第一条,然后包含这一条在内往后查5条
    
        SELECT * FROM employee ORDER BY salary DESC
            LIMIT 5,5; #从第5开始,即先查询出第6条,然后包含这一条在内往后查5条
  • 相关阅读:
    【原】无脑操作:IDEA + maven + SpringBoot + JPA + EasyUI实现CRUD及分页
    【原】无脑操作:IDEA + maven + SpringBoot + JPA + Thymeleaf实现CRUD及分页
    【原】无脑操作:Windows 10 + MySQL 5.5 安装使用及免安装使用
    【原】无脑操作:eclipse + maven搭建SSM框架
    【原】无脑操作:eclipse创建maven工程时,如何修改默认JDK版本?
    【原】Java学习笔记031
    【原】Java学习笔记030
    【原】Java学习笔记029
    【原】Java学习笔记028
    【原】Java学习笔记027
  • 原文地址:https://www.cnblogs.com/mk-lovefreedom/p/10763756.html
Copyright © 2020-2023  润新知