📜  SQLite面试问题

📅  最后修改于: 2020-11-13 01:13:23             🧑  作者: Mango

SQLite面试问题

1)什么是SQLite?

SQLite是一个关系数据库管理系统,它是独立的,无服务器的,并且需要零配置。

欲了解更多信息,请点击这里

2)谁是SQLite的设计师?

SQLite由D. Richard Hipp设计,目的是无需管理程序即可运行程序。

欲了解更多信息,请点击这里

3)SQLite最重要的功能是什么?

有很多功能使SQLite变得非常流行:

  • SQlite是免费的。
  • SQLite是无服务器的。
  • SQLite是灵活的。
  • SQLite不需要配置。
  • SQLite是跨平台的。

欲了解更多信息,请点击这里

4)使用SQLite有什么优势?

  • SQLite是非常轻量级的数据库。
  • 数据存储非常简单有效。
  • SQlite非常易于学习和使用。

欲了解更多信息,请点击这里

5)您将如何在SQLite中创建数据库?

在SQLite中,sqlite3命令用于创建数据库。

句法:

Sqlite3 database_name.db 

欲了解更多信息,请点击这里

6)如何在SQLite数据库中创建表?

CREATE TABLE语句用于在SQLite数据库中创建表。创建表时,必须定义列和每列的数据类型。

句法:

CREATE TABLE database_name.table_name(  
column1 datatype  PRIMARY KEY(one or more columns),  
column2 datatype,  
column3 datatype,  
columnN datatype,  
);  

欲了解更多信息,请点击这里

7)如何在SQLite数据库中删除表?

DROP TABLE命令用于从SQLite数据库中删除或永久删除表。

句法:

DROP TABLE table_name; 

欲了解更多信息,请点击这里

8)您将如何创建一个AUTOINCREMENT字段?

对于自动增量,必须将表的一列声明为INTEGER PRIMARY KEY,然后每当在表的该列中插入NULL时,该NULL都会自动转换为一个大于该列最大值的整数。表中所有其他行上的内容;如果表为空,则为1。

9)SQLite支持哪些数据类型?

SQLite使用动态类型。内容可以存储为INTEGER,REAL,TEXT,BLOB或NULL。

10)如何在SQLite的表中插入数据?

INSERT INTO语句用于在SQLite数据库的表中插入数据。有两种方法可以在表中插入数据:

方法1:

句法:

INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]    
VALUES (value1, value2, value3,...valueN); 

方法2:

句法:

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);    

欲了解更多信息,请点击这里

11)如何从SQlite表中检索数据?

SELECT命令用于从SQLite表检索数据。如果要从表中检索所有列,请使用SELECT *,否则请使用以逗号分隔的特定列的名称。

句法:

SELECT * FROM table_name;   
Or 
SELECT column1, column2, columnN FROM table_name;

欲了解更多信息,请点击这里

12)在SQLIte中UPADTE查询的用途是什么?

UPDATE查询用于修改SQLite表中的现有记录。您必须使用WHERE子句来修改特定的行,否则将更新所有行。

句法:

UPDATE table_name  
SET column1 = value1, column2 = value2...., columnN = valueN  
WHERE [condition]; 

欲了解更多信息,请点击这里

13)如何从SQLite中的表中删除现有记录?

在SQLite中,DELETE命令用于从表中删除现有记录。您应该使用WHERE子句选择特定的行,否则所有行将被删除。

句法:

DELETE FROM table_name  
WHERE [conditions....................]; 

欲了解更多信息,请点击这里

14)CRUD语句中WHERE子句的用途是什么?

WHERE子句用于引用执行CRUD操作的特定行。不使用WHERE子句,所有行都会受到影响。

欲了解更多信息,请点击这里

15)AND&OR运算符与WHERE子句的用法是什么?

AND&OR运算符与WHERE子句一起使用,以将两个或两个以上条件组合在一起。

句法:

SELECT column1, column2, columnN   
FROM table_name  
WHERE [condition1] AND [condition2]...OR [conditionN];

欲了解更多信息,请点击这里

欲了解更多信息,请点击这里

16)带WHERE子句的LIKE运算符的用法是什么?

LIKE运算符用于使用通配符将文本值与模式匹配。它使用带有字符串的两个通配符%和_与输入进行匹配。

句法:

SELECT FROM table_name  
WHERE column LIKE 'XXXX%' 
SELECT FROM table_name  
WHERE column LIKE 'XXXX_' 

