亲爱的读者,这些 SQL面试问题是专门设计的,目的是让您熟悉在采访中可能会遇到的关于 SQL 主题的问题的性质。根据我的经验,优秀的面试官几乎不打算在面试过程中提出任何特定的问题,通常,问题从该主题的一些基本概念开始,然后根据进一步的讨论和您的回答继续进行:
What is the difference between SQL and MySQL or SQL Server?SQL或结构化查询语言是一种语言;与关系数据库通信的语言,从而提供了操作和创建数据库的方式。 MySQL和Microsoft的SQL Server都是关系数据库管理系统,它们使用SQL作为它们的标准关系数据库语言。
PL/SQL是SQL的一种方言,它添加了SQL编程语言的过程功能。它是由Oracle Corporation在90年代初开发的,目的是增强SQL的功能。
以下是SQL中的各种DDL或数据定义语言命令-
-
创建-会创建一个新表,一个表视图或数据库中的其他对象。
-
ALTER-修改现有的数据库对象,例如表。
-
DROP-它将删除整个表,数据库中的表视图或其他对象。
以下是SQL中的各种DML或数据处理语言命令-
-
SELECT-从一个或多个表中检索某些记录。
-
INSERT-它创建一条记录。
-
UPDATE-它修改记录。
-
删除-删除记录。
以下是SQL中的各种DCL或数据控制语言命令-
-
GRANT-它向用户授予特权。
-
撤销-会收回用户授予的特权。
是。可以在ORDER BY子句中使用列别名。
NULL值不等于零或空格。 NULL值是"不可用,未分配,未知或不适用"的值。零是数字,空格是字符。
如果参与算术表达式的列值是NULL,则获得的输出将是NULLM。
True.
查询输出显示所有行,包括重复的行。要消除输出中的重复行,请在SELECT子句中使用DISTINCT关键字。
BETWEEN运算符根据一系列值显示行。 IN条件运算符检查包含在一组特定值中的值。
在这种情况下,LIKE条件运算符用于选择与字符模式匹配的行。这也称为"通配符"搜索。
默认排序顺序为升序。可以使用DESC关键字在ORDER BY子句中的列名之后更改它。
SQL函数具有以下用途-
-
对数据进行计算
-
修改单个数据项
-
操纵输出
-
格式化日期和数字
-
转换数据类型
下,上,INITCAP
MOD函数以除法运算返回余数。
NVL函数将NULL值转换为实际值。
如果exp1包含NULL,则NVL(exp1,exp2)函数会将源表达式(或值)exp1转换为目标表达式(或值)exp2。返回值具有与exp1相同的数据类型。
NVL2(exp1,exp2,exp3)函数检查第一个表达式exp1,如果不为null,则返回第二个表达式exp2。如果第一个表达式exp1为null,则返回第三个表达式exp3。
NULLIF函数比较两个表达式。如果它们相等,则函数返回null。如果它们不相等,则返回第一个表达式。
COALESCE函数的表达式为COALESCE(exp1,exp2,…。expn)
它返回参数列表中给定的第一个非空表达式。
有两种方法可以在SQL语句中实现条件处理或IF-THEN-ELSE逻辑。
-
使用CASE表达式
-
使用DECODE函数
输出将是两个具有20 x 10 = 200行的表的笛卡尔积。
交叉联接产生两个表的叉积或笛卡尔积。自然联接基于两个表中具有相同名称和数据类型的所有列。
SQL中的组函数处理一组行,并且每个组返回一个输出。组函数的Example是AVG,COUNT,MAX,MIN,STDDEV,SUM,VARIANCE。
默认情况下,组函数仅考虑集合中的不同值。
默认情况下,组函数会考虑所有值,包括重复值。
DISTINCT关键字允许函数仅考虑非重复值。
True.
所有组函数都将忽略空值。
True.
COUNT(*)返回表中的列数。
假。 COUNT(*)返回表中的行数。
SELECT subject_code, count(name) FROM students;
它没有GROUP BY子句。 subject_code应该在GROUP BY子句中。
SELECT subject_code, count(name) FROM students GROUP BY subject_code;
SELECT subject_code, AVG (marks) FROM students WHERE AVG(marks) > 75 GROUP BY subject_code;
WHERE子句不能用于限制组。应该使用HAVING子句。
SELECT subject_code, AVG (marks) FROM students HAVING AVG(marks) > 75 GROUP BY subject_code;
组函数不能嵌套。
假。组函数可以嵌套两个深度。
子查询是嵌入另一个SELECT语句的子句中的SELECT语句。当内部查询或子查询返回由外部查询使用的值时,将使用它。在选择表中某些行的条件取决于该表中包含的某些数据时,这非常有用。
单行子查询仅从外部SELECT语句返回一行
假。单行子查询仅从内部SELECT语句返回一行。
多行子查询从内部SELECT语句返回多个行。
True.
多个列子查询从内部SELECT语句返回多个列。
True.
SELECT student_code, name
FROM students
WHERE marks =
(SELECT MAX(marks)
FROM students
GROUP BY subject_code);
这里,单行运算符=与多行子查询一起使用。
在,任何,所有。
DML语句用于向表中添加新行,更新或修改现有行中的数据,或从表中删除现有行。
INSERT INTO语句。
在表中插入新行时,必须按列的默认顺序列出值。
True.
可以通过以下方式之一将Null值插入表中-
- 从列列表中省略该列。
- 通过在VALUES子句中指定NULL关键字来明确表示。
INSERT语句不允许将行从一个表复制到另一个表。
假。 INSERT语句允许向表中添加行,从而复制现有表中的行。
INSERT语句可用于通过从另一个表复制来向表中添加行。在这种情况下,将使用子查询代替VALUES子句。
表中的所有行均已修改。
是。通过在UPDATE语句中使用子查询,可以基于另一个表中的值更新表中的行。
DELETE语句用于从数据库中删除表。
假。 DELETE语句用于从表中删除现有行。
表中的所有行均被删除。
是的,可以使用子查询根据另一个表中的值从表中删除行。
尝试删除带有附加到完整性约束的值的记录,将返回错误。
True.
您可以在INSERT语句中使用子查询。
True.
MERGE语句允许条件更新或将数据插入数据库表。如果行存在,则执行UPDATE;如果行不存在,则执行INSERT。
将自动提交DDL语句或DCL语句。
True.
VARCHAR2表示可变长度的字符数据,而CHAR表示固定长度的字符数据。
可以回滚DROP TABLE语句。
假。 DROP TABLE语句无法回滚。
ALTER TABLE语句。
视图是基于表或其他视图的逻辑快照。它用于-
- 限制对数据的访问;
- 使复杂的查询变得简单;
- 确保数据独立性;
- 提供相同数据的不同视图。
视图没有自己的数据。
True.
下一步是什么 ?
此外,您可以浏览过去完成的与该主题相关的作业,并确保您能够自信地对它们发表讲话。如果您是新手,那么面试官不会期望您会回答非常复杂的问题,而是必须使您的基本概念非常扎实。
第二,如果您不能回答几个问题,那实际上并不重要,但是无论您回答了什么,您都必须自信地回答,这很重要。因此,在面试中要感到自信。我们在learnfk上祝您好运,有一位优秀的面试官,并祝您未来事业一切顺利。欢呼声:-)