Mysql_2-2使用Where句子查询

89 阅读3分钟

Mysql_2-2使用Where句子查询

在MySQL中,WHERE子句用于过滤记录,以便只返回满足指定条件的数据行。

一、 WHERE条件中的运算符:

image-20241106151019922

二、 语句查询使用:

  • 1.等于(=):

    SELECT * FROM table_name WHERE column1 = 'value';
    
  • 2.不等于(<> 或 !=):

    SELECT * FROM table_name WHERE column1 != 'value';
    
  • 3.大于(>):

    SELECT * FROM table_name WHERE column1 > value;
    
  • 4.小于(<):

    SELECT * FROM table_name WHERE column1 < value;
    
  • 5.大于等于(>=):

    SELECT * FROM table_name WHERE column1 >= value;
    
  • 6.小于等于(<=):

    SELECT * FROM table_name WHERE column1 <= value;
    
  • 7.模糊匹配(LIKE):

    SELECT * FROM table_name WHERE column1 LIKE 'pattern';
    
  • 8.使用IN:

    SELECT * FROM table_name WHERE column1 IN (value1, value2, ...);
    
  • 9.使用BETWEEN:

    SELECT * FROM table_name WHERE column1 BETWEEN value1 AND value2;
    
  • 10.使用AND和OR组合条件:

    SELECT * FROM table_name WHERE column1 = 'value1' AND column2 = 'value2';
    
    SELECT * FROM table_name WHERE column1 = 'value1' OR column2 = 'value2';
    
  • 11.使用正则表达式(REGEXP):

    SELECT * FROM table_name WHERE column1 REGEXP 'pattern';
    
  • 12.空值检查(IS NULL 或 IS NOT NULL):

    SELECT * FROM table_name WHERE column1 IS NULL;
    
    SELECT * FROM table_name WHERE column1 IS NOT NULL;
    
  • 13.使用NOT:

    SELECT * FROM table_name WHERE NOT column1 = 'value';
    
  • 14.子查询:

    SELECT * FROM table_name WHERE column1 IN (SELECT column1 FROM another_table WHERE condition);
    

三、 实例:

  • a. 查询所有男生的信息。

    •       SELECT  *  FROM student   WHERE ssex='男';
      

      img

  • b. 查询所有成绩大于80分的学生的学号和成绩。

    •       SELECT sno AS '学号',degree AS'成绩' FROM sc WHERE degree>80;
      

      img

  • c. 查询所有男生的学号、姓名、系别及出生日期。

    •       SELECT sno, sname,sdept,sbirthday FROM student WHERE ssex='男';
      

      img

  • d. 查询计算机工程系全体学生的名单。

    •       SELECT sname  FROM student WHERE sdept='计算机工程系';
      

      img

  • e. 查询考试成绩不及格的学生的学号。

    •       SELECT DISTINCT sno FROM sc  WHERE degree<60;
      

      img

  • f. 查询计算机工程系女生的信息。

    •       SELECT * FROM student WHERE sdept='计算机工程系' AND ssex='女';
      

      img

  • g. 查询成绩在90分以上或不及格的学生学号和课程号信息。

    •       SELECT sno,cno FROM sc WHERE degree>90 or degree<60;
      

      img

  • h. 查询非计算机工程系的学生信息。

    •       SELECT * FROM student  WHERE NOT sdept='计算机工程系';
      

      img

    •       SELECT * FROM student WHERE sdept<>'计算机工程系';
      

      img

  • i. 查询成绩在60~70分的学生学号及成绩。

    •       SELECT sno, degree FROM sc WHERE degree BETWEEN 60 AND 70;
      

      img

  • j. 查询所有姓李的学生的个人信息。

    •       SELECT  * FROM student   WHERE sname LIKE '李%';
      

      img

  • k. 查询生源地不是山东省的所有学生信息。

    •       SELECT * FROM student WHERE saddress NOT LIKE '%山东省%';
      

      img

  • j. 查询名字中第2个字为“阳”字的学生的姓名和学号。

    •       SELECT sname,sno FROM student WHERE sname LIKE '_阳%';
      

    img

  • k. 查询学号为“2007030416”的学生姓名和性别。

    •       SELECT sname,ssex   FROM student WHERE sno LIKE '2007030416';
      

    img

  • l. 查询家庭住址以“济”开头的学生信息。

    •       SELECT *  FROM student WHERE saddress REGEXP '^济';
      

    img

  • m. 查询学生电话号码出现“66”数字的学生信息。

    •       SELECT *  FROM student WHERE sphone REGEXP '66';
      

    img

  • n. 查询信息工程系、软件工程系和计算机工程系学生的姓名和性别。

    •       SELECT sname,ssex FROM student WHERE sdept IN('计算机工程系', '软件工程系', '信息工程系');
      

    img

  • o. 某些学生选修课程后没有参加考试,所以有选修记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。

    •       SELECT sno,cno  FROM sc  WHERE degree IS NULL;
      

img