SQL 基础知识面试题(第二天):核心基础考点

一、基础概念题(理解类)

1. 题目:SQL 的四大核心语句及用途

缩写 全称 中文含义 核心用途 示例 SQL
DQL Data Query Language 数据查询语言 查询数据库中的数据 SELECT name, dept_id FROM user WHERE dept_id = 1;
DML Data Manipulation Language 数据操纵语言 增 / 删 / 改数据库中的数据 INSERT INTO user(name, dept_id) VALUES ('张三', 1);(增)UPDATE user SET dept_id = 2 WHERE name = '张三';(改)DELETE FROM user WHERE id = 1;(删)
DDL Data Definition Language 数据定义语言 创建 / 修改 / 删除数据库对象 CREATE TABLE user (id INT PRIMARY KEY, name VARCHAR(50));(建表)ALTER TABLE user ADD age INT;(改表)DROP TABLE user;(删表)
DCL Data Control Language 数据控制语言 权限管理、事务控制 GRANT SELECT ON user TO test_user;(授权)COMMIT;(提交事务)ROLLBACK;(回滚事务)

image

2. 题目:MySQL 中常用数据类型及使用场景

数据类型 典型使用场景 示例 SQL(建表片段)
INT 存储整数(ID、数量、年龄) id INT PRIMARY KEY AUTO_INCREMENT, age INT
VARCHAR 存储变长字符串(姓名、地址) name VARCHAR(50) NOT NULL, address VARCHAR(200)
DATETIME 存储时间(创建时间、更新时间) create_time DATETIME DEFAULT CURRENT_TIMESTAMP
DECIMAL 存储高精度小数(金额、价格) price DECIMAL(10,2) NOT NULL(10 位总长度,2 位小数)
BOOLEAN 存储布尔值(状态、开关) is_active BOOLEAN DEFAULT TRUE(MySQL 中 BOOLEAN 等价于 TINYINT (1))
CREATE TABLE `goods` (
  `id` INT PRIMARY KEY AUTO_INCREMENT,
  `goods_name` VARCHAR(100) NOT NULL,
  `price` DECIMAL(10,2) NOT NULL,
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
  `is_sale` BOOLEAN DEFAULT TRUE
);

二、基础实操题(高频考点)

问题:基于以下商品表,写出满足对应需求的 SQL,并解析核心语法。

-- 商品表结构及测试数据
CREATE TABLE `goods` (
  `id` INT PRIMARY KEY AUTO_INCREMENT,
  `goods_name` VARCHAR(100) NOT NULL,
  `category` VARCHAR(50) NOT NULL, -- 商品分类
  `price` DECIMAL(10,2) NOT NULL,
  `stock` INT NOT NULL -- 库存
);

INSERT INTO `goods` (goods_name, category, price, stock) VALUES
('小米14', '手机', 3999.00, 1000),
('华为Mate60', '手机', 4999.00, 800),
('苹果15', '手机', 5999.00, 500),
('小米平板6', '平板', 2499.00, 600),
('华为平板Pro', '平板', 3299.00, 400);

需求 1:查询所有 “手机” 分类的商品,按价格从高到低排序。

SELECT * FROM `goods` 
WHERE category = '手机' 
ORDER BY price DESC;

需求 2:查询价格在 3000-5000 元之间的商品,只显示商品名称和价格。

SELECT goods_name, price FROM `goods` 
WHERE price BETWEEN 3000 AND 5000;

需求 3:查询库存大于 500 的 “手机” 或 “平板” 商品,按库存升序排序。

SELECT * FROM `goods` 
WHERE stock > 500 AND (category = '手机' OR category = '平板')
ORDER BY stock ASC;

2. 题目:INSERT/UPDATE/DELETE 基础语法

image

-- 需求1:新增记录
INSERT INTO `goods` (goods_name, category, price, stock) 
VALUES ('iPad Pro', '平板', 4999.00, 300);

-- 需求2:修改记录
UPDATE `goods` 
SET price = 5899.00, stock = 550 
WHERE goods_name = '苹果15';

-- 需求3:删除记录
DELETE FROM `goods` 
WHERE category = '平板' AND stock < 400;

posted @ 2026-03-17 11:20  白鹿为溪  阅读(26)  评论(0)    收藏  举报