三、SQL基础语法

SQL 基础语法详解与示例

一、SQL 语法分类

SQL 语法主要分为以下四类(简称 CRUD):

  1. 查询数据SELECT
  2. 插入数据INSERT INTO
  3. 更新数据UPDATE
  4. 删除数据DELETE

二、基础语法与示例

1. 创建数据库和表

-- 创建数据库
CREATE DATABASE school;

-- 使用数据库
USE school;

-- 创建学生表
CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    age INT,
    gender ENUM('男', '女'),   -- 类型:ENUM(枚举类型,仅允许'男'或'女')
    score DECIMAL(4,1)  -- 类型:DECIMAL(4,1)(最多4位数字,其中1位小数,如99.5)
);

2. 插入数据(INSERT)

-- 插入单条数据
INSERT INTO students (name, age, gender, score)
VALUES ('张三', 18, '男', 89.5);

-- 插入多条数据
INSERT INTO students (name, age, gender, score)
VALUES 
  ('李四', 17, '女', 92.0),
  ('王五', 19, '男', 76.5);

3. 查询数据(SELECT)

-- 查询所有字段
SELECT * FROM students;

-- 查询特定字段
SELECT name, score FROM students;

-- 带条件查询(WHERE)
SELECT * FROM students WHERE age > 18;

-- 排序(ORDER BY)
SELECT * FROM students ORDER BY score DESC;  -- 按成绩降序

-- 限制结果数量(LIMIT)
SELECT * FROM students LIMIT 3;  -- 取前3条

4. 更新数据(UPDATE)

-- 修改张三的成绩
UPDATE students 
SET score = 95.0 
WHERE name = '张三';

-- 批量修改年龄
UPDATE students
SET age = age + 1  -- 所有学生年龄加1岁
WHERE gender = '男';

5. 删除数据(DELETE)

-- 删除特定记录
DELETE FROM students 
WHERE score < 60;  -- 删除不及格学生

-- 清空表(谨慎使用!)
DELETE FROM students;

三、常用子句与运算符

1. WHERE 条件筛选

运算符说明示例
=等于WHERE age = 18
> <大于/小于WHERE score > 90
BETWEEN范围查询WHERE age BETWEEN 17 AND 19
LIKE模糊匹配WHERE name LIKE '张%'
IN多值匹配WHERE id IN (1,3,5)

2. 聚合函数

-- 统计学生总数
SELECT COUNT(*) FROM students;

-- 计算平均分
SELECT AVG(score) FROM students;

-- 最高分和最低分
SELECT MAX(score), MIN(score) FROM students;

3. 分组统计(GROUP BY)

-- 按性别统计平均分
SELECT gender, AVG(score) 
FROM students 
GROUP BY gender;

四、数据类型速查表

类型说明示例
INT整数age INT
VARCHAR(n)可变长度字符串name VARCHAR(50)
DECIMAL(m,n)精确小数price DECIMAL(5,2)
DATE日期(YYYY-MM-DD)birthday DATE
DATETIME日期时间created_at DATETIME

五、综合案例

-- 创建商品表
CREATE TABLE products (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100),
    price DECIMAL(10,2),
    stock INT
);

-- 插入数据
INSERT INTO products (name, price, stock)
VALUES 
  ('苹果', 5.50, 100),
  ('香蕉', 3.20, 80),
  ('牛奶', 8.00, 50);

-- 查询库存大于50且价格低于10元的商品
SELECT name, price 
FROM products 
WHERE stock > 50 AND price < 10.00
ORDER BY price ASC;

注意事项

  1. SQL 不区分大小写,但建议关键字大写(如 SELECT
  2. 字符串必须用单引号'文本'
  3. 每条语句以分号结尾;
  4. WHERE 条件要具体,避免误删/误改数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值