5. MySQL学习第五天
5.1 SELECT简单查询
数据查询也称为数据检索,是从数据库中获取所需数据的操作和过程。用户根据实际应用的需求,可以使用不同的查询方式,以获得不同的数据。数据查询是数据库管理系统(DBMS)的重要功能之一,是数据库操作中最常用,最重要的操作
MySQL中使用SELECT语句查询数据的主要方式有:
- 查询表中一列或多列数据
- 带条件的查询
- 多表间的连接查询
- 嵌套子查询以及使用聚合函数进行统计查询
SELECT语句的基本语法:
SELECT select_expr[select_expr …]
FROM table_references
WHERE where_condition
GROUP BY col_name
HAVING where_condition
ORDER BY col_name
LIMIT row_count
结合前面提到过的Course数据库
查询单个数据表的SELECT语句:
SELECT * FROM teacher;
查询数据表中指定字段数据的SELECT语句:
SELECT
Student_name,
Student_id
FROM student;
查询数据表中指定字段数据并以别名线束的SELECT语句:
SELECT
Student_name AS 学生姓名,
Student_id AS 学生号
FROM student;
查询数据表中内容并按照条件显示指定字符:
SELECT
Student_id AS 学号,
Course_id AS 课程号,
(case when Score>=60 then '及格' else '不及格' end) AS 成绩情况
FROM choose;
条件查询:
SELECT 字段名
FROM 表名
WHERE 条件;
运算符 | 说明 |
---|---|
= | 等于 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
<>、!= | 不等于 |
IS NULL | 为空 |
IS NOT NULL | 不为空 |
BETWEEN A AND B | 在A与B之间 |
IN | 在范围内 |
NOT IN | 不再范围内 |
LIKE | 模式匹配 |
NOT LIKE | 模式不匹配 |
REGEXP | 正则表达式 |
AND、&& | 与 |
OR、|| | 或 |
NOT、! | 非 |
XOR | 异或 |
条件查询的简单实例
按学号查询某个学生的个人信息
SELECT *
FROM student
WHERE student_id = '201702020202';
查询1997年出生的学生的学号、姓名和生日信息
SELECT
student_id AS 学号,
student_name AS 姓名,
birthday AS 出生日期
FROM student
WHERE birthday>='1997-01-01' AND birthday<='1997-12-31';
查询职称为“讲师”、“副教授”的女教师的教师编号、姓名、性别和职称
SELECT
teacher_id AS 教师编号,
teacher_name AS 教师姓名,
teacher_gender AS 教师性别,
professional AS 职称
FROM teacher
WHERE teacher = '女' AND (professional = '讲师' OR professional = '副教授');
查询1997、1998年出生的学生的学号、姓名和生日信息
SELECT
student_id AS 学号,
student_name AS 姓名,
birthday AS 出生日期
FROM student
WHERE year(birthday) IN (1997,1998);
查询职称为“讲师”或“副教授”的教师信息
SELECT *
FROM teacher
WHERE professional IN ('讲师','副教授')
查询1997年出生的学生信息
SELECT *
FROM student
WHERE birthday BETWEEN '1997-01-01' AND '1997-12-31';
查询学分为3~5分的课程信息
SELECT *
FROM course
WHERE Credit BETWEEN 3 AND 5;
模糊查询
查询“王”姓男同学信息
SELECT *
FROM student
WHERE student_name LIKE '王%' AND gender = '男';
查询名字中第二个字为“娜”的同学信息
SELECT *
FROM student
WHERE student_name LIKE '_娜%';
查询家庭住址中有“重庆”字样的同学信息
SELECT *
FROM student
WHERE Home_address LIKE '%重庆%';
空值查询
查询选课时间不确定的课程信息
SELECT *
FROM course
WHERE bigin_choose_time IS NULL;