31.将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));

/*MySQL、SQL Server、Oracle等数据库支持CONCAT方法,
而本题所用的SQLite数据库只支持用连接符号"||"来连接字符串CONCAT方法:
select CONCAT(CONCAT(last_name," "),first_name) as name  from employees
或者
select CONCAT(last_name," ",first_name) as name  from employees本题中使用:*/
select last_name||" "||first_name as name  from employees

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

create table actor(actor_id smallint(5) not null primary key,first_name varchar(45) not null,last_name varchar(45) not null,last_update timestamp not null default (datetime('now','localtime'))
)

33.对于表actor批量插入如下数据
CREATE TABLE IF NOT EXISTS actor (
actor_id smallint(5) NOT NULL PRIMARY KEY,
first_name varchar(45) NOT NULL,
last_name varchar(45) NOT NULL,
last_update timestamp NOT NULL DEFAULT (datetime(‘now’,‘localtime’)))

insert into actor values
(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),
(2,'NICK','WAHLBERG','2006-02-15 12:34:33')

34.对于表actor批量插入如下数据,如果数据已经存在,请忽略,不使用replace操作
CREATE TABLE IF NOT EXISTS actor (
actor_id smallint(5) NOT NULL PRIMARY KEY,
first_name varchar(45) NOT NULL,
last_name varchar(45) NOT NULL,
last_update timestamp NOT NULL DEFAULT (datetime(‘now’,‘localtime’)))

/*因为题目判定系统使用的是sqlite3,所以必须按sqlite3的写法来做,*/
insert or ignore into actor
values(3,'ED','CHASE','2006-02-15 12:34:33');/*如果是mysql,那么把or去掉,像下面这样:*/
insert ignore into actor
values(3,'ED','CHASE','2006-02-15 12:34:33');

35.对于如下表actor,其对应的数据为:

创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表。actor_name表结构如下:

create table actor_name(first_name varchar(45) not null,   last_name varchar(45) not null
);
insert into actor_name select first_name,last_name from actor;

36.针对如下表actor结构创建索引:
CREATE TABLE IF NOT EXISTS actor (
actor_id smallint(5) NOT NULL PRIMARY KEY,
first_name varchar(45) NOT NULL,
last_name varchar(45) NOT NULL,
last_update timestamp NOT NULL DEFAULT (datetime(‘now’,‘localtime’)))
对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);

37.针对actor表创建视图actor_name_view,只包含first_name以及last_name两列,并对这两列重新命名,first_name为first_name_v,last_name修改为last_name_v:
CREATE TABLE IF NOT EXISTS actor (
actor_id smallint(5) NOT NULL PRIMARY KEY,
first_name varchar(45) NOT NULL,
last_name varchar(45) NOT NULL,
last_update timestamp NOT NULL DEFAULT (datetime(‘now’,‘localtime’)))

create view actor_name_view (first_name_v,last_name_v) as
select first_name,last_name from actor

38.针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 使用强制索引。
CREATE TABLE salaries (
emp_no int(11) NOT NULL,
salary int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,from_date));
create index idx_emp_no on salaries(emp_no);

/*SQLite中,使用 INDEXED BY 语句进行强制索引查询:*/
SELECT * FROM salaries INDEXED BY idx_emp_no
WHERE emp_no = 10005/*MySQL中,使用 FORCE INDEX 语句进行强制索引查询:*/
SELECT * FROM salaries FORCE INDEX idx_emp_no
WHERE emp_no = 10005

39.存在actor表,包含如下列信息:
CREATE TABLE IF NOT EXISTS actor (
actor_id smallint(5) NOT NULL PRIMARY KEY,
first_name varchar(45) NOT NULL,
last_name varchar(45) NOT NULL,
last_update timestamp NOT NULL DEFAULT (datetime(‘now’,‘localtime’)));
现在在last_update后面新增加一列名字为create_date, 类型为datetime, NOT NULL,默认值为’0000 00:00:00’

/*用 ALTER TABLE ... ADD ... 语句可以向已存在的表插入新字段,并且能够
与创建表时一样,在字段名和数据类型后加入NOT NULL、DEFAULT等限定(题目
给的时间格式是错误的):*/ALTER TABLE actor ADD COLUMN create_date datetime NOT NULL
DEFAULT '0000-00-00 00:00:00';

