MySQL查询语句

MySQL自我学习路线

  • 一、普通查询
    • 1. 查询单个字段
    • 2. 查询多个字段
    • 3. 查询全部字段
    • 4. 查询出的字段显示为中文
  • 二、条件查询
    • 1. MySQL常见运算符
      • 1.1 算术运算符
      • 1.2 比较运算符
      • 1.3 逻辑运算符
      • 1.4 位运算符
    • 2. 条件查询举例

一、普通查询

1. 查询单个字段

所用数据库链接地址

  • 查询学生姓名
SELECT sname FROM student;

MySQL查询语句_第1张图片

2. 查询多个字段

  • 查询学生姓名、年龄
SELECT sname,sage FROM student;

MySQL查询语句_第2张图片

3. 查询全部字段

  • 尽量不使用或不使用 *
  • 查询所有学生信息
SELECT * FROM student; 
SELECT sno,sname,ssex,sage,dept FROM student;

MySQL查询语句_第3张图片

4. 查询出的字段显示为中文

  • AS可以省略
SELECT sno AS '学号',sname AS '姓名',ssex AS '性别',sage AS '年龄',dept AS '系别' FROM student;

MySQL查询语句_第4张图片

二、条件查询

  • 使用where,且where必须放到from语句之后

1. MySQL常见运算符

1.1 算术运算符

运算符 作用
+ 加法运算
- 减法运算
* 乘法运算
/ 除法运算
% 求余运算

1.2 比较运算符

  • 一个比较运算符的结果总是1、0或者是NULL
运算符 作用
== 等于
<=> 安全的等于
<>(!=) 不等于
<= 小于等于
> 大于
IS NULL 判断一个值是否为NULL
IS NOT NULL 判断一个值是否不为NULL
LEAST 在有两个或多个参数时,返回最小值
GREATEST 当有2或多个参数时,返回最大值
BETWEEN AND 判断一个值是否落在两个值之间
ISNULL 与IS NULL作用相同
IN 判断一个值是否落在两个值之间
NOT IN 判断一个值不是IN列表中的任意一个值
LIKE 通配符匹配
REGEXP 正则表达式匹配
  • 安全的等于
    这个操作符合=操作符执行相同的比较操作,不过<=>可以用来判断NULL值,在两个操作数均为NULL时,其返回值为1而不为NULL,而当一个操作数为NULL时,其返回值为0而不为NULL
  • IS NULL(ISNULL),IS NOT NULL运算符
    IS NULL和ISNULL检验一个值是否为NULL,如果为NULL,返回值为1。否则返回值为0;IS NOT NULL检验一个值是否为非NULL,如果非NULL,返回值为1;否则返回值为0
    NULL为空,但不是空串,为NULL可以设置这个字段不填值,如果查询为NULL的字段,采用IS NULL
  • BETWEEN AND运算符
    符合返回值为1,否则返回值为0
    between…and…用在数字方面表示左闭右闭,用在字符串方面表示左闭右开,另外and优先级大于or,同时存在要加括号来区分
  • LEAST运算符
    LEAST(值1,值2,…值n),其中值n表示参数列表中有n个值,在有两个或多个参数的情况下,返回最小值,假如任意一个自变量为NULL,则LEAST()的返回值为NULL
  • GREATEST运算符
    GREATEST(值1,值2,…值n),其中n表示参数列表中有n个值,当有2个或多个参数时,返回值为最大值,假如任意一个自然变量为NULL,则GREATEST()的返回值为NULL
  • IN、NOT IN运算符
    IN运算符用来判断操作数是否为IN列表中的其中一个值,如果是,返回值为1;否则返回值为0
    in等同于or,所以in后面的值不是区间,而是具体的值
  • LIKE运算符
    ‘%’,匹配任意多个字符,甚至包括0字符;‘_’,只能匹配一个字符
    expr LIKE 匹配条件,如果expr满足匹配条件,则返回值为1(TRUE);如果不匹配,则返回值为0(FALSE)。若expr或匹配条件中任何一个为NULL,则结果为NULL
  • REGEXP运算符
    expr REGEXP 匹配条件,如果expr满足匹配条件,返回1;如果不满足,则返回0;若expr或匹配条件任意一个为NULL,则结果为NULL
    ‘^’匹配以该字符后面的字符开头的字符串
    ‘.’匹配任何一个单字符
    ‘[…]’匹配在方括号内的任何字符,例如,”[abc]”匹配”a”、”b”或”c”。为了命名字符串的范围,使用一个’-‘。”[a-z]”匹配任何字母,而”[0-9]”匹配任何数字
    ‘*’匹配0个或多个在它前面的字符

1.3 逻辑运算符

运算符 作用
NOT或者! 逻辑非
AND或者&& 逻辑与
OR或者
XOR 逻辑异或

1.4 位运算符

运算符 作用
& 位与
^ 位异或
<< 位左移
>> 位右移
~ 位取反

2. 条件查询举例

  • 查询年龄为21的学生姓名
SELECT sname FROM student WHERE sage = 21;
  • 查询年龄不为21的学生姓名
SELECT sname FROM student WHERE sage <> 21;
  • 查询年龄在19到20岁的学生姓名(包括19和20岁)
SELECT sname FROM student WHERE sage BETWEEN 19 AND 20;
  • 查询成绩为NULL的学号
SELECT sno FROM sc WHERE grade IS NULL;
  • 查询年龄为19岁并且是计算机系的学生姓名
SELECT sname FROM student WHERE sage = 19 AND dept = '计算机系'
  • 查询年龄为19岁或者是计算机系的学生姓名
SELECT sname FROM student WHERE sage = 19 OR dept = '计算机系'
  • 查询年龄是19岁或20岁的学生姓名
SELECT sname FROM student WHERE sage IN(19,20)
  • 查询年龄不是19岁和20岁的学生姓名
SELECT sname FROM student WHERE sage <> 19 AND sage <> 20
SELECT sname FROM student WHERE NOT(sage = 19 OR sage = 20)
SELECT sname FROM student WHERE sage NOT IN(19,20)
  • 查询姓名以张开头的学生学号、姓名
SELECT sno,sname FROM student WHERE sname LIKE '张%'
  • 查询姓名中第二个字符为“小”的学生学号、姓名
SELECT sno,sname FROM student WHERE sname LIKE '_小%'
  • 查询姓名中包含小的学生学号、姓名
SELECT sno,sname FROM student WHERE sname LIKE '%小%'

你可能感兴趣的:(MySQL,mysql,数据库,sql)