修复表中的名字
- 题目如下所示
个人题解
这题说难也难,说简单也简单。难就难在目前作为初学者还未接触到更多的 MySQL 相关函数。个人思考过程如下所示
-
-- 1. 建表 CREATE TABLE 1667_Users( user_id INT, name VARCHAR(20), PRIMARY KEY(user_id) ); -- 2. 编写一个 SQL 查询来修复名字,使得只有第一个字符是大写的,其余都是小写的 -- 由题干得知,这是一个 SQL 查询,而不是 update -- 那么就需要思考,MySQL 当中有哪些函数可以判断大小写,以及实现类似遍历转换大小写的效果 -- 必然有这么一个函数,只不过目前不知道 SELECT u.user_id,CONCAT(UPPER(LEFT(u.name, 1)), LOWER(RIGHT(u.name, LENGTH(u.name) - 1))) name FROM 1667_Users u ORDER BY u.user_id; -- CONCAT(str1,str2,...):用来拼接字符串 -- LEFT(str,len):从左边截取字符串 -- RIGHT(str,len):从右边截取字符串 -- UPPER(str):变为大写 -- LOWER(str):变为小写 -- LENGTH(str):获取字符串长度