1 创建唯一索引
和普通索引
表结构如下:
需求
对first_name
创建唯一索引uniq_idx_firstname
,对last_name
创建普通索引idx_lastname
。
SQL语句
create unique index uniq_idx_firstname on actor(first_name);
create index idx_lastname on actor(last_name);
2 转义符
的使用
表结构如下
需求
将所有员工的last_name
和first_name
通过'
(单引号)连接起来。
SQL语句
select concat(last_name, '\'', first_name) as name from employees;
select concat(last_name, '''', first_name) as name from employees;
select concat(last_name, "'", first_name) as name from employees;
上面三个语句都是可以处理的。区别是对'
的处理方式不同,常用的还是使用反斜杠转义\
。
运行结果
3 子查询`嵌套
表结构如下
需求
查找属于Action分类
的所有电影对应的title
,description
。
SQL语句
select title, description from film
where film_id in (select film_id from film_category where category_id =
(select category_id from category where name = "Action"));
这里的查询涉及了3个表,title
,description
只与film表
有关,film_id
则与category表
和film_category表
有关,需要两重嵌套
关系。
运行结果
4 插入记录,忽略重复项
表结构如下
需求
对于表actor插入一条数据,如果数据已经存在,请忽略
actor_id | first_name | last_name | last_update |
---|---|---|---|
‘3’ | ‘ED’ | ‘CHASE’ | ‘2006-02-15 12:34:33’ |
SQL语句
insert ignore into actor values ('3', 'ED', 'CHASE', '2006-02-15 12:34:33');
使用了ignore
关键词,避免了主键重复的问题
运行结果
5 将查询结果作为记录插入到表中
表结构如下
表actor
表actor_name
需求
将actor表
中的所有first_name
以及last_name
导入actor_name表
。
SQL语句
insert into actor_name select first_name, last_name from actor;