当前位置: 首页 > news >正文

MySQL常用SQL语句的示例

概述

  • MySQL 常用 SQL 语句的示例,涵盖数据定义、操作、查询等常见场景

一、数据库操作

  1. 创建数据库

    CREATE DATABASE mydb;
    
  2. 选择数据库

    USE mydb;
    
  3. 删除数据库

    DROP DATABASE mydb;
    

二、表操作

  1. 创建表

    CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,email VARCHAR(100) UNIQUE,age INT DEFAULT 18,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    
  2. 修改表结构

    -- 添加列
    ALTER TABLE users ADD COLUMN address VARCHAR(200);-- 修改列类型
    ALTER TABLE users MODIFY COLUMN age TINYINT;-- 删除列
    ALTER TABLE users DROP COLUMN address;
    
  3. 删除表

    DROP TABLE users;
    

三、数据操作(CRUD)

  1. 插入数据

    INSERT INTO users (name, email, age) 
    VALUES ('张三', 'zhangsan@example.com', 25);
    
  2. 查询数据

    -- 查询所有列
    SELECT * FROM users;-- 查询特定列
    SELECT name, email FROM users;-- 条件查询 (WHERE)
    SELECT * FROM users WHERE age > 20;-- 排序 (ORDER BY)
    SELECT * FROM users ORDER BY created_at DESC;-- 分页 (LIMIT)
    SELECT * FROM users LIMIT 10 OFFSET 0; -- 第一页,每页10条
    
  3. 更新数据

    UPDATE users SET age = 26 WHERE id = 1;
    
  4. 删除数据

    DELETE FROM users WHERE id = 1;
    

四、高级查询

  1. 聚合函数

    SELECT COUNT(*) FROM users;       -- 总记录数
    SELECT AVG(age) FROM users;       -- 平均年龄
    SELECT MAX(age) FROM users;       -- 最大年龄
    
  2. 分组查询 (GROUP BY)

    SELECT age, COUNT(*) AS count 
    FROM users 
    GROUP BY age 
    HAVING count > 5; -- HAVING 过滤分组结果
    
  3. 连接查询

    -- 内连接 (INNER JOIN)
    SELECT u.name, o.order_id 
    FROM users u 
    INNER JOIN orders o ON u.id = o.user_id;-- 左连接 (LEFT JOIN)
    SELECT u.name, o.order_id 
    FROM users u 
    LEFT JOIN orders o ON u.id = o.user_id;
    
  4. 子查询

    SELECT * FROM users 
    WHERE age > (SELECT AVG(age) FROM users);
    

五、索引操作

  1. 创建索引

    CREATE INDEX idx_name ON users(name);
    
  2. 删除索引

    DROP INDEX idx_name ON users;
    

六、事务处理

START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT; -- 提交事务
-- ROLLBACK; -- 回滚事务

七、用户与权限

  1. 创建用户

    CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
    
  2. 授予权限

    GRANT SELECT, INSERT ON mydb.* TO 'myuser'@'localhost';
    
  3. 撤销权限

    REVOKE INSERT ON mydb.* FROM 'myuser'@'localhost';
    
  4. 删除用户

    DROP USER 'myuser'@'localhost';
    

八、其他常用操作

  1. 模糊查询 (LIKE)

    SELECT * FROM users WHERE name LIKE '张%';
    
  2. 去重查询 (DISTINCT)

    SELECT DISTINCT age FROM users;
    
  3. 处理 NULL 值

    SELECT * FROM users WHERE email IS NULL;
    
  4. 日期函数

    SELECT NOW(); -- 当前时间
    SELECT DATE_FORMAT(created_at, '%Y-%m-%d') FROM users;
    

九、导入导出数据

  1. 导出数据到文件

    mysqldump -u root -p mydb > mydb.sql
    
  2. 导入数据

    mysql -u root -p mydb < mydb.sql
    

相关文章:

  • 蛇行等长 差分阻抗
  • 台式机 thingsboard 部署 MQTT服务器端口查询及公开本地站点到公网,MQTT客户端配置
  • CSS例子 > 图片瀑布流布局(vue2)
  • nginx-基础知识
  • vscode构建简单编译和调试环境
  • 使用预训练模型的视频分类
  • [图论]Prim
  • XCZU4CG‑2SFVC784I 赛灵思 FPGA XilinxZynq UltraScale+ MPSoC
  • 新型多机器人协作运输系统,轻松应对复杂路面
  • 算法思想之分治-归并
  • 【Linux】第八章 监控和管理Linux进程
  • SpringBoot——配置文件
  • 【机器人创新创业应需明确产品定位与方向指南】
  • EMIF详解
  • RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION函数分析之初始化中的u.ConnSendContext----RPC源代码分析
  • 如何简单几步使用 FFmpeg 将任何音频转为 MP3?
  • 插件架构实践
  • 0.深入探秘 Rust Web 框架 Axum
  • 基于 Django 进行 Python 开发
  • Telecom 源码分析计划
  • 跨文化戏剧的拓荒者与传承者——洪深与复旦剧社的百年回响
  • 上海145家博物馆、73家美术馆将减免费开放
  • AI含量非常高,2025上海教育博览会将于本周五开幕
  • 体坛联播|C罗儿子完成国家队首秀,德约结束与穆雷合作
  • 梅花奖在上海丨陈丽俐“婺剧折戏专场”:文戏武做,武戏文唱
  • 某博主遭勒索后自杀系自导自演,成都警方立案调查