在SQL的世界里,单行函数是处理数据时不可或缺的一部分,特别是在MySQL数据库中。这些函数用于对单个值进行操作,并返回一个新值。在提供的测试题中,我们看到了几个使用单行函数的例子,让我们逐一详细解析。
1. **显示系统时间**:
在MySQL中,我们可以使用`SYSDATE()`函数来获取当前系统的日期和时间。这个函数返回当前服务器的时间,格式为'YYYY-MM-DD HH:MI:SS'。例如:
```sql
SELECT SYSDATE();
```
2. **查询员工信息与工资提升**:
这个问题要求显示员工号、姓名、工资,以及工资增加20%后的结果。可以使用`SELECT`语句结合算术运算来实现:
```sql
SELECT employee_id, first_name, salary, salary * 1.2 AS 'new_salary'
FROM employees;
```
`AS 'new_salary'`是用来给新计算的列命名,便于理解。
3. **按姓名首字母排序并显示长度**:
我们可以结合`ORDER BY`和`LENGTH()`函数来完成此任务。`ORDER BY`用于排序,而`LENGTH()`则计算字符串长度:
```sql
SELECT first_name, LENGTH(first_name) AS 'name_length'
FROM employees
ORDER BY first_name;
```
4. **创建带有工资和梦想工资的查询**:
此题需要展示员工的姓名、月工资和他们期望的三倍月工资。我们可以创建一个带有格式化文本的查询,使用`CONCAT()`函数:
```sql
SELECT CONCAT(last_name, ' earns ', salary, ' monthly but wants ', salary * 3, ' Dream Salary') AS 'message'
FROM employees;
```
5. **使用CASE-WHEN进行分组**:
`CASE-WHEN`语句在MySQL中用于根据指定条件返回不同的值。在此问题中,我们需要根据`job_id`来分配`grade`。这可以通过嵌套`CASE-WHEN`实现:
```sql
SELECT last_name, job_id,
CASE
WHEN job_id = 'AD_PRES' THEN 'A'
WHEN job_id = 'ST_MAN' THEN 'B'
WHEN job_id = 'IT_PROG' THEN 'C'
WHEN job_id = 'SA_REP' THEN 'D'
ELSE 'E'
END AS 'Grade'
FROM employees;
```
以上就是针对提供的测试题中所涉及的SQL知识点的详细解释。这些基本操作是SQL查询的基础,掌握它们对于理解和处理数据库中的数据至关重要。通过实践和理解这些函数的用法,你可以更有效地查询和操作MySQL数据库。