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

embedded/2025/3/4 17:54:11/

前言

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

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

数据定义语言(DDL)

数据库操作

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

表操作

  • 创建表
    sql">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)
    );
    
  • 删除表
    sql">DROP TABLE users;
    DROP TABLE orders;
    
  • 修改表
    sql">ALTER TABLE users ADD COLUMN age INT;
    ALTER TABLE users MODIFY COLUMN email VARCHAR(150);
    ALTER TABLE users DROP COLUMN age;
    

数据操作语言(DML)

插入数据

  • 插入单条数据
    sql">INSERT INTO users (name, email, age) VALUES ('John Doe', 'john.doe@example.com', 30);
    
  • 插入多条数据
    sql">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);
    

删除数据

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

更新数据

  • 更新特定数据
    sql">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)

基础查询

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

排序查询

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

聚合函数

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

分组查询

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

分页查询

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

连接查询

  • 内连接查询
    sql">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;
    
  • 外连接查询
    sql">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;
    

子查询

  • 子查询结果为单行单列
    sql">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));
    
  • 子查询结果为多行单列
    sql">SELECT *
    FROM users
    WHERE age > (SELECT age FROM users WHERE age = 30);
    SELECT *
    FROM users
    WHERE id IN (SELECT user_id FROM orders);
    
  • 子查询结果为多行多列
    sql">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)

管理用户

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

权限管理

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

最后

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


http://www.ppmy.cn/embedded/169980.html

相关文章

聊聊学习之数据-信息-知识-洞见-智慧-影响力

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、数据-信息-知识-洞见-智慧-影响力的关系1.数据2.信息3.知识4.洞察5.智慧6.影响力 二、具体例子1.数据2.信息3.知识4,洞察5.智慧6.影响力 结语 前言 之前见…

51页精品PPT | 农产品区块链溯源信息化平台整体解决方案

PPT展示了一个基于区块链技术的农产品溯源信息化平台的整体解决方案。它从建设背景和需求分析出发&#xff0c;强调了农产品质量安全溯源的重要性以及国际国内的相关政策要求&#xff0c;指出了食品安全问题在流通环节中的根源。方案提出了全面感知、责任到人、定期考核和追溯反…

从零开始构建高效Spring Boot应用:实战案例与最佳实践

摘要 本文旨在为初学者及有一定基础的开发者提供一份详尽的指南&#xff0c;以帮助大家深入理解并掌握如何使用Spring Boot框架来快速开发企业级应用程序。通过实际案例分析、代码示例以及架构设计思路分享&#xff0c;读者不仅能够学习到理论知识&#xff0c;还能获得宝贵的实…

SpringCloud系列教程(十一):token验证

之前我们完成了gateway传递token到微服务中&#xff0c;但是这还不够&#xff0c;因为有时候我们微服务是一个调用链路&#xff0c;每个微服务的请求可以来自于网关也可以来自于其他微服务&#xff0c;我们只完成了gateway传递token&#xff0c;还没有完成微服务之间使用openfe…

5G学习笔记之BWP

我们只会经历一种人生&#xff0c;我们选择的人生。 参考&#xff1a;《5G NR标准》、《5G无线系统指南:如微见著&#xff0c;赋能数字化时代》 目录 1. 概述2. BWP频域位置3. 初始与专用BWP4. 默认BWP5. 切换BWP 1. 概述 在LTE的设计中&#xff0c;默认所有终端均能处理最大2…

openssl下aes128算法xts模式加解密运算实例

aes128算法xts接口 加密 int openssl_aes128_encrypt_xts(unsigned char *key,unsigned char *iv, unsigned char *in_buf, int in_len, unsigned char *out_buf,int* out_len) {int len 0;// 创建并初始化加密上下文EVP_CIPHER_CTX *ctx EVP_CIPHER_CTX_new();if (!ctx) {p…

R 语言科研绘图第 29 期 --- 密度图-山脊线

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…

网络通信库

服务端和客户端 1.建立连接。服务端对接多个客户端&#xff0c;用连接池&#xff08;对象池&#xff09;优化 2.收发消息&#xff0c;类和对象通过序列化和反序列化程二进制来通信 3.其他库函数 1.信号量 2.原子操作 -- 3.SocketAsyncEventArgs SocketAsyncEventArgs是一…