发表于 2018-10-6 12:17:22

MySQL--4 查询

  #查询的基本语法
  select*from 表名;
  from关键字后面写表名,表示数据来源于是这张表
  select后面写表中的列名,如果是**表示在结果中显示表中所有列
  在select后面的列名部分,可以使用as为列起别名,这个别名出现在结果集中
  如果要查询多个列,之间使用逗号分隔
  例:

  select>  消除重复行
  在select后面列前使用distinct可以消除重复的行
  select distinct gender from students;
  #条件
  使用where子句对表中的数据筛选,结果为true的行会出现在结果集中
  语法如下:
  select * from 表名 where 条件;
  比较运算符
  等于=
  大于>
  大于等于>=
  小于<
  小于等于  查询编号不大于4的科目

  select * from subjects where>  查询姓名不是“黄蓉”的学生
  select * from students where sname!='黄蓉';
  查询没被删除的学生
  select * from students where isdelete=0;
  #逻辑运算符
  and
  or
  not
  查询编号大于3的女同学

  select * from students where>  查询编号小于4或没被删除的学生

  select * from students where>  #模糊查询
  like
  %表示任意多个任意字符
  _表示一个任意字符
  查询姓黄的学生
  select * from students where sname like &quot;黄%&quot;;
  查询姓黄并且名字是一个字的学生
  select * from students where sname like &quot;黄_&quot;;
  查询姓黄并且名字是两个字的学生
  select * from students where sname like &quot;黄__&quot;;
  查询姓黄或叫靖的学生
  select * from students where name like &quot;黄%&quot; or sname like &quot;%靖%&quot;;
  查询名字中有龙的学生
  select * from students where name like &quot;%龙%&quot;;
  #范围查询
  in表示在一个非连续的范围内
  查询编号是1或3或8的学生

  select * from students where>  between ... and ...表示在一个连续的范围内
  查询学生是3至8的学生

  select * from students where>  查询学生是3至8的男生

  select * from students where>  PS:当一个查询语句中有多个and时,优先匹配between and作为一组,where 语句后自左向右依次匹配,遇到一个between与之后面的and先匹配成一组,最后才是逻辑运算符的and,逻辑运算符的优先级较低。
  #空判断
  注意:null与''是不同的
  判空is null
  查询没有填写地址的学生
  select * from students where hometown is null;
  判非空is not null
  查询填写了地址的学生
  select * from students where hometown is not null;
  查询填写了地址的女生
  select * from students where hometown is not null and gender=0;
  #优先级
  小括号,not,比较运算符(与between同级),逻辑运算符
  and比or先运算,如果同时出现并希望先算or,需要结合()使用

页: [1]
查看完整版本: MySQL--4 查询