40.构造一个触发器audit_log,在向employees_test表中插入一条数据的时候,触发插入相关的数据到audit中。
CREATE TABLE employees_test(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
CREATE TABLE audit(
EMP_no INT NOT NULL,
NAME TEXT NOT NULL
);

/*构造触发器时注意以下几点:
1、用 CREATE TRIGGER 语句构造触发器,用 BEFORE或AFTER 来指定在执行后面的SQL语句之前或之后来触发TRIGGER
2、触发器执行的内容写出 BEGIN与END 之间
3、可以使用 NEW与OLD 关键字访问触发后或触发前的employees_test表单记录*/CREATE TRIGGER audit_log AFTER INSERT ON employees_test
BEGININSERT INTO audit VALUES (NEW.ID, NEW.NAME);
END;

牛客网sql题详解31-40相关推荐

  1. 牛客网sql题详解41-50

    41.删除emp_no重复的记录,只保留最小的id对应的记录. CREATE TABLE IF NOT EXISTS titles_test ( id int(11) not null primary ...

  2. 牛客网sql题详解11-20

    11.获取所有员工当前的manager,如果当前的manager是自己的话结果不显示,当前表示to_date='9999-01-01'. 结果第一列给出当前员工的emp_no,第二列给出其manage ...

  3. 牛客网sql题详解21-30

    21.统计各个部门的工资记录数,给出部门编码dept_no.部门名称dept_name以及次数sum CREATE TABLE departments ( dept_no char(4) NOT NU ...

  4. 牛客网sql题详解1-10

    题目描述 1.查找最晚入职员工的所有信息 create database practice; use practice;CREATE TABLE `employees` (`emp_no` int(1 ...

  5. 牛客网数据开发题库_牛客网SQL题库NO.32~40

    不要问为什么没有31题,大概被牛客吞掉了吧,哈哈哈哈 SQL 32[简单] 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分 CREA ...

  6. 牛客网-SQL题库笔记

    牛客网-SQL题库笔记 01.最晚入职员工的所有信息 02.查找入职员工时间排名倒数第三的员工所有信息 03.查找各个部门当前领导当前薪水详情以及其对应部门编号 04.查找所有已经分配部门的员工的la ...

  7. 牛客网sql题库(1-30题)—— 个人答案与过程解析

    本篇博客分享一下我在牛客网sql题库刷题时,自己敲出来的结果.结果均通过了牛客网的结果验证. 具体的题目就不放在博客中了,感兴趣可以自行去搜索牛客网,找到sql题库在线编程 每道题下面都有我自己写的题 ...

  8. 牛客网SQL刷题笔记(MySQL)

    牛客网SQL刷题笔记(MySQL) 此博客集合LeetCode.牛客网常见的题型及其解法,侵删 目录 牛客网SQL刷题笔记(MySQL) 类型1:查找排名第几的数据 SQL2 查找入职员工时间排名倒数 ...

  9. 牛客网数据开发题库_练习SQL利器,牛客网SQL实战题库

    牛客网SQL实战网址:https://www.nowcoder.com/ta/sql 持续更新--记录自己在牛客网SQL的做题过程 更新进度:61题,2019-4-3,更完了 1.查找最晚入职员工的所 ...

最新文章

  1. linux驱动:i2c驱动(四)流程图之注册驱动
  2. Apache Shiro Architecture--官方文档
  3. 【TypeScript系列教程02】安装及使用
  4. TimingWheel[时间轮]介绍
  5. as3中的 override
  6. PAT 乙级A1025 适合当算法入门练习题做
  7. @RequestBody 的使用方法和注意事项
  8. Three.js_使obj模型旋转
  9. 最全盘点:27类激光技术前沿应用
  10. python大众点评霸王餐_如何抽中大众点评霸王餐?
  11. mysql提权(mof udf 反弹端口)
  12. 99美金和299美金的开发者证书的区别
  13. Python爬虫系列-------Scrapy框架爬取校花网校花图片
  14. 好嗨游戏:战火重燃!2019LPL夏季赛精彩看点全盘点! || 附夏季赛赛程表
  15. Java PPT转PDF 亲测无水印
  16. 阿里云学生成长计划领取资格考试答案
  17. liunx安装node
  18. Python: 异常处理
  19. 为什么突然变乱码_这样的整理才能结束家里很快变乱的局面。而且整理还能改变运气...
  20. 腾讯安全发布iOA SaaS版产品,为企业提供安全访问服务

热门文章

  1. android 手机美化
  2. OpenGL投影矩阵与相机模型(Set Projection Matrix for Pinhole Camera Model)
  3. 一小时入门vue组件(建议收藏)
  4. [附源码]计算机毕业设计Python创意摄影交流平台(程序+源码+LW文档)
  5. 微软mos认证计算机办公,微软办公软件国际认证 (MOS) Office 2010大师级通关秘籍
  6. Spring Cloud Sleuth + zipkin + kafka
  7. python解决汉字批量转拼音问题
  8. c语言链表萌新,菜鸟的进击——玩转C语言链表
  9. php打开页面的快捷键,窗口切换快捷键是什么
  10. 链表一:寻找环形链表的入口点