牛客网在线编程网址: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_id | first_name | last_name | last_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”)。
时间: 2024-10-07 11:53:38