牛客题霸 31-40

具体题目参考链接:https://www.nowcoder.com/ta/sql


32. 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分

思路:
①不同字符串连接方法不一样,在 MySQL 中,可以利用 CONCAT() 函数将多个字符串连接起来。
②空格用’ '表示

SELECT CONCAT(last_name, ' ', first_name) AS Name FROM employees;

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

在这里插入图片描述
思路:创建主键可以写在最后,PRIMARY KEY()

CREATE TABLE actor(
    actor_id SMALLINT(5) NOT NULL,
    first_name VARCHAR(45) NOT NULL,
    last_name VARCHAR(45) NOT NULL,
    last_update DATE NOT NULL ,
    PRIMARY KEY(actor_id)
);

34. 请你对于表actor批量插入如下数据(不能有2条insert语句哦!)

在这里插入图片描述
思路:MySQL 插入多条记录的写法:
INSERT INTO 表名 VALUES (value1, value2, …), (value1, value2, …), …(value1, value2, …)

INSERT INTO actor VALUES (1, 'PENELOPE', 'GUINESS', '2006-02-15 12:34:33'), 
(2, 'NICK', 'WAHLBERG', '2006-02-15 12:34:33');

35. 对于表actor插入如下数据,如果数据已经存在,请忽略(不支持使用replace操作)

在这里插入图片描述

思路:这里指的存在表示的是unique属性的列值存在的情况下,unique表示键值唯一。
如果数据存在则忽略,在 insert into 之间加个 ignore 就可以

INSERT IGNORE INTO actor VALUES (3, 'ED', 'CHASE', '2006-02-15 12:34:33');

36. 请你创建一个actor_name表,并且将actor表中的所有first_name以及last_name导入该表.

在这里插入图片描述
在这里插入图片描述

思路:将 actor 表的部分拿来创建 actor_name 表。

CREATE TABLE actor_name SELECT first_name, last_name FROM actor;

另一种更详细的写法:

CREATE TABLE actor_name (
    first_name VARCHAR(45) NOT NULL,
    last_name VARCHAR(45) NOT NULL
)
SELECT first_name, last_name FROM actor;

37. 针对如下表actor结构创建索引,对first_name创建唯一索引uniq_idx_firstname,对last_name创建普通索引idx_lastname

在这里插入图片描述

思路:

创建唯一索引:CREATE UNIQUE INDEX <唯一索引名> ON <表名> (<列名>);

创建一个简单的索引:CREATE INDEX <普通索引名> ON <表名> (<列名>);

CREATE UNIQUE INDEX uniq_idx_firstname ON actor(first_name);
CREATE INDEX idx_lastname ON actor(last_name);

39. 针对salaries表emp_no字段,查询emp_no为10005, 使用强制索引。

思路:
强制索引:FORCE INDEX(<索引名>);
SELECT * FROM <表名> FORCE INDEX (<索引名>)

SELECT * FROM salaries FORCE INDEX (idx_emp_no) WHERE emp_no = 10005;

40. 对于actor表,现在在last_update后面新增加一列名字为create_date, 类型为datetime, NOT NULL,默认值为’2020-10-01 00:00:00’

思路:
添加列是使用变更表定义的ALTER TABLE语句,
ALTER TABLE <表名>
ADD COLUMN <列名> <列的定义>;

DEFAULT 用于向列中插入默认值。

ALTER TABLE actor
ADD COLUMN create_date DATETIME NOT NULL DEFAULT '2020-10-01 00:00:00';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值