Mysql_2-2使用Where句子查询
在MySQL中,WHERE子句用于过滤记录,以便只返回满足指定条件的数据行。
一、 WHERE条件中的运算符:
二、 语句查询使用:
-
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='男';
-
-
b. 查询所有成绩大于80分的学生的学号和成绩。
-
SELECT sno AS '学号',degree AS'成绩' FROM sc WHERE degree>80;
-
-
c. 查询所有男生的学号、姓名、系别及出生日期。
-
SELECT sno, sname,sdept,sbirthday FROM student WHERE ssex='男';
-
-
d. 查询计算机工程系全体学生的名单。
-
SELECT sname FROM student WHERE sdept='计算机工程系';
-
-
e. 查询考试成绩不及格的学生的学号。
-
SELECT DISTINCT sno FROM sc WHERE degree<60;
-
-
f. 查询计算机工程系女生的信息。
-
SELECT * FROM student WHERE sdept='计算机工程系' AND ssex='女';
-
-
g. 查询成绩在90分以上或不及格的学生学号和课程号信息。
-
SELECT sno,cno FROM sc WHERE degree>90 or degree<60;
-
-
h. 查询非计算机工程系的学生信息。
-
SELECT * FROM student WHERE NOT sdept='计算机工程系'; -
SELECT * FROM student WHERE sdept<>'计算机工程系';
-
-
i. 查询成绩在60~70分的学生学号及成绩。
-
SELECT sno, degree FROM sc WHERE degree BETWEEN 60 AND 70;
-
-
j. 查询所有姓李的学生的个人信息。
-
SELECT * FROM student WHERE sname LIKE '李%';
-
-
k. 查询生源地不是山东省的所有学生信息。
-
SELECT * FROM student WHERE saddress NOT LIKE '%山东省%';
-
-
j. 查询名字中第2个字为“阳”字的学生的姓名和学号。
-
SELECT sname,sno FROM student WHERE sname LIKE '_阳%';
-
-
k. 查询学号为“2007030416”的学生姓名和性别。
-
SELECT sname,ssex FROM student WHERE sno LIKE '2007030416';
-
-
l. 查询家庭住址以“济”开头的学生信息。
-
SELECT * FROM student WHERE saddress REGEXP '^济';
-
-
m. 查询学生电话号码出现“66”数字的学生信息。
-
SELECT * FROM student WHERE sphone REGEXP '66';
-
-
n. 查询信息工程系、软件工程系和计算机工程系学生的姓名和性别。
-
SELECT sname,ssex FROM student WHERE sdept IN('计算机工程系', '软件工程系', '信息工程系');
-
-
o. 某些学生选修课程后没有参加考试,所以有选修记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。
-
SELECT sno,cno FROM sc WHERE degree IS NULL;
-