SQL实战-数据分析师-笔试面试-每日一练

    科技2024-03-25  92

    目录

    1、sqlite_master2、连接||的使用3、查找字符串'10,A,B' 中逗号','出现的次数cnt。4、substr(first_name,-2,2)5、concat

    1、sqlite_master

    针对库中的所有表生成select count(*)对应的SQL语句,如数据库里有以下表, (注:在 SQLite 中用 “||” 符号连接字符串,无法使用concat函数)

    employees departments dept_emp dept_manage salaries titles emp_bonus

    那么就会输出以下的样子: 代码实现:

    select 'select count(*) from'||name||';' from sqlite_master where type='table'

    注意:sqlite_master的使用见:https://blog.csdn.net/qq_38978225/article/details/108948158

    2、连接||的使用

    将employees表中的所有员工的last_name和first_name通过(’)连接起来。(不支持concat,请用||实现)

    CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gender` char(1) NOT NULL, `hire_date` date NOT NULL, PRIMARY KEY (`emp_no`));

    输出格式: 代码实现:

    select employees.last_name|| "'" || employees.first_name as name from employees

    3、查找字符串’10,A,B’ 中逗号’,'出现的次数cnt。

    题目描述: 查找字符串’10,A,B’ 中逗号’,'出现的次数cnt。

    代码实现:

    select length('10,A,B')-length(replace('10,A,B',',','')) as cnt

    思路分析: 先使用replace将,替换为空,那么整个字符串减少的长度除,的长度,就是,出现的次数。

    4、substr(first_name,-2,2)

    sql按照first_name后面两个字母的顺序来进行排序.

    题目描述: ”获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列

    CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gender` char(1) NOT NULL, `hire_date` date NOT NULL, PRIMARY KEY (`emp_no`));

    输出格式: 代码实现:

    select first_name from employees order by substr(first_name,-2,2) ASC

    解题思路: 注意这里substr()函数的使用。https://blog.csdn.net/qq_38978225/article/details/108948529

    5、concat

    concat的使用见:链接

    题目描述:

    按照dept_no进行汇总,属于同一个部门的emp_no按照逗号进行连接,结果给出dept_no以及连接出的结果employees

    CREATE TABLE `dept_emp` ( `emp_no` int(11) NOT NULL, `dept_no` char(4) NOT NULL, `from_date` date NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));

    输出格式: 代码实现:

    select dept_no,group_concat(emp_no) as employees from dept_emp group by dept_no

    解题思路: 注意这里的griup_concat的使用,详细可见:链接

    Processed: 0.011, SQL: 8