2022年SQL经典面试题总结(带解析)

2023-11-17

一、选择题

(1)基础题

1、要求删除商品表中价格大于3000的商品,下列SQL语句正确的是()

A、DELETE FROM 商品 WHERE 价格>3000

B、DELETE * FROM 商品 WHERE 价格>3000

C、DELETE FROM 商品

D、UPDATE 商品 SET * =NULL WHERE 价格>3000

正确答案: A

答案解析:这道题考察的是delete语法

DELETE FROM table_name

WHERE some_column=some_value;

2、在book表中,将工具书类型(tool)的书的书架序号都减少2,下列语句正确的是()

A、UPDATE books SET shelf = shelf - 2 WHERE type IS ‘tool’;

B、INSERT books SET shelf = shelf - 2 WHERE type IS ‘tool’;

C、UPDATE books SET shelf = shelf - 2 WHERE type = ‘tool’;

D、UPDATE books INTO shelf = shelf - 2 WHERE type = ‘tool’;

正确答案: C

答案解析:这道题考察的是update语法。

UPDATE table_name

SET column1=value1,column2=value2,…

WHERE some_column=some_value;

where后面语句,查找NUll值的时候可以用 type IS NUll,否则要用等于=

3、为职员表添加列,列名为年末奖金,允许为空值,数据类型为货币数据类型。下列SQL语句正确的是()

A、ATER TABLE 职员 ADD 年末奖金 NULL

B、ALTER TABLE 职员 ADD 年末奖金 Money NULL

C、ALTER TABLE 职员 ADD 年末奖金 Money NOT NULL

D、ALTER TABLE 职员 ADD 年末奖金 INT NULL

正确答案: B

答案解析:这道题考察的是alter语法。如果你想在已有的表中,添加、删除或修改列,就需要用到alter语句。

添加列: ALTER TABLE table_name ADD column_name datatype

修改列:在SQL Server中与MySQL中修改列的语句有所差异,这里要注意~

My SQL / Oracle:ALTER TABLE table_name MODIFY COLUMN column_name datatype

SQL Server:ALTER TABLE table_name ALTER COLUMN column_name datatype

删除列:ALTER TABLE table_name DROP COLUMN column_name

mysql没有money类型 sql server才有money类型,所以在读题的时候要注意是否提到在mysql中。

money其实跟float是同类型数据。money类型只是显示在数据表的时候前面多加一个$样式的符号。

4、小李在创建完一张数据表后,发现少创建了一列,此时需要修改表结构,应该用哪个语句进行操作?

A、MODIFY TABLE

B、INSERT TABLE

C、ALTER TABLE

D、UPDATE TABLE

正确答案: C

答案解析:巩固一下上一题,修改已有的表,就用alter语句。

ALTER TABLE 表名 add 字段名

5、SQL语言可以分为多个类别,那么不属于数据操纵语言DML的是()

A、update

B、grant

C、delete

D、insert

正确答案: B

答案解析:grant语句是用来赋予用户权限的,是数据控制语言(DCL)。其他3个都是数据操纵语言(DML)

数据查询语言(DQL):是由SELECT子句,FROM子句,WHERE子句组成的查询块

数据操纵语言(DML): SELECT(查询) INSERT(插入) UPDATE(更新) DELETE(删除)

数据定义语言(DDL):CREATE(创建数据库或表或索引)ALTER(修改表或者数据库)DROP(删除表或索引)

数据控制语言(DCL):GRANT(赋予用户权限) REVOKE(收回权限) DENY(禁止权限)

事务控制语言(TCL):SAVEPOINT (设置保存点)ROLLBACK (回滚) COMMIT(提交)

6、下列选项中使用别名的方法不正确的是()

A、字段名称=别名

B、字段名称 AS 别名

C、字段名称 别名

D、别名=字段名称

正确答案: D

答案解析:给字段名称起别名,B、C选项没有疑义,as可以省略

A选项,字段名称=别名,在SQL Server中可以这样使用,MySQL中则不可以。

如果没有特别指明是在mysql中,我们默认就在SQL Server中。

(多选题)7、在MySql中进行数据查询时,如果要对查询结果的列名重新命名,将sno列重新命名为学号,则下列语句正确的是( )

A、select sno as 学号 from T

B、select 学号= sno from T

C、select sno 学号 from T

D、select sno=学号 from T

正确答案: A C

