所用数据库——链接地址
一、普通查询
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. 查询出的字段显示为中文
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 比较运算符
运算符 作用 == 等于 <=> 安全的等于 <>(!=) 不等于 < 小于 <= 小于等于 > 大于 >= 大于等于 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. 条件查询举例
SELECT sname FROM student WHERE sage = 21 ;
SELECT sname FROM student WHERE sage <> 21 ;
查询年龄在19到20岁的学生姓名(包括19和20岁)
SELECT sname FROM student WHERE sage BETWEEN 19 AND 20 ;
SELECT sno FROM sc WHERE grade IS NULL ;
SELECT sname FROM student WHERE sage = 19 AND dept = '计算机系'
SELECT sname FROM student WHERE sage = 19 OR dept = '计算机系'
SELECT sname FROM student WHERE sage IN ( 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子查询