⾯试SQL整理必考的SQL⾯试题:经典20题
1.什么是数据库?
数据库是有组织的数据集合,可以从远程或本地计算机系统以数字⽅式进⾏存储和检索。数据库可能庞⼤⽽复杂,并且使⽤固定设计和建模⽅法来开发此类数据库。
2.什么是DBMS?
DBMS代表数据库管理系统。DBMS是负责创建,检索,更新和管理数据库的系统软件。通过充当数据库与其最终⽤户或应⽤程序软件之间的接⼝,它可以确保我们的数据是⼀致的,有条理的,并且易于访问。
3.什么是RDBMS?与DBMS有何不同?
RDBMS代表关系数据库管理系统。与DBMS相⽐,这⾥的主要区别在于RDBMS以表集合的形式存储数据,并且可以在这些表的公共字段之间定义关系。⼤多数现代数据库管理系统(例如MySQL,Microsoft SQL Server,Oracle,IBM DB2和Amazon Redshift)都基于RDBMS。
4.什么是SQL?
SQL代表结构化查询语⾔。它是关系数据库管理系统的标准语⾔。在处理由实体(变量)组成的组织数据以及数据的不同实体之间的关系时,它特别有⽤。
oracle 分页5. SQL和MySQL有什么区别?
SQL是⽤于检索和操作结构化数据库的标准语⾔。相反,MySQL是⽤于管理SQL数据库的关系数据库管理系统,例如SQLdedecms仿站实例
Server,Oracle或IBM DB2。
6.什么是表格和字段?
表格是以⾏和列的形式存储的数据的有组织的集合。列可以分类为垂直,⾏可以分类为⽔平。表中的列称为字段,⽽⾏可称为记录。
7. SQL中的约束是什么?
约束⽤于指定有关表中数据的规则。在创建表期间或使⽤ALTER TABLE命令创建表之后,可以将其应⽤于SQL表中的单个或多个字段。约束是:
NOT NULL –限制将NULL值插⼊列中。
检查–验证字段中的所有值均满⾜条件。
默认值–如果未为该字段指定值,则⾃动分配默认值。
唯⼀–确保将唯⼀值插⼊到字段中。
INDEX –为字段提供索引,可以更快地检索记录。
PRIMARY KEY –唯⼀标识表中的每个记录。
FOREIGN KEY –确保另⼀个表中记录的引⽤完整性。
8.什么是主键?
PRIMARY KEY约束唯⼀地标识表中的每⼀⾏。它必须包含UNIQUE值,并且具有隐式NOT NULL约束。
SQL中的表严格限制为只有⼀个主键,该主键由单个或多个字段(列)组成。
CREATE TABLE Students ( /* Create table with a single field as primary key */
ID INT NOT NULL
Name VARCHAR(255)
PRIMARY KEY (ID)
);
CREATE TABLE Students ( /* Create table with multiple fields as primary key */
ID INT NOT NULL
LastName VARCHAR(255)
FirstName VARCHAR(255) NOT NULL,
CONSTRAINT PK_Student
PRIMARY KEY (ID, FirstName)
);
ALTER TABLE Students /* Set a column as primary key */
ADD PRIMARY KEY (ID);
ALTER TABLE Students /* Set multiple columns as primary key */
ADD CONSTRAINT PK_Student /*Naming a Primary Key*/
PRIMARY KEY (ID, FirstName);
9.什么是UNIQUE约束?
UNIQUE约束确保列中的所有值都不同。这为列提供了唯⼀性,并有助于唯⼀地标识每⼀⾏。与主键不同,每个表可以定义多个唯⼀约束。UNIQUE的代码语法与PRIMARY KEY的语法⾮常相似,可以互换使⽤。
CREATE TABLE Students ( /* Create table with a single field as unique */
ID INT NOT NULL UNIQUE
Name VARCHAR(255)
);
CREATE TABLE Students ( /* Create table with multiple fields as unique */
ID INT NOT NULL
LastName VARCHAR(255)
FirstName VARCHAR(255) NOT NULL
CONSTRAINT PK_Student
UNIQUE (ID, FirstName)
);
ALTER TABLE Students /* Set a column as unique */
ADD UNIQUE (ID);
ALTER TABLE Students /* Set multiple columns as unique */
ADD CONSTRAINT PK_Student /* Naming a unique constraint */
UNIQUE (ID, FirstName);
10.什么是外键?
⼀个FOREIGN KEY由⼀个表中的单个或字段集合组成,该表实质上是引⽤另⼀个表中的PRIMARY KEY。外键约束确保两个表之间关系的引⽤完整性。
具有外键约束的表被标记为⼦表,包含候选键的表被标记为引⽤表或⽗表。
CREATE TABLE Students ( /* Create table with foreign key - Way 1 */
ID INT NOT NULL
Name VARCHAR(255)
LibraryID INT
PRIMARY KEY (ID)
mysql语句的执行顺序FOREIGN KEY (Library_ID) REFERENCES Library(LibraryID)
);
CREATE TABLE Students ( /* Create table with foreign key - Way 2 */
ID INT NOT NULL PRIMARY KEY
Name VARCHAR(255)
LibraryID INT FOREIGN KEY (Library_ID) REFERENCES Library(LibraryID)
);
ALTER TABLE Students /* Add a new foreign key */
ADD FOREIGN KEY (LibraryID)
REFERENCES Library (LibraryID);
11.什么是加⼊?列出其不同类型。
SQL Join⼦句⽤于根据SQL数据库中两个或多个表之间的相关列来组合记录(⾏)。
(内部)联接:检索联接所涉及的两个表中具有匹配值的记录。这是查询中⼴泛使⽤的联接。
SELECT FROM Table_A JOIN Table_B; SELECT FROM Table_A INNER JOIN Table_B;
左(外部)联接:从左侧检索所有记录/⾏,并从右侧表检索匹配的记录/⾏。SELECT* FROM Table_A A左联接Table_B B ON
双老太婆丈夫叫什么名字右(外)联接:从右表检索所有记录/⾏,从左表检索匹配的记录/⾏。SELECT * FROM Table_A A右联接Table_B B l =
drupal7有erp模块吗FULL(OUTER)JOIN:检索左表或右表中有匹配项的所有记录。SELECT* FROM Table_A A FULL JOIN Table_B B l =
12.什么是⾃加⼊?
⾃我联接是常规联接的⼀种情况,其中表根据其⾃⾝列之间的某种关系⽽联接⾄⾃⾝。⾃联接使⽤INNER JOIN或LEFT JOIN⼦句,并且表别名⽤于为查询中的表分配不同的名称。
p_id AS "Emp_ID",A.emp_name AS "Employee",
FROM employee A, employee B
p_sup = B.emp_id;
## 13。什么是交叉加⼊?交叉联接可以定义为联接中包含的两个表的笛卡尔乘积。联接后的表包含的⾏数与两个表中的⾏数的叉积相同。如果在交叉联接中使⽤WHERE⼦句,则查询将像INNER JOIN⼀样⼯作。
SELECT stu.name, sub.subject
FROM students AS stu
CROSS JOIN subjects AS sub;
14.什么是索引?解释其不同类型。
数据库索引是⼀种数据结构,可以快速查表的⼀个或多个列中的数据。它以额外的写⼊和内存维护索引数据结构为代价,提⾼了从数据库表访问数据的操作速度。
CREATE INDEX index_name /* Create Index */
ON table_name (column_1, column_2);
DROP INDEX index_name; /* Drop Index */
15.聚集索引和⾮聚集索引有什么区别?
如上所述,差异可以分为三个⼩因素-
聚集索引修改了基于索引列的记录在数据库中的存储⽅式。⾮聚集索引在表内创建了⼀个引⽤原始表的单独实体。
聚集索引⽤于轻松,快速地从数据库中检索数据,⽽从⾮聚集索引中获取记录则相对较慢。
在SQL中,表可以具有单个聚集索引,⽽表可以具有多个⾮聚集索引。
16.什么是数据完整性?
数据完整性是数据在整个⽣命周期中准确性和⼀致性的保证,并且是设计,实现和使⽤存储,处理或检索数据的任何系统的关键⽅⾯。它还定义了完整性约束,以在将数据输⼊到应⽤程序或数据库中时对数据执⾏业务规则。
17.什么是查询?
查询是从数据库表或表组合中获取数据或信息的请求。数据库查询可以是选择查询或动作查询。
SELECT fname, lname /* select query */
FROM myDb.students
WHERE student_id = 1;
UPDATE myDB.students /* action query */
SET fname = 'Captain', lname = 'America'
WHERE student_id = 1;
18.什么是⼦查询?它是什么类型?
⼦查询是另⼀个查询内的查询,也称为嵌套查询或内部查询。它⽤于限制或增强主查询要查询的数据,从⽽分别限制或增强主查询的输出。例如,在这⾥,我们获取已注册数学课程的学⽣的联系信息:
SELECT name, email, mob, address
acts
WHERE roll_no IN (
SELECT roll_no
FROM myDb.students
WHERE subject = 'Maths');
⼦查询有两种类型-关联和不关联。
相关⼦查询不能视为独⽴查询,但可以引⽤主查询的FROM中列出的表中的列。
可以将不相关的⼦查询视为独⽴查询,并将⼦查询的输出替换为主查询中的⼦查询。
19.什么是SELECT语句?
SQL中的SELECT运算符⽤于从数据库中选择数据。返回的数据存储在结果表中,称为结果集。
SELECT * FROM myDB.students;
20. SQL中的SELECT查询使⽤哪些常见⼦句?
与SELECT查询结合使⽤的⼀些常见SQL⼦句如下:
SQL中的WHERE⼦句⽤于根据特定条件过滤必要的记录。
SQL中的ORDER BY⼦句⽤于根据某些字段以升序(ASC)或降序(DESC)对记录进⾏排序。
SQL中的GROUP BY⼦句⽤于对具有相同数据的记录进⾏分组,并且可以与某些聚合函数结合使⽤,以从数据库中⽣成汇总结果。
SQL中的HAVING⼦句与GROUP BY⼦句⼀起⽤于过滤记录。它与WHERE不同,因为WHERE⼦句⽆法过滤聚合记录。
⼦句中的每个SELECT语句必须具有相同的列数
这些列还必须具有相似的数据类型
每个SELECT语句中的列必须具有相同的顺序
在任何变量声明之后,声明⼀个游标。游标声明必须始终与SELECT语句关联。
打开游标以初始化结果集。在从结果集中获取⾏之前,必须先调⽤OPEN语句。
FETCH语句检索并移⾄结果集中的下⼀⾏。
调⽤CLOSE语句以停⽤游标。
最后,使⽤DEALLOCATE语句删除游标定义并释放关联的资源。
⼀对⼀–可以定义为两个表之间的关系,其中⼀个表中的每个记录与另⼀个表中的⼀个记录的最⼤值相关联。
⼀对多和多对⼀–这是最常⽤的关系,其中⼀个表中的⼀条记录与另⼀个表中的多条记录相关联。什么是瀑布流布局
多对多–在需要双⽅都需要多个实例来定义关系的情况下使⽤。⾃引⽤关系–在表需要定义与其⾃⾝的关系时使⽤。
在这⾥还是要推荐下我⾃⼰建的Python学习:721195303,⾥都是学Python的,如果你想学或者正在学习Python ,欢迎你加⼊,⼤家都是软件开发党,不定期分享⼲货(只有Python软件开发相关的),包括我⾃⼰整理的⼀份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的⼩伙伴加⼊!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论