答案解析:巩固一下上一题,在SQL Server 中可以使用’=’,MySQL中则不可以

8、在SQL中用条件表示价格在在30至40之间,应该如何表达?

A、in (30,40)

B、BETWEEN 30 AND 40

C、BETWEEN 30 OR 40

D、BETWEEN 30 TO 40

正确答案: B

答案解析:这道题考察的是BETWEEN … AND …知识点

9、SQL语句中与Having子句同时使用的语句是?()

A、Group By

B、联盟链

C、left Join

D、Where

正确答案: A

答案解析:having和where作用差不多,都是用来筛选数据的。

having作用在分组之后,也就是要放在group by的后面

10、已知数据表STU,现需创建视图view_s,显示所有男同学的信息。下列SQL语句正确的是()

A、CREATE VIEW AS SELECT * FROM STU

B、CREATE VIEW view_s AS SELECT * FROM STU WHERE 性别=‘男’

C、CREATE view_s SELECT * FROM STU WHERE 性别=‘男’

D、CREATE view_s AS SELECT * FROM STU

正确答案: B

答案解析:这道题考察的是VIEW 创建视图知识点

将查询语句放在create views view_name as 后面,这样查询语句的结果就会存储在视图中,后面可以继续调用这个视图数据,或者直接在视图中查询。

视图可以当成表格来用。

CREATE VIEW view_name AS

SELECT column_name(s) FROM table_name

WHERE condition

CREATE后面要加上VIEW,不然数据库怎么知道你要创建啥~

11、Mysql中表student_info(id,name,birth,sex),字段类型都是varchar,插入如下记录:(‘1014’ , ‘张三’ , ‘2002-01-06’ , ‘男’); 下面SQL错误的是()?

A、insert into student_info values(‘1014’ , ‘张三’ , ‘2002-01-06’ , ‘男’);

B、insert into table student_info values(‘1014’ , ‘张三’ , ‘2002-01-06’ , ‘男’);

C、insert into student_info(id,name,birth,sex) values(‘1014’ , ‘张三’ , ‘2002-01-06’ , ‘男’);

D、insert into student_info(id,name,sex,birth,) values(‘1014’ , ‘张三’ , ‘男’,‘2002-01-06’ );

正确答案:B

答案解析:这道题比较简单,考察的知识点是:insert插入数据的语法。

insert into 后面直接跟表名。

insert into table,这种语法就不对。

