SQL 面试题 附答案 1、Insert Into 数据表名称(字段名称1,字段名称2,...) values(字段值1,字段值2,...) insert into user(username,password,age) values('李老四','6666',45) 2、Update 数据表名称 Set 字段名称=字段值,字段名称=字段值,...[Where 条件] 3、Delete From 数据表 4、下列查询返回在LONDON(伦敦)或SEATTLE(西雅图)的所有雇员: SELECT * FROM employees WHERE UPPER(city) IN ('LONDON','SEATTLE') 5、下面示例利用DATEDIFF函数,确定在 pubs 数据库中标题发布日期和当前日期间的天数。 SELECT DATEDIFF(day, OrderDate, getdate()) AS no_of_days FROM table1 6、返回字符串"wonderful"在 titles 表的 notes 列中开始的位置。 SELECT CHARINDEX('wonderful', notes) 7、下例是检索 titles 表中百分之五十的书。如果 titles 表中包含了 18 行,则将检索前 9 行。 SELECT TOP 50 PERCENT title FROM titles 8、字段名称 [Not] Between 起始值 and 终止值 列出BOOK表中30至50元的书 select * from book where price between 30 and 50 ...... ...... SQL是Structured Query Language的缩写,是用于管理关系数据库的标准语言。以下是一些常见的SQL面试题及相关的知识点解析: 1. **INSERT INTO**:用于向数据表中插入新记录。例如,`INSERT INTO user(username, password, age) VALUES('李老四', '6666', 45)` 插入了一条新的用户记录。 2. **UPDATE**:用于更新数据表中的现有记录。`UPDATE 数据表名称 SET 字段名称=字段值, 字段名称=字段值,... [WHERE 条件]`,例如,更新用户表中某用户年龄:`UPDATE user SET age = 46 WHERE username = '李老四'`。 3. **DELETE FROM**:用于删除数据表中的记录,如 `DELETE FROM 数据表`,但通常会配合 `WHERE` 子句以避免误删。 4. **WHERE**:在查询语句中用于指定筛选条件,例如 `SELECT * FROM employees WHERE UPPER(city) IN ('LONDON', 'SEATTLE')` 返回在伦敦或西雅图的员工记录。 5. **DATEDIFF**:计算两个日期之间的差值,`DATEDIFF(day, OrderDate, getdate()) AS no_of_days` 计算`OrderDate`字段与当前日期之间的天数差。 6. **CHARINDEX**:查找字符串在另一字符串中出现的位置,`SELECT CHARINDEX('wonderful', notes)` 返回`notes`列中`'wonderful'`首次出现的位置。 7. **TOP**:用于选取查询结果的前N个记录,`SELECT TOP 50 PERCENT title FROM titles` 取得表`titles`中前50%的标题。 8. **BETWEEN**:用于选取介于两个值之间的数据,`SELECT * FROM book WHERE price BETWEEN 30 AND 50` 选取价格在30到50之间的书籍。 9. **IN**:用于选取满足一组特定值之一的记录,`SELECT * FROM book WHERE price IN (30, 40, 50, 60)` 选取价格为30, 40, 50或60的书籍。 10. **LIKE**:使用通配符进行模糊匹配,`SELECT * FROM book WHERE publishing LIKE '%电%'` 查找出版社名称包含“电”的书籍。 11. **聚合函数**:如SUM、COUNT、AVG、MAX、MIN,分别用于求和、计数、计算平均值、最大值和最小值。例如: - `SELECT SUM(price) AS 合计 FROM book` 求出所有书籍的总价格。 - `SELECT COUNT(id) AS 数量 FROM book` 统计书籍记录的数量。 - `SELECT AVG(price) AS 平均价格 FROM book` 计算平均价格。 - `SELECT MAX(price) AS 最贵书 FROM book` 找出最贵的书籍。 - `SELECT MIN(price) AS 最便宜书 FROM book` 找出最便宜的书籍。 12. **表连接**:用于合并两个或多个表的数据。 - **CROSS JOIN** 生成所有可能的组合,不考虑任何条件。 - **LEFT JOIN** 保留左表的所有记录,即使在右表中没有匹配项。 - **RIGHT JOIN** 保留右表的所有记录,即使在左表中没有匹配项。 - **INNER JOIN** 只返回两个表中存在匹配的记录。 例如: ``` SELECT x.name, y.name FROM x LEFT JOIN y ON x.refid = y.id SELECT y.name, x.name FROM x RIGHT JOIN y ON x.refid = y.id SELECT t1.ProductID, t2.VendorID, t2.Name FROM table1 t1, table2 t2 WHERE t1.VendorID = t2.VendorID SELECT ProductID, table2.VendorID, Name FROM table1 JOIN table2 ON (table1.VendorID = table2.VendorID) ``` 13. **COMPUTE**:计算每组的聚合值,如 `SELECT RateId, ConnectionFee, Rate FROM UTC_Rate ORDER BY RateId COMPUTE SUM(ConnectionFee), SUM(Rate)`。 这些SQL语句和概念构成了数据库操作的基础,对于理解和处理关系型数据库至关重要。在面试中,熟练掌握并能灵活运用这些知识点可以体现出对SQL的深入理解。
剩余18页未读,继续阅读
- 粉丝: 2
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 从 Java 到 Kotlin - 从 Java 到 Kotlin 的速查表.zip
- (源码)基于Spring Boot框架的项目管理系统.zip
- (源码)基于Java Servlet的在线购物系统.zip
- (源码)基于Java+Spring Boot的教务管理系统.zip
- 主要是Java技术栈的文章.zip
- (源码)基于Arduino平台的公共交通状态展示系统.zip
- (源码)基于Python和Raspberry Pi的PIC微控制器编程与数据记录系统.zip
- (源码)基于Linux系统的文件信息列表工具.zip
- (源码)基于Python和MXNet框架的ZJ League视频问题回答系统.zip
- (源码)基于C++的图书管理系统.zip