当前位置: 首页 > 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';
    

最后

感谢大家,请大家多多支持!
欢迎大家交流,扣949574316

http://www.lryc.cn/news/546506.html

相关文章:

  • 05类加载机制篇(D6_方法调用和方法执行)
  • 视音频数据处理入门:颜色空间(二)---ffmpeg
  • 从零开始:H20服务器上DeepSeek R1 671B大模型部署与压力测试全攻略
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(5)
  • Leetcode 3469. Find Minimum Cost to Remove Array Elements
  • Excel的行高、列宽单位不统一?还是LaTeX靠谱
  • (新版本onenet)stm32+esp8266/01s mqtt连接onenet上报温湿度和远程控制(含小程序)
  • 告别GitHub连不上!一分钟快速访问方案
  • 迷你世界脚本对象库接口:ObjectLib
  • 数据库事务、乐观锁及悲观锁
  • 蓝桥王国--dij模板
  • Java基础关键_017_集合(一)
  • Rust编程实战:Rust实现简单的Web服务,单线程性能问题
  • GitLab 密钥详解:如何安全地使用 SSH 密钥进行身份验证
  • 《论数据分片技术及其应用》审题技巧 - 系统架构设计师
  • 【C++】当一个类A中没有声明任何成员变量和成员函数,sizeof(A)是多少?
  • Maven 私服的搭建与使用(一)
  • Ubuntu20.04双系统安装及软件安装(五):VSCode
  • linux网络(3)—— socket编程(1)socket基础认识
  • 【Kubernets】K8S内部nginx访问Service资源原理说明
  • 使用Docker搭建Oracle Database 23ai Free并扩展MAX_STRING_SIZE的完整指南
  • 使用pytorch和opencv根据颜色相似性提取图像
  • MySQL 8.X 报错处理
  • Ubuntu 22.04安装OpenJDK 17
  • 【时序预测】时间序列有哪些鲁棒的归一化方法
  • nlp第九节——文本生成任务
  • STM32MP1xx的启动流程
  • wgcloud-server端部署说明
  • 大模型Agent:人工智能的崭新形态与未来愿景
  • 专题二最大连续1的个数|||