有些同学可能会选择D,觉得顺序不对。但前面指明的列顺序,与后面是对应的(id,name,sex,birth,) values(‘1014’ , ‘张三’ , ‘男’,'2002-01-06’ )

12、将成绩表(grade)按成绩(point)升序排列,下列语句错误的是()

A、SELECT * FROM grade ORDER BY po

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022年SQL经典面试题总结(带解析) 的相关文章

随机推荐

  • [Intel汇编-NASM]基本语法

    1 NASM编译器介绍 1 Netwide Assembler 是目前唯一开源且免费的汇编器 2 该汇编器只提供编译的功能 但不提供连接的功能 在Linux下编译器产生 o文件后还需要使用ld链接器和操作系统的库链接才能形成可执行文件 而在
  • 男人怎么读 萨瓦迪卡!还是萨瓦迪卡不!

    泰国旅游中问候语 你好 是十分常见的 很早就听闻男同胞说萨瓦迪卡是不正确的 结果百度的结果是这样的 通篇并没有说正确的读音 修改关键词吧终于在知道里面找到想要的 是梵文 sawat 表示祝福 好运 dee表示好 sawatdee 表示 你好
  • 完成该操作所需的数据还不可使用

    原因是没有加下面两个判断条件 if xmlhttp readyState 4 if xmlhttp status 200
  • 【目标检测】从头到尾教你安装MMDetection(超详细版本)

    目录 MMDetection的安装过程 前言 一 本地环境 二 先决条件 1 从官方网站下载并安装Anaconda 2 创建 conda 环境并激活它 3 按照官方说明安装 PyTorch 例如 三 配置PyTorch环境时出现的第一个错误
  • vue引入elementUI部分组件库

    package json中加入 babel plugin component 1 1 1 借助 babel plugin component 我们可以只引入需要的组件 以达到减小项目体积的目的 如果你 只希望引入部分组件 比如 Button
  • AI学习_过拟合的细节,及其解决方法【未完成】

    要标准化 归一化的原因 把数据保留在 1 1之间 防止数值太大 发生梯度弥散 什么时候用标准化 什么时候用归一化 连续数据就用标准化 ps 但0不代表 大小 时 就不能用标准化了 BN的含义 标准化的意义 是统一量纲 BN其实是在nchw中
  • 小皮面板开启apache服务错误(主要是80端口被占用)

    在小皮面板中开启apache时出现这样的报错 98 Address already in use AH00072 make sock could not bind to address 80 98 Address already in us
  • 富士施乐3065扫描教程_富士施乐怎么设置扫描到PC

    展开全部 1 将复印机的IP输入在IE的地址栏里 32313133353236313431303231363533e59b9ee7ad9431333365666232用户名是11111 密码是x admin 进去以后找到协议下的9100项
  • Axure Share ——原型设计工具 Axure ,移动版

    什么是Axure Share Axure Share 是老牌原型设计工具Axure 的移动版 app 支持 iOS iPhone iPad 以及 Android 设备 我们可以使用它来查看和演示通过 Axure 制作的移动 app 原型 A
  • Vuex之理解mutation的用法

    一 什么是mutation 通俗的理解mutations 里面装着一些改变数据方法的集合 这是Veux设计很重要的一点 就是把处理数据逻辑方法全部放在mutations里面 使得数据和视图分离 切记 Vuex中store数据改变的唯一方法就
  • D13 LeetCode 599.两个列表的最小索引和(简单)

    一 题目 二 思路 自己 先遍历两个数组 找出元素值相等的元素同时记录下标和 这时候我想到了要用到map 但是map不允许键值重复 我就一直在纠结怎么不让他更新或者记录相等键的元素值 然后想破了头也没想清楚 最后想着用list来记录 把 下
  • Vue router-view 路由无缝切换动画

    Vue router view 路由无缝切换动画 左滑淡出 右滑淡入 HTML div class wrap div
  • android面试内存管理,Android面试之内存优化

    内存泄漏 用动态存储分配函数动态开辟的空间 在使用完毕后未释放 结果导致一直占据该内存单元 直到程序结束 即所谓的内存泄漏 内存泄漏是造成应用程序OOM 内存溢出 的主要原因之一 怎样避免内存泄漏 1 单例模式引发的内存泄漏 单例模式里的静
  • 华为OD机试 - 连续字母长度(Java)

    题目描述 给定一个字符串 只包含大写字母 求在包含同一字母的子串中 长度第 k 长的子串的长度 相同字母只取最长的那个子串 输入描述 第一行有一个子串 1 lt 长度 lt 100 只包含大写字母 第二行为 k的值 输出描述 输出连续出现次
  • 神经网络训练

    在数码管识别中 识别之前 字符归一化之后的大小是20 20个像素
  • 听说Python多线程和多进程有鸡肋?一起聊聊...

    听说是鸡肋 一直以来 关于Python的多线程和多进程是否是鸡肋的争议一直存在 今晚抽空谈谈我的看法 以下是我的观点 对于多线程 Python 的多线程库 threading 在某些情况下确实是鸡肋的 这是因为 Python 的全局解释器锁
  • CentOS7.X版本下安装MySQL5.7

    记录CentOS7 X版本下安装MySQL5 7数据库 设置rpm下载目录在 opt目录下新建一个目录存放mysql cd opt sudo mkdir mysql 下载MySQL的源 wget http repo mysql com my
  • [CTF/网络安全] 攻防世界 disabled_button 解题详析

    CTF 网络安全 攻防世界 disabled button 解题详析 input标签 姿势 disable属性 总结 题目描述 X老师今天上课讲了前端知识 然后给了大家一个不能按的按钮 小宁惊奇地发现这个按钮按不下去 到底怎么才能按下去呢
  • Centos7.4安装kvm虚拟机(使用virt-manager管理)

    原文链接 https www centos bz 2018 02 centos7 4 E5 AE 89 E8 A3 85kvm E8 99 9A E6 8B 9F E6 9C BA EF BC 88 E4 BD BF E7 94 A8vir
  • 2022年SQL经典面试题总结(带解析)

    一 选择题 1 基础题 1 要求删除商品表中价格大于3000的商品 下列SQL语句正确的是 A DELETE FROM 商品 WHERE 价格 gt 3000 B DELETE FROM 商品 WHERE 价格 gt 3000 C DELE