数据库操作练习6
2017-08-26 19:32
351 查看
1.按照dept_no进行汇总,属于同一个部门的emp_no按照逗号进行连接,结果给出dept_no以及连接出的结果employees
题目描述按照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`));
输出格式:
dept_no | employees |
---|---|
d001 | 10001,10002 |
d002 | 10006 |
d003 | 10005 |
d004 | 10003,10004 |
d005 | 10007,10008,10010 |
d006 | 10009,10010 |
本题要用到SQL的聚合函数group_concat(X,Y),其中X是要连接的字段,Y是连接时用的符号,可省略,默认为逗号。此函数必须与 GROUP BY 配合使用。此题以 dept_no 作为分组,将每个分组中不同的emp_no用逗号连接起来(即可省略Y)。
select dept_no, group_concat(emp_no) from dept_emp group by dept_no
当然也可以:select dept_no, group_concat(emp_no, ',') employees from dept_emp group by dept_no;
2.查找字符串'10,A,B'
题目描述查找字符串'10,A,B' 中逗号','出现的次数cnt。
sql1:
由于 SQL中没有直接统计字符串中子串出现次数的函数,因此本题用length()函数与replace()函数的结合灵活地解决了统计子串出现次数的问题,属于技巧题,即先用replace函数将原串中出现的子串用空串替换,再用原串长度减去替换后字符串的长度,最后除以子串的长度(本题中length(',')为1,因此此步可省略,若子串长度大于1则不可省)。
select (length('10,A,B')-length(replace('10,A,B',',','')))/length(',') as cnt
sql2:
select 2 as cnt
3.将employees表中的所有员工的last_name和first_name通过(')连接起来。
题目描述将employees表中的所有员工的last_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`));
输出格式:
name |
---|
Facello'Georgi |
Simmel'Bezalel |
Bamford'Parto |
Koblick'Chirstian |
Maliniak'Kyoichi |
Preusig'Anneke |
Zielinski'Tzvetan |
Kalloufi'Saniya |
Peac'Sumant |
Piveteau'Duangkaew |
Sluis'Mary |
sql中的字符串拼接用||表示(类似于java中字符串的+操作),%则表示通配符
select last_name||"'"||first_name as name from employees
相关文章推荐
- 报告论文:建立数据库 练习SQL语言进行数据定义、操作、控制
- Python练习4-操作redis数据库
- 数据库操作练习1
- 数据库操作练习9
- 数据库操作练习2
- 3.20 学数据库 Navicat软件和 数据库操作练习
- 数据库操作练习13
- Android简单数据库操作练习
- 数据库操作练习10
- nodeJs对数据库的操作练习
- 【初识Oracle】④数据库对表格数据进行操作(含三张练习用表)
- 数据库操作练习12
- 数据库操作的作业练习
- DDL——对数据库表的结构进行操作的练习
- 数据库操作练习4
- 2.C#实验五:ADO.NET数据库操作练习详解
- Orcale数据库操作练习
- 数据库操作练习11
- C#中数据库基本操作的练习
- 数据库操作练习7