- 请解释SQL是什么?
答:SQL(Structured Query Language)是一种用于管理关系数据库的编程语言。它可以用来创建、修改和删除数据表,以及查询、插入、更新和删除数据。
- 请解释DDL和DML的区别。
答:DDL(Data Definition Language)是用于定义和管理数据库结构的语言,包括创建、修改和删除数据表、索引等。DML(Data Manipulation Language)是用于操作数据库中的数据的语言,包括查询、插入、更新和删除数据。
- 请解释什么是主键和外键。
答:主键(Primary Key)是一个或多个字段的组合,用于唯一标识表中的每一行数据。外键(Foreign Key)是一个或多个字段的组合,用于建立两个表之间的关联关系。外键通常引用另一个表中的主键。
- 请解释什么是事务?
答:事务(Transaction)是一组原子性的SQL操作,要么全部成功执行,要么全部失败回滚。事务可以确保数据的一致性和完整性,避免因部分操作失败而导致的数据不一致问题。
- 请解释什么是索引?为什么需要索引?
答:索引(Index)是一种数据结构,用于加快查询速度。它类似于书籍的目录,可以帮助数据库快速定位到所需的数据。索引可以提高查询性能,但会增加存储空间和维护成本。因此,在创建索引时需要权衡利弊。
- 请解释什么是视图?视图有什么作用?
答:视图(View)是一个虚拟的表,它是根据一个或多个实际表的数据生成的。视图可以简化复杂的查询操作,提高数据安全性,隐藏不必要的数据细节。视图本身不包含实际数据,只是一个查询结果的快照。
- 请解释什么是存储过程和触发器?它们有什么区别?
答:存储过程(Stored Procedure)是一种预编译的SQL语句集合,可以在数据库中存储并重复使用。触发器(Trigger)是一种自动执行的SQL语句,当某个事件(如插入、更新或删除数据)发生时,触发器会自动执行相应的操作。存储过程主要用于实现业务逻辑,而触发器主要用于实现数据的完整性约束和审计功能。