二:查询

语法:

  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;
按照多个字段排序

  

 

posted @ 2020-12-13 20:55  晴晴小可爱的小弟  阅读(99)  评论(0编辑  收藏  举报