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

影刀RPA开发拓展--SQL常用语句全攻略

前言

SQL(结构化查询语言)是数据库管理和操作的核心工具,无论是初学者还是经验丰富的数据库管理员,掌握常用的 SQL 语句对于高效管理和查询数据都至关重要。本文将系统性地介绍最常用的 SQL 语句,并为每个语句提供详细注释和实际案例,帮助大家在实际项目中得心应手地使用它们。

对于影刀RPA中级开发者,我们需要掌握基本SQL语句,增删改查,将数据插入到数据库存放,比传统的Excel文本存放要好的多,我们可以把数据集中管理,同时便于查询,不需要繁琐的合并数据!

数据定义语言(DDL)

数据库操作

  • 创建数据库
    CREATE DATABASE my_database;
    CREATE DATABASE test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
  • 删除数据库
    DROP DATABASE my_database;
    DROP DATABASE test_db;
    
  • 选择数据库
    USE my_database;
    USE test_db;
    

表操作

  • 创建表
    CREATE TABLE users (
        id INT PRIMARY KEY AUTO_INCREMENT,
        name VARCHAR(100) NOT NULL,
        email VARCHAR(100) UNIQUE NOT NULL
    );
    CREATE TABLE orders (
        order_id INT PRIMARY KEY AUTO_INCREMENT,
        user_id INT,
        amount DECIMAL(10, 2),
        FOREIGN KEY (user_id) REFERENCES users(id)
    );
    
  • 删除表
    DROP TABLE users;
    DROP TABLE orders;
    
  • 修改表
    ALTER TABLE users ADD COLUMN age INT;
    ALTER TABLE users MODIFY COLUMN email VARCHAR(150);
    ALTER TABLE users DROP COLUMN age;
    

数据操作语言(DML)

插入数据

  • 插入单条数据
    INSERT INTO users (name, email, age) VALUES ('John Doe', 'john.doe@example.com', 30);
    
  • 插入多条数据
    INSERT INTO users (name, email, age) VALUES
    ('Jane Smith', 'jane.smith@example.com', 25),
    ('Robert Brown', 'robert.brown@example.com', 40);
    INSERT INTO orders (user_id, amount) VALUES (1, 99.99);
    

删除数据

  • 删除特定数据
    DELETE FROM users WHERE name = 'John Doe';
    DELETE FROM users WHERE age > 30;
    DELETE FROM orders WHERE amount < 50;
    

更新数据

  • 更新特定数据
    UPDATE users SET age = 31 WHERE name = 'John Doe';
    UPDATE users SET age = age + 1;
    UPDATE orders SET amount = amount * 1.1 WHERE user_id = 1;
    

数据查询语言(DQL)

基础查询

  • 查询所有记录
    SELECT * FROM users;
    SELECT * FROM orders;
    
  • 查询特定列
    SELECT name, email FROM users;
    SELECT user_id, amount FROM orders;
    

排序查询

  • 按列排序
    SELECT * FROM users ORDER BY age ASC;
    SELECT * FROM users ORDER BY age DESC;
    SELECT * FROM orders ORDER BY amount ASC;
    

聚合函数

  • 计算总数
    SELECT COUNT(*) FROM users;
    SELECT COUNT(*) FROM orders;
    
  • 计算平均值
    SELECT AVG(age) FROM users;
    SELECT AVG(amount) FROM orders;
    
  • 计算总和
    SELECT SUM(amount) FROM orders;
    
  • 计算最大值和最小值
    SELECT MAX(age) FROM users;
    SELECT MIN(amount) FROM orders;
    

分组查询

  • 按列分组
    SELECT age, COUNT(*) FROM users GROUP BY age;
    SELECT user_id, SUM(amount) FROM orders GROUP BY user_id;
    

分页查询

  • 分页查询
    SELECT * FROM users LIMIT 10 OFFSET 10;
    SELECT * FROM orders LIMIT 5 OFFSET 10;
    