欲了解更多信息,请点击这里

17)LIMIT子句与SELECT查询有什么用?

当我们想要有限数量的提取记录时,将LIMIT子句与SELECT语句一起使用。

句法:

SELECT column1, column2, columnN   
FROM table_name  
LIMIT [no of rows]

欲了解更多信息,请点击这里

18)为什么ORDER BY子句与SELECT语句一起使用?

ORDER BY子句用于按特定顺序对获取的数据进行升序或降序排序。

句法:

SELECT column-list   
FROM table_name   
[WHERE condition]   
[ORDER BY column1, column2, .. columnN] [ASC | DESC]; 

欲了解更多信息,请点击这里

19)SQLite GROUP BY子句的用途是什么?

SQLite GROUP BY子句用于将相同的元素收集到一个组中。它与SELECT语句一起使用。

句法:

SELECT column-list  
FROM table_name  
WHERE [ conditions ]  
GROUP BY column1, column2....columnN  
ORDER BY column1, column2....columnN  

欲了解更多信息,请点击这里

注意:可以一起使用GROUP BY和ORDER BY子句。

20)SQLite中DISTINCT子句的用途是什么?

DISTINCT子句始终与SELECT语句一起使用。它仅用于检索唯一记录并限制重复条目。

当表具有多个重复记录时使用。

句法:

SELECT DISTINCT column1, column2,.....columnN   
FROM table_name  
WHERE [condition]    

欲了解更多信息,请点击这里

21)什么是UNION运算符?它是如何工作的?

SQLite UNION运算符用于使用SELECT语句合并两个或多个表的结果集。两个表在结果表中必须具有相同数量的字段。

句法:

SELECT expression1, expression2, ... expression_n  
FROM tables  
[WHERE conditions]  
UNION  
SELECT expression1, expression2, ... expression_n  
FROM tables  
[WHERE conditions]; 

欲了解更多信息,请点击这里

22)什么是UNION ALL运算符? UNION和UNION ALL运算符什么区别?

UNION ALL运算符用于使用SELECT语句合并两个或多个表的结果。 UNION和UNION ALL运算符之间的唯一区别是UNION运算符在合并结果时会忽略重复的条目,而UNION ALL不会忽略重复的值。

句法:

SELECT expression1, expression2, ... expression_n  
FROM tables  
[WHERE conditions]  
UNION ALL  
SELECT expression1, expression2, ... expression_n  
FROM tables  
[WHERE conditions];

欲了解更多信息,请点击这里

23)什么是SQLite JOIN? SQLite支持几种类型的JOINS?

SQLite JOIN子句用于合并数据库中的两个或多个表。它通过使用两个表的公用值来合并表。

SQlite支持三种主要的JOINS类型:

  • SQLite内部联接
  • SQLite外连接
  • SQLite交叉联接

24)什么是SQLite INNER JOIN?

SQLite INNER JOIN是最简单,最常见的联接。它合并了两个表中满足条件的所有行。

句法:

SELECT ... FROM table1 [INNER] JOIN table2 ON conditional_expression ...    

欲了解更多信息,请点击这里

25)什么是SQLite OUTER JOIN?

共有三种类型的外部联接:

  • 左外连接
  • 右外连接
  • 完全外部联接

但是SQLite仅支持左外部联接。 SQLite左外部联接返回左表中的所有行,并且仅返回右表中满足联接条件的那些行。

句法:

SELECT ... FROM table1 LEFT OUTER JOIN table2 ON conditional_expression  

欲了解更多信息,请点击这里

26)解释SQLite交叉联接。

SQLite交叉联接用于将第一张表的每一行与第二张表的每一行匹配。如果第一个表包含x列,第二个表包含y列,则结果交叉连接表将包含x * y列。

句法:

SELECT ... FROM table1 CROSS JOIN table2  

欲了解更多信息,请点击这里

27)什么是SQLite日期和时间()函数?

SQLite日期和时间()函数用于检索当前日期和时间,还可以对日期和时间进行计算。

SQLite中主要有6种类型的日期和时间()函数:

  • SQLite date()函数
  • SQLite datetime()函数
  • SQLite julianday()函数
  • SQLite now()函数
  • SQLite strftime()函数
  • SQLite time()函数

欲了解更多信息,请点击这里

28)SQLite中date()函数的用途是什么?

