SQL练习题-牛客网

Posted RRRR-cord

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL练习题-牛客网相关的知识,希望对你有一定的参考价值。

牛客网在线编程网址:https://www.nowcoder.com/activity/oj

(默认使用SQLite)

 

题目1:

获取select * from employees对应的执行计划

EXPLAIN select * from employees;

 

题目2:

将employees表的所有员工的last_name和first_name拼接起来作为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 last_name|| ||first_name from employees;

"||"用以连接字符串,在mysql, SQL server, oracle等也支持用“+”来连接。

在Mysql中,可以用concat函数完成:

SELECT CONCAT(last_name,  , first_name) FROM employees;

还可以用stuff把同列的数据连接起来:http://blog.csdn.net/rolamao/article/details/7745972 

 

题目3

创建一个actor表,包含如下列信息

列表类型是否为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 最后更新时间,默认是系统的当前时间
CREATE TABLE actor(
    actor_id smallint(5) PRIMARY KEY NOT NULL,
    first_name varchar(45) NOT NULL,
    last_name varchar(45) NOT NULL,
    last_update timestamp NOT NULL DEFAULT (datetime(now,localtime))
);

注意,datetime(‘now‘, ‘localtime‘)外面的括号不可省略。

CREATE语句最好再补充为CREATE TABLE IF NOT EXISTS actor(...);

 

题目4:

对于表actor批量插入如下数据:

actor_idfirst_namelast_namelast_update
1 PENELOPE GUINESS 2006-02-15 12:34:33
2 NICK WAHLBERG 2006-02-15 12:34:33
INSERT INTO actor 
(actor_id, first_name, last_name, last_update)
VALUES
(1, PENELOPE, GUINESS, 2006-02-15 12:34:33),
(2, NICK, WAHLBERG, 2006-02-15 12:34:33);

 

题目5

INSERT OR IGNORE INTO actor
(actor_id, first_name, last_name, last_update)
VALUES
(3, ED, CHASE, 2006-02-15 12:34:33);

还可以把“IGNORE”替换成“REPLACE”。

在mysql中,用insert IGNORE into actor(去掉“or”)。

以上是关于SQL练习题-牛客网的主要内容,如果未能解决你的问题,请参考以下文章

牛客网sql练习

数据库练习题(牛客网sql入门篇部分)

SQL日常练习2-进阶篇-牛客网

SQL日常练习-牛客网

SQL日常练习1-基础篇-牛客网

SQL日常练习2-进阶篇-牛客网