百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

SQL面试72题(sql面试题基础知识)

toyiye 2024-07-08 00:34 10 浏览 0 评论

?



SQL面试72题

大家好,这一期呢,我们来看一下sql的面试题。

第1题,什么是sql?

结构化查询语言。用来创建和访问数据库从而对软件应用提供支持。

第2题,什么是表?

表是一些记录的集合,表被认为是一个单一的数据空间。

第3题,有几种类型的语句?

Ddl数据定义语言,dml数据管理语言,dcl数据控制语言。

第4题,介绍一下distinct。

Distinct 跟 select,语句结合使用的, 以避免出现指定的重复的列记录。

select distinct columnnames from tablename;

第5题, 有哪些不同的clauses?

Where, 为了定义条件来过滤数据的。

Group by, 通过指定的条件来对数据进行分组.

Having, 跟group by结合使用, 用来过滤数据.

Order by用来排序。

Using, 跟Join结合使用,可以用on来替代.

第6题, 为什么使用constraints? 在创建数据库的时候,需要用哪些constraints?

Constraints用来对表的记录设定规则。如果相关的记录不符合规则,就会被终止操作。

有5种主要的constraints。Not null, unique, primary key, foreign key, check.

第7题,有几种不同的join?

Inner join, left join, right join, full join.

Inner join, 就是只要有一个列能够匹配, 就简单的返回两个table中所有的对应行。

select columnnames from tablename1 inner join tablename2 on columnname1=columnname2

Left join也就是left outer join。当有一个列能够匹配时就返回左边表中所有的行。

select columnnames from tablename1 left join tablename2 on columnname1=columnname2

Right join也就是right outer join,当有列匹配时,返回右边表格中所有的行。

select columnnames from tablename1 right join tablename2 on columnname1=columnname2

Full join也就是full outer join, 当有匹配时, 会返回左边表格和右边表格任意情况下的行组合。

第8题,什么是transaction及其控制?

Transaction包含了一系列的任务操作。这些操作可能是创建更新删除等等操作,是作为一个特定的结果来表现的。要么成功,要么不成功。

有4种控制,一种是commit,也就是提交。一种是rollback,也就是回调。再一种是set transaction,对这个事务设定一个名字。再一种是save point。这个控制是用来设定某个点用来回退的。

第9题,事务的属性是什么?

Atomicity, Consistency, Isolation, Durability.

第10题,有哪些直接可以调用的arregate函数?

Avg, count, max, min, sum, first, last.

第11题, 有哪些scalar函数?

ucase, lcase, mid, format, len, round.

第12题,什么是trigger?

Trigger相当于stored procedure, 它是用来对某些动作出反应的机制。

create trigger name before|after event on tablename for each row | statememt execute procedure functionname arguments

第13题,什么是view?

view是个虚拟表,它包含多行多列,这些数据来自于一个或者多个表格。

create view viewname as select columname from tablename where condition

第14题, 如何更新view?

使用create和replace来更新view。

create or replace view viewname as select columname from tablename where condition

第15题, 解释一下权限是怎么工作的?

Grant和revoke分别是给予权限和去除权限。

包括如下动作,select, insert,update, delete, all等等。

gant privilegename on objectname to username or public or rolename with grant option

revoke privilegenane on objectname from username or public or rolename

第16题, 有几种类型的privileges?

有两种System privilege和object privilege。

System privilege主要做的工作有alter any index, alter any cache group, create, alter, delete table, create, alter,delete view等等。

对象privilege包含,execute, insert, update, delete. select, flush, load, index, references等操作。

第17题,什么是sql injection?

这是一种攻击数据库的技术,是在数据库的查询语句中嵌套,恶意破坏性的sql语句。当这些语句被执行时会对数据库的数据造成破坏。

第18题, 什么是sql的sandbox?

Safe access sandbox.

External access sandbox.

Unsafe access sandbox.

第19题, Sql和pl/sql有什么区别?

Sql是结构化查询语言, pl/sql是procedural concepts编程语言。

第20题, Nvl函数的作用是什么?

Nvl是为了把空值转换成真正的值。

第21题, 什么是carteslan product?

两个表相乘。两个表的数据进行叠加。一个表有5个行,另一个表有6个行。最后的结果就是30行。

第22题, Sql和my sql的区别是什么?

Sql是结构化查询语言,my sql是一个关系型数据库。

第23题, Subquery是什么意思?

子查询是一个查询嵌入在另一个查询里面。

第24题, 使用子查询时有多少比较的运算符?

In, any和all。

第25题, Clustered索引和非clustered索引有什么区别?

一张表只有一个clustered索引,可以有多个非clustered索引。

clustered索引,要快于非clustered索引。

Clustered索引会存储数据在表和视图当中。而非clustered索引不会。

第26题, Delete和truncate的区别是什么?

Delete是dml,truncate是ddl。

Delete是用来删除一行或者多行。Truncate是用来删除一个表中的所有行。

我们可以用where跟delete结合使用。Truncate不可以。

第27题, Drop跟truncate的区别是什么?

truncate是删除表中所有的行,drop是删除整张表。这两个操作都不可以回撤。

第28题, 写出一行语句显示学生表中学生名字以k开头的所有学生。

select * from student where studentname like 'k%'

第29题, 嵌套查询和关联查询有什么区别吗?

在一个子查询中再套另外一个字查询成为嵌套查询。如果查询的输出依赖于父查询表的话,这个查询称为关联子查询。

select adminid(select firstname+' '+lastname from emplyee where empid=emp.adminid) as empadminid from employee

第30题, 什么是Normalization, 有几种形式?

