牛客题霸 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表,包含如下列信息

牛客题霸 31-40
思路:创建主键可以写在最后,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语句哦!)

牛客题霸 31-40
思路: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操作)

牛客题霸 31-40

思路:这里指的存在表示的是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导入该表.

牛客题霸 31-40
牛客题霸 31-40

思路:将 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

牛客题霸 31-40

思路:

创建唯一索引: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';
上一篇:VTK:相互作用之MoveAGlyph


下一篇:建造者模式(BuilderPattern)