欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > MySQL常用SQL语句的示例

MySQL常用SQL语句的示例

2025/4/23 0:45:13 来源:https://blog.csdn.net/vbhfdghff/article/details/147310454  浏览:    关键词: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
    

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词