数据库操作练习6
来源:互联网 发布:windows阻止软件自启 编辑:程序博客网 时间:2024/05/21 09:40
1.按照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`));
输出格式:
本题要用到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通过(')连接起来。
题目描述
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`));
输出格式:
sql中的字符串拼接用||表示(类似于java中字符串的+操作),%则表示通配符
select last_name||"'"||first_name as name from employees
- 数据库操作练习6
- Orcale数据库操作练习
- JavaDB数据库操作练习
- 数据库操作练习1
- 数据库操作练习2
- 数据库操作练习3
- 数据库操作练习4
- 数据库操作练习5
- 数据库操作练习7
- 数据库操作练习8
- 数据库操作练习9
- 数据库操作练习10
- 数据库操作练习11
- 数据库操作练习12
- 数据库操作练习13
- Android简单数据库操作练习
- MySql数据库基本操作练习
- python操作mysql数据库练习
- C++ 通过jni生成库供JAVA调用(上) (C++之间的调用)
- 258.Add Digits
- 最小生成树模板
- 浅谈单片机、ARM和DSP的异同——非常透彻
- c++ linux下安全启动进程收集
- 数据库操作练习6
- 【二叉树经典问题】145. Binary Tree Postorder Traversal
- 263.Ugly Number
- hdu 1215 七夕节
- mysql面试--引擎MyISAM与InnoDB的区别
- ubantu16.04安装tensorflow(GPU)+cuda8.0+cudnn6.0
- PAT 甲级 1002. A+B for Polynomials
- Android IPC之代理模式
- HDU