SQLite date()函数用于获取日期并以“ YYYY-MM-DD”格式显示。

句法:

date(timestring, [ modifier1, modifier2, ... modifier_n ] )   

欲了解更多信息,请点击这里

29)SQLite中的datetime()函数什么用途?

SQLite datetime()函数用于以“ YYYY-MM-DD HH:MM:SS”格式检索当前日期和时间。

句法:

datetime(timestring, [ modifier1, modifier2, ... modifier_n ] )    

欲了解更多信息,请点击这里

30)什么是SQLite julianday()函数?

朱利安纪念日是公历前4714年11月24日,格林尼治时间格林尼治时间以来的天数。因此,julianday()函数用于返回自公元前4714年11月24日中午12:00以来的天数。

句法:

julianday(timestring [, modifier1, modifier2, ... modifier_n ] )    

欲了解更多信息,请点击这里

31)SQLite now()函数的用途是什么?

SQLite现在不是一个函数。取而代之的是,它是一个时间字符串参数,用于获取当前日期和时间。

句法:

date('now') 
or 
time('now')

欲了解更多信息,请点击这里

32)SQLite strftime()函数的用途是什么?

SQLite strftime()函数用于获取日期和时间,并执行时间和日期计算。

句法:

strftime(format, timestring [, modifier1, modifier2, ... modifier_n ] )    

欲了解更多信息,请点击这里

33)SQLite time()函数的用途是什么?

SQLite time()函数用于以“ HH-MM-SS”格式获取当前时间。

句法:

time(timestring, [ modifier1, modifier2, ... modifier_n ] ) 

欲了解更多信息,请点击这里

34)您对SQLite聚合函数了解什么?

SQLite聚合函数是函数的类型,其中多行的值作为特定条件下的输入分组在一起,并作为输出形成单个值。

SQLite中有多种类型的聚合函数。

欲了解更多信息,请点击这里

35)什么是SQLite MIN聚合函数?

SQLite MIN聚合函数用于检索表达式的最小值。

句法:

SELECT MIN(aggregate_expression)  
FROM tables  
[WHERE conditions];     

欲了解更多信息,请点击这里

36)什么是SQLite MAX聚合函数?

SQLite MAX聚合函数用于获取表达式的最大值。

句法:

SELECT MAX(aggregate_expression)  
FROM tables  
[WHERE conditions];   

欲了解更多信息,请点击这里

37)什么是SQLite AVG聚合函数?

SQLite AVG函数返回表达式的平均值。

句法:

SELECT AVG(aggregate_expression)  
FROM tables  
[WHERE conditions];   

欲了解更多信息,请点击这里

38)什么是SQLite COUNT聚合函数?

SQLite COUNT函数用于检索表达式的总数。

句法:

SELECT COUNT(aggregate_expression)  
FROM tables  
[WHERE conditions];

欲了解更多信息,请点击这里

39)什么是SQLite SUM聚合函数?

SQLite SUM聚合函数用于获取表达式的总和。

句法:

SELECT SUM(aggregate_expression)  
FROM tables  
[WHERE conditions]; 

欲了解更多信息,请点击这里

40)SQL和SQLite有什么区别?

SQL和SQLite之间的主要区别是:

  • SQL是结构化查询语言,而SQlite是关系数据库管理系统,主要用于android移动设备中以存储数据。
  • SQL支持存储过程,而SQLite不支持存储过程。
  • SQL是基于服务器的,而SQLite是基于文件的。

41)什么是SQLite事务?

事务指定针对数据库执行的工作单元。交易的属性由ACID确定:

原子性:原子性是一个属性,它指定所有工作单元均已成功完成。

一致性:用于确保数据库在成功提交事务后更改状态。

隔离:它可以帮助您独立且透明地进行交易。

耐久性:它确保在系统故障的情况下,持久化事务的结果或效果仍然存在。

42)在哪些方面,SQLite是最优选的?

首选使用SQLite:

  • 嵌入式设备。
  • 应用程序文件格式。
  • 数据分析。
  • 网站。
  • 文件档案。
  • 缓存企业数据。
  • 服务器端数据库。
  • 内部或临时数据库。
  • 临时磁盘文件的替换。
  • 实验性SQL语言扩展。

43)在SQLite中.dump命令的用途是什么?

.dump命令用于进行SQLite数据库转储。一旦使用dump命令,所有数据将被永久转储并且无法检索。