"数据库教程-3"
本教程主要讲解了数据库的基础操作,特别是关于SQL的模糊查询技巧,包括LIKE、ISNULL、BETWEEN和IN等关键字的使用。以下是详细的知识点解析:
1. **LIKE 模糊查询**:LIKE关键字用于在WHERE子句中执行模糊匹配。例如,`WHERE姓名like'张%'`表示查询所有名字以“张”开头的学生。通配符`%`可以代表零个、一个或多个任意字符。如`'张%'`匹配所有以“张”开头的名字,而`'%张%'`则匹配任何包含“张”的名字。
2. **LIKE 通配符**:在SQL中,`%`是全局通配符,可以代表任意数量的字符。另一个通配符是`_`,它代表一个单一的字符。例如,`'张_'`将匹配所有名字为两个字符且第二个字符为“张”的学生。
3. **ISNULL 查询空值**:`ISNULL`函数用于查询某一列中值为空(NULL)的记录。例如,`WHERE SAddress IS NULL`将返回所有地址未填写的学生信息。如果已经删除了某些行的SAddress列值,ISNULL仍然可以检测到这些空值并返回结果。
4. **BETWEEN 模糊查询**:BETWEEN用于查询特定范围内的值。例如,`WHERE Score BETWEEN 60 AND 80`将返回所有分数在60到80之间的记录。需要注意的是,BETWEEN是包含边界值的,所以`BETWEEN 60 AND 80`会包括60和80这两个分数。
5. **IN 模糊查询**:IN关键字用于查询某一列的值在指定列表中的记录。例如,`WHERE SAddress IN ('北京', '广州', '上海')`将返回所有住址在这些城市的学生活动。
6. **应用示例**:
- `WHERE Address LIKE '%山东%'`:查询所有住址包含“山东”的学生。
- `WHERE StudentName LIKE '姜_'`:查询名字以“姜”开头且为单名(只有一个字符)的学生。
- `WHERE StudentNo = 'S1101004' AND Subject LIKE '数据库%'`:查找编号为'S1101004'的学生所有包含“数据库”字样的科目信息。
- `WHERE Phone LIKE '1387%'`:查询电话号码以“1387”开头的学生信息。
- `WHERE StudentName LIKE '姜_ AND Length(StudentName) = 2`:同样查询姓姜且单名的学生信息,这里使用Length函数确认名字长度为2。
- `SELECT StudentID, Subject, Score FROM Scores WHERE Score BETWEEN 60 AND 80`:查询所有考试成绩在60到80之间的记录。
- `WHERE BirthDate BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD'`:根据具体的出生日期范围查询学生信息。
通过这些基本的模糊查询方法,我们可以灵活地从数据库中提取我们需要的数据。在实际应用中,可以结合这些查询方式,通过AND、OR等逻辑运算符进行更复杂的组合查询。