一、目录
题目链接:
https://www.nowcoder.com/ta/sql
二、题解
31、获取select * from employees对应的执行计划
- 题目描述
获取select * from employees对应的执行计划
- 代码
EXPLAIN SELECT * FROM employees
32、将employees表的所有员工的last_name和first_name拼接起来作为Name
- 题目描述
将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分
(注:该数据库系统是sqllite,字符串拼接为 || 符号,不支持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 (last_name || " " || first_name) as Name from employees
- 参考:
1.不同数据库连接字符串的方法不完全相同,MySQL、SQL Server、Oracle等数据库支持CONCAT方法,
SELECT CONCAT_WS(space(1),last_name,first_name) AS Name FROM employees;
2.concat、concat_ws、group_concat函数用法
33、获取select * from employees对应的执行计划
- 题目描述
创建一个actor表,包含如下列信息(注:sqlite获取系统默认时间是datetime('now','localtime'))
列表 类型 是否为NULL 含义
actor_id smallint(5) not null 主键id
first_name varchar(45) not null 名字
last_name varchar(45) not null 姓氏
last_update timestamp not null 最后更新时间,默认是系统的当前时间
-
思路
本题关键点是actor_id的主键设置与last_update的默认获取系统时间:
1.设置主键 primary key
2.在last_update末尾加上DEFAULT是为该字段设置默认值,且默认值为(datetime(‘now’,‘localtime’)),即获得系统时间,注意最外层的括号不可省略 -
代码