以下是一些常见的数据库笔试题:
- 给定一个名为 Users 的表,包含 id(整数,主键)、name(字符串)和 age(整数)列。编写一个 SQL 查询,找出年龄大于 25 岁的用户的姓名。
SELECT name FROM Users WHERE age > 25; - 有一张 Orders 表,包含 order_id(整数,主键)、customer_id(整数)、order_date(日期)和 total_amount(浮点数)列。写一个查询,获取每个客户的订单总数和总金额。
SELECT customer_id, COUNT(order_id) AS order_count, SUM(total_amount) AS total_amount_sum
FROM Orders
GROUP BY customer_id; - 在一个名为 Products 的表中,有 product_id(整数,主键)、product_name(字符串)和 stock_quantity(整数)列。编写一个 SQL 语句,找出库存数量小于 10 的产品名称。
SELECT product_name FROM Products WHERE stock_quantity < 10; - 假设有 Employees 表,包含 employee_id(整数,主键)、first_name(字符串)、last_name(字符串)和 department_id(整数)列。写一个查询,获取每个部门的员工数量。
SELECT department_id, COUNT(employee_id) AS employee_count
FROM Employees
GROUP BY department_id; - 对于 Students 表,有 student_id(整数,主键)、name(字符串)、grade(整数)和 class_id(整数)列。找出平均成绩大于 80 分的班级的 class_id。
SELECT class_id
FROM Students
GROUP BY class_id
HAVING AVG(grade) > 80; - 有 Suppliers 表,包含 supplier_id(整数,主键)、supplier_name(字符串)和 location(字符串)列。编写一个查询,按位置对供应商进行分组,并返回每个位置的供应商数量。
SELECT location, COUNT(supplier_id) AS supplier_count
FROM Suppliers
GROUP BY location; - 在 Books 表中,有 book_id(整数,主键)、title(字符串)、author(字符串)和 publication_year(整数)列。找出在 2000 年至 2010 年之间出版的书籍的标题和作者。
SELECT title, author
FROM Books
WHERE publication_year BETWEEN 2000 AND 2010; - 给定 Sales 表,包含 sale_id(整数,主键)、product_id(整数)、quantity_sold(整数)和 sale_date(日期)列。编写一个查询,获取每个月的销售总量。
SELECT MONTH(sale_date) AS month, SUM(quantity_sold) AS total_sales
FROM Sales
GROUP BY MONTH(sale_date); - 有 Customers 表,包含 customer_id(整数,主键)、first_name(字符串)、last_name(字符串)和 email(字符串)列。编写一个查询,找出名字以 ‘J’ 开头的客户的电子邮件。
SELECT email FROM Customers WHERE first_name LIKE ‘J%’; - 对于 Inventory 表,有 item_id(整数,主键)、item_name(字符串)、quantity_in_stock(整数)和 reorder_level(整数)列。写一个查询,找出库存数量低于重新订购水平的物品名称。
SELECT item_name FROM Inventory WHERE quantity_in_stock < reorder_level;