连接查询

  • 内连接查询
    SELECT users.name, orders.amount
    FROM users, orders
    WHERE users.id = orders.user_id;
    SELECT users.name, orders.amount
    FROM users
    INNER JOIN orders ON users.id = orders.user_id;
    
  • 外连接查询
    SELECT users.name, orders.amount
    FROM users
    LEFT JOIN orders ON users.id = orders.user_id;
    SELECT users.name, orders.amount
    FROM users
    RIGHT JOIN orders ON users.id = orders.user_id;
    

子查询

  • 子查询结果为单行单列
    SELECT *
    FROM users
    WHERE age = (SELECT MAX(age) FROM users);
    SELECT *
    FROM users
    WHERE id = (SELECT user_id FROM orders WHERE amount = (SELECT MAX(amount) FROM orders));
    
  • 子查询结果为多行单列
    SELECT *
    FROM users
    WHERE age > (SELECT age FROM users WHERE age = 30);
    SELECT *
    FROM users
    WHERE id IN (SELECT user_id FROM orders);
    
  • 子查询结果为多行多列
    SELECT *
    FROM users
    WHERE id IN (SELECT user_id FROM orders WHERE amount > 100);
    SELECT *
    FROM users
    WHERE id IN (SELECT user_id FROM orders WHERE amount > (SELECT AVG(amount) FROM orders));
    

数据控制语言(DCL)

管理用户

  • 添加用户
    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
    CREATE USER 'admin'@'localhost' IDENTIFIED BY 'securepass';
    
  • 删除用户
    DROP USER 'username'@'localhost';
    DROP USER 'admin'@'localhost';
    

权限管理

  • 查询权限
    SHOW GRANTS FOR CURRENT_USER;
    SHOW GRANTS FOR 'username'@'localhost';
    
  • 授予权限
    GRANT ALL PRIVILEGES ON test_db.* TO 'username'@'localhost';
    GRANT SELECT, INSERT ON *.* TO 'admin'@'localhost';
    
  • 撤销权限
    REVOKE ALL PRIVILEGES ON test_db.* FROM 'username'@'localhost';
    REVOKE SELECT, INSERT ON *.* FROM 'admin'@'localhost';
    

最后

感谢大家,请大家多多支持!

相关文章:

  • Linux内核配置与构建原理
  • 大摩闭门会:250228 学习总结报告
  • 算法-二叉树篇27-把二叉搜索树转换为累加树
  • el-input实现金额输入
  • TaskBuilder查看和预览客户信息列表页面
  • smolagents学习笔记系列(九)Examples - Orchestrate a multi-agent system
  • 15. C++多线程编程-网络编程-GUI编程(如Qt)学习建议
  • Linux安装jdk,node,mysql,redis
  • 最佳Nginx日志分割
  • InterHand26M(handposeX-json 格式)数据集-release >> DataBall
  • DAV_postgresql_3-schema
  • 初识MySQL · 数据库
  • 大白话Webpack 怎么理解,怎么使用它?
  • c++ 文件及基本读写总结
  • LM studio 加载ollama的模型
  • 【二分答案 C/C++】洛谷P1182 数列分段 Section II
  • 深度学习-15.生成对抗网络
  • 大语言模型学习
  • 图像算法工程师的技术图谱和学习路径
  • 从头开始学SpringBoot—02ssmp整合及案例
  • 新版城市规划体检评估解读:把城市安全韧性摆在更加突出位置
  • 中国社联成立95周年,《中国社联期刊汇编》等研究丛书出版
  • 铁路端午假期运输火车票今日开售,12306提升应对超大规模并发访问需求能力
  • 钕铁硼永磁材料龙头瞄准人形机器人,正海磁材:已向下游客户完成小批量供货
  • 警方通报男子广州南站持刀伤人:造成1人受伤,嫌疑人被控制
  • 俄外交部:俄乌伊斯坦布尔谈判改在当地时间15日下午举行