• 二:查询


    语法:

      select 查询列表 from 表名;

    特点:

      1.查询列表可以是:表中的字段、常量值、表达式、函数(会得到函数的返回值)

      2.查询的结果是一个虚拟的表格

    # 1 查询表中的单个字段

      Select 字段 from 表名

    # 2查询表中的多个字段

      Select 字段,字段 from 表名

    # 3 查询表中所有字段

      select  * from 表名

    # 4 查询常量值

      select 100;

      select ‘john’;

      注意:字符型和日期型的常量值必须用单引号包含起来,数值型不需要

    # 5 查询表达式

      select 100%98;

    # 6 查询函数

      select Version();

    # 7 起别名      便于理解,而且当如果要查询的字段有重名的情况,可以使用别名区分开来

      方式一:使用as

      select last_name as 姓 , first_name as 名 from employees

      方式二:使用空格

      select last_name  姓 , first_name  名 from employees

    # 8 去重

      select distinct 字段 from 表名

    # 9. +号的作用

     /*

      java中的+

        1.运算符,两个操作都为数值型

        2.连接符,只要有一个操作数为字符串

      mysql里面仅仅只有一个功能:运算符

        select 100+99;两个都为数值则做加法

        select ‘123’+90;其中一方自字符型,试图将字符型数值换成数值型

                如果转换成功。则继续做加法,失败则将字符型数值转换成0

        select null+0;  只要齐整有一个为null则结果是null

      */

    # 10 拼接字符串:将last_name和first_name拼接起来显示名字    注意:null和任何的字段拼接结果都是null

     

    USE employees;
    
    SELECT CONCAT(`last_name`,' ', `first_name`) AS 姓名 FROM `employees`;
    查询并拼接字符

    # 11.ifnull 可以用来替换上面的,如果为拼接的时候为null那么就需要ifnull函数来拼接

    SELECT
      CONCAT (`last_name`, ' ', IFNULL(`first_name`, "没有名字")) AS 姓名
    FROM
      `employees`;
    ifnull的使用

    # 12.where 条件查询

      /*
    
      语法:
    
      select
    
           查询列表
    
      from
    
          表名
    
      where
    
          筛选条件
    
      分类: 
    
        一、按条件表达式筛选
    
          条件运算符:"> " , "<", "=" , " !=     <>", ">=","<="      注:<> 是不等于
    
        二、按照逻辑表达式筛选
    
          逻辑运算符:与或非
    
            and  or  not
    
        三、模糊查询
    
          like, between and , in  ,is null
    
    */
    where条件查询的方式
    # 模糊查询
    /*
    like
        1.一般和通配符使用
            %   任意匹配0到多个字符
            _   任意匹配一个字符
            [ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符:
                转移字符或者 escape '' 转义
    between and
        1. 使用between and 可以提高语句的简洁渡
        2. 包含临界值
    in
        1.用于去判断某字段的值是否属于in列表中的某一项
        2. in列表的值类型必须统一
    is null  is not null
        =或者<> 不能用于判断是否等于null
        is 不能当做 是某个值  这个意义用,也就是不能当做 = 号用
    */
    
    
    # between and --------------------
    SELECT
        `from_date`,`first_name`,salaries.salary
    FROM
        `salaries`,`employees`
    WHERE
        salaries.salary BETWEEN 300 AND 50000;
    
    # in -----------------
    
    SELECT
        `gender`,CONCAT(`last_name`,' ', `first_name`)
    FROM 
        `employees`
    WHERE    
        `gender` IN ('M');
    模糊查询,及代码

    # 13 order by 排序查询  一般放在最后面(limit除外)

    /*
    select 
    *
    from employees
    order by 字段 desc/asc   
    1. asc是升序,desc是降序,如果不写默认是升序
    
    */
    order by升降排序

      13.1 按表达式排序

      13.2 按照别名排序

      SELECT *, first_name ASFROM `employees`
      ORDER BY LENGTH(性) DESC;
    按照别名排序

      13.3 按照函数排序(length)

      SELECT *, first_name ASFROM `employees`
      ORDER BY LENGTH(性) DESC;
    按照函数排序

      13.4 按照多个字段排序,先按谁排,就放在前面

      SELECT *, first_name ASFROM `employees`
      ORDER BY LENGTH(性) DESC , LENGTH(last_name) DESC;
    按照多个字段排序

      

  • 相关阅读:
    bzoj1303: [CQOI2009]中位数图
    bzoj1778: [Usaco2010 Hol]Dotp 驱逐猪猡(概率DP+高斯消元)
    bzoj1013: [JSOI2008]球形空间产生器sphere(高斯消元)
    bzoj1857: [Scoi2010]传送带(三分套三分)
    LibreOJ #6221. 幂数 !(数论+dfs+剪枝)
    bzoj1968: [Ahoi2005]COMMON 约数研究(数论)
    bzoj1015: [JSOI2008]星球大战starwar(并查集)
    SRM16 B-2(DP)
    数据库的增、删、改、查 (CURD)
    软件开发
  • 原文地址:https://www.cnblogs.com/BookMiki/p/14130256.html
走看看 - 开发者的网上家园