牛客网-数据库SQL实战36-40

36. 对于如下表actor,其对应的数据为:
actor_idfirst_namelast_namelast_update
1PENELOPEGUINESS2006-02-15 12:34:33
2NICKWAHLBERG2006-02-15 12:34:33
创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表。 actor_name表结构如下:

列表类型是否为NULL含义
first_namevarchar(45)not null名字
last_namevarchar(45)not null姓氏
CREATE TABLE 'actor_name'('first_name' varchar(45) not null,
                         'last_name' varchar(45) not null);
INSERT INTO actor_name 
VALUES
('PENELOPE','GUINESS'),('NICK','WAHLBERG')

注意插入数据的语句

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

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

注意创建索引的语句,创建唯一索引的列不能有重复值,创建普通索引的列可以有重复值,索引可以加快查询速度,唯一索引还能防止数据重复

38. 针对actor表创建视图actor_name_view,只包含first_name以及last_name两列,并对这两列重新命名,first_name为first_name_v,last_name修改为last_name_v

CREATE VIEW actor_name_view AS
SELECT first_name AS first_name_v, last_name AS last_name_v
FROM actor

注意创建视图的语句,视图可以简化数据操作保证数据安全性等,比如说一个比较复杂的查询不想每次都写很多语句,就可以写个视图。下次查询的时候是需要使用select * from视图名就可以了,或者给特定用户开放某些表的读取权限,但要加一些行和列的限制,也可以写个视图。

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

SELECT * 
FROM salaries
INDEXED BY idx_emp_no
WHERE emp_no = 10005

强制索引在SQLite 中用INDEXED BY 索引名 ,MYSQL 中用FORCE INDEX (索引名),强制索引可以加快查询速度

40. 存在actor表,现在在last_update后面新增加一列名字为create_date, 类型为datetime, NOT NULL,默认值为'0000-00-00 00:00:00'

ALTER TABLE actor ADD 'create_date' datetime not null DEFAULT ('0000-00-00 00:00:00')
注意增加字段的语句
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值