MySQL查询


所用数据库——链接地址

一、普通查询

1. 查询单个字段

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

2. 查询多个字段

  • 使用逗号隔开
  • 查询学生姓名、年龄
SELECT sname,sage FROM student;

3. 查询全部字段

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

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

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

SELECT sno '学号',sname '姓名',ssex '性别',sage '年龄',dept '系别' FROM student;

二、条件查询

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

1. MySQL常见运算符

1.1 算术运算符

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

1.2 比较运算符

  • 一个比较运算符的结果总是1、0或者是NULL
运算符作用
==等于
<=>安全的等于
<>(!=)不等于
<小于
<=小于等于
>大于
>=大于等于
IS NULL判断一个值是否为NULL
IS NOT NULL判断一个值是否不为NULL
LEAST当有2个或多个参数时,返回最小值
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连接查询

五、子查询

链接:MySQL子查询

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jayco江柯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值