Normalization是指避免数据冗余而使用的机制。

有4种,

第1范式是避免在表中出现重复的列。

第2范式遵循第1范式并且建立表之间的关联。

第3范式遵循第2范式,并且去除了跟主键不相关的列。

第4范式遵循第3范式,并且不定义多值依赖。

第31题,什么是关系?有几种关系?

关系是指多表在数据库中的关联。

有4种关系。

1对1,多对一,多对多,一对多。

第32题, 什么是stored procedures? 如何使用?

Stored procedure是一系列的sql语句,可以被当做函数来执行操作数据库。stored procedure用来减轻网络负担并提高性能。

create procedure procedurename (parameters) as begin

sql statements in stored procedures to update/retrieve records

end

第33题, 关系型数据库的一些基本属性是什么?

每一列要有唯一的名字。

表行的顺序和列的顺序无关紧要。

所有的值是原子性的,每一行都是唯一的。

第34题,什么叫嵌套trigger?

Trigger可以在满足一些条件的时候用来做数据的修改。

在triggers里面含有另外的trigger,我们称之为嵌套的trigger。

第35题, 什么是cursor?

Cursor相当于是一个指针来访问数据库的对象, 它是以行为单位的。

使用cursor的步骤如下, 声明cursor, 打开 cursor, 获取行数据, 处理行, 关掉cursor, 释放cursor。

第36题, 什么是collation?

Collation是一系列的规则用来检查数据是如何排序的. 比如字符串数据是通过字符串的顺序,字符串的大小写敏感等等来排序的。

第37题, 在数据库测试中,我们需要检查什么?

数据库的链接。

Constraint检查。

数据域的大小。

通过dml操作进行数据获取和处理。

存储过程。

Functional flow。

第38题, 什么是数据库的白盒测试?

数据库的一致性和ACID属性。

数据库的triggers和逻辑视图。

Decision覆盖,条件覆盖和语句覆盖。

数据库表, 数据模型, 数据定义。

参照完整性规则。

第39题, 什么是数据库的黑盒测试?

数据mapping。

数据存储和获取。

使用黑盒技术。

第40题, 什么是数据库的索引?

数据库的索引是为了快速的获取数据。

create index indexname on tablename (columnname )

第41题, 如何在表中添加一条记录?

insert into tablename values(...)

第42题, 如何在表中添加一列?

alter table tablename add (columnname)

第43题, 如何使用delete语句?

delete from tablename where (...)

第44题, Commit的作用是什么?

Commit是为了提交所有dml语句的修改。

第45题,什么是主键?

主键是表中每一行的标识。

第46题,什么是外键?

在本表中关联另外一张表的主键称之为这个表的外键。

第47题,什么是check constraint?

是用来限制某一列的数据和数据的类型。

第48题,布尔数据域的可能值有哪些?

-1 true, 0 false.

第49题, 什么是identity?

Identity是数据库自动生成的数字值来标识主键列, 我们可以定义一个起始值。

第50题, 如何随机的从表中取行?

select * from tablename sample 10

第51题, Sql server缺省的TCP/ip端口是什么?

1433.

第52题, 写一个语句返回不同名字。

select distinct name from tablename

第53题, 如何在输出中改变列的名称?

select columnname as newname from tablename;

第54题, Select语句中可能使用的clauses的排列顺序。

select,from,where,group by, having, order by.

第55题, 学生表中有名字和分数两个列,如何获取前三名?

select name, marks from student s1 where 3 <= (select count (*) from students s2 where s1.marks=s2.marks)

第56题, sql语句的注释。

使用两个的hyphens.

第57题, 什么是rowID?

在表的每一个行中都存在这么一个虚拟的列,他有18个字符的长度。

第58题, 说一下union, minus, union all和intersect。

minus返回所有第1个查询中不同的行。

union返回任意查询中不同的行。

union all 返回任意查询中所有的行,包括重复的行。

intersect返回两个查询相结合的不同的行。

第59题, Unique和primary key区别有哪些?

一个表中只允许有一个primary key,但是可以有多个unique key。

Primary key不可以为空,uniquekey 可以可以为空。

第60题, 什么是 composite primary key?

有多个列生成的primary key称之为composite primary key.

第61题, 什么叫查询优化?

是指数据库系统,对多个查询进行比较,会选择其中代价最小的那个查询。

第62题, 什么是case function?

If then else类型的逻辑。他会根据这些条件判断而返回不同的结果表达式。

第63题, 什么是临时表?

临时表用来临时存储数据的存储结构。

第64题,Rename和alias的区别是什么?

Rename是改名。Alias是别名,它不会修改列名称。

第65题, 视图的优势在哪里?

视图可以限定访问表格的列。

视图可以访问多个表格。

第66题, 用户之间可以给予的权限有哪些?

Select, connect, resources.

第67题, 什么是Schema?

Schema是一个用户的数据库对象的集合。

第68题, 视图是否包含数据?

视图不包含数据,视图是一个虚拟结构。

第69题, 一个视图可以从另一个视图中创建吗?

可以,一个视图可以从另一个视图中创建。

第70题, Having clause和where clause的区别是什么?

两者都是指定查询条件的,但是having只能用select语句中,典型的用途跟group by相结合的时候。

第71题, 局部临时表和全局临时表的区别是什么?

局部临时表只会存在于语句运行的时候。

全局临时表会存在于数据库当中,但是如果连接关闭的话,它也会消失。

第72题,什么是cte?

Cte也就是common table expression,它是包含一个语句的临时结果集的表达式。

码字不易,请关注点